diff --git a/Shared_Includes b/Shared_Includes index 2b1e30c..60b5ff6 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a +Subproject commit 60b5ff6a74b57614b1f54fbe5611585cd46582ab diff --git a/src/bios/BIOS.asm b/src/bios/BIOS.asm index d5897a3..fdecb58 100644 --- a/src/bios/BIOS.asm +++ b/src/bios/BIOS.asm @@ -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 diff --git a/src/bios/exp/EXTENDED/IDE/ATAPI_DRV.ASM b/src/bios/exp/EXTENDED/IDE/ATAPI_DRV.ASM index e05ed30..b2455ed 100644 --- a/src/bios/exp/EXTENDED/IDE/ATAPI_DRV.ASM +++ b/src/bios/exp/EXTENDED/IDE/ATAPI_DRV.ASM @@ -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 ; ; идёт инициализация diff --git a/src/bios/exp/EXTENDED/IDE/ATA_DRV.ASM b/src/bios/exp/EXTENDED/IDE/ATA_DRV.ASM index e299d8e..9fa6952 100644 --- a/src/bios/exp/EXTENDED/IDE/ATA_DRV.ASM +++ b/src/bios/exp/EXTENDED/IDE/ATA_DRV.ASM @@ -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) diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index 32cad95..bb8773f 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -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: diff --git a/src/bios/exp/FUNC_SCREEN 2.ASM b/src/bios/exp/FUNC_SCREEN 2.ASM index ebd7fac..e7cc857 100644 --- a/src/bios/exp/FUNC_SCREEN 2.ASM +++ b/src/bios/exp/FUNC_SCREEN 2.ASM @@ -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 ; diff --git a/src/bios/exp/FUNC_SCREEN.ASM b/src/bios/exp/FUNC_SCREEN.ASM index ebd7fac..2fd6ec1 100644 --- a/src/bios/exp/FUNC_SCREEN.ASM +++ b/src/bios/exp/FUNC_SCREEN.ASM @@ -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 ; diff --git a/src/bios/rom/SETUP/AUTOIDE.asm b/src/bios/rom/SETUP/AUTOIDE.asm index 2353680..a3cdbd3 100644 --- a/src/bios/rom/SETUP/AUTOIDE.asm +++ b/src/bios/rom/SETUP/AUTOIDE.asm @@ -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 /////////////////////////////////////////////////////////////////////[^] diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index a08628e..28b92a0 100755 Binary files a/src/bios/shared/RECOVERY.IMG and b/src/bios/shared/RECOVERY.IMG differ diff --git a/src/bios/shared/VERSION.inc b/src/bios/shared/VERSION.inc index fad742a..2b7d567 100644 --- a/src/bios/shared/VERSION.inc +++ b/src/bios/shared/VERSION.inc @@ -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' ;--------------------------------------- \ No newline at end of file