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