www.pudn.com > hpbios.rar > ADISK.INC


;	[]===========================================================[] 
; 
;	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 
;---------------------------------------------------------------------------- 
;R07	10/20/99 RCH	Remove Floppy INT 13H code for legacy free platform 
;R06	05/31/96 KVN	Fixed return exact parameter (function 08) for CDROM 
;			(INT13X.ASM) 
 
;[]-----------------------------------[] 
; 
;   Award Software 386/486 BIOS 
;      Tables for ADISK.ASM 
;   Initial Revision 3-May-1990 
; 
;[]-----------------------------------[] 
ifndef	LEGACY_FREE_SUPPORT					;R07 
 
		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 
endif;	LEGACY_FREE_SUPPORT					;R07 
 
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 
 
;=========================================================================== 
;	 Additions/changes for 2.88/1 mbs (perp) drive 
;	    support. 
;=========================================================================== 
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>	;(is 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>	;(is 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 
FD_1024_PARMS	LABEL	BYTE 
FDPARMS	<0AFH,002H,025H,003H,008H,035H,0FFH,074H,0F6H,00FH,008H,04CH,000H> ;Added floppy 3 mode auto switch  
									   ;& Fixed can't format 1024 bytes/sec 
									   ;use 1024fmt.exe utility 
ifndef	LEGACY_FREE_SUPPORT					;R07 
 
;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.	 
;	 6th row = high capacity media in HIGH/EXTENDED capacity 3 1/2" drive.	 
;	 7th row = extended capacity media in EXTENDED capacity 3 1/2" drive.	 
 
 
		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 
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			;Additions/changes for 2.88/1 mbs (perp) drive 
						;support. 
 
		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 
		DB	090H			; 250 kbs, single step, determined 
						;Fix up OASYS application read error  
						;when 720K media (special formatted)  
						;in 1.44M drive. 
 
		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 
;=========================================================================== 
;	 Additions/changes for 2.88/1 mbs (perp) drive 
;	    support. 
;=========================================================================== 
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 
 
		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) 
endif;	LEGACY_FREE_SUPPORT					;R07