summaryrefslogtreecommitdiff
path: root/v4.0/src/BIOS/BIOSTRUC.INC
blob: f131e111f1860db6a2fb91eafd3c91d605c53fd4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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