mirror of
https://github.com/Tolik-Trek/UserMenu.git
synced 2026-06-15 00:51:35 +03:00
курсор в меню теперь может циклично перемещаться
This commit is contained in:
parent
e8e569fc23
commit
7965e62728
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "Shared_Includes"]
|
||||
path = Shared_Includes
|
||||
url = https://github.com/Tolik-Trek/Shared_Includes.git
|
||||
1
Shared_Includes
Submodule
1
Shared_Includes
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 68681fbc50da463f1debae860e6db64603886d39
|
||||
@ -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
|
||||
71
dss.inc
71
dss.inc
@ -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
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
* не выводится сообщение об ошибке в случае неверного написания названия опции.
|
||||
* если описание Item заканчивается на "," в качестве параметра берется вся следующая строка.
|
||||
* функции задания цвета не сообщают о некоректных символах.
|
||||
|
||||
|
||||
- делать проверку при старте Item'а на "<" в первой позиции. (<exit> и т.п.)
|
||||
106
menu.asm
106
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
|
||||
|
||||
;<Sayman>
|
||||
;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
|
||||
;</Sayman>
|
||||
|
||||
POP HL
|
||||
;<Sayman>
|
||||
ld bc,DSS_EXEC
|
||||
ld bc,Dss.Exec
|
||||
;</Sayman>
|
||||
RST #10 ;Launch the program
|
||||
RST ToDSS ;Launch the program
|
||||
;<Sayman>
|
||||
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
|
||||
;</Sayman>
|
||||
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
|
||||
|
||||
;<Sayman>
|
||||
cwd: ds 256
|
||||
;cwd: ds 256
|
||||
;</Sayman>
|
||||
|
||||
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
|
||||
|
||||
12
parser.asm
12
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
|
||||
|
||||
44
screen.asm
44
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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user