Ещё попытка починить первый заход на ZIP

This commit is contained in:
Tolik 2025-03-02 23:22:44 +10:00
parent 90bb74daac
commit 8e8d43a9d5
10 changed files with 63 additions and 59 deletions

@ -1 +1 @@
Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a
Subproject commit 60b5ff6a74b57614b1f54fbe5611585cd46582ab

View File

@ -23,13 +23,15 @@
LUA PASS1
local date, month, year = Get_date_RU(sj.get_define("__DATE__"))
BuildDate = "'" .. date .. "." .. month .. "." .. year .. "'"
BuildYear = "'" .. year .. "'"
sj.insert_define("BUILD_DATE", BuildDate)
sj.insert_define("BUILD_YEAR", BuildYear)
ENDLUA
LUA ALLPASS
sj.insert_define("BUILD_DATE", BuildDate)
sj.insert_define("BUILD_YEAR", BuildYear)
ENDLUA
IF PACKED_MAIN
;------------[MAIN prebuild]------------;
LUA PASS1

View File

@ -413,13 +413,14 @@ ATAPI_CHECK_MEDIA_CHANGED:
RRA
LD A,BIOS.Error.ATAPI.UnitAttention
RET
;
.noWait: EXX
CALL ATAPI_GET_ERROR_REG
EXX
CP BIOS.Error.ATAPI.NoSence
JP Z,ATAPI_MEDIA_ERROR
; !FIXIT ᪮॥ ¢á¥£® ¦¥«¥§® âã⠢뤠á⠢ᥣ¤  Error.ATAPI.NoSence
;----------------------------------------------------------------------;
;[ ] media changed
;----------------------------------------------------------------------;
ATAPI_CHECK_ERROR:
CALL ATAPI_GET_ERROR_REG
;CP BIOS.Error.ATAPI.NoSence
;JP Z,ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.NotReady
JP Z,ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.UnitAttention
@ -491,7 +492,7 @@ EXEC_PACKET_COMMAND:
JR NC,.READY
;
.reset: LD BC,IDE.Write.Command
LD A,IDE.ATAPI.Reset
LD A,IDE.CMD.ATAPI.Reset
OUT (C),A
;
LD B,#80
@ -528,7 +529,7 @@ EXEC_PACKET_COMMAND:
LD BC,IDE.Write.ByteCountHigh
OUT (C),D
LD BC,IDE.Write.Command
LD A,IDE.ATAPI.Packet
LD A,IDE.CMD.ATAPI.Packet
OUT (C),A
LD C,H ; ¯à¨§­ ª ⮣®, çâ® ®è¨¡ª  ᬥ­ë ­®á¨â¥«ï ¤®«¦­  ®¡à ¡ â뢠âìáï ¢ EXEC_PACKET_COMMAND
CALL ATAPI_WAITPRT
@ -592,7 +593,7 @@ EXEC_PACKET_COMMAND:
EXX
RET Z ; ¢ë室, ¥á«¨ ®è¨¡ª  ®¡à ¡ â뢠¥âáï ­¥ ¢ EXEC_PACKET_COMMAND
;
JP ATAPI_CHECK_MEDIA_CHANGED.noWait
JP ATAPI_CHECK_ERROR
;====== IF DATA REQUEST ===============================================;
.data_request: IN A,(SLOT3)
EX AF,AF' ;>-----------> \
@ -743,13 +744,16 @@ ATAPI_READ_CAPACITY_DATA:
CP BIOS.Error.ATAPI.NotReady
SCF
RET NZ
;
PUSH BC
CALL ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.NotReady
SCF
POP BC
RET NZ
;
CPI
RET PO
RET PO ;áçñâ稪
;
LD HL,0
.pause: DEC HL
@ -779,21 +783,24 @@ ATAPI_MEDIA_ERROR:
LD DE,SYS_PAGE.SHARED_BUFFER_256b
CALL ATAPI_REQUEST_SENSE.FN
;
LD A,(SYS_PAGE.SHARED_BUFFER_256b + 2) ; SenceKey. 06 - UNIT ATTENTION
CP 2 ; SenceKey. 02 - NOT READY
LD A,(SYS_PAGE.SHARED_BUFFER_256b + 2) ; SenceKey
CP 2 ; NOT READY
JR Z,.Not_Ready
CP 6
CP 6 ; UNIT ATTENTION
JR NZ,.unkn_error
;
LD A,(SYS_PAGE.SHARED_BUFFER_256b + 12) ; AdditionalSenceKey. #28
CP #28
JR NZ,.unkn_error
LD A,(SYS_PAGE.SHARED_BUFFER_256b + 12) ; AdditionalSenceKey
CP #28 ; NOT READY TO READY TRANSITION
JR Z,.MedCh3
CP #29 ; POWER ON, RESET OR BUS DEVICE RESET OCCURRED
JR Z,.MedChanged
JR .unkn_error
;
LD A,(SYS_PAGE.SHARED_BUFFER_256b + 13) ; AdditionalSenseCodeQualifier. 0
.MedCh3: LD A,(SYS_PAGE.SHARED_BUFFER_256b + 13) ; AdditionalSenseCodeQualifier. 0
AND A
JR NZ,.unkn_error
;
LD A,(IY + IDE.HDD_INIT_TABLE.MediaParameters)
.MedChanged: LD A,(IY + IDE.HDD_INIT_TABLE.MediaParameters)
OR %0000'0011
LD (IY + IDE.HDD_INIT_TABLE.MediaParameters),A
;
@ -826,11 +833,15 @@ ATAPI_MEDIA_ERROR:
;
.Not_Ready: LD A,(SYS_PAGE.SHARED_BUFFER_256b + 12) ; AdditionalSenceKey
LD C,BIOS.Error.ATAPI.MediumError ; ­¥â ­®á¨â¥«ï
;!TODO
; 06,00 - NO REFERENCE POSITION FOUND (media may be upside down)
; 3A - MEDIUM NOT PRESENT
;
CP 4
JR NZ,.exit
; [ ] !(test for ZIP)
LD A,(SYS_PAGE.SHARED_BUFFER_256b + 13) ; AdditionalSenseCodeQualifier
CP 1
CP 1 ; LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY
JR NZ,.exit
;
; ¨¤ñâ ¨­¨æ¨ «¨§ æ¨ï

View File

@ -353,10 +353,10 @@ RW_ATA_SECTORs: LD C,IDE.Device.HDD
LD XL,0
LD XH,A
LD BC,IDE.Write.Command
LD A,IDE.ATA.WriteSectorsWithRetry
LD A,IDE.CMD.ATA.WriteSectorsWithRetry
JR C,.set_command ; CF = r/w
;
LD A,IDE.ATA.ReadSectorsWithRetry
LD A,IDE.CMD.ATA.ReadSectorsWithRetry
.set_command: OUT (C),A
EX AF,AF'
EXX
@ -455,7 +455,7 @@ WRITE_ATA_SECTORs:
LD XL,0
LD XH,A
LD BC,IDE.Write.Command
LD A,IDE.ATA.WriteSectorsWithRetry
LD A,IDE.CMD.ATA.WriteSectorsWithRetry
OUT (C),A
; SAVE HL?!
EXX
@ -547,7 +547,7 @@ ATA_5x_VERIFY: PUSH IY
CALL PRESET
POP HL
LD BC,IDE.Write.Command
LD A,IDE.ATA.ReadVerifySectorsWithRetry
LD A,IDE.CMD.ATA.ReadVerifySectorsWithRetry
OUT (C),A
LD BC,IDE.Read.Status
IN A,(C)

View File

@ -228,7 +228,7 @@ FN_HDD_PREPARE: ;
.SetCommand:
LD BC,IDE.Write.Command
LD A,IDE.ATA.ReadSectorsWithRetry
LD A,IDE.CMD.ATA.ReadSectorsWithRetry
; OUT (C),A
AND A
RET
@ -276,7 +276,7 @@ FN_HDD_READ:
SAFE_PORTY
;
LD BC,IDE.Write.Command
LD A,IDE.ATA.ReadSectorsWithRetry
LD A,IDE.CMD.ATA.ReadSectorsWithRetry
OUT (C),A
.L2: WAIT_HDD
;BIT IDE.CtrlBit.DataRequest,A
@ -348,7 +348,7 @@ FN_HDD_WRITE:
EX AF,AF'
LD BC,IDE.Write.Command
LD A,IDE.ATA.WriteSectorsWithRetry
LD A,IDE.CMD.ATA.WriteSectorsWithRetry
OUT (C),A
HD_WR_L2:
@ -387,7 +387,7 @@ FN_HDD_RECAL:
LD A,IDE.Drive.Master
LD BC,IDE.Write.DeviceHead
OUT (C),A
LD A,IDE.ATA.ExecuteDeviceDiagnostic
LD A,IDE.CMD.ATA.ExecuteDeviceDiagnostic
CALL HD_CMD_EXE
;AND A
CP IDE.CtrlByte.Error
@ -624,7 +624,7 @@ FN_HDD_INIT:
;
.L3: WAIT_HDD
LD BC,IDE.Write.Command
LD A,IDE.ATA.IdentifyDevice ;!FIXIT ¯¥à¥¤¥« âì
LD A,IDE.CMD.ATA.IdentifyDevice ;!FIXIT ¯¥à¥¤¥« âì
OUT (C),A
WAIT_HDD
AND IDE.CtrlByte.DataRequest
@ -690,7 +690,7 @@ FN_HDD_INIT:
OUT (C),A
LD A,D
OUT (SLOT3),A
LD A,IDE.ATA.InitializeDeviceParameters ; SET HDD PARAMETERS
LD A,IDE.CMD.ATA.InitializeDeviceParameters ; SET HDD PARAMETERS
;CALL HD_CMD_EXE
;RET
HD_CMD_EXE:

View File

@ -456,7 +456,7 @@ PIC_FN8:
;**************************************************
; ‚뢮¤ á¯à ©â  ­  íªà ­
; HL - £®à¨§®â «ì, dE - ¢¥à⨪ «ì
; HL - £®à¨§®â «ì, DE - ¢¥à⨪ «ì
; A',HL' -  ¤à¥á ¤ ­­ëå
PIC_FN9:
@ -577,7 +577,7 @@ GENERATE_PAL1: XOR A
JR Z,.PP_NO2
LD L,A
.PP_NO2: BIT 2,E ; GREEN
JR Z,.PP_NO3
JR Z,.PP_NO6 ;JR Z,.PP_NO3
LD B,A
.PP_NO3: JR .PP_NO6
;

View File

@ -577,7 +577,7 @@ GENERATE_PAL1: XOR A
JR Z,.PP_NO2
LD L,A
.PP_NO2: BIT 2,E ; GREEN
JR Z,.PP_NO3
JR Z,.PP_NO6
LD B,A
.PP_NO3: JR .PP_NO6
;

View File

@ -128,7 +128,7 @@ WAIT:
; SS_SECT EQU #3E
MACRO PAUSE_DJNZ num
IF num<255
IF num<256
LD B,num
.loop: DJNZ .loop
ELSE
@ -304,7 +304,7 @@ AUTODETECTING: CALL DETECTORS.CheckChanel
;
.IDE_ABSENT: LD A,IDE.Device.NONE
LD (IDEDEV),A
LD A,IDE.ATA.Nop
LD A,IDE.CMD.ATA.Nop
LD BC,IDE.Write.Command
OUT (C),A
DEC B
@ -415,7 +415,7 @@ IDESPEC: IN A,(SLOT3)
LD BC,IDE.Write.Counter
ENDIF
OUT (C),A
LD A,IDE.ATA.InitializeDeviceParameters
LD A,IDE.CMD.ATA.InitializeDeviceParameters
CALL IDE_CMD
LD C,(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack) ; Sector per track
LD B,0
@ -456,19 +456,11 @@ IDESPEC: IN A,(SLOT3)
CP BIOS.Error.ATAPI.UnitAttention
JR Z,IDESPEC.END
;
;CP BIOS.Error.ATAPI.NotReady
;SCF
;JR NZ,.set_sector ; «î¡ ï ­¥¯®­ïâ­ ï ®è¨¡ª  - ­¥â ­®á¨â¥«ï
HALT
DJNZ .get_error_loop
;
; LD HL,ATAPI_CMD_PACKET.REQUEST_SENSE
; LD DE,IDENTIFY_DEVICE_BUFFER.ReservedWord224 ; ¯à®áâ® ­ã¦¥­ ¡ë« ¡ãä¥à
; CALL EXEC_PACKET_COMMAND.start
; [ ] sector size ATAPI
.s_size: ;LD HL,ATAPI_CMD_PACKET.READ_CAPACITY_DATA
LD DE,IDENTIFY_DEVICE_BUFFER.ReservedWord224 ; ¯à®áâ® ­ã¦¥­ ¡ë« ¡ãä¥à
;CALL EXEC_PACKET_COMMAND.start_sys_page
.s_size: LD DE,IDENTIFY_DEVICE_BUFFER.ReservedWord224 ; ¯à®áâ® ­ã¦¥­ ¡ë« ¡ãä¥à
CALL ATAPI_READ_CAPACITY_DATA
;
.set_sector: LD HL,#FFFF
@ -485,7 +477,6 @@ IDESPEC: IN A,(SLOT3)
.No_Media: LD (IY+IDE.HDD_INIT_TABLE.SectorSize),H
LD (IY+IDE.HDD_INIT_TABLE.SectorSize + 1),L
RES 1,(IY + IDE.HDD_INIT_TABLE.MediaParameters) ; [ ] removable media
;LD (IY+IDE.HDD_INIT_TABLE.MediaParameters),%0000'0001 ; !HARDCODE ATAPI ¯®ª  ¢á¥£¤  removable
;
JR IDESPEC.END
/////////////////////////////////////////////////////////////////////[^]
@ -681,7 +672,7 @@ RESET_Slave_ATAPI:
OUT (C),A
PAUSE_DJNZ 16
LD BC,IDE.Write.Command
LD A,IDE.ATAPI.Reset
LD A,IDE.CMD.ATAPI.Reset
OUT (C),A
PAUSE_DJNZ 16
LD A,IDE.Drive.Master
@ -750,7 +741,7 @@ DETECTORS:
;-------;
; CHECK BY EXECUTING NOP COMMAND AND WAIT.
; Exit: CF - No device
.NOP_Check: LD E,IDE.ATA.Nop
.NOP_Check: LD E,IDE.CMD.ATA.Nop
LD BC,IDE.Write.Command
OUT (C),E
@ -786,7 +777,7 @@ DETECTORS:
; Exit: CF - No device
; NC and ZF - ATA
; NC and NZ - ATAPI
.IdentDevCheck: LD E,IDE.ATA.IdentifyDevice
.IdentDevCheck: LD E,IDE.CMD.ATA.IdentifyDevice
LD BC,IDE.Write.Command
OUT (C),E
;
@ -820,7 +811,7 @@ DETECTORS:
; ATAPI or Absent
; Exit: CF - No device
; NC - ATAPI
.IdentPDevChk: LD E,IDE.ATAPI.IdentifyPacketDevice
.IdentPDevChk: LD E,IDE.CMD.ATAPI.IdentifyPacketDevice
LD BC,IDE.Write.Command
OUT (C),E
;
@ -871,7 +862,7 @@ SetUP_CHANELS:
.CMD: CALL SELECT_IDE
PAUSE_DJNZ 32
LD BC,IDE.Write.Command
LD H,IDE.ATA.Nop
LD H,IDE.CMD.ATA.Nop
OUT (C),H
PAUSE_DJNZ 32
; Disable INTRQ
@ -889,9 +880,9 @@ SetUP_CHANELS:
/////////////////////////////////////////////////////////////////////[v]
; DisableWriteCache:
; LD BC,IDE.Write.Features
; LD A,IDE.ATA.SetFeatures.DisableWriteCache
; LD A,IDE.CMD.ATA.SetFeatures.DisableWriteCache
; OUT (C),A
; LD A,IDE.ATA.SetFeatures
; LD A,IDE.CMD.ATA.SetFeatures
; JP IDE_CMD
/////////////////////////////////////////////////////////////////////[^]
@ -902,7 +893,7 @@ SetUP_CHANELS:
; LD BC,IDE.Write.Counter
; XOR A
; OUT (C),A
; LD A,IDE.ATA.Idle
; LD A,IDE.CMD.ATA.Idle
; JP IDE_CMD
/////////////////////////////////////////////////////////////////////[^]
@ -910,9 +901,9 @@ SetUP_CHANELS:
/////////////////////////////////////////////////////////////////////[v]
; DISABLE_8bit:
; LD BC,IDE.Write.Features
; LD A,IDE.ATA.SetFeatures.Disable8bit
; LD A,IDE.CMD.ATA.SetFeatures.Disable8bit
; OUT (C),A
; LD A,IDE.ATA.SetFeatures
; LD A,IDE.CMD.ATA.SetFeatures
; JP IDE_CMD
/////////////////////////////////////////////////////////////////////[^]

Binary file not shown.

View File

@ -41,6 +41,6 @@ bitstream_ver_hex EQU CNF_ID.VER*256+CNF_ID.MOD
;---------------------------------------
;=======================================
DEFINE SPTeam_year '2024'
DEFINE SPTeam_year BUILD_YEAR ;'2024'
DEFINE SetupVer '1.60'
;---------------------------------------