102 lines
2.4 KiB
PHP
102 lines
2.4 KiB
PHP
|
; rom bios call packet structures
|
||
|
|
||
|
;*******************************
|
||
|
;system service call ( int 15h )
|
||
|
;*******************************
|
||
|
;function ah = 0c0h, return system configuration
|
||
|
;for pc and pcjr on return:
|
||
|
; (ah) = 80h
|
||
|
; (cy) = 1
|
||
|
;for pcxt, pc portable and pcat on return:
|
||
|
; (ah) = 86h
|
||
|
; (cy) = 1
|
||
|
;for all others:
|
||
|
; (ah) = 0
|
||
|
; (cy) = 0
|
||
|
; (es:bx) = pointer to system descriptor vector in ros
|
||
|
; system descriptor :
|
||
|
; dw xxxx length of descriptor in bytes,
|
||
|
; minimum length = 8
|
||
|
; db xx model byte
|
||
|
; 0ffh = pc
|
||
|
; 0feh = pc/xt, portable
|
||
|
; 0fdh = pc/jr
|
||
|
; 0fch = pc/at, 6mhz pc/at,
|
||
|
; 6mhz pc/at running coprocessor(?),
|
||
|
; ps/2 model 50, 50 z
|
||
|
; 0fah = ps/2 model 25, 30
|
||
|
; 0f9h = pc convertible
|
||
|
; 0f8h = ps/2 model 80
|
||
|
; 0f7h = nova
|
||
|
; 0e0 thru 0efh = reserved
|
||
|
;
|
||
|
; db xx secondary model byte
|
||
|
; 000h = pc1
|
||
|
; 000h = pc/xt, portable
|
||
|
; 000h = pc/jr
|
||
|
; 000h = pc/at
|
||
|
; 001h = 6mhz pc/at
|
||
|
; 003h = 6mhz pc/at running coprocessor(?)
|
||
|
; 004h = ps/2 model 50, 50z
|
||
|
; 001h = ps/2 model 25
|
||
|
; 000h = pc convertible
|
||
|
; 000h = ps/2 model 80
|
||
|
; 000h = nova
|
||
|
;
|
||
|
; db xx bios revision level
|
||
|
; 00 for first release, subsequent release
|
||
|
; of code with same model byte and
|
||
|
; secondary model byte require revison level
|
||
|
; to increase by one.
|
||
|
;
|
||
|
; db xx feature information byte 1
|
||
|
; x0000000 = 1, bios use dma channel 3
|
||
|
; = 0, dma channel 3 not used
|
||
|
;
|
||
|
; 0x000000 = 1, 2nd interrupt chip present
|
||
|
; = 0, 2nd interrupt chip not present
|
||
|
;
|
||
|
; 00x00000 = 1, real time clock present
|
||
|
; = 0, real time clock not present
|
||
|
;
|
||
|
; 000x0000 = 1, keyboard escape sequence(int15h)
|
||
|
; called in keyboard interrupt
|
||
|
; (int 09h).
|
||
|
; = 0, keyboard escape sequence not
|
||
|
; called.
|
||
|
; 0000xxxx reserved
|
||
|
;
|
||
|
; db xx feature information byte 2 - reserved
|
||
|
;
|
||
|
; db xx feature information byte 2 - reserved
|
||
|
;
|
||
|
; db xx feature information byte 2 - reserved
|
||
|
;
|
||
|
; db xx feature information byte 2 - reserved
|
||
|
;
|
||
|
|
||
|
bios_system_descriptor struc
|
||
|
bios_sd_leng dw ?
|
||
|
bios_sd_modelbyte db ?
|
||
|
bios_sd_scnd_modelbyte db ?
|
||
|
db ?
|
||
|
bios_sd_featurebyte1 db ?
|
||
|
db 4 dup (?)
|
||
|
bios_system_descriptor ends
|
||
|
|
||
|
;featurebyte1 bit map equates
|
||
|
dmachannel3 equ 10000000b
|
||
|
scndintcontroller equ 01000000b
|
||
|
realtimeclock equ 00100000b
|
||
|
keyescapeseq equ 00010000b
|
||
|
;
|
||
|
;model byte
|
||
|
mdl_pc1 equ 0ffh
|
||
|
mdl_xt equ 0feh
|
||
|
mdl_jr equ 0fdh
|
||
|
mdl_at equ 0fch
|
||
|
mdl_convert equ 0f9h
|
||
|
|
||
|
mdl_ps2_30 equ 0fah
|
||
|
mdl_ps2_80 equ 0f8h
|