From a99ed14bda46fcaacc775179cdfb6e72769f7ed6 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sat, 12 Aug 2023 05:21:13 +1000 Subject: [PATCH] bug fix --- Console/build.txt | 2 +- DSS/DOS5.ASM | 8 +++-- DSS/INTMOUSE.ASM | 77 +++++++++++++++++++++++++++-------------- DSS/VIDEO.ASM | 4 +-- DSS/build.txt | 2 +- SHELL/Commands/ECHO.ASM | 2 +- SHELL/ERROR.ASM | 12 +++---- SHELL/SHELL.ASM | 7 ++-- SHELL/build.txt | 2 +- Shared_Includes | 2 +- 10 files changed, 74 insertions(+), 44 deletions(-) diff --git a/Console/build.txt b/Console/build.txt index abc4eff..801f180 100644 --- a/Console/build.txt +++ b/Console/build.txt @@ -1 +1 @@ -46 \ No newline at end of file +47 \ No newline at end of file diff --git a/DSS/DOS5.ASM b/DSS/DOS5.ASM index 3fca848..5259962 100644 --- a/DSS/DOS5.ASM +++ b/DSS/DOS5.ASM @@ -81,9 +81,10 @@ CREATE: CALL MASK RET C CALL SEARCH + JR C,CREAT ;NO FILE, CREAT NEW. CALL DELFILE ;FILE EXIST RECREAT - JR CREAT + JP CREAT ; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00 ; OUTPUT: A - FM @@ -99,7 +100,8 @@ CREAT_N: CALL MASK RET C CALL SEARCH - LD A,7 + + LD A,DSS_Error.sys.FILE_EXISTS CCF RET C CREAT LD HL,MASKARE @@ -645,7 +647,7 @@ GETWORD: JR Z,.DRV_NAME LD (DE),A INC DE - CP '!' + CP ' '+1 CCF RET NC DJNZ .loop diff --git a/DSS/INTMOUSE.ASM b/DSS/INTMOUSE.ASM index 648d1f5..f193a66 100644 --- a/DSS/INTMOUSE.ASM +++ b/DSS/INTMOUSE.ASM @@ -103,40 +103,40 @@ DMOUSE EQU #1A ; !FIXIT ; 5 - CURSOR IMAGE VERY BIG INTMOUS BIT 7,C - JP NZ,EMOUSE + JR NZ,EMOUSE INC C DEC C - JP Z,MS_INIT + JR Z,MS_INIT ; 0 DEC C - JP Z,MS_SHOW + JR Z,MS_SHOW ; 1 DEC C - JP Z,MS_HIDD + JP Z,MS_HIDD ; 2 DEC C - JP Z,MS_READ + JP Z,MS_READ ; 3 DEC C - JP Z,MS_GOTO + JP Z,MS_GOTO ; 4 DEC C - JP Z,MS_RESR + JR Z,MS_RESR ; 5 DEC C - JP Z,MS_RESR + JR Z,MS_RESR ; 6 DEC C - JP Z,MS_VERT + JP Z,MS_VERT ; 7 DEC C - JP Z,MS_HORZ + JP Z,MS_HORZ ; 8 DEC C - JP Z,MS_CURS + JP Z,MS_CURS ; 9 DEC C - JP Z,MS_MASK + JP Z,MS_MASK ; 10 DEC C - JP Z,MS_BCUR + JP Z,MS_BCUR ; 11 DEC C - JP Z,MS_RESR + JR Z,MS_RESR ; 12 DEC C - JP Z,MS_RESR + JR Z,MS_RESR ; 13 DEC C - JP Z,MS_GSEN + JP Z,MS_GSEN ; 14 DEC C - JP Z,MS_SENT + JP Z,MS_SENT ; 15 MS_RESR LD A,DSS_Error.mouse.INVALID_COMMAND SCF RET @@ -637,7 +637,7 @@ MS003 POP BC XOR A RET -READ_M IN A,(CMOUSE) +READ_M: IN A,(CMOUSE) RRCA RET NC IN A,(DMOUSE) @@ -645,18 +645,43 @@ READ_M IN A,(CMOUSE) BIT 6,A CCF RET Z -TST_01 IN A,(CMOUSE) + + ;!TEST mouse freeeeezzzz + LD BC,#2000 + ; +TST_01: IN A,(CMOUSE) RRCA - JP NC,TST_01 - IN A,(DMOUSE) + ;!TEST mouse freeeeezzzz + JR C,.NXT + DEC BC + LD A,B + OR C + JR NZ,TST_01 + ;JR NC,TST_01 + RET + ; + +.NXT: IN A,(DMOUSE) LD E,A BIT 6,A CCF RET NZ -TST_02 IN A,(CMOUSE) - RRCA - JR NC,TST_02 - IN A,(DMOUSE) + + ;!TEST mouse freeeeezzzz + LD BC,#2000 + ; +TST_02: IN A,(CMOUSE) + RRCA + ;!TEST mouse freeeeezzzz + JR C,.NXT + DEC BC + LD A,B + OR C + JR NZ,TST_02 + ;JR NC,TST_02 + RET + ; +.NXT: IN A,(DMOUSE) LD D,A BIT 6,A CCF @@ -711,7 +736,7 @@ MCORECT LD HL,(PIX_X) LD HL,(MAX_X) AND A SBC HL,DE - JP NC,YCOO + JR NC,YCOO LD HL,(MAX_X) LD (PIX_X),HL JP YCOO diff --git a/DSS/VIDEO.ASM b/DSS/VIDEO.ASM index b228405..6bce28c 100644 --- a/DSS/VIDEO.ASM +++ b/DSS/VIDEO.ASM @@ -428,9 +428,9 @@ GRAPH: CALL SAVETXT AND #7F JR Z,G320_16 ; !TODO ? - пока отрабатывает как ошибка DEC A - JP Z,G320_56 + JR Z,G320_56 DEC A - JP Z,G640_16 + JR Z,G640_16 ; DEC A ; JP Z,G640_56 ; !TODO ? - пока отрабатывает как ошибка G320_16: LD A,DSS_Error.sys.INVALID_VIDEO_MODE diff --git a/DSS/build.txt b/DSS/build.txt index e3e1916..cc4f7f3 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -187 \ No newline at end of file +218 \ No newline at end of file diff --git a/SHELL/Commands/ECHO.ASM b/SHELL/Commands/ECHO.ASM index d86c5b1..574fac5 100644 --- a/SHELL/Commands/ECHO.ASM +++ b/SHELL/Commands/ECHO.ASM @@ -35,7 +35,7 @@ A862E: ld a,(echo_mode) ; фла ld de,7 ; индекс "on" jr nz,$+5 ; false ld de,8 ; индекс "off" - call A8BC6 ; найти строку по индексу + call FMESAGE ; найти строку по индексу ld de,PRM1 ; куда (аргумент %1) call ncopy_string ; скопир. строку (с нулем), макс.15 симв. ld de,6 ; индекс "Echo is %1" diff --git a/SHELL/ERROR.ASM b/SHELL/ERROR.ASM index 902f4fd..2796e94 100644 --- a/SHELL/ERROR.ASM +++ b/SHELL/ERROR.ASM @@ -8,7 +8,7 @@ print_err_message: inc de ld hl,ERR0 ; массив строк ld bc,ERR0.Size ; размер массива - call A8BCD ; найти строку + call LCPIR ; найти строку call PRINTZ ; формат. вывод строки call newline jp newline @@ -28,7 +28,7 @@ invalid_param: ; вход: de=индекс строки ;------------------------------------------------- MESSAGE: - call A8BC6 ; найти строку по индексу + call FMESAGE ; найти строку по индексу jp PRINTZ ; формат. вывод строки ;jp A82CC ; узнать и уст. полож. курсора @@ -36,14 +36,14 @@ MESSAGE: ; Найти строку по индексу ; вход: de=индекс строки ; выход: hl=строка -A8BC6: inc de +FMESAGE: inc de ld hl,MSG0 ; начало массива строк ld bc,MSG0.Size ; размер массива -A8BCD: xor a +LCPIR: xor a cpir ret po ret nz - ;R11 + ;R11 XOR A CP (HL) JR Z,.no_mess @@ -51,7 +51,7 @@ A8BCD: xor a dec de ld a,d or e - jr nz,A8BCD + jr nz,LCPIR ret .no_mess: INC HL RET diff --git a/SHELL/SHELL.ASM b/SHELL/SHELL.ASM index 43a733f..0f7ab80 100644 --- a/SHELL/SHELL.ASM +++ b/SHELL/SHELL.ASM @@ -450,13 +450,16 @@ D8996: ret z Restore_Screen: + PUSH AF LD C,Dss.GetVMod RST ToDSS AND #80 - RET Z + JR Z,.exit LD BC,1 * 256 + Dss.SetVMod LD A,Dss.SetVMod.txt80x32 - JP ToDSS + RST ToDSS +.exit: POP AF + RET diff --git a/SHELL/build.txt b/SHELL/build.txt index 7c6ba0f..2ebc651 100644 --- a/SHELL/build.txt +++ b/SHELL/build.txt @@ -1 +1 @@ -55 \ No newline at end of file +56 \ No newline at end of file diff --git a/Shared_Includes b/Shared_Includes index 361bce6..cc0bf0d 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 361bce691cf4130a703e57b8fc7b3b87d3b929de +Subproject commit cc0bf0dfac766dd97e7a5441b523034921cf3830