From fb6c8a2cafa4f4d80cfc1a80cee6158834aafe65 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 15 Oct 2023 20:26:15 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=BC=D0=B5=D0=B6=D1=83?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BD=D0=BE=D0=B5=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DSS/DOS5.ASM | 145 ++++++++++++++++++++++-------------------------- DSS/EXECUTE.ASM | 22 ++------ DSS/build.txt | 2 +- 3 files changed, 72 insertions(+), 97 deletions(-) diff --git a/DSS/DOS5.ASM b/DSS/DOS5.ASM index 1cd16ee..9d9f180 100644 --- a/DSS/DOS5.ASM +++ b/DSS/DOS5.ASM @@ -29,19 +29,16 @@ ; B = 1 SET ATTRIB ; OUTPUT: A - ATTRIB //////////////////////////////////////////////////////////////////////// -ATTRIB: - _mSavePath 1 - ;!Test Current Dir - LD C,A - PUSH HL - PUSH BC - CALL DIR_PATH_CHECK - POP BC - POP HL - RET C - LD A,C - ; - +ATTRIB: ;!Test Current Dir ;[x] 15/10/23 + LD C,A + PUSH HL + PUSH BC + CALL DIR_PATH_CHECK + POP BC + POP HL + RET C + LD A,C + ; INC B DEC B @@ -101,13 +98,12 @@ ATTRIB: ; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00 ; OUTPUT: A - FM //////////////////////////////////////////////////////////////////////// -CREATE: _mSavePath 0 - ;!Test Current Dir - PUSH HL - CALL DIR_PATH_CHECK - POP HL - RET C - ; +CREATE: ;!Test Current Dir ;[x] 15/10/23 + PUSH HL + CALL DIR_PATH_CHECK + POP HL + RET C + ; CALL .Prepare RET C CALL SEARCH @@ -116,13 +112,12 @@ CREATE: _mSavePath 0 ; ; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00 ; OUTPUT: A - FM -.NEW: _mSavePath 0 - ;!Test Current Dir - PUSH HL - CALL DIR_PATH_CHECK - POP HL - RET C - ; +.NEW: ;!Test Current Dir ;[x] 15/10/23 + PUSH HL + CALL DIR_PATH_CHECK + POP HL + RET C + ; CALL .Prepare RET C CALL SEARCH @@ -184,8 +179,7 @@ CREAT_N EQU CREATE.NEW ; INPUT: HL - "c:\dir\filename.ext",#00 without simbols * ? //////////////////////////////////////////////////////////////////////// DEL_FN: ;!TEST - _mSavePath 1 - ;!Test Current Dir + ;!Test Current Dir ;[x] 15/10/23 PUSH HL CALL DIR_PATH_CHECK POP HL @@ -313,18 +307,16 @@ RENAME: ; выход: A - дескриптор файла, если CF=0 ; код ошибки, если CF=1 //////////////////////////////////////////////////////////////////////// -OPEN_FN: - _mSavePath 1 - ;!Test Current Dir - LD C,A - PUSH HL - PUSH BC - CALL DIR_PATH_CHECK.forceCheck - POP BC - POP HL - RET C - LD A,C - ; +OPEN_FN:;!Test Current Dir ;[x] 15/10/23 + LD C,A + PUSH HL + PUSH BC + CALL DIR_PATH_CHECK.forceCheck + POP BC + POP HL + RET C + LD A,C + ; ;R08 OPEN: LD (F_FIRST.ACCESS),A CALL GETWORD @@ -378,7 +370,6 @@ OPEN: LD (F_FIRST.ACCESS),A ; A - код ошибки, если CF=1 //////////////////////////////////////////////////////////////////////// CLOSE_FN: - _mSavePath 1 ;R08 CLOSE: LD (F_FIRST.ACCESS),A CALL SET_FM @@ -857,17 +848,14 @@ PUT_D_T: ; INPUT: HL - "C:\DIR\DIR\DIR_NAME[\]",0 //////////////////////////////////////////////////////////////////////// CHDIR_FN: - _mSavePath 0 - ;!Test Current Dir - PUSH HL - CALL DIR_PATH_CHECK - POP HL - RET C - ; - CALL CHDIR - JP DIR_PATH_CHANGE.FullCurrent - ; RET -; + ;!Test Current Dir ;[x] 15/10/23 + PUSH HL + CALL DIR_PATH_CHECK + POP HL + RET C + CALL CHDIR + JP DIR_PATH_CHANGE.FullCurrent + ; CHDIR: CALL GETWORD ; тест на допуст. имя и настр. на диск RET C LD HL,TMPNAME @@ -884,17 +872,16 @@ CHDIR: CALL GETWORD ; ; ; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0 //////////////////////////////////////////////////////////////////////// -MKDIR: _mSavePath 1 - ;!Test Current Dir - LD C,A - PUSH HL - PUSH BC - CALL DIR_PATH_CHECK - POP BC - POP HL - RET C - LD A,C - ; +MKDIR: ;!Test Current Dir ;[x] 15/10/23 + LD C,A + PUSH HL + PUSH BC + CALL DIR_PATH_CHECK + POP BC + POP HL + RET C + LD A,C + ; CALL GETWORD ; тест на допуст. имя и настр. на диск RET C @@ -1059,18 +1046,16 @@ MKDIR: _mSavePath 1 ; ; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0 //////////////////////////////////////////////////////////////////////// -RMDIR: _mSavePath 1 - ;!Test Current Dir - LD C,A - PUSH HL - PUSH BC - CALL DIR_PATH_CHECK - POP BC - POP HL - RET C - LD A,C - ; - +RMDIR: ;!Test Current Dir ;[x] 15/10/23 + LD C,A + PUSH HL + PUSH BC + CALL DIR_PATH_CHECK + POP BC + POP HL + RET C + LD A,C + ; CALL GETWORD RET C LD HL,TMPNAME @@ -2112,7 +2097,7 @@ DIR_PATH_CHECK: LD A,(HL) ; .forceCheck: LD HL,CurrentDirectory+1 LD BC,CurrentDirectory.DEPTH-1 - CALL FINDDIR.CHECK_SLASH + ;CALL FINDDIR.CHECK_SLASH CALL .checkDrive JR Z,.checkDir ; @@ -2120,7 +2105,7 @@ DIR_PATH_CHECK: LD A,(HL) LD A,(FatBuffer.DRIVE) ADD 'A' CP (HL) - JP NZ,GETWORD + JP NZ,.gotoPath ; .checkDir: LD HL,CurrentDirectory+1 LD DE,WorkDirectory+1 @@ -2137,13 +2122,15 @@ DIR_PATH_CHECK: LD A,(HL) .end: CP (HL) RET Z .ReDir: LD HL,CurrentPath - JP GETWORD + JP .gotoPath ; .checkDrive: LD HL,CurrentPath LD A,(FatBuffer.DRIVE) ADD 'A' CP (HL) RET +.gotoPath: CALL FINDDIR.CHECK_SLASH + JP GETWORD ;----------------------------------------------------------------------; diff --git a/DSS/EXECUTE.ASM b/DSS/EXECUTE.ASM index f9e4c44..07604fe 100644 --- a/DSS/EXECUTE.ASM +++ b/DSS/EXECUTE.ASM @@ -9,7 +9,7 @@ //;R12 20-07-2023 BAO При завершении приложения через функцию #41 или "аварийно" в возвращаемое приложение передаётся код ошибки и флаг CF=1 ;R11 17-04-2023 BAO OPTIMIZED BUFFERS, FREED UP 768 BYTES FOR CODE ;R10 13-04-2023 BAO FIX BUG WITH PARSING DIRECTORY BUFFER -;R09 14-04-2003 DNS NOW EXEC DON'T FOLLOW TO PROGRAM'S DIR +;R09 -- 14-04-2003 DNS NOW EXEC DON'T FOLLOW TO PROGRAM'S DIR ;R08 05-12-2002 DNS FIX BUG WITH INCREMENT TASK ID AND OPEN *.EXE ERROR ;R07 05-12-2002 DNS FIX FOR EXECUTING IN CURRENT DIR WITHOUT PATH ;R06 02-12-2002 DNS FIX BUG WITH NULL-TERMINATED STRING @@ -821,8 +821,7 @@ DECTASK: LD HL,TASK ;R08 ; +00 1 db ? ; Длина ком-строки ; +01 127 ds ? ; Параметры ком-строки, заканчивается нулем ;///////////////////////////////////////////////////////////////////// -EXEC: _mSavePath 1 - INC B ;R03 +EXEC: INC B ;R03 DEC B ;R03 JR Z,.VAR_1 ;R03 DEC B ;R03 @@ -911,16 +910,7 @@ EXEC02: LD (EXE_FM),A LD A,DSS_Error.sys.UNKNOWN_EXE SCF JP NZ,ERREXE -; LD HL,TASK -; INC (HL) -; -; !TODO: BACK TO CURRDIR -; -;R09 - _mRestorStackAfterRestorePath - ;_mRestorePath -;R09 -; + LD DE,(CORE_BUFFERS.EXEBUFF.LOADER) LD A,E OR D @@ -1137,14 +1127,12 @@ _TST_PROC_2: LD DE,RETFAR ; адрес п/п "неожиданное завершение процесса" PUSH DE PUSH HL - - _mRestorePath - + ;!Test Current Dir ;[x] 15/10/23 PUSH IX LD HL,CurrentDirectory CALL CHDIR_FN POP IX - + ; RET ; ;----------------------------------------------------------------------- diff --git a/DSS/build.txt b/DSS/build.txt index 755ab3c..5f5c389 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -495 \ No newline at end of file +496 \ No newline at end of file