RECOVERY:
- обновлены системные файлы - подправлены опечатки. Спасибо @Andrew_Gorshkov BIOS: Исправлен баг в READ_SECTOR, могло уходить в бесконечный цикл
This commit is contained in:
parent
44dfb7f39b
commit
9c14f06b9c
@ -232,7 +232,7 @@ FDD_5x_LONG_READ:
|
|||||||
PUSH DE
|
PUSH DE
|
||||||
PUSH BC
|
PUSH BC
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL RD_SEC
|
CALL READ_SECTOR
|
||||||
JP C,ERRDOS
|
JP C,ERRDOS
|
||||||
LD D,YH
|
LD D,YH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
@ -431,15 +431,13 @@ FDD_5x_LONG_WRITE:
|
|||||||
;-------------------------------
|
;-------------------------------
|
||||||
;READ SECTOR
|
;READ SECTOR
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
RD_SEC: LD D,5 ;RETRY COUNT
|
READ_SECTOR: LD D,5 ;RETRY COUNT
|
||||||
.RRETRY:
|
.RRETRY: ;DI
|
||||||
;DI
|
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD A,E
|
LD A,E
|
||||||
INC A
|
INC A
|
||||||
OUT (FDC_93.Sector),A
|
OUT (FDC_93.Sector),A
|
||||||
.FDREAD:
|
.FDREAD: IN A,(SLOT3)
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,XH
|
LD A,XH
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -447,8 +445,7 @@ RD_SEC: LD D,5 ;RETRY COUNT
|
|||||||
LD C,FDC_93.Data
|
LD C,FDC_93.Data
|
||||||
LD A,#80 ;COMMAND READ
|
LD A,#80 ;COMMAND READ
|
||||||
OUT (FDC_93.Command),A
|
OUT (FDC_93.Command),A
|
||||||
.FDR001:
|
.FDR001: IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
|
||||||
IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
|
|
||||||
AND #C0
|
AND #C0
|
||||||
JR NZ,.FDR004
|
JR NZ,.FDR004
|
||||||
INC DE
|
INC DE
|
||||||
@ -458,41 +455,44 @@ RD_SEC: LD D,5 ;RETRY COUNT
|
|||||||
DJNZ .FDR001
|
DJNZ .FDR001
|
||||||
SCF
|
SCF
|
||||||
JR .FDR005
|
JR .FDR005
|
||||||
.FDR004:
|
;
|
||||||
INI ;READ BYTE
|
.FDR004: INI ;READ BYTE
|
||||||
.FDR002:
|
.FDR002: IN A,(FDC_93.DrvCTRL)
|
||||||
IN A,(FDC_93.DrvCTRL)
|
|
||||||
AND #C0
|
AND #C0
|
||||||
JR Z,.FDR002
|
JR Z,.FDR002
|
||||||
JP P,.FDR004
|
JP P,.FDR004
|
||||||
.FDR005:
|
.FDR005: EX AF,AF'
|
||||||
EX AF,AF'
|
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;-------------------------------
|
;
|
||||||
POP DE
|
POP DE
|
||||||
;EI
|
;EI
|
||||||
IN A,(FDC_93.Command)
|
IN A,(FDC_93.Command)
|
||||||
LD C,A
|
LD C,A
|
||||||
;R01
|
;R01 ; JP C,ERRRD ;READ ERROR
|
||||||
JP C,.ERR_XRD
|
; !TEST 29/06/2024
|
||||||
; JP C,ERRRD ;READ ERROR
|
;JP C,.ERR_XRD
|
||||||
|
JP NC,.NO_ERR_XRD
|
||||||
|
DEC D
|
||||||
|
JR Z,.RSTOP
|
||||||
|
JR .RRETRY
|
||||||
|
;
|
||||||
|
.NO_ERR_XRD: ;
|
||||||
AND #7F
|
AND #7F
|
||||||
RET Z
|
RET Z
|
||||||
BIT 2,C
|
BIT 2,C
|
||||||
JR NZ,.ERDATA
|
JR NZ,.ERDATA
|
||||||
LD A,5 ;SEEK ERROR
|
LD A,5 ;SEEK ERROR
|
||||||
DEC D
|
DEC D
|
||||||
JP Z,.RSTOP
|
JR Z,.RSTOP
|
||||||
PUSH DE
|
PUSH DE
|
||||||
CALL RESWG ; RESET_WG
|
CALL RESWG ; RESET_WG
|
||||||
LD A,XL
|
LD A,XL
|
||||||
CALL SEEK ; !!!!! ¯®á¬®âà¥âì
|
CALL SEEK ; !!!!! ¯®á¬®âà¥âì
|
||||||
.ERR_XRD:
|
.ERR_XRD: POP DE
|
||||||
POP DE
|
|
||||||
JR .RRETRY
|
JR .RRETRY
|
||||||
.ERDATA:
|
;
|
||||||
DEC D ; POTERIA DANNYH
|
.ERDATA: DEC D ; POTERIA DANNYH
|
||||||
JR NZ,.RRETRY
|
JR NZ,.RRETRY
|
||||||
.ERRRD: LD A,9 ;READ ERROR
|
.ERRRD: LD A,9 ;READ ERROR
|
||||||
.RSTOP: EX AF,AF'
|
.RSTOP: EX AF,AF'
|
||||||
@ -504,7 +504,7 @@ RD_SEC: LD D,5 ;RETRY COUNT
|
|||||||
RET Z
|
RET Z
|
||||||
LD A,6 ;SECTOR NOT FOUND /NO DISK/
|
LD A,6 ;SECTOR NOT FOUND /NO DISK/
|
||||||
RET
|
RET
|
||||||
;
|
; ; ;
|
||||||
|
|
||||||
;
|
;
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user