From 7965e627288adea0aad2b0bffdf94f71c68d698f Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Wed, 27 Mar 2024 03:29:25 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BA=D1=83=D1=80=D1=81=D0=BE=D1=80=20=D0=B2?= =?UTF-8?q?=20=D0=BC=D0=B5=D0=BD=D1=8E=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D1=8C=20=D0=BC=D0=BE=D0=B6=D0=B5=D1=82=20=D1=86=D0=B8=D0=BA?= =?UTF-8?q?=D0=BB=D0=B8=D1=87=D0=BD=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC?= =?UTF-8?q?=D0=B5=D1=89=D0=B0=D1=82=D1=8C=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 ++ Shared_Includes | 1 + define.txt | 5 --- dss.inc | 71 -------------------------------- knownbug.txt | 6 --- menu.asm | 106 +++++++++++++++++++++++++----------------------- parser.asm | 12 +++--- screen.asm | 44 ++++++++++---------- 8 files changed, 87 insertions(+), 161 deletions(-) create mode 100644 .gitmodules create mode 160000 Shared_Includes delete mode 100644 define.txt delete mode 100644 dss.inc delete mode 100644 knownbug.txt diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5c22af2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Shared_Includes"] + path = Shared_Includes + url = https://github.com/Tolik-Trek/Shared_Includes.git diff --git a/Shared_Includes b/Shared_Includes new file mode 160000 index 0000000..68681fb --- /dev/null +++ b/Shared_Includes @@ -0,0 +1 @@ +Subproject commit 68681fbc50da463f1debae860e6db64603886d39 diff --git a/define.txt b/define.txt deleted file mode 100644 index 9abc9cf..0000000 --- a/define.txt +++ /dev/null @@ -1,5 +0,0 @@ -[MENU] -title=User Menu -item=Flex Navigator, C:\FN\FN.EXE -item=Command prompt -item=Sub menu, C:\menu.exe submenu.mnu diff --git a/dss.inc b/dss.inc deleted file mode 100644 index d7b99d1..0000000 --- a/dss.inc +++ /dev/null @@ -1,71 +0,0 @@ - -DSS_VERSION EQU #00 -DSS_CHDISK EQU #01 -DSS_CURDISK EQU #02 -DSS_DSKINFO EQU #03 -DSS_G_ENTRY EQU #04 - -DSS_BOOTDSK EQU #09 -DSS_CREATE EQU #0A -DSS_CREAT_N EQU #0B -DSS_ERASE EQU #0D -DSS_DELETE EQU #0E -DSS_MOVE EQU #0F -DSS_RENAME EQU #10 -DSS_OPEN EQU #11 -DSS_CLOSE EQU #12 -DSS_READ EQU #13 -DSS_WRITE EQU #14 -DSS_MOVE_FP EQU #15 -DSS_ATTRIB EQU #16 -DSS_GET_D_T EQU #17 -DSS_PUT_D_T EQU #18 -DSS_F_FIRST EQU #19 -DSS_F_NEXT EQU #1A -DSS_MKDIR EQU #1B -DSS_RMDIR EQU #1C -DSS_CHDIR EQU #1D -DSS_CURDIR EQU #1E -DSS_SYSTIME EQU #21 -DSS_SETTIME EQU #22 - -DSS_WAITKEY EQU #30 -DSS_SCANKEY EQU #31 -DSS_ECHOKEY EQU #32 -DSS_CTRLKEY EQU #33 -DSS_EDIT EQU #34 -DSS_K_CLEAR EQU #35 - -DSS_SETWIN EQU #38 -DSS_SETWIN1 EQU #39 -DSS_SETWIN2 EQU #3A -DSS_SETWIN3 EQU #3B -DSS_FREEMEM EQU #3C -DSS_GETMEM EQU #3D -DSS_RETMEM EQU #3E -DSS_SETMEM EQU #3F - -DSS_EXEC EQU #40 -DSS_EXIT EQU #41 -DSS_WAIT EQU #42 - -DSS_GSWITCH EQU #43 -DSS_DOSNAME EQU #44 - -DSS_SETVMOD EQU #50 -DSS_GETVMOD EQU #51 -DSS_LOCATE EQU #52 -DSS_CURSOR EQU #53 -DSS_SELPAGE EQU #54 -DSS_SCROLL EQU #55 -DSS_CLEAR EQU #56 -DSS_RDCHAR EQU #57 -DSS_WRCHAR EQU #58 -DSS_WINCOPY EQU #59 -DSS_WINREST EQU #5A -DSS_PUTCHAR EQU #5B -DSS_PCHARS EQU #5C -DSS_RES_PRN EQU #5D -DSS_CTRLPRN EQU #5E -DSS_PRINT EQU #5F - diff --git a/knownbug.txt b/knownbug.txt deleted file mode 100644 index 5ae9dfe..0000000 --- a/knownbug.txt +++ /dev/null @@ -1,6 +0,0 @@ -* не выводится сообщение об ошибке в случае неверного написания названия опции. -* если описание Item заканчивается на "," в качестве параметра берется вся следующая строка. -* функции задания цвета не сообщают о некоректных символах. - - -- делать проверку при старте Item'а на "<" в первой позиции. ( и т.п.) diff --git a/menu.asm b/menu.asm index 4239418..8802a19 100755 --- a/menu.asm +++ b/menu.asm @@ -2,7 +2,7 @@ ; ; MENU.EXE ; - INCLUDE "dss.inc" + INCLUDE 'shared_includes/constants/dss_equ.inc' CR EQU 13 LF EQU 10 @@ -38,8 +38,8 @@ START: PUSH IX .skipStartMessage: CALL INIT ; - LD C,DSS_SYSTIME - RST #10 + LD C,Dss.SysTime + RST ToDSS LD A,B LD (RUN_TIME),A ; @@ -47,8 +47,8 @@ START: PUSH IX RST #30 ; LD C,1 ; RST #30 - LD BC,#0100+DSS_GETMEM - RST #10 + LD BC,1*256+Dss.GetMem + RST ToDSS JR NC,M_ALLOK LD A,9 CALL MESSAGE @@ -56,8 +56,8 @@ START: PUSH IX JP QUIT M_ALLOK LD (HNDMEM),A - LD BC,#0000+DSS_SETWIN3 - RST #10 + LD BC,Dss.SetWin3 + RST ToDSS ; OUT (#E2),A ; LD (HNDMEM),A @@ -154,15 +154,14 @@ QUIT_MENU CALL WIN_BACK -QUIT - LD A,(HNDMEM) - LD C,DSS_FREEMEM - RST #10 - - LD C,DSS_EXIT +QUIT: LD A,(HNDMEM) + LD C,Dss.FreeMem + RST ToDSS + ; +.loop: LD BC,Dss.Exit XOR A - RST #10 - RET + RST ToDSS + JR .loop MAKE_DEFAULT_ITEM LD HL,ITEMCOUNT @@ -197,8 +196,8 @@ PRC_CNT LD A,#00 LD A,(HL) CALL PRINT_A ; - LD C,DSS_SYSTIME - RST #10 + LD C,Dss.SysTime + RST ToDSS LD A,(GO_TIME) CP 60 ;GO_TIME > 60? JR C,YES_MKSUB @@ -216,8 +215,8 @@ PRC_STR DB "-\\|/"; -\|/ ;GET TIMEOUT GETTIMEOUT - LD C,DSS_SYSTIME - RST #10 + LD C,Dss.SysTime + RST ToDSS LD A,(RUN_TIME) CP B ;RUNTIME > CURTIME JR Z,NO_TO_CORR ;ELSE @@ -281,34 +280,34 @@ CLICK2 LD L,(IX+2) RST #30 ; ; POP HL - ; LD C,DSS_PCHARS - ; RST #10 + ; LD C,Dss.PCHARS + ; RST ToDSS ; ;push bc - ld c,DSS_CURDISK - rst #10 - add a,'A' - ld (cwd),a - ld a,':' - ld (cwd+1),a - ld c,DSS_CURDIR - ld hl,cwd+2 - rst #10 + ; ld c,Dss.CurDisk + ; rst #10 + ; add a,'A' + ; ld (cwd),a + ; ld a,':' + ; ld (cwd+1),a + ; ld c,Dss.CurDir + ; ld hl,cwd+2 + ; rst #10 ; POP HL ; - ld bc,DSS_EXEC + ld bc,Dss.Exec ; - RST #10 ;Launch the program + RST ToDSS ;Launch the program ; - push af + ; push af - ld hl,cwd - ld c,DSS_CHDIR - rst #10 - pop af + ; ld hl,cwd + ; ld c,Dss.ChDir + ; rst #10 + ; pop af ;pop bc ; JR NC,OK_EXEC @@ -326,8 +325,8 @@ OK_EXEC K_OBJECT - LD C,DSS_SCANKEY - RST #10 + LD C,Dss.ScanKey + RST ToDSS RET Z CP 13 JR Z,ENTER_MENU @@ -363,7 +362,9 @@ KEY_DOWN INC A CP B RET NZ - DEC A + ;DEC A + LD A,#11 + OR A RET KEY_UP @@ -371,7 +372,9 @@ KEY_UP DEC A CP #10 RET NZ - INC A + ;INC A + LD A,(ITEMCOUNT) + ADD A,#10 RET @@ -525,7 +528,7 @@ BTABLE PUSH DE PUSH BC CALL WIN_LOCATE -; RST #10 +; RST ToDSS POP BC INC C DJNZ BTABLE @@ -601,10 +604,10 @@ MK_OBJ PUSH IX ELINE LD A,#BA ;є - CALL DSS_PUTCHAR + CALL WIN_PUTCHAR ; LD A,#20 ;" " LD BC,(W_SIZE) -; LD BC,#2000+DSS_PUTCHAR +; LD BC,#2000+Dss.PUTCHAR TLINE PUSH BC LD A,#20 CALL WIN_PUTCHAR @@ -618,7 +621,7 @@ HLINE LD A,#C7 ; CALL WIN_PUTCHAR ; LD A,#C4 ;Д LD BC,(W_SIZE) -; LD BC,#2000+DSS_PUTCHAR +; LD BC,#2000+Dss.PUTCHAR TLINEH PUSH BC LD A,#C4 CALL WIN_PUTCHAR @@ -634,7 +637,7 @@ ITEMCOUNT DB 0 W_SIZE - DB DSS_PUTCHAR + DB 91 DB 32 ;HL - STRING @@ -751,8 +754,8 @@ NOSPACE_L2 EX_COMMAND_LINE INC HL NEXTPR LD DE,WORKBUF - LD BC,#0745 - RST #10 + LD BC,Dss.EX_Path.GSWITCH + RST ToDSS PUSH AF PUSH HL LD A,(WORKBUF) @@ -929,7 +932,7 @@ CH_L6 LD (WIN_Y),A RET ; -cwd: ds 256 +;cwd: ds 256 ; OBSOLUTE_CNT_POS @@ -937,8 +940,9 @@ OBSOLUTE_CNT_POS MSG0 DB 0 ;0 - DB "User Menu v1.00, Copyright " - DB "2002 (c) PETERS PLUS LTD",CR,LF,CR,LF,0 + DB "User Menu v1.01, Copyright " + DB "2002 (c) Peters Plus LTD",CR,LF + DB "2023 (c) Sprinter Team",CR,LF,CR,LF,0 ;1 DB " Error: Unknown switch: %1",CR,LF,0 ;2 diff --git a/parser.asm b/parser.asm index c2dff98..aa1997f 100755 --- a/parser.asm +++ b/parser.asm @@ -20,16 +20,16 @@ MNU_FHND DB #FF OPEN_MENU_FILE XOR A ;;;;;;;; - LD C,DSS_OPEN - RST #10 + LD C,Dss.Open + RST ToDSS RET C LD (MNU_FHND),A RET CLOSE_MENU_FILE LD A,(MNU_FHND) - LD C,DSS_CLOSE - RST #10 + LD C,Dss.Close + RST ToDSS RET @@ -62,9 +62,9 @@ NOT_DEF_MNU: RM_STEP2 LD HL,FILE_ARRAY LD DE,16384 - LD C,DSS_READ + LD C,Dss.Read LD A,(MNU_FHND) - RST #10 + RST ToDSS JR C,RF_ERR LD B,D LD C,E diff --git a/screen.asm b/screen.asm index a1fd7cb..4252764 100755 --- a/screen.asm +++ b/screen.asm @@ -12,8 +12,8 @@ DEBUG_PRINTZ HL_D_POINT LD HL,#0000 - LD C,DSS_PCHARS - RST #10 + LD C,Dss.PChars + RST ToDSS CALL CRLF CALL POPALL @@ -71,10 +71,10 @@ WIN_SHOW LD L,A IN A,(#E2) LD B,A - LD C,DSS_WINREST + LD C,Dss.WinRest LD IX,MYWIN DI - RST #10 + RST ToDSS EI RET @@ -83,8 +83,8 @@ SAVE_POSITION DW 0 WIN_SAVE - LD C,DSS_CURSOR - RST #10 + LD C,Dss.Cursor + RST ToDSS LD (SAVE_POSITION),DE ; RET ; @@ -95,10 +95,10 @@ WIN_SAVE LD L,A IN A,(#E2) LD B,A - LD C,DSS_WINCOPY + LD C,Dss.WinCopy LD IX,SCR_BUF DI - RST #10 + RST ToDSS EI RET @@ -110,15 +110,15 @@ WIN_BACK LD L,A IN A,(#E2) LD B,A - LD C,DSS_WINREST + LD C,Dss.WinRest LD IX,SCR_BUF DI - RST #10 + RST ToDSS EI LD DE,(SAVE_POSITION) - LD C,DSS_LOCATE - RST #10 + LD C,Dss.Locate + RST ToDSS RET WIN_CLS @@ -215,10 +215,10 @@ WIN_PUTCHAR RET CRLF LD A,#0D - LD C,DSS_PUTCHAR + LD C,Dss.PutChar RST #10 LD A,#0A - LD C,DSS_PUTCHAR + LD C,Dss.PutChar RST #10 RET @@ -259,22 +259,22 @@ PRINTZ LD A,(HL) ADD HL,HL LD BC,PRM1 ADD HL,BC - LD C,DSS_PCHARS - RST #10 + LD C,Dss.PChars + RST ToDSS POP HL JR PRINTZ -PRINTZ2 LD C,DSS_PUTCHAR - RST #10 +PRINTZ2 LD C,Dss.PutChar + RST ToDSS JP PRINTZ LOCATE_ - LD C,DSS_LOCATE - RST #10 + LD C,Dss.Locate + RST ToDSS RET PRINT_A -PRINT_ LD C,DSS_PUTCHAR - RST #10 +PRINT_ LD C,Dss.PutChar + RST ToDSS RET MOVEBLOCKZ