add boot from ATAPI
This commit is contained in:
parent
1cb8ee9e78
commit
65a2957424
@ -1 +1 @@
|
|||||||
Subproject commit 237dd36651b4af124f12d3f1eaee3688467f8fa3
|
Subproject commit 831b2da8a66ee3bd78a7c73ef3592609e5f02902
|
||||||
@ -3,8 +3,7 @@
|
|||||||
; ‚室: A - ®¬¥à ãáâனá⢠, C - DriveType
|
; ‚室: A - ®¬¥à ãáâனá⢠, C - DriveType
|
||||||
; ‚ë室: A - MediaParameters, C - DriveType
|
; ‚ë室: A - MediaParameters, C - DriveType
|
||||||
; ¥ ¯®àâ¨â L
|
; ¥ ¯®àâ¨â L
|
||||||
SELECT_DRIVE:
|
SELECT_DRIVE: AND #0F
|
||||||
AND #0F
|
|
||||||
LD IY,IDE.INIT_TBL_IDE0
|
LD IY,IDE.INIT_TBL_IDE0
|
||||||
JR Z,.channel
|
JR Z,.channel
|
||||||
DEC A
|
DEC A
|
||||||
@ -17,13 +16,9 @@ SELECT_DRIVE:
|
|||||||
DEC A
|
DEC A
|
||||||
LD IY,IDE.INIT_TBL_IDE3
|
LD IY,IDE.INIT_TBL_IDE3
|
||||||
;
|
;
|
||||||
JR Z,.channel
|
JR NZ,.error
|
||||||
LD A,BIOS.Error.BadNumber
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
;
|
;
|
||||||
.channel:
|
.channel: EXX
|
||||||
EXX
|
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
@ -59,10 +54,9 @@ SELECT_DRIVE:
|
|||||||
EXX
|
EXX
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
; NODRIVE:
|
.error: LD A,BIOS.Error.BadNumber
|
||||||
; LD A,BIOS.Error.BadDrvNumber
|
SCF
|
||||||
; SCF
|
RET
|
||||||
; RET
|
|
||||||
;=======================================================================
|
;=======================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -457,9 +457,9 @@ IDESPEC: IN A,(SLOT3)
|
|||||||
CP BIOS.Error.ATAPI.UnitAttention
|
CP BIOS.Error.ATAPI.UnitAttention
|
||||||
JR Z,IDESPEC.END
|
JR Z,IDESPEC.END
|
||||||
;
|
;
|
||||||
CP BIOS.Error.ATAPI.NotReady
|
;CP BIOS.Error.ATAPI.NotReady
|
||||||
SCF
|
;SCF
|
||||||
JR NZ,.set_sector ; «î¡ ï ¥¯®ïâ ï ®è¨¡ª - ¥â ®á¨â¥«ï
|
;JR NZ,.set_sector ; «î¡ ï ¥¯®ïâ ï ®è¨¡ª - ¥â ®á¨â¥«ï
|
||||||
HALT
|
HALT
|
||||||
DJNZ .get_error_loop
|
DJNZ .get_error_loop
|
||||||
;
|
;
|
||||||
|
|||||||
@ -74,7 +74,8 @@
|
|||||||
;FDD EQU #03
|
;FDD EQU #03
|
||||||
|
|
||||||
;!FIXIT ®à¬ «ì® ¯à®¯¨á âì
|
;!FIXIT ®à¬ «ì® ¯à®¯¨á âì
|
||||||
TEMP EQU #7E00 ; !HARDCODE
|
TEMP EQU #7800 ; !HARDCODE
|
||||||
|
OS_LOAD.SectorSizeAddr EQU TEMP-2
|
||||||
IDENTIFY_DEVICE_BUFFER _ATA_IDENTIFY_DEVICE_DATA = TEMP
|
IDENTIFY_DEVICE_BUFFER _ATA_IDENTIFY_DEVICE_DATA = TEMP
|
||||||
MEMMAP2 EQU TEMP ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256
|
MEMMAP2 EQU TEMP ; ¤®«¦® ¡ëâì ¢ë஢¥® ¯® ALIGN 256
|
||||||
TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM; - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023
|
TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM; - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023
|
||||||
@ -1059,9 +1060,8 @@ PrepareToBOOT: ;CALL INT_ON
|
|||||||
; Error
|
; Error
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
FDSTART:
|
FDSTART: PUSH BC
|
||||||
PUSH BC
|
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,msgStrings.bootFdd
|
LD A,msgStrings.bootFdd
|
||||||
CALL POSTMSG
|
CALL POSTMSG
|
||||||
@ -1070,8 +1070,10 @@ FDSTART:
|
|||||||
POP BC
|
POP BC
|
||||||
RET C
|
RET C
|
||||||
JP OS_LOAD
|
JP OS_LOAD
|
||||||
;!TODO
|
;
|
||||||
CDSTART:
|
CDSTART: LD A,B ; [ ] 15/02/2025 boot from ATAPI
|
||||||
|
OR DRIVE_CODES.SPRINTER.ATAPI
|
||||||
|
LD B,A
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,msgStrings.bootCd
|
LD A,msgStrings.bootCd
|
||||||
CALL POSTMSG
|
CALL POSTMSG
|
||||||
@ -1080,12 +1082,15 @@ CDSTART:
|
|||||||
CALL PRINT_CHANEL
|
CALL PRINT_CHANEL
|
||||||
;
|
;
|
||||||
POP BC
|
POP BC
|
||||||
SET 6,B
|
PUSH BC
|
||||||
SCF
|
CALL OS_LOAD
|
||||||
RET
|
POP BC
|
||||||
|
RET NC
|
||||||
RDSTART:
|
LD HL,2048 ;!HARDCODE sector size
|
||||||
LD A,msgStrings.bootRamDrv
|
LD IX,#0011
|
||||||
|
JR OS_LOAD.CD
|
||||||
|
;
|
||||||
|
RDSTART: LD A,msgStrings.bootRamDrv
|
||||||
CALL POSTMSG
|
CALL POSTMSG
|
||||||
LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - ⨯ ¤à ©¢ RAM-DRV, 0 - ®¬¥à ¤à ©¢
|
LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - ⨯ ¤à ©¢ RAM-DRV, 0 - ®¬¥à ¤à ©¢
|
||||||
.loop: PUSH BC
|
.loop: PUSH BC
|
||||||
@ -1098,8 +1103,7 @@ RDSTART:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
HDSTART:
|
HDSTART: IN A,(SLOT3)
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -1132,21 +1136,23 @@ HDSTART:
|
|||||||
POP AF
|
POP AF
|
||||||
PUSH AF
|
PUSH AF
|
||||||
CALL PRINT_CHANEL
|
CALL PRINT_CHANEL
|
||||||
|
;
|
||||||
POP BC
|
POP BC
|
||||||
POP AF
|
POP AF
|
||||||
CP #FF
|
CP #FF
|
||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
OS_LOAD:
|
;
|
||||||
LD HL,#0000
|
OS_LOAD: LD HL,512 ;!HARDCODE
|
||||||
LD IX,#0001
|
LD IX,#0001
|
||||||
|
.CD: LD (.SectorSizeAddr),HL
|
||||||
|
LD HL,#0000
|
||||||
LD DE,TEMP
|
LD DE,TEMP
|
||||||
LD A,B
|
LD A,B
|
||||||
LD BC,1*256 + BIOS.DRV_READ
|
LD BC,1*256 + BIOS.DRV_READ
|
||||||
PUSH AF
|
PUSH AF
|
||||||
RST ToBIOS_18
|
RST ToBIOS_18
|
||||||
|
;
|
||||||
POP BC
|
POP BC
|
||||||
RET C
|
RET C
|
||||||
LD A,B
|
LD A,B
|
||||||
@ -1165,26 +1171,29 @@ OS_LOAD:
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,msgStrings.bootOk
|
LD A,msgStrings.bootOk
|
||||||
LD E,COLORS.CGA.INK.LGREEN
|
LD E,COLORS.CGA.INK.LGREEN
|
||||||
;CALL POSTMSG
|
|
||||||
CALL POSTMSC
|
CALL POSTMSC
|
||||||
CALL ScreenPOS.CRLF
|
CALL ScreenPOS.CRLF
|
||||||
POP AF
|
POP AF ; 䨧¨ç¥áª¨© ®¬¥à ¤¨áª
|
||||||
POP HL
|
POP HL
|
||||||
; JP MOVE0
|
.MOVE0: DI
|
||||||
MOVE0: DI
|
|
||||||
IM 1
|
IM 1
|
||||||
LD HL,MOVE1
|
LD HL,MOVE1
|
||||||
LD DE,#7C00 ; !HARDCODE
|
LD DE,OS_LOAD.SectorSizeAddr - MOVE1.length ; !HARDCODE
|
||||||
LD BC,MOVE1.length
|
LD BC,MOVE1.length
|
||||||
LDIR
|
LDIR
|
||||||
JP #7C00
|
JP OS_LOAD.SectorSizeAddr - MOVE1.length
|
||||||
MOVE1: LD SP,#7FFF ; !HARDCODE
|
;
|
||||||
|
MOVE1: LD HL,#8000 ; !HARDCODE
|
||||||
|
LD SP,HL
|
||||||
|
EX DE,HL
|
||||||
LD HL,TEMP
|
LD HL,TEMP
|
||||||
LD DE,#8000 ; !HARDCODE
|
LD BC,(OS_LOAD.SectorSizeAddr)
|
||||||
LD BC,#0200 ; !HARDCODE
|
|
||||||
LDIR
|
LDIR
|
||||||
JP #8000+SYSID.length ;#800C ; !HARDCODE
|
JP #8000+SYSID.length ;#800C ; !HARDCODE
|
||||||
|
;
|
||||||
.length EQU $-MOVE1
|
.length EQU $-MOVE1
|
||||||
|
|
||||||
|
|
||||||
SYSID: DZ "Starting..."
|
SYSID: DZ "Starting..."
|
||||||
.length EQU $-SYSID
|
.length EQU $-SYSID
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user