From 34bb44539e713abd78b6bae2e9f7b0315b6059c1 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Thu, 29 Feb 2024 02:32:02 +1000 Subject: [PATCH] fix "open drive error" --- DSS/DOS_Proc.asm | 27 +++++++++++++++++++++++++-- DSS/FS/FAT/FAT.asm | 4 ++-- DSS/build.txt | 2 +- DSS/defines.inc | 2 +- Shared_Includes | 2 +- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/DSS/DOS_Proc.asm b/DSS/DOS_Proc.asm index a3185ca..f0620a1 100644 --- a/DSS/DOS_Proc.asm +++ b/DSS/DOS_Proc.asm @@ -195,7 +195,6 @@ TMPNAME: DZ ' ' ; 12 ;----------------------------------------------------------------------; ; IN: A - drive number -; OPENDSK:;!TEST DRV.Open обход R10 LD C,A LD A,(FatBuffer.DRIVE) @@ -216,10 +215,26 @@ OPENDSK:;!TEST DRV.Open RST ToDSS.DRV POP BC JP C,.error + ;[ ] 29/02/2024 fix "open drive error" + IF TEST_FEATURE + LD A,(FatBuffer.DRIVE) + LD D,A + PUSH DE + ENDIF + ; LD A,B LD (FatBuffer.DRIVE),A + ; CALL RD_BPB - RET C + ;[ ] 29/02/2024 fix "open drive error" + IF TEST_FEATURE + POP DE + LD A,D + JR C,.error_disk + ELSE + RET C + ENDIF + ; .exit: LD A,(LDRIVE) AND A RET @@ -228,6 +243,14 @@ OPENDSK:;!TEST DRV.Open RET Z LD A,DSS_Error.sys.NOT_READY RET + ;[ ] 29/02/2024 fix "open drive error" + IF TEST_FEATURE +.error_disk: + CALL OPENDSK.force + LD A,DSS_Error.sys.NOT_READY + SCF + RET + ENDIF ;----------------------------------------------------------------------; diff --git a/DSS/FS/FAT/FAT.asm b/DSS/FS/FAT/FAT.asm index a473c61..26dd741 100644 --- a/DSS/FS/FAT/FAT.asm +++ b/DSS/FS/FAT/FAT.asm @@ -498,18 +498,18 @@ TESTDSK: ;????? OR A RET Z ENDIF +; рег. D - номер диска RD_BPB: LD C,SLOT3 IN B,(C) PUSH BC IN A,(SLOT0) OUT (SLOT3),A + LD A,(FatBuffer.DRIVE) ;вызов RD_BPB может в дальнейшем понадобиться, пускай она сама достаёт переменную DRIVE ;R08 ;LD DE,BOOT+#C000 LD DE,CORE_BUFFERS.SECBUF+#C000 ;R08 - LD A,(FatBuffer.DRIVE) ;вызов RD_BPB может в дальнейшем понадобиться, пускай она сама достаёт переменную DRIVE - LD C,Dss.DRV.GetBPB RST ToDSS.DRV POP BC diff --git a/DSS/build.txt b/DSS/build.txt index 36699e7..bb18bf4 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -933 \ No newline at end of file +939 \ No newline at end of file diff --git a/DSS/defines.inc b/DSS/defines.inc index b74c3a8..f3d2ca2 100644 --- a/DSS/defines.inc +++ b/DSS/defines.inc @@ -1,5 +1,5 @@ ; - DEFINE TEST_FEATURE 0 + DEFINE TEST_FEATURE 1 ; ; diff --git a/Shared_Includes b/Shared_Includes index 5a5dcf0..cbc1fd5 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 5a5dcf0bd035d2adaaa27d28bb8ed1bd86260d59 +Subproject commit cbc1fd596a5a56298407c13a529a574e968235c7