RECOVERY:

- обновлены системные файлы
- подправлены опечатки. Спасибо @Andrew_Gorshkov
BIOS:
Исправлен баг в READ_SECTOR, могло уходить в бесконечный цикл
This commit is contained in:
Tolik 2024-06-29 02:43:04 +10:00
parent 44dfb7f39b
commit 9c14f06b9c
2 changed files with 75 additions and 75 deletions

View File

@ -232,7 +232,7 @@ FDD_5x_LONG_READ:
PUSH DE
PUSH BC
PUSH HL
CALL RD_SEC
CALL READ_SECTOR
JP C,ERRDOS
LD D,YH
LD E,YL
@ -431,80 +431,80 @@ FDD_5x_LONG_WRITE:
;-------------------------------
;READ SECTOR
;-------------------------------
RD_SEC: LD D,5 ;RETRY COUNT
.RRETRY:
;DI
PUSH DE
LD A,E
INC A
OUT (FDC_93.Sector),A
.FDREAD:
IN A,(SLOT3)
EX AF,AF'
LD A,XH
OUT (SLOT3),A
LD B,4
LD C,FDC_93.Data
LD A,#80 ;COMMAND READ
OUT (FDC_93.Command),A
.FDR001:
IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
AND #C0
JR NZ,.FDR004
INC DE
LD A,E
OR D
JR NZ,.FDR001
DJNZ .FDR001
SCF
JR .FDR005
.FDR004:
INI ;READ BYTE
.FDR002:
IN A,(FDC_93.DrvCTRL)
AND #C0
JR Z,.FDR002
JP P,.FDR004
.FDR005:
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
;-------------------------------
POP DE
;EI
IN A,(FDC_93.Command)
LD C,A
;R01
JP C,.ERR_XRD
; JP C,ERRRD ;READ ERROR
AND #7F
RET Z
BIT 2,C
JR NZ,.ERDATA
LD A,5 ;SEEK ERROR
DEC D
JP Z,.RSTOP
PUSH DE
CALL RESWG ; RESET_WG
LD A,XL
CALL SEEK ; !!!!! ¯®á¬®âà¥âì
.ERR_XRD:
POP DE
JR .RRETRY
.ERDATA:
DEC D ; POTERIA DANNYH
JR NZ,.RRETRY
.ERRRD: LD A,9 ;READ ERROR
.RSTOP: EX AF,AF'
LD A,#D0
OUT (FDC_93.Command),A ;STOP OPERATION
EX AF,AF'
BIT 0,C
SCF
RET Z
LD A,6 ;SECTOR NOT FOUND /NO DISK/
RET
;
READ_SECTOR: LD D,5 ;RETRY COUNT
.RRETRY: ;DI
PUSH DE
LD A,E
INC A
OUT (FDC_93.Sector),A
.FDREAD: IN A,(SLOT3)
EX AF,AF'
LD A,XH
OUT (SLOT3),A
LD B,4
LD C,FDC_93.Data
LD A,#80 ;COMMAND READ
OUT (FDC_93.Command),A
.FDR001: IN A,(FDC_93.DrvCTRL) ;WAIT INTRQ or DRQ
AND #C0
JR NZ,.FDR004
INC DE
LD A,E
OR D
JR NZ,.FDR001
DJNZ .FDR001
SCF
JR .FDR005
;
.FDR004: INI ;READ BYTE
.FDR002: IN A,(FDC_93.DrvCTRL)
AND #C0
JR Z,.FDR002
JP P,.FDR004
.FDR005: EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
;
POP DE
;EI
IN A,(FDC_93.Command)
LD C,A
;R01 ; JP C,ERRRD ;READ ERROR
; !TEST 29/06/2024
;JP C,.ERR_XRD
JP NC,.NO_ERR_XRD
DEC D
JR Z,.RSTOP
JR .RRETRY
;
.NO_ERR_XRD: ;
AND #7F
RET Z
BIT 2,C
JR NZ,.ERDATA
LD A,5 ;SEEK ERROR
DEC D
JR Z,.RSTOP
PUSH DE
CALL RESWG ; RESET_WG
LD A,XL
CALL SEEK ; !!!!! ¯®á¬®âà¥âì
.ERR_XRD: POP DE
JR .RRETRY
;
.ERDATA: DEC D ; POTERIA DANNYH
JR NZ,.RRETRY
.ERRRD: LD A,9 ;READ ERROR
.RSTOP: EX AF,AF'
LD A,#D0
OUT (FDC_93.Command),A ;STOP OPERATION
EX AF,AF'
BIT 0,C
SCF
RET Z
LD A,6 ;SECTOR NOT FOUND /NO DISK/
RET
; ; ;
;
;-------------------------------

Binary file not shown.