From 5cce74f2a04a99e657d8cb1f66eb397d97649440 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Wed, 1 Nov 2023 01:30:19 +1000 Subject: [PATCH] some fixes with "Current dir" logic --- DSS/DRV-MAIN.ASM | 2 +- DSS/DSS-MAIN.ASM | 10 +++++----- DSS/INTMOUSE.ASM | 16 ++++++++-------- DSS/KEYINTER.ASM | 2 +- DSS/VIDEO.ASM | 8 ++++---- DSS/build.txt | 2 +- SHELL/SHELL_EXEC.ASM | 41 ++++++++++++++++++++++++++++++++++------- SHELL/build.txt | 2 +- Shared_Includes | 2 +- 9 files changed, 56 insertions(+), 29 deletions(-) diff --git a/DSS/DRV-MAIN.ASM b/DSS/DRV-MAIN.ASM index 5a6c42d..d851905 100644 --- a/DSS/DRV-MAIN.ASM +++ b/DSS/DRV-MAIN.ASM @@ -141,7 +141,7 @@ A0038: ; ; PUSH IY ; ; CALL KEYSCAN ; ; LD C,#80 ; -; RST #30 ; +; RST ToDSS.Mouse ; ; POP IY ; ; POP IX ; ; POP HL ; diff --git a/DSS/DSS-MAIN.ASM b/DSS/DSS-MAIN.ASM index e0a14df..8c67153 100644 --- a/DSS/DSS-MAIN.ASM +++ b/DSS/DSS-MAIN.ASM @@ -153,7 +153,7 @@ INT_: PUSH AF ; PUSH IY ; CALL KEYSCAN ; LD C,#80 ; - RST #30 ; + RST ToDSS.Mouse ; IFN CLASSIC_CURSOR ; CALL cursor_interrupt; вектор обслуж. курсора ;!!!!! VASIL ENDIF ; @@ -286,11 +286,11 @@ F_START: DI RET C ;R10 CALL KINIT CALL PRINT_INIT - LD C,0 ;!HARDCODE - RST #30 ;!HARDCODE + LD C,Dss.Mouse.Init + RST ToDSS.Mouse LD A,(VMODE) - LD C,#81 ;!HARDCODE - RST #30 ;!HARDCODE + LD C,Dss.Mouse.SetVideoMode + RST ToDSS.Mouse ;CALL INITDVC ;R05 ;R05 LD C,Dss.DRV.Init diff --git a/DSS/INTMOUSE.ASM b/DSS/INTMOUSE.ASM index f193a66..896e980 100644 --- a/DSS/INTMOUSE.ASM +++ b/DSS/INTMOUSE.ASM @@ -78,13 +78,13 @@ DMOUSE EQU #1A ; !FIXIT ;--------------------------------------------- ; COMMAND 0Dh (RESERVED) ;--------------------------------------------- -; COMMAND 0Eh (GET SENSETIVE) -; OUTPUT: H - VERTICAL SENSETIVE -; L - HORIZONTAL SENSETIVE +; COMMAND 0Eh (GET SENSITIVE) +; OUTPUT: H - VERTICAL SENSITIVE +; L - HORIZONTAL SENSITIVE ;--------------------------------------------- -; COMMAND 0Fh (SET SENSETIVE) -; INPUT: H - VERTICAL SENSETIVE -; L - HORIZONTAL SENSETIVE +; COMMAND 0Fh (SET SENSITIVE) +; INPUT: H - VERTICAL SENSITIVE +; L - HORIZONTAL SENSITIVE ;--------------------------------------------- ; COMMAND 80h (MOUSE HARDWARE INTERRUPT) ;--------------------------------------------- @@ -358,8 +358,8 @@ MS_MASK XOR A RET -; H - VERTICAL SENSETIVE -; L - HORIZONTAL SENSETIVE +; H - VERTICAL SENSITIVE +; L - HORIZONTAL SENSITIVE MS_SENT LD (SENSEXY),HL diff --git a/DSS/KEYINTER.ASM b/DSS/KEYINTER.ASM index 93883de..392f7e8 100644 --- a/DSS/KEYINTER.ASM +++ b/DSS/KEYINTER.ASM @@ -357,7 +357,7 @@ K_CLEAR LD A,(HOST) CP B JR C,.error LD C,B - JP #10 + JP RST_10 .error: LD A,DSS_Error.sys.INVALID_FUNCTION SCF RET diff --git a/DSS/VIDEO.ASM b/DSS/VIDEO.ASM index 350c84b..d3dd389 100644 --- a/DSS/VIDEO.ASM +++ b/DSS/VIDEO.ASM @@ -416,10 +416,10 @@ SETVMOD:;BIT 7,A JR Z,.NOMODE DEC A LD HL,TAB_40x32 - JP Z,T_40_32 + JR Z,T_40_32 DEC A LD HL,TAB_80x32 - JP Z,T_80_32 + JR Z,T_80_32 .NOMODE: POP IX LD A,DSS_Error.sys.INVALID_VIDEO_MODE SCF @@ -460,8 +460,8 @@ GRAPH_NEXT: AND #01 OUT (SCREEN_SWITCH),A LD A,(VMODE) - LD C,#81 - RST #30 + LD C,Dss.Mouse.SetVideoMode + RST ToDSS.Mouse SAFE_PORTY XOR A RET diff --git a/DSS/build.txt b/DSS/build.txt index 0316458..5da127e 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -503 \ No newline at end of file +507 \ No newline at end of file diff --git a/SHELL/SHELL_EXEC.ASM b/SHELL/SHELL_EXEC.ASM index 6fcd0a2..c6487a3 100644 --- a/SHELL/SHELL_EXEC.ASM +++ b/SHELL/SHELL_EXEC.ASM @@ -151,12 +151,17 @@ RUN_EXT: ex de,hl ; A839D: ld bc,0*256 + Dss.Exec ; загр. и выполнить программу RST ToDSS - ;R10 - CALL Restore_Screen - ;R10 + + ;[x] 01/11/23 ;!TEST + PUSH AF + CALL RESTORE_ALL + POP AF + ; + ;[x] 25/10/23 JP NC,Ret_New_Line ; Ok ; + ld hl,(D8374) cp DSS_Error.sys.FILE_NOT_FOUND jr nz,A83DD @@ -197,10 +202,13 @@ A83B7: ld e,b ; hl=имя файла A83D7: ld bc,0*256 + Dss.Exec ; загрузить программу, выполнить файл RST ToDSS - ;R10 - CALL Restore_Screen - ;R10 + + ;[x] 01/11/23 ;!TEST + PUSH AF + CALL RESTORE_ALL + POP AF ; + ;[x] 25/10/23 JP NC,Ret_New_Line ; Ok ; @@ -215,4 +223,23 @@ Ret_New_Line: XOR A OR E RET Z - jp newline \ No newline at end of file + jp newline + +RESTORE_ALL: + ;[x] 01/11/23 ;!TEST + CALL save_disk_path + ; + LD A,(screen_path) + SUB 'A' + LD C,Dss.ChDisk + RST ToDSS + ; + LD HL,system_path + LD C,Dss.ChDir + RST ToDSS + ; + ;R10 + CALL Restore_Screen + ;R10 + ; + RET \ No newline at end of file diff --git a/SHELL/build.txt b/SHELL/build.txt index 9f72858..bd753cc 100644 --- a/SHELL/build.txt +++ b/SHELL/build.txt @@ -1 +1 @@ -88 \ No newline at end of file +94 \ No newline at end of file diff --git a/Shared_Includes b/Shared_Includes index 3744776..a15861c 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 374477690571809e7318bd4279bc7da120b6c492 +Subproject commit a15861c07cab60eaf09c28226d0c7761b4fd8235