From 9c14f06b9cfc521e727e883b473d048c3cbda5ae Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sat, 29 Jun 2024 02:43:04 +1000 Subject: [PATCH] =?UTF-8?q?RECOVERY:=20-=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20-=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82=D0=BA=D0=B8.=20?= =?UTF-8?q?=D0=A1=D0=BF=D0=B0=D1=81=D0=B8=D0=B1=D0=BE=20@Andrew=5FGorshkov?= =?UTF-8?q?=20BIOS:=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B1=D0=B0=D0=B3=20=D0=B2=20READ=5FSECTOR,=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B3=D0=BB=D0=BE=20=D1=83=D1=85=D0=BE=D0=B4=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B2=20=D0=B1=D0=B5=D1=81=D0=BA=D0=BE=D0=BD=D0=B5?= =?UTF-8?q?=D1=87=D0=BD=D1=8B=D0=B9=20=D1=86=D0=B8=D0=BA=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bios/exp/EXTENDED/FDD_DRIVER_2.asm | 150 ++++++++++++------------- src/bios/shared/RECOVERY.IMG | Bin 98304 -> 98304 bytes 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm b/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm index 4367bd5..d5d72d5 100644 --- a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm +++ b/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm @@ -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 +; ; ; ; ;------------------------------- diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index 7420ffab263c55ce4aef1329d862138c2585522c..acdef4c1ec381a2d079106e0e12ba89d4b403ff8 100755 GIT binary patch delta 3119 zcmZ8j30PBC7QQz^7T-c1xZr~3CDsO{h>-y%N|Ys_Qous+(@IBeZNYsP94ebtuuP}g zo2gY3L4!Kev0t>b6K!YsOer%w;ww_C3~Ig(R_OOl`j}FNI;|pe9<;PGUvlsL&$;KE zceZzuiV9^#h4SJgR&{WKf29J&kO+3l2-c%78V->!aYW-Y$sf(Y44JUj zg2PDO+BMcN^`K?Ac|JnC8tY$0;_s39I65!5O~(<>u=+R*d;BoRvY1gw7sXN~m#q}< zBJuTc+_U3ka8$)blLu>;fYrt8CeC2k64M1)iJPv)A)sPWm$*y$i%RFrk&7uH_i=<+}LDMgeuQmnc!z=Cy$?7IN;jD1^bTz>6FDdqW0$Zi0SCcj7<$ z*;UPI}-TrR3;P2_VsU94#U|@s60TM8Z^H0 zkG7B3_iLoQe{1d>_7~o{=ig?riQ4f}CT8mYP#j$*WsU<7{^sK(# zK+2>T|2nmlsbVxzriQt3SS{tvBx##|iA|(z)5`L1XmKuN=4(1Z7^&UY^d#gf)lHfL zl?y}-($HxZPW1Ee6Wf};O8%AQa#x2OOTp|7s@6Nr9JBM>x zpr6DJ+FNqt-o6`$1%T%T(M(+zFH?dAd#*xL{?Lo!ViLNgk7z0N8(Sw&wmG?cXFS63 zlcbA$vRQxMX?bi?)sdL3aXeio7FCD$vGY6mf~u0|PTP(N=w@a%RRkbN`N~C#&j)%7T8fVS8?l zbXoT2A3Ks{k(oQ~^6~!8x$@DwbNe(^UAm!o^mDn@P^^6NOX=Y8&==~3uAln`Og#~#MS~JQ*AL|mypZ84EQ?3k;?yCd=^tcLS zUR2G7b(Y2|EC}=k@pcVQlYu?+^i*A0hM@&2>4j1qX-!lmWmt4V-r{RyE;A%;C!^EK42Jr0rhS}<9m)Q80A1ZA;yD9|Krgnb1 z>sWu(b0_@#ZgS-8#3yY|+&3(GE2Gu}>lLTSR+%@Rh$=eK74^~yan)NKg~a+=zLs1& z`{a1LEZgj@ZXTz1t*N-}L4kF-pJI(pdVne){-|OUx^{_Jpn`V{`~3GwLhcmyZ+ z3i;QCN!Z?~eCICCdT^30=!9h5bh=HqoTfSgQ!JSsrd#%zN>9Q#`^;(j&q;n%3W>)_ zqKSXq&OvmLsh>y36DMaUbKT*otYh?=2k_oVSV{-?u?)N|`?$CB!Q;tGd-1i(W51n;w1 OhOT#dntp*(mi-qf`rqdO delta 3164 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