;	[]===========================================================[]
;
;	NOTICE: THIS PROGRAM BELONGS TO AWARD SOFTWARE INTERNATIONAL(R)
;	        INC. IT IS CONSIDERED A TRADE SECRET AND IS NOT TO BE 	
;	        DIVULGED OR USED BY PARTIES WHO HAVE NOT RECEIVED	
;	        WRITTEN AUTHORIZATION FROM THE OWNER.
;
; 	[]===========================================================[]
;

;----------------------------------------------------------------------------
;Rev	Date	 Name	Description
;----------------------------------------------------------------------------
;R06	05/31/96 KVN	Fixed return exact parameter (function 08) for CDROM
;			(INT13X.ASM)
;R05	03/07/96 KVN	Fixed can't format 1024 bytes/sector use 1024fmt.exe
;			utility
;R04	09/04/95 KVN	Added floppy 3 mode auto switch
;R03	02/19/94 KVN	Fix up OASYS application read error when 720K media
;			(special formatted) in 1.44M drive.
;R02	08/21/91 DRJ	NF: Additions/changes for 2.88/1 mbs (perp) drive
;			 support.
;R01	OCT-15-90 SMS	adding copyright stmt.
;R00	06/01/90 TIM    Initial release for 4.0

;[]-----------------------------------[]
;
;   Award Software 386/486 BIOS
;      Tables for ADISK.ASM
;   Initial Revision 3-May-1990
;
;[]-----------------------------------[]

		EVEN				; TABLE
FUNC_15_TO_18	LABEL	WORD
		DW	OFFSET DGROUP:DISK_IO_READ_DASD
		DW	OFFSET DGROUP:DISK_IO_CHANGE_LINE	; read disk change line
		DW	OFFSET DGROUP:DISK_IO_WRITE_DASD	; old set media
		DW	OFFSET DGROUP:DISK_IO_SET_MEDIA	; new set media

FDPARMS		STRUC
		FD_SPECIFY_1	DB	0DFH	;00: 1st Specify byte
		FD_SPECIFY_2	DB	002H	;01: 2nd Specify byte
		FD_MOTOR_OFF	DB	025H	;02: motor wait before turn off.
		FD_SEC_SIZE	DB	002H	;03: 128 * 2^N bytes per sector
		FD_EOT		DB	009H	;04: End of track
		FD_NORMAL_GAP	DB	02AH	;05: GAP length
		FD_DTL		DB	0FFH	;06: data length, if 03: = 0
		FD_FORMAT_GAP	DB	050H	;07: gap length for format
		FD_FILL		DB	0F6H	;08: fill byte for format
		FD_HEAD_WAIT	DB	00FH	;09: milliseconds for head settle time
		FD_MOTOR_ON	DB	008H	;10: 1/8 of seconds for motor spin up.
		FD_LAST_CYL	DB	027H	;11: # of last cylinder
		FD_XFER_RATE	DB	080H	;12: Xfer rate, as sent to port.
FDPARMS		ENDS
		public	HD5_PARMS		;R06
		public	HD_PARMS		;R06
		public	ED_PARMS		;R06
;R02 - Begin
FD_BIOS_PARMS	LABEL	BYTE
	; 00   01   02   03   04   05   06   07   08   09   10   11   12
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,027H,080H>
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,027H,040H>
HD5_PARMS LABEL	BYTE
FDPARMS	<0DFH,002H,025H,002H,00FH,01BH,0FFH,054H,0F6H,00FH,008H,04FH,000H>
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,04FH,080H>

IFDEF	ENABLE_288_SUPPORT
DD_PARMS LABEL	BYTE
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,04FH,080H>	;R02 (was 1BH,2AH)
HD_PARMS LABEL	BYTE
FDPARMS	<0AFH,002H,025H,002H,012H,01BH,0FFH,06CH,0F6H,00FH,008H,04FH,000H>
ED_PARMS LABEL	BYTE
FDPARMS	<0AFH,002H,025H,002H,024H,01BH,0FFH,054H,0F6H,00FH,008H,04FH,0C0H>	;R02  (was 6CH)

ELSE	;not ENABLE_288_SUPPORT
DD_PARMS LABEL	BYTE
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,04FH,080H>
HD_PARMS LABEL	BYTE
FDPARMS	<0AFH,002H,025H,002H,012H,01BH,0FFH,06CH,0F6H,00FH,008H,04FH,000H>
ENDIF	;ENABLE_288_SUPPORT
;R02 - End
;R04 start
FD_1024_PARMS	LABEL	BYTE
;R05 FDPARMS	<0DFH,002H,025H,003H,008H,035H,0FFH,054H,0F6H,00FH,008H,04cH,080H>
FDPARMS	<0AFH,002H,025H,003H,008H,035H,0FFH,074H,0F6H,00FH,008H,04CH,000H>	;R05
;R04 end
comment %	;R02
FD_BIOS_PARMS	LABEL	BYTE
	; 00   01   02   03   04   05   06   07   08   09   10   11   12
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,027H,080H>
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,027H,040H>
FDPARMS	<0DFH,002H,025H,002H,00FH,01BH,0FFH,054H,0F6H,00FH,008H,04FH,000H>
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,04FH,080H>
FDPARMS	<0DFH,002H,025H,002H,009H,02AH,0FFH,050H,0F6H,00FH,008H,04FH,080H>
FDPARMS	<0AFH,002H,025H,002H,012H,01BH,0FFH,06CH,0F6H,00FH,008H,04FH,000H>
%		;R02
;Above:  1st row = low capacity media in LOW capacity 5 1/4" drive.
;	 2nd row = low capacity media in HIGH capacity 5 1/4" drive.
;	 3rd row = high capacity media in HIGH capacity 5 1/4" drive.
;	 4th row = low capacity media in LOW capacity 3 1/2" drive.
;	 5th row = low capacity media in HIGH/EXTENDED capacity 3 1/2" drive.	;R02
;	 6th row = high capacity media in HIGH/EXTENDED capacity 3 1/2" drive.	;R02
;	 7th row = extended capacity media in EXTENDED capacity 3 1/2" drive.	;R02


		EVEN				; TABLE
DIX_DMA_TABLE	LABEL	BYTE			; duplicate dmacodes...
		DB	46H			; read operation.
		DB	4AH			; write operation
		DB	42H			; verify operation.

		EVEN				; TABLE
DIGP_DRIVE_TABLE	LABEL	BYTE
	; bit index:  bit 2-1 = xfer rate, bit 0 = 40/80 track flag
		DB	04			; 000b: 500 Kbs, 40 track = table 4-1
		DB	04			; 001b: 500 Kbs, 80 track = table 4-1
		DB	02			; 010b: 300 Kbs, 40 track = table 2-1
		DB	02			; 011b: 300 Kbs, 80 track = table 2-1
		DB	01			; 100b: 250 Kbs, 40 track = table 1
		DB	04			; 101b: 250 Kbs, 80 track = table 4-1
;R02		DB	04			; 110b: illegal, 40 track = table 4-1
;R02		DB	04			; 111b: illegal	80 track = table 4-1
;R02 - Begin
IFDEF	ENABLE_288_SUPPORT
		DB	LOCAL_FD_288		; 110b: 1   Mbs, 40 track = table 5-1
		DB	LOCAL_FD_288		; 111b: 1   Mbs, 80 track = table 5-1
ELSE	;not ENABLE_288_SUPPORT
		DB	04			; 110b: 1   Mbs, 40 track = table 4-1
		DB	04			; 111b: 1   Mbs, 80 track = table 4-1
ENDIF	;ENABLE_288_SUPPORT
;R02 - End

		EVEN				; TABLE
DIWD_LUT	LABEL	BYTE
		DB	000H			; 0: invalid
		DB	000H			; 1: invalid
		DB	070H			; 2: 300 kbs, d-step, determined
		DB	010H			; 3: 500 kbs, determined
		DB	090H			; 4: 250 kbs, determined
;R03		DB	050H			; 5: 300 kbs, single step, determined
		DB	090H			;R03 250 kbs, single step, determined

		EVEN				; TABLE
FUMB_BIT_TABLE	LABEL	BYTE
;		value	index = bit 3 = +300 kbs/-250 kbs
;			   	bit 2 = +double step
;			   	bit 1 = +determined
;			   	bit 0 = +80 track.
;
		DB	00H			; 0000 = 250, undetermined, 40 track.
		DB	07H			; 0001 = 250, undetermined, 80 track.
		DB	03H			; 0010 = 250, determined,   40 track
		DB	07H			; 0011 = 250, determined,   80 track
		DB	00H			; 0100 = 250, undetermined, 40 track
		DB	07H			; 0101 = 250, undetermined, 80 track
		DB	03H			; 0110 = 250, determined,   40 track.
		DB	07H			; 0111 = 250, determined,   80 track.

		DB	07H			; 1000 = 300, -dstep,  undetermined.
		DB	07H			; 1001 = 300, -dstep,  undetermined.
		DB	07H			; 1010 = 300, -dstep,  determined.
		DB	07H			; 1011 = 300, -dstep,  determined.
		DB	01H			; 1100 = 300, +dstep,  undetermined.
		DB	01H			; 1101 = 300, +dstep,  undetermined.
		DB	04H			; 1110 = 300, +dstep,  determined.
		DB	04H			; 1111 = 300, +dstep,  determined.

		EVEN				; TABLE
GAM_TABLE	LABEL	BYTE
		DB	000H			; cmos bad or out of range.
		DB	093H			; cmos = type 1, 250 kbs
		DB	015H			; cmos = type 2, 500 kbs
		DB	097H			; cmos = type 3, 250 kbs
;R02 - Begin
IFDEF	;FORCE_1MB
		DB	0D7H			; cmos = type 4, 1000 kbs
ELSE	;not FORCE_1MB
		DB	017H			; cmos = type 4, 500 kbs
ENDIF	;FORCE_1MB
IFDEF	;ENABLE_288_SUPPORT
		DB	0D7H			; local = type 5, 1000 kbs
ENDIF	;ENABLE_288_SUPPORT
;R02 - End

;R02 - Begin
		EVEN				; TABLE
NUM_DRIVE_TABLES LABEL	BYTE
		DB	1			; CMOS type 0
		DB	1			;  type 1
		DB	2			;  type 2
		DB	1			;  type 3
		DB	2			;  type 4 (1.44)
		DB	3			;  LOCAL type 5 (2.88)
;R02 - End
;R02		DB	017H			; cmos = type 4, 500 kbs
