From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/BIOS/BIOSTRUC.INC | 103 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 v4.0/src/BIOS/BIOSTRUC.INC (limited to 'v4.0/src/BIOS/BIOSTRUC.INC') diff --git a/v4.0/src/BIOS/BIOSTRUC.INC b/v4.0/src/BIOS/BIOSTRUC.INC new file mode 100644 index 0000000..f131e11 --- /dev/null +++ b/v4.0/src/BIOS/BIOSTRUC.INC @@ -0,0 +1,103 @@ +%OUT BIOSTRUC.INC... +; SCCSID = @(#)BIOSTRUC.INC 1.0 86/09/30 +; 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 -- cgit v1.2.3