mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 09:21:46 +03:00
96 lines
1.8 KiB
NASM
96 lines
1.8 KiB
NASM
|
|
;
|
|
; It's disk drive BIOS extender for functions 5xh.
|
|
;---------------------------------------------------------------
|
|
;Version! Description
|
|
;---------------------------------------------------------------
|
|
; 2.32 ! Removed `DI' Disabled Interupt instruction in HDRIVER6
|
|
; ! function load sectors.
|
|
; ! Fixed bug waiting slave device in AUTOIDE.
|
|
|
|
;
|
|
;INT_ADRESS EQU #C124
|
|
;INT_PAGE EQU #C126
|
|
;INT_ID EQU #C127
|
|
;BIOS EQU #3FD0
|
|
; DS #3FD0,#FF
|
|
|
|
|
|
DRV_VERSION:
|
|
LD HL,0
|
|
LD BC,0
|
|
LD DE,Disk_subsystem_ver_hex
|
|
AND A
|
|
RET
|
|
;
|
|
|
|
;
|
|
DRV_LIST:
|
|
IN A,(SLOT3)
|
|
PUSH AF
|
|
PUSH IY
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT3),A ; !TODO ᤥ« âì áâàãªâãன
|
|
XOR A
|
|
LD (IX+0),#04 ; DB 0 ;LEN ;!HARDCODE
|
|
LD (IX+1),#02 ; DB 0 ;FDD COUNT
|
|
LD (IX+2),A ; DB 0 ;HDD COUNT
|
|
LD (IX+3),A ; DB 0 ;CDROM COUNT
|
|
; ; BLOCK 13,0 ;RESERVED ;!TODO ᤥ« âì RAMDRIVE âãâ?
|
|
LD (IX+4),A ; END FLAG
|
|
DEC A
|
|
|
|
;Calculating FDD devices
|
|
; A=#FF
|
|
; LD HL,SYS_PAGE.FDD_TABLE
|
|
; CALL .CHECK_FDD
|
|
; LD HL,SYS_PAGE.FDD_1_TABLE
|
|
; CALL .CHECK_FDD
|
|
; A=#FF
|
|
;Calculating IDE devices IDE TYPE 1-HDD, 2-CD-ROM
|
|
LD IY,IDE.INIT_TBL_IDE0
|
|
LD DE,IDE.HDD_INIT_TABLE
|
|
LD B,4 ; !HARDCODE ª®«-¢® IDE ãáâனáâ¢
|
|
.CHECK_IDE:
|
|
LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM
|
|
CP #FF
|
|
JR Z,.NEXT_IDE
|
|
CP IDE.Device.HDD
|
|
JR NZ,.NOT_HDD
|
|
INC (IX+2)
|
|
.NOT_HDD:
|
|
CP IDE.Device.ATAPI
|
|
JR NZ,.NEXT_IDE
|
|
INC (IX+3)
|
|
.NEXT_IDE:
|
|
ADD IY,DE
|
|
DJNZ .CHECK_IDE
|
|
;
|
|
.check_exit:
|
|
POP IY
|
|
POP AF
|
|
OUT (SLOT3),A
|
|
XOR A
|
|
RET
|
|
;
|
|
; A=#FF
|
|
; .CHECK_FDD:
|
|
; INC (IX+1)
|
|
; LD B,8
|
|
; .TFD0: CP (HL)
|
|
; INC HL
|
|
; RET NZ
|
|
; DJNZ .TFD0
|
|
; DEC (IX+1)
|
|
; RET
|
|
; ;
|
|
|
|
INCLUDE 'EXTENDED/FDD_DRIVER.asm'
|
|
INCLUDE 'EXTENDED/RAM_DISK_DRIVER.asm'
|
|
INCLUDE 'EXTENDED/IDE/ATA_DRV.asm'
|
|
INCLUDE 'EXTENDED/IDE/ATAPI_DRV.asm'
|
|
INCLUDE 'EXTENDED/SHARED.asm'
|
|
|
|
|
|
;DISPLAY " EXTENDED end addr: ", /A, $
|
|
; |