Ещё попытка починить первый заход на ZIP
This commit is contained in:
		
							parent
							
								
									90bb74daac
								
							
						
					
					
						commit
						8e8d43a9d5
					
				| @ -1 +1 @@ | ||||
| Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a | ||||
| Subproject commit 60b5ff6a74b57614b1f54fbe5611585cd46582ab | ||||
| @ -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 | ||||
|  | ||||
| @ -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 | ||||
| 		; | ||||
| 		; ¨¤ñâ ¨¨æ¨ «¨§ æ¨ï | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -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: | ||||
|  | ||||
| @ -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 | ||||
| ; | ||||
|  | ||||
| @ -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 | ||||
| ; | ||||
|  | ||||
| @ -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.
										
									
								
							| @ -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' | ||||
| ;--------------------------------------- | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik