summaryrefslogtreecommitdiffstats
path: root/private/mvdm/dos/v86/doskrnl/bios/biostruc.inc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/mvdm/dos/v86/doskrnl/bios/biostruc.inc101
1 files changed, 101 insertions, 0 deletions
diff --git a/private/mvdm/dos/v86/doskrnl/bios/biostruc.inc b/private/mvdm/dos/v86/doskrnl/bios/biostruc.inc
new file mode 100644
index 000000000..5afb16ac9
--- /dev/null
+++ b/private/mvdm/dos/v86/doskrnl/bios/biostruc.inc
@@ -0,0 +1,101 @@
+; 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