forked from KolibriOS/kolibrios
convert tmpdisk and ps2mouse to PE
git-svn-id: svn://kolibrios.org@5044 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
8240a01a43
commit
7dc01ee888
@ -127,11 +127,9 @@ FASM_PROGRAMS:=\
|
|||||||
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
||||||
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
||||||
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
||||||
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
|
||||||
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
||||||
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
||||||
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
||||||
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(KERNEL)/drivers/tmpdisk.asm \
|
|
||||||
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
||||||
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
||||||
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
||||||
@ -214,6 +212,8 @@ FASM_PROGRAMS_PESTRIP:=\
|
|||||||
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
||||||
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
||||||
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
||||||
|
drivers/ps2mouse.sys:DRIVERS/PS2MOUSE.SYS:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
||||||
|
drivers/tmpdisk.sys:DRIVERS/TMPDISK.SYS:$(REPOSITORY)/drivers/disk/tmpdisk.asm \
|
||||||
# end of list
|
# end of list
|
||||||
# The list of all FASM programs with one main FASM file for CD image.
|
# The list of all FASM programs with one main FASM file for CD image.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# $(1) = name of stripped file,
|
# $(1) = name of stripped file,
|
||||||
# $(2) = name of input file
|
# $(2) = name of input file
|
||||||
define pestrip_meta_rule
|
define pestrip_meta_rule
|
||||||
$(1): $(2) Makefile.pestrip
|
$(1): $(2) Makefile.pestrip ../common/pestrip.asm
|
||||||
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
||||||
kpack --nologo "$$@"
|
kpack --nologo "$$@"
|
||||||
endef
|
endef
|
||||||
|
@ -127,11 +127,9 @@ FASM_PROGRAMS:=\
|
|||||||
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
||||||
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
||||||
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
||||||
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
|
||||||
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
||||||
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
||||||
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
||||||
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(KERNEL)/drivers/tmpdisk.asm \
|
|
||||||
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
||||||
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
||||||
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
||||||
@ -214,6 +212,8 @@ FASM_PROGRAMS_PESTRIP:=\
|
|||||||
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
||||||
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
||||||
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
||||||
|
drivers/ps2mouse.sys:DRIVERS/PS2MOUSE.SYS:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
||||||
|
drivers/tmpdisk.sys:DRIVERS/TMPDISK.SYS:$(REPOSITORY)/drivers/disk/tmpdisk.asm \
|
||||||
# end of list
|
# end of list
|
||||||
# The list of all FASM programs with one main FASM file for CD image.
|
# The list of all FASM programs with one main FASM file for CD image.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# $(1) = name of stripped file,
|
# $(1) = name of stripped file,
|
||||||
# $(2) = name of input file
|
# $(2) = name of input file
|
||||||
define pestrip_meta_rule
|
define pestrip_meta_rule
|
||||||
$(1): $(2) Makefile.pestrip
|
$(1): $(2) Makefile.pestrip ../common/pestrip.asm
|
||||||
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
||||||
kpack --nologo "$$@"
|
kpack --nologo "$$@"
|
||||||
endef
|
endef
|
||||||
|
@ -127,11 +127,9 @@ FASM_PROGRAMS:=\
|
|||||||
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
||||||
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
||||||
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
||||||
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
|
||||||
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
||||||
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
||||||
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
||||||
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(KERNEL)/drivers/tmpdisk.asm \
|
|
||||||
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
||||||
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
||||||
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
||||||
@ -214,6 +212,8 @@ FASM_PROGRAMS_PESTRIP:=\
|
|||||||
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
||||||
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
||||||
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
||||||
|
drivers/ps2mouse.sys:DRIVERS/PS2MOUSE.SYS:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
||||||
|
drivers/tmpdisk.sys:DRIVERS/TMPDISK.SYS:$(REPOSITORY)/drivers/disk/tmpdisk.asm \
|
||||||
# end of list
|
# end of list
|
||||||
# The list of all FASM programs with one main FASM file for CD image.
|
# The list of all FASM programs with one main FASM file for CD image.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# $(1) = name of stripped file,
|
# $(1) = name of stripped file,
|
||||||
# $(2) = name of input file
|
# $(2) = name of input file
|
||||||
define pestrip_meta_rule
|
define pestrip_meta_rule
|
||||||
$(1): $(2) Makefile.pestrip
|
$(1): $(2) Makefile.pestrip ../common/pestrip.asm
|
||||||
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
||||||
kpack --nologo "$$@"
|
kpack --nologo "$$@"
|
||||||
endef
|
endef
|
||||||
|
@ -128,11 +128,9 @@ FASM_PROGRAMS:=\
|
|||||||
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
||||||
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
||||||
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
||||||
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
|
||||||
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
||||||
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
||||||
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
||||||
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(KERNEL)/drivers/tmpdisk.asm \
|
|
||||||
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
||||||
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
||||||
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
||||||
@ -214,6 +212,8 @@ FASM_PROGRAMS_PESTRIP:=\
|
|||||||
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
||||||
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
||||||
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
||||||
|
drivers/ps2mouse.sys:DRIVERS/PS2MOUSE.SYS:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
||||||
|
drivers/tmpdisk.sys:DRIVERS/TMPDISK.SYS:$(REPOSITORY)/drivers/disk/tmpdisk.asm \
|
||||||
# end of list
|
# end of list
|
||||||
# The list of all FASM programs with one main FASM file for CD image.
|
# The list of all FASM programs with one main FASM file for CD image.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# $(1) = name of stripped file,
|
# $(1) = name of stripped file,
|
||||||
# $(2) = name of input file
|
# $(2) = name of input file
|
||||||
define pestrip_meta_rule
|
define pestrip_meta_rule
|
||||||
$(1): $(2) Makefile.pestrip
|
$(1): $(2) Makefile.pestrip ../common/pestrip.asm
|
||||||
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
||||||
kpack --nologo "$$@"
|
kpack --nologo "$$@"
|
||||||
endef
|
endef
|
||||||
|
@ -127,11 +127,9 @@ FASM_PROGRAMS:=\
|
|||||||
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
drivers/fm801.obj:DRIVERS/FM801.OBJ:$(KERNEL)/drivers/fm801.asm \
|
||||||
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
drivers/infinity.obj:DRIVERS/INFINITY.OBJ:$(KERNEL)/drivers/infinity.asm \
|
||||||
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
drivers/intel_hda.obj:DRIVERS/intel_hda.obj:$(REPOSITORY)/drivers/audio/intel_hda/intel_hda.asm \
|
||||||
drivers/ps2mouse.obj:DRIVERS/PS2MOUSE.OBJ:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
|
||||||
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
drivers/sb16.obj:DRIVERS/SB16.OBJ:$(KERNEL)/drivers/sb16/sb16.asm \
|
||||||
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
drivers/sound.obj:DRIVERS/SOUND.OBJ:$(KERNEL)/drivers/sound.asm \
|
||||||
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
drivers/intelac97.obj:DRIVERS/INTELAC97.OBJ:$(KERNEL)/drivers/intelac97.asm \
|
||||||
drivers/tmpdisk.obj:DRIVERS/TMPDISK.OBJ:$(KERNEL)/drivers/tmpdisk.asm \
|
|
||||||
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
drivers/usbhid.obj:DRIVERS/USBHID.OBJ:$(KERNEL)/drivers/usbhid/usbhid.asm \
|
||||||
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
drivers/usbstor.obj:DRIVERS/USBSTOR.OBJ:$(KERNEL)/drivers/usbstor.asm \
|
||||||
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
drivers/vt823x.obj:DRIVERS/VT823X.OBJ:$(KERNEL)/drivers/vt823x.asm \
|
||||||
@ -214,6 +212,8 @@ FASM_PROGRAMS_PESTRIP:=\
|
|||||||
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
drivers/ohci.sys:DRIVERS/OHCI.SYS:$(REPOSITORY)/drivers/usb/ohci.asm \
|
||||||
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
drivers/ehci.sys:DRIVERS/EHCI.SYS:$(REPOSITORY)/drivers/usb/ehci.asm \
|
||||||
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
drivers/rdc.sys:DRIVERS/RDC.SYS:$(REPOSITORY)/drivers/video/rdc.asm \
|
||||||
|
drivers/ps2mouse.sys:DRIVERS/PS2MOUSE.SYS:$(REPOSITORY)/drivers/mouse/ps2mouse4d/trunk/ps2mouse.asm \
|
||||||
|
drivers/tmpdisk.sys:DRIVERS/TMPDISK.SYS:$(REPOSITORY)/drivers/disk/tmpdisk.asm \
|
||||||
# end of list
|
# end of list
|
||||||
# The list of all FASM programs with one main FASM file for CD image.
|
# The list of all FASM programs with one main FASM file for CD image.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# $(1) = name of stripped file,
|
# $(1) = name of stripped file,
|
||||||
# $(2) = name of input file
|
# $(2) = name of input file
|
||||||
define pestrip_meta_rule
|
define pestrip_meta_rule
|
||||||
$(1): $(2) Makefile.pestrip
|
$(1): $(2) Makefile.pestrip ../common/pestrip.asm
|
||||||
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
EXENAME="$$<" fasm ../common/pestrip.asm "$$@"
|
||||||
kpack --nologo "$$@"
|
kpack --nologo "$$@"
|
||||||
endef
|
endef
|
||||||
|
@ -25,56 +25,34 @@ ERROR_SIZE_TOO_LARGE equ 3 ; .DiskSize is too large
|
|||||||
ERROR_SIZE_TOO_SMALL equ 4 ; .DiskSize is too small
|
ERROR_SIZE_TOO_SMALL equ 4 ; .DiskSize is too small
|
||||||
ERROR_NO_MEMORY equ 5 ; memory allocation failed
|
ERROR_NO_MEMORY equ 5 ; memory allocation failed
|
||||||
|
|
||||||
|
include '../struct.inc'
|
||||||
|
|
||||||
API_VERSION equ 1
|
API_VERSION equ 1
|
||||||
; Input structures:
|
; Input structures:
|
||||||
struc add_disk_struc
|
struct add_disk_struc
|
||||||
{
|
DiskSize dd ? ; disk size in sectors, 1 sector = 512 bytes
|
||||||
.DiskSize dd ? ; disk size in sectors, 1 sector = 512 bytes
|
; Note: DiskSize is the full size, including FAT service data.
|
||||||
; Note: .DiskSize is the full size, including FAT service data.
|
|
||||||
; Size for useful data is slightly less than this number.
|
; Size for useful data is slightly less than this number.
|
||||||
.DiskId db ? ; from 0 to 9
|
DiskId db ? ; from 0 to 9
|
||||||
.sizeof:
|
ends
|
||||||
}
|
struct del_disk_struc
|
||||||
virtual at 0
|
DiskId db ? ; from 0 to 9
|
||||||
add_disk_struc add_disk_struc
|
ends
|
||||||
end virtual
|
|
||||||
struc del_disk_struc
|
|
||||||
{
|
|
||||||
.DiskId db ? ; from 0 to 9
|
|
||||||
.sizeof:
|
|
||||||
}
|
|
||||||
virtual at 0
|
|
||||||
del_disk_struc del_disk_struc
|
|
||||||
end virtual
|
|
||||||
|
|
||||||
max_num_disks equ 10
|
max_num_disks equ 10
|
||||||
|
|
||||||
; standard driver stuff
|
; standard driver stuff; version of driver model = 5
|
||||||
format MS COFF
|
format PE DLL native 0.05
|
||||||
|
|
||||||
DEBUG equ 0
|
DEBUG equ 0
|
||||||
include 'proc32.inc'
|
|
||||||
include 'imports.inc'
|
|
||||||
|
|
||||||
public START
|
section '.flat' code readable writable executable
|
||||||
public version
|
data fixups
|
||||||
|
end data
|
||||||
struc IOCTL
|
entry START
|
||||||
{
|
include '../proc32.inc'
|
||||||
.handle dd ?
|
include '../peimport.inc'
|
||||||
.io_code dd ?
|
include '../macros.inc'
|
||||||
.input dd ?
|
|
||||||
.inp_size dd ?
|
|
||||||
.output dd ?
|
|
||||||
.out_size dd ?
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual at 0
|
|
||||||
IOCTL IOCTL
|
|
||||||
end virtual
|
|
||||||
|
|
||||||
section '.flat' code readable align 16
|
|
||||||
; the start procedure (see the description above)
|
; the start procedure (see the description above)
|
||||||
proc START
|
proc START
|
||||||
; This procedure is called in two situations:
|
; This procedure is called in two situations:
|
||||||
@ -84,10 +62,10 @@ proc START
|
|||||||
cmp dword [esp+4], 1
|
cmp dword [esp+4], 1
|
||||||
jne .nothing
|
jne .nothing
|
||||||
; 2. Register the driver in the system.
|
; 2. Register the driver in the system.
|
||||||
stdcall RegService, my_service, service_proc
|
invoke RegService, my_service, service_proc
|
||||||
; 3. Return the value returned by RegService back to the system.
|
; 3. Return the value returned by RegService back to the system.
|
||||||
.nothing:
|
.nothing:
|
||||||
retn 4
|
retn
|
||||||
endp
|
endp
|
||||||
|
|
||||||
; Service procedure for the driver - handle all IOCTL requests for the driver.
|
; Service procedure for the driver - handle all IOCTL requests for the driver.
|
||||||
@ -122,8 +100,8 @@ proc service_proc
|
|||||||
dec ecx ; check for DEV_ADD_DISK
|
dec ecx ; check for DEV_ADD_DISK
|
||||||
jnz .no.dev_add_disk
|
jnz .no.dev_add_disk
|
||||||
; 5. This is DEV_ADD_DISK request, input is add_disk_struc, output is 1 byte
|
; 5. This is DEV_ADD_DISK request, input is add_disk_struc, output is 1 byte
|
||||||
; 5a. Input size must be exactly add_disk_struc.sizeof bytes.
|
; 5a. Input size must be exactly sizeof.add_disk_struc bytes.
|
||||||
cmp [edx+IOCTL.inp_size], add_disk_struc.sizeof
|
cmp [edx+IOCTL.inp_size], sizeof.add_disk_struc
|
||||||
jnz .return
|
jnz .return
|
||||||
; 5b. Load input parameters and call the worker procedure.
|
; 5b. Load input parameters and call the worker procedure.
|
||||||
mov eax, [edx+IOCTL.input]
|
mov eax, [edx+IOCTL.input]
|
||||||
@ -136,8 +114,8 @@ proc service_proc
|
|||||||
dec ecx ; check for DEV_DEL_DISK
|
dec ecx ; check for DEV_DEL_DISK
|
||||||
jnz .return
|
jnz .return
|
||||||
; 6. This is DEV_DEL_DISK request, input is del_disk_struc
|
; 6. This is DEV_DEL_DISK request, input is del_disk_struc
|
||||||
; 6a. Input size must be exactly del_disk_struc.sizeof bytes.
|
; 6a. Input size must be exactly sizeof.del_disk_struc bytes.
|
||||||
cmp [edx+IOCTL.inp_size], del_disk_struc.sizeof
|
cmp [edx+IOCTL.inp_size], sizeof.del_disk_struc
|
||||||
jnz .return
|
jnz .return
|
||||||
; 6b. Load input parameters and call the worker procedure.
|
; 6b. Load input parameters and call the worker procedure.
|
||||||
mov eax, [edx+IOCTL.input]
|
mov eax, [edx+IOCTL.input]
|
||||||
@ -179,7 +157,7 @@ proc add_disk
|
|||||||
; If failed, return the corresponding error code.
|
; If failed, return the corresponding error code.
|
||||||
mov eax, esi
|
mov eax, esi
|
||||||
shl eax, 9
|
shl eax, 9
|
||||||
stdcall KernelAlloc, eax
|
invoke KernelAlloc, eax
|
||||||
mov edi, eax
|
mov edi, eax
|
||||||
test eax, eax
|
test eax, eax
|
||||||
mov al, ERROR_NO_MEMORY
|
mov al, ERROR_NO_MEMORY
|
||||||
@ -193,7 +171,7 @@ proc add_disk
|
|||||||
lock cmpxchg [disk_pointers+ebx*4], edi
|
lock cmpxchg [disk_pointers+ebx*4], edi
|
||||||
jz @f
|
jz @f
|
||||||
; Otherwise, free the allocated memory and return the corresponding error code.
|
; Otherwise, free the allocated memory and return the corresponding error code.
|
||||||
stdcall KernelFree, edi
|
invoke KernelFree, edi
|
||||||
mov al, ERROR_INVALID_ID
|
mov al, ERROR_INVALID_ID
|
||||||
jmp .return
|
jmp .return
|
||||||
@@:
|
@@:
|
||||||
@ -209,7 +187,7 @@ proc add_disk
|
|||||||
lea ecx, [ebx+'0'] ; ecx = digit
|
lea ecx, [ebx+'0'] ; ecx = digit
|
||||||
mov [eax+3], cl ; eax points to 'tmp#' + zero dword
|
mov [eax+3], cl ; eax points to 'tmp#' + zero dword
|
||||||
; 6b. Call the kernel API. Use disk id as 'userdata' parameter for callbacks.
|
; 6b. Call the kernel API. Use disk id as 'userdata' parameter for callbacks.
|
||||||
stdcall DiskAdd, disk_functions, eax, ebx, 0
|
invoke DiskAdd, disk_functions, eax, ebx, 0
|
||||||
; 6c. Restore the stack after 6a.
|
; 6c. Restore the stack after 6a.
|
||||||
pop ecx ecx
|
pop ecx ecx
|
||||||
; 6c. Check the result. If DiskAdd has failed, cleanup and return
|
; 6c. Check the result. If DiskAdd has failed, cleanup and return
|
||||||
@ -218,13 +196,13 @@ proc add_disk
|
|||||||
jnz @f
|
jnz @f
|
||||||
mov [disk_sizes+ebx*4], 0
|
mov [disk_sizes+ebx*4], 0
|
||||||
mov [disk_pointers+ebx*4], 0
|
mov [disk_pointers+ebx*4], 0
|
||||||
stdcall KernelFree, edi
|
invoke KernelFree, edi
|
||||||
mov al, ERROR_NO_MEMORY
|
mov al, ERROR_NO_MEMORY
|
||||||
jmp .return
|
jmp .return
|
||||||
@@:
|
@@:
|
||||||
push eax
|
push eax
|
||||||
; 6d. Notify the kernel that media is inserted.
|
; 6d. Notify the kernel that media is inserted.
|
||||||
stdcall DiskMediaChanged, eax, 1
|
invoke DiskMediaChanged, eax, 1
|
||||||
; 6e. Disk is fully configured; store its handle in the global variable
|
; 6e. Disk is fully configured; store its handle in the global variable
|
||||||
; and return success.
|
; and return success.
|
||||||
pop [disk_handles+ebx*4]
|
pop [disk_handles+ebx*4]
|
||||||
@ -252,7 +230,7 @@ proc del_disk
|
|||||||
test edx, edx
|
test edx, edx
|
||||||
jz .return
|
jz .return
|
||||||
; 4. Delete the disk from the system.
|
; 4. Delete the disk from the system.
|
||||||
stdcall DiskDel, edx
|
invoke DiskDel, edx
|
||||||
; 5. Return success.
|
; 5. Return success.
|
||||||
; Note that we can't free memory yet; it will be done in tmpdisk_close.
|
; Note that we can't free memory yet; it will be done in tmpdisk_close.
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
@ -287,9 +265,4 @@ times max_num_disks dd 0
|
|||||||
label disk_sizes dword
|
label disk_sizes dword
|
||||||
times max_num_disks dd 0
|
times max_num_disks dd 0
|
||||||
|
|
||||||
version dd 0x00060006
|
|
||||||
my_service db 'tmpdisk',0
|
my_service db 'tmpdisk',0
|
||||||
|
|
||||||
; uninitialized data
|
|
||||||
; actually, not used here
|
|
||||||
;section '.data' data readable writable align 16 ; standard driver stuff
|
|
@ -21,7 +21,7 @@ proc tmpdisk_close
|
|||||||
mov [disk_sizes+edx*4], 0
|
mov [disk_sizes+edx*4], 0
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
xchg eax, [disk_pointers+edx*4]
|
xchg eax, [disk_pointers+edx*4]
|
||||||
stdcall KernelFree, eax
|
invoke KernelFree, eax
|
||||||
retn 4
|
retn 4
|
||||||
endp
|
endp
|
||||||
|
|
@ -94,7 +94,7 @@ mouse_read:
|
|||||||
cmp ah, 1
|
cmp ah, 1
|
||||||
jne .fin
|
jne .fin
|
||||||
mov esi, 10
|
mov esi, 10
|
||||||
call Sleep
|
invoke Sleep
|
||||||
dec [mouse_nr_tries]
|
dec [mouse_nr_tries]
|
||||||
jnz .repeat
|
jnz .repeat
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ proc irq_handler
|
|||||||
|
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
stdcall SetMouseData, [ButtonState], [XMoving], [YMoving]
|
invoke SetMouseData, [ButtonState], [XMoving], [YMoving]
|
||||||
|
|
||||||
jmp .exit
|
jmp .exit
|
||||||
|
|
||||||
|
@ -1,39 +1,25 @@
|
|||||||
format MS COFF
|
; standard driver stuff; version of driver model = 5
|
||||||
|
format PE DLL native 0.05
|
||||||
|
|
||||||
DEBUG equ 1
|
DEBUG equ 1
|
||||||
|
|
||||||
include '../../../proc32.inc'
|
|
||||||
include '../../../imports.inc'
|
|
||||||
|
|
||||||
struc IOCTL
|
|
||||||
{ .handle dd ?
|
|
||||||
.io_code dd ?
|
|
||||||
.input dd ?
|
|
||||||
.inp_size dd ?
|
|
||||||
.output dd ?
|
|
||||||
.out_size dd ?
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual at 0
|
|
||||||
IOCTL IOCTL
|
|
||||||
end virtual
|
|
||||||
|
|
||||||
public START
|
|
||||||
public version
|
|
||||||
|
|
||||||
DRV_ENTRY equ 1
|
|
||||||
DRV_EXIT equ -1
|
|
||||||
|
|
||||||
MT_3B equ 0
|
MT_3B equ 0
|
||||||
MT_3BScroll equ 3
|
MT_3BScroll equ 3
|
||||||
MT_5BScroll equ 4
|
MT_5BScroll equ 4
|
||||||
|
|
||||||
PS2_DRV_VER equ 1
|
PS2_DRV_VER equ 1
|
||||||
|
|
||||||
section '.flat' code readable align 16
|
section '.flat' code readable writable executable
|
||||||
|
data fixups
|
||||||
|
end data
|
||||||
|
include '../../../struct.inc'
|
||||||
|
include '../../../macros.inc'
|
||||||
|
include '../../../proc32.inc'
|
||||||
|
include '../../../peimport.inc'
|
||||||
|
|
||||||
|
|
||||||
proc START stdcall, state:dword
|
entry START
|
||||||
|
proc START c, state:dword, cmdline:dword
|
||||||
|
|
||||||
cmp [state], DRV_ENTRY
|
cmp [state], DRV_ENTRY
|
||||||
jne .nothing
|
jne .nothing
|
||||||
@ -91,13 +77,13 @@ proc START stdcall, state:dword
|
|||||||
pop eax
|
pop eax
|
||||||
call kbd_write
|
call kbd_write
|
||||||
|
|
||||||
stdcall AttachIntHandler, 12, irq_handler, 0
|
invoke AttachIntHandler, 12, irq_handler, 0
|
||||||
stdcall RegService, my_service, service_proc
|
invoke RegService, my_service, service_proc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.fin:
|
.fin:
|
||||||
popf
|
popf
|
||||||
;stdcall DetachIntHandler, 12, irq_handler
|
;invoke DetachIntHandler, 12, irq_handler
|
||||||
mov bl, 0xA7 ; disable mouse interface
|
mov bl, 0xA7 ; disable mouse interface
|
||||||
call kbd_cmd
|
call kbd_cmd
|
||||||
.nothing:
|
.nothing:
|
||||||
@ -258,9 +244,6 @@ try_mode_ID4:
|
|||||||
include 'ps2m_iofuncs.inc'
|
include 'ps2m_iofuncs.inc'
|
||||||
include 'ps2m_irqh.inc'
|
include 'ps2m_irqh.inc'
|
||||||
|
|
||||||
section '.data' data readable writable align 16
|
|
||||||
|
|
||||||
version dd 0x00050005
|
|
||||||
my_service db 'ps2mouse',0
|
my_service db 'ps2mouse',0
|
||||||
|
|
||||||
;iofuncs data
|
;iofuncs data
|
||||||
|
@ -13,8 +13,8 @@ use_predefined_mode = 0;1
|
|||||||
predefined_width = 0;1366
|
predefined_width = 0;1366
|
||||||
predefined_height = 0;768
|
predefined_height = 0;768
|
||||||
|
|
||||||
; standard driver stuff; target OS version = 0.80
|
; standard driver stuff; version of driver model = 5
|
||||||
format PE DLL native 0.80
|
format PE DLL native 0.05
|
||||||
entry START
|
entry START
|
||||||
__DEBUG__ equ 1
|
__DEBUG__ equ 1
|
||||||
__DEBUG_LEVEL__ equ 1
|
__DEBUG_LEVEL__ equ 1
|
||||||
|
@ -148,7 +148,7 @@ end if
|
|||||||
msg_CR db 13,10,0
|
msg_CR db 13,10,0
|
||||||
|
|
||||||
szHwMouse db 'ATI2D',0
|
szHwMouse db 'ATI2D',0
|
||||||
szPS2MDriver db 'PS2MOUSE',0
|
szPS2MDriver db '/rd/1/drivers/PS2MOUSE.SYS',0
|
||||||
;szCOM_MDriver db 'COM_MOUSE',0
|
;szCOM_MDriver db 'COM_MOUSE',0
|
||||||
szVidintel db '/rd/1/drivers/vidintel.sys',0
|
szVidintel db '/rd/1/drivers/vidintel.sys',0
|
||||||
szUSB db 'USB',0
|
szUSB db 'USB',0
|
||||||
|
@ -1,465 +0,0 @@
|
|||||||
; Stub of videodriver for Intel videocards.
|
|
||||||
; (c) CleverMouse
|
|
||||||
|
|
||||||
; When the start procedure gots control,
|
|
||||||
; it tries to detect preferred resolution,
|
|
||||||
; sets the detected resolution assuming 32-bpp VESA mode and exits
|
|
||||||
; (without registering a service).
|
|
||||||
; Detection can be overloaded with compile-time settings
|
|
||||||
; use_predefined_mode/predefined_width/predefined_height.
|
|
||||||
|
|
||||||
; set predefined resolution here
|
|
||||||
use_predefined_mode = 0;1
|
|
||||||
predefined_width = 0;1366
|
|
||||||
predefined_height = 0;768
|
|
||||||
|
|
||||||
; standard driver stuff
|
|
||||||
format MS COFF
|
|
||||||
|
|
||||||
DEBUG = 1
|
|
||||||
|
|
||||||
include 'proc32.inc'
|
|
||||||
include 'imports.inc'
|
|
||||||
|
|
||||||
public START
|
|
||||||
public version
|
|
||||||
|
|
||||||
section '.flat' code readable align 16
|
|
||||||
; the start procedure (see the description above)
|
|
||||||
START:
|
|
||||||
; 1. Detect device. Abort if not found.
|
|
||||||
push esi
|
|
||||||
call DetectDevice
|
|
||||||
test esi, esi
|
|
||||||
jz .return0
|
|
||||||
; 2. Detect optimal mode unless the mode is given explicitly. Abort if failed.
|
|
||||||
if use_predefined_mode = 0
|
|
||||||
call DetectMode
|
|
||||||
end if
|
|
||||||
cmp [width], 0
|
|
||||||
jz .return0_cleanup
|
|
||||||
; 3. Set the detected mode.
|
|
||||||
call SetMode
|
|
||||||
; 4. Cleanup and return.
|
|
||||||
.return0_cleanup:
|
|
||||||
stdcall FreeKernelSpace, esi
|
|
||||||
.return0:
|
|
||||||
pop esi
|
|
||||||
xor eax, eax
|
|
||||||
ret 4
|
|
||||||
|
|
||||||
; check that there is Intel videocard
|
|
||||||
; if so, map MMIO registers and set internal variables
|
|
||||||
; esi points to MMIO block; NULL means no device
|
|
||||||
DetectDevice:
|
|
||||||
; 1. Sanity check: check that we are dealing with Intel videocard.
|
|
||||||
; Integrated video device for Intel is always at PCI:0:2:0.
|
|
||||||
xor esi, esi ; initialize return value to NULL
|
|
||||||
; 1a. Get PCI VendorID and DeviceID.
|
|
||||||
push esi
|
|
||||||
push 10h
|
|
||||||
push esi
|
|
||||||
call PciRead32
|
|
||||||
; 1b. loword(eax) = ax = VendorID, hiword(eax) = DeviceID.
|
|
||||||
; Test whether we have Intel chipset.
|
|
||||||
cmp ax, 8086h
|
|
||||||
jnz .return
|
|
||||||
; 1c. Say hi including DeviceID.
|
|
||||||
shr eax, 10h
|
|
||||||
push edi
|
|
||||||
pusha
|
|
||||||
mov edi, pciid_text
|
|
||||||
call WriteWord
|
|
||||||
mov esi, hellomsg
|
|
||||||
call SysMsgBoardStr
|
|
||||||
popa
|
|
||||||
; 1d. Test whether we know this DeviceID.
|
|
||||||
; If this is the case, remember the position of the device in line of Intel cards;
|
|
||||||
; this knowledge will be useful later.
|
|
||||||
; Tested on devices with id: 8086:0046, partially 8086:2A02.
|
|
||||||
mov ecx, pciids_num
|
|
||||||
mov edi, pciids
|
|
||||||
repnz scasw
|
|
||||||
pop edi
|
|
||||||
jnz .return_unknown_pciid
|
|
||||||
sub ecx, pciids_num - 1
|
|
||||||
neg ecx
|
|
||||||
mov [deviceType], ecx
|
|
||||||
; 1e. Continue saying hi with positive intonation.
|
|
||||||
pusha
|
|
||||||
mov esi, knownmsg
|
|
||||||
call SysMsgBoardStr
|
|
||||||
popa
|
|
||||||
; 2. Prepare MMIO region to control the card.
|
|
||||||
; 2a. Read MMIO physical address from PCI config space.
|
|
||||||
push 10h
|
|
||||||
cmp ecx, i9xx_start
|
|
||||||
jae @f
|
|
||||||
mov byte [esp], 14h
|
|
||||||
@@:
|
|
||||||
push 10h
|
|
||||||
push esi
|
|
||||||
call PciRead32
|
|
||||||
; 2b. Mask out PCI region type, lower 4 bits.
|
|
||||||
and al, not 0xF
|
|
||||||
; 2c. Create virtual mapping of the physical memory.
|
|
||||||
push 1Bh
|
|
||||||
push 100000h
|
|
||||||
push eax
|
|
||||||
call MapIoMem
|
|
||||||
; 3. Return.
|
|
||||||
xchg esi, eax
|
|
||||||
.return:
|
|
||||||
ret
|
|
||||||
; 1f. If we do not know DeviceID, continue saying hi with negative intonation.
|
|
||||||
.return_unknown_pciid:
|
|
||||||
pusha
|
|
||||||
mov esi, unknownmsg
|
|
||||||
call SysMsgBoardStr
|
|
||||||
popa
|
|
||||||
ret
|
|
||||||
|
|
||||||
; Convert word in ax to hexadecimal text in edi, advance edi.
|
|
||||||
WriteWord:
|
|
||||||
; 1. Convert high byte.
|
|
||||||
push eax
|
|
||||||
mov al, ah
|
|
||||||
call WriteByte
|
|
||||||
pop eax
|
|
||||||
; 2. Convert low byte.
|
|
||||||
; Fall through to WriteByte; ret from WriteByte is ret from WriteWord too.
|
|
||||||
|
|
||||||
; Convert byte in al to hexadecimal text in edi, advance edi.
|
|
||||||
WriteByte:
|
|
||||||
; 1. Convert high nibble.
|
|
||||||
push eax
|
|
||||||
shr al, 4
|
|
||||||
call WriteNibble
|
|
||||||
pop eax
|
|
||||||
; 2. Convert low nibble.
|
|
||||||
and al, 0xF
|
|
||||||
; Fall through to WriteNibble; ret from WriteNibble is ret from WriteByte too.
|
|
||||||
|
|
||||||
; Convert nibble in al to hexadecimal text in edi, advance edi.
|
|
||||||
WriteNibble:
|
|
||||||
; Obvious, isn't it?
|
|
||||||
cmp al, 10
|
|
||||||
sbb al, 69h
|
|
||||||
das
|
|
||||||
stosb
|
|
||||||
ret
|
|
||||||
|
|
||||||
if use_predefined_mode = 0
|
|
||||||
; detect resolution of the flat panel
|
|
||||||
DetectMode:
|
|
||||||
push esi edi
|
|
||||||
; 1. Get the location of block of GMBUS* registers.
|
|
||||||
; Starting with Ironlake, GMBUS* registers were moved.
|
|
||||||
add esi, 5100h
|
|
||||||
cmp [deviceType], ironlake_start
|
|
||||||
jb @f
|
|
||||||
add esi, 0xC0000
|
|
||||||
@@:
|
|
||||||
; 2. Initialize GMBUS engine.
|
|
||||||
mov edi, edid
|
|
||||||
mov ecx, 0x10000
|
|
||||||
@@:
|
|
||||||
test byte [esi+8+1], 80h
|
|
||||||
loopnz @b
|
|
||||||
jnz .fail
|
|
||||||
mov dword [esi], 3
|
|
||||||
test byte [esi+8+1], 4
|
|
||||||
jz .noreset
|
|
||||||
call ResetGMBus
|
|
||||||
jnz .fail
|
|
||||||
.noreset:
|
|
||||||
; 3. Send read command.
|
|
||||||
and dword [esi+20h], 0
|
|
||||||
mov dword [esi+4], 4E8000A1h
|
|
||||||
; 4. Wait for data, writing to the buffer as data arrive.
|
|
||||||
.getdata:
|
|
||||||
mov ecx, 0x10000
|
|
||||||
@@:
|
|
||||||
test byte [esi+8+1], 8
|
|
||||||
loopz @b
|
|
||||||
test byte [esi+8+1], 4
|
|
||||||
jz .dataok
|
|
||||||
call ResetGMBus
|
|
||||||
jmp .fail
|
|
||||||
.dataok:
|
|
||||||
mov eax, [esi+0Ch]
|
|
||||||
stosd
|
|
||||||
cmp edi, edid+80h
|
|
||||||
jb .getdata
|
|
||||||
; 5. Wait for bus idle.
|
|
||||||
mov ecx, 0x10000
|
|
||||||
@@:
|
|
||||||
test byte [esi+8+1], 2
|
|
||||||
loopnz @b
|
|
||||||
; 6. We got EDID; dump it if DEBUG.
|
|
||||||
if DEBUG
|
|
||||||
pusha
|
|
||||||
xor ecx, ecx
|
|
||||||
mov esi, edid
|
|
||||||
mov edi, edid_text
|
|
||||||
.dumploop:
|
|
||||||
lodsb
|
|
||||||
call WriteByte
|
|
||||||
mov al, ' '
|
|
||||||
stosb
|
|
||||||
inc cl
|
|
||||||
test cl, 15
|
|
||||||
jnz @f
|
|
||||||
mov byte [edi-1], 13
|
|
||||||
mov al, 10
|
|
||||||
stosb
|
|
||||||
@@:
|
|
||||||
test cl, cl
|
|
||||||
jns .dumploop
|
|
||||||
mov esi, edidmsg
|
|
||||||
call SysMsgBoardStr
|
|
||||||
popa
|
|
||||||
end if
|
|
||||||
; 7. Test whether EDID is good.
|
|
||||||
; 7a. Signature: 00 FF FF FF FF FF FF 00.
|
|
||||||
mov esi, edid
|
|
||||||
cmp dword [esi], 0xFFFFFF00
|
|
||||||
jnz .fail
|
|
||||||
cmp dword [esi+4], 0x00FFFFFF
|
|
||||||
jnz .fail
|
|
||||||
; 7b. Checksum must be zero.
|
|
||||||
xor edx, edx
|
|
||||||
mov ecx, 80h
|
|
||||||
@@:
|
|
||||||
lodsb
|
|
||||||
add dl, al
|
|
||||||
loop @b
|
|
||||||
jnz .fail
|
|
||||||
; 8. Get width and height from EDID.
|
|
||||||
xor eax, eax
|
|
||||||
mov ah, [esi-80h+3Ah]
|
|
||||||
shr ah, 4
|
|
||||||
mov al, [esi-80h+38h]
|
|
||||||
mov [width], eax
|
|
||||||
mov ah, [esi-80h+3Dh]
|
|
||||||
shr ah, 4
|
|
||||||
mov al, [esi-80h+3Bh]
|
|
||||||
mov [height], eax
|
|
||||||
; 9. Return.
|
|
||||||
.fail:
|
|
||||||
pop edi esi
|
|
||||||
ret
|
|
||||||
|
|
||||||
; reset bus, clear all errors
|
|
||||||
ResetGMBus:
|
|
||||||
; look into the PRM
|
|
||||||
mov dword [esi+4], 80000000h
|
|
||||||
mov dword [esi+4], 0
|
|
||||||
mov ecx, 0x10000
|
|
||||||
@@:
|
|
||||||
test byte [esi+8+1], 2
|
|
||||||
loopnz @b
|
|
||||||
ret
|
|
||||||
end if
|
|
||||||
|
|
||||||
; set resolution [width]*[height]
|
|
||||||
SetMode:
|
|
||||||
; 1. Program the registers of videocard.
|
|
||||||
; look into the PRM
|
|
||||||
cli
|
|
||||||
; or byte [esi+7000Ah], 0Ch ; PIPEACONF: disable Display+Cursor Planes
|
|
||||||
; or byte [esi+7100Ah], 0Ch ; PIPEBCONF: disable Display+Cursor Planes
|
|
||||||
xor eax, eax
|
|
||||||
xor edx, edx
|
|
||||||
cmp [deviceType], i965_start
|
|
||||||
jb @f
|
|
||||||
mov dl, 9Ch - 84h
|
|
||||||
@@:
|
|
||||||
; or byte [esi+71403h], 80h ; VGACNTRL: VGA Display Disable
|
|
||||||
and byte [esi+70080h], not 27h ; CURACNTR: disable cursor A
|
|
||||||
mov dword [esi+70084h], eax ; CURABASE: force write to CURA* regs
|
|
||||||
and byte [esi+700C0h], not 27h ; CURBCNTR: disable cursor B
|
|
||||||
mov dword [esi+700C4h], eax ; CURBBASE: force write to CURB* regs
|
|
||||||
and byte [esi+70183h], not 80h ; DSPACNTR: disable Primary A Plane
|
|
||||||
mov dword [esi+edx+70184h], eax ; DSPALINOFF/DSPASURF: force write to DSPA* regs
|
|
||||||
and byte [esi+71183h], not 80h ; DSPBCNTR: disable Primary B Plane
|
|
||||||
mov dword [esi+edx+71184h], eax ; DSPBLINOFF/DSPBSURF: force write to DSPB* regs
|
|
||||||
if 1
|
|
||||||
cmp [deviceType], ironlake_start
|
|
||||||
jae .disable_pipes
|
|
||||||
mov edx, 10000h
|
|
||||||
or byte [esi+70024h], 2 ; PIPEASTAT: clear VBLANK status
|
|
||||||
or byte [esi+71024h], 2 ; PIPEBSTAT: clear VBLANK status
|
|
||||||
.wait_vblank_preironlake1:
|
|
||||||
mov ecx, 1000h
|
|
||||||
loop $
|
|
||||||
test byte [esi+7000Bh], 80h ; PIPEACONF: pipe A active?
|
|
||||||
jz @f
|
|
||||||
test byte [esi+70024h], 2 ; PIPEASTAT: got VBLANK?
|
|
||||||
jz .wait_vblank_preironlake2
|
|
||||||
@@:
|
|
||||||
test byte [esi+7100Bh], 80h ; PIPEBCONF: pipe B active?
|
|
||||||
jz .disable_pipes
|
|
||||||
test byte [esi+71024h], 2 ; PIPEBSTAT: got VBLANK?
|
|
||||||
jnz .disable_pipes
|
|
||||||
.wait_vblank_preironlake2:
|
|
||||||
dec edx
|
|
||||||
jnz .wait_vblank_preironlake1
|
|
||||||
jmp .not_disabled
|
|
||||||
.disable_pipes:
|
|
||||||
end if
|
|
||||||
and byte [esi+7000Bh], not 80h ; PIPEACONF: disable pipe
|
|
||||||
and byte [esi+7100Bh], not 80h ; PIPEBCONF: disable pipe
|
|
||||||
cmp [deviceType], gen4_start
|
|
||||||
jb .wait_watching_scanline
|
|
||||||
; g45 and later: use special flag from PIPE*CONF
|
|
||||||
mov edx, 10000h
|
|
||||||
@@:
|
|
||||||
mov ecx, 1000h
|
|
||||||
loop $
|
|
||||||
test byte [esi+7000Bh], 40h ; PIPEACONF: wait until pipe disabled
|
|
||||||
jz @f
|
|
||||||
dec edx
|
|
||||||
jnz @b
|
|
||||||
jmp .not_disabled
|
|
||||||
@@:
|
|
||||||
test byte [esi+7100Bh], 40h ; PIPEBCONF: wait until pipe disabled
|
|
||||||
jz .disabled
|
|
||||||
mov ecx, 1000h
|
|
||||||
loop $
|
|
||||||
dec edx
|
|
||||||
jnz @b
|
|
||||||
jmp .not_disabled
|
|
||||||
; pineview and before: wait while scanline still changes
|
|
||||||
.wait_watching_scanline:
|
|
||||||
mov edx, 1000h
|
|
||||||
.dis1:
|
|
||||||
push dword [esi+71000h]
|
|
||||||
push dword [esi+70000h]
|
|
||||||
mov ecx, 10000h
|
|
||||||
loop $
|
|
||||||
pop eax
|
|
||||||
xor eax, [esi+70000h]
|
|
||||||
and eax, 1FFFh
|
|
||||||
pop eax
|
|
||||||
jnz .notdis1
|
|
||||||
xor eax, [esi+71000h]
|
|
||||||
and eax, 1FFFh
|
|
||||||
jz .disabled
|
|
||||||
.notdis1:
|
|
||||||
dec edx
|
|
||||||
jnz .dis1
|
|
||||||
.not_disabled:
|
|
||||||
sti
|
|
||||||
jmp .return
|
|
||||||
.disabled:
|
|
||||||
lea eax, [esi+61183h]
|
|
||||||
cmp [deviceType], ironlake_start
|
|
||||||
jb @f
|
|
||||||
add eax, 0xE0000 - 0x60000
|
|
||||||
@@:
|
|
||||||
lea edx, [esi+60000h]
|
|
||||||
test byte [eax], 40h
|
|
||||||
jz @f
|
|
||||||
add edx, 1000h
|
|
||||||
@@:
|
|
||||||
mov eax, [width]
|
|
||||||
dec eax
|
|
||||||
shl eax, 16
|
|
||||||
mov ax, word [height]
|
|
||||||
dec eax
|
|
||||||
mov dword [edx+1Ch], eax ; PIPEASRC: set source image size
|
|
||||||
ror eax, 16
|
|
||||||
mov dword [edx+10190h], eax ; for old cards
|
|
||||||
mov ecx, [width]
|
|
||||||
add ecx, 15
|
|
||||||
and ecx, not 15
|
|
||||||
shl ecx, 2
|
|
||||||
mov dword [edx+10188h], ecx ; DSPASTRIDE: set scanline length
|
|
||||||
mov dword [edx+10184h], 0 ; DSPALINOFF: force write to DSPA* registers
|
|
||||||
and byte [esi+61233h], not 80h ; PFIT_CONTROL: disable panel fitting
|
|
||||||
or byte [edx+1000Bh], 80h ; PIPEACONF: enable pipe
|
|
||||||
; and byte [edx+1000Ah], not 0Ch ; PIPEACONF: enable Display+Cursor Planes
|
|
||||||
or byte [edx+10183h], 80h ; DSPACNTR: enable Display Plane A
|
|
||||||
sti
|
|
||||||
; 2. Notify the kernel that resolution has changed.
|
|
||||||
call GetDisplay
|
|
||||||
mov edx, [width]
|
|
||||||
mov dword [eax+8], edx
|
|
||||||
mov edx, [height]
|
|
||||||
mov dword [eax+0Ch], edx
|
|
||||||
mov [eax+18h], ecx
|
|
||||||
mov eax, [width]
|
|
||||||
dec eax
|
|
||||||
dec edx
|
|
||||||
call SetScreen
|
|
||||||
.return:
|
|
||||||
ret
|
|
||||||
|
|
||||||
align 4
|
|
||||||
hellomsg db 'Intel videocard detected, PciId=8086:'
|
|
||||||
pciid_text db '0000'
|
|
||||||
db ', which is ', 0
|
|
||||||
knownmsg db 'known',13,10,0
|
|
||||||
unknownmsg db 'unknown',13,10,0
|
|
||||||
|
|
||||||
if DEBUG
|
|
||||||
edidmsg db 'EDID successfully read:',13,10
|
|
||||||
edid_text rb 8*(16*3+1)
|
|
||||||
db 0
|
|
||||||
end if
|
|
||||||
|
|
||||||
version:
|
|
||||||
dd 0x50005
|
|
||||||
|
|
||||||
width dd predefined_width
|
|
||||||
height dd predefined_height
|
|
||||||
|
|
||||||
pciids:
|
|
||||||
dw 0x3577 ; i830m
|
|
||||||
dw 0x2562 ; 845g
|
|
||||||
dw 0x3582 ; i855gm
|
|
||||||
i865_start = ($ - pciids) / 2
|
|
||||||
dw 0x2572 ; i865g
|
|
||||||
i9xx_start = ($ - pciids) / 2
|
|
||||||
dw 0x2582 ; i915g
|
|
||||||
dw 0x258a ; e7221g (i915g)
|
|
||||||
dw 0x2592 ; i915gm
|
|
||||||
dw 0x2772 ; i945g
|
|
||||||
dw 0x27a2 ; i945gm
|
|
||||||
dw 0x27ae ; i945gme
|
|
||||||
i965_start = ($ - pciids) / 2
|
|
||||||
dw 0x2972 ; i946qz (i965g)
|
|
||||||
dw 0x2982 ; g35g (i965g)
|
|
||||||
dw 0x2992 ; i965q (i965g)
|
|
||||||
dw 0x29a2 ; i965g
|
|
||||||
dw 0x29b2 ; q35g
|
|
||||||
dw 0x29c2 ; g33g
|
|
||||||
dw 0x29d2 ; q33g
|
|
||||||
dw 0xa001 ; pineview
|
|
||||||
dw 0xa011 ; pineview
|
|
||||||
gen4_start = ($ - pciids) / 2
|
|
||||||
dw 0x2a02 ; i965gm
|
|
||||||
dw 0x2a12 ; i965gm
|
|
||||||
dw 0x2a42 ; gm45
|
|
||||||
dw 0x2e02 ; g45
|
|
||||||
dw 0x2e12 ; g45
|
|
||||||
dw 0x2e22 ; g45
|
|
||||||
dw 0x2e32 ; g45
|
|
||||||
dw 0x2e42 ; g45
|
|
||||||
dw 0x2e92 ; g45
|
|
||||||
ironlake_start = ($ - pciids) / 2
|
|
||||||
dw 0x0042 ; ironlake_d
|
|
||||||
dw 0x0046 ; ironlake_m
|
|
||||||
dw 0x0102 ; sandybridge_d
|
|
||||||
dw 0x0112 ; sandybridge_d
|
|
||||||
dw 0x0122 ; sandybridge_d
|
|
||||||
dw 0x0106 ; sandybridge_m
|
|
||||||
dw 0x0116 ; sandybridge_m
|
|
||||||
dw 0x0126 ; sandybridge_m
|
|
||||||
dw 0x010A ; sandybridge_d
|
|
||||||
pciids_num = ($ - pciids) / 2
|
|
||||||
|
|
||||||
align 4
|
|
||||||
deviceType dd ?
|
|
||||||
edid rb 0x80
|
|
@ -1058,7 +1058,7 @@ endg
|
|||||||
|
|
||||||
; Load PS/2 mouse driver
|
; Load PS/2 mouse driver
|
||||||
|
|
||||||
stdcall load_driver, szPS2MDriver
|
stdcall load_pe_driver, szPS2MDriver, 0
|
||||||
|
|
||||||
mov esi, boot_setmouse
|
mov esi, boot_setmouse
|
||||||
call boot_log
|
call boot_log
|
||||||
|
Loading…
Reference in New Issue
Block a user