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
|
; MENU.EXE
|
||||||
;
|
;
|
||||||
INCLUDE "dss.inc"
|
INCLUDE 'shared_includes/constants/dss_equ.inc'
|
||||||
CR EQU 13
|
CR EQU 13
|
||||||
LF EQU 10
|
LF EQU 10
|
||||||
|
|
||||||
@ -38,8 +38,8 @@ START: PUSH IX
|
|||||||
.skipStartMessage:
|
.skipStartMessage:
|
||||||
CALL INIT
|
CALL INIT
|
||||||
;
|
;
|
||||||
LD C,DSS_SYSTIME
|
LD C,Dss.SysTime
|
||||||
RST #10
|
RST ToDSS
|
||||||
LD A,B
|
LD A,B
|
||||||
LD (RUN_TIME),A
|
LD (RUN_TIME),A
|
||||||
;
|
;
|
||||||
@ -47,8 +47,8 @@ START: PUSH IX
|
|||||||
RST #30
|
RST #30
|
||||||
; LD C,1
|
; LD C,1
|
||||||
; RST #30
|
; RST #30
|
||||||
LD BC,#0100+DSS_GETMEM
|
LD BC,1*256+Dss.GetMem
|
||||||
RST #10
|
RST ToDSS
|
||||||
JR NC,M_ALLOK
|
JR NC,M_ALLOK
|
||||||
LD A,9
|
LD A,9
|
||||||
CALL MESSAGE
|
CALL MESSAGE
|
||||||
@ -56,8 +56,8 @@ START: PUSH IX
|
|||||||
JP QUIT
|
JP QUIT
|
||||||
M_ALLOK
|
M_ALLOK
|
||||||
LD (HNDMEM),A
|
LD (HNDMEM),A
|
||||||
LD BC,#0000+DSS_SETWIN3
|
LD BC,Dss.SetWin3
|
||||||
RST #10
|
RST ToDSS
|
||||||
|
|
||||||
; OUT (#E2),A
|
; OUT (#E2),A
|
||||||
; LD (HNDMEM),A
|
; LD (HNDMEM),A
|
||||||
@ -154,15 +154,14 @@ QUIT_MENU
|
|||||||
|
|
||||||
CALL WIN_BACK
|
CALL WIN_BACK
|
||||||
|
|
||||||
QUIT
|
QUIT: LD A,(HNDMEM)
|
||||||
LD A,(HNDMEM)
|
LD C,Dss.FreeMem
|
||||||
LD C,DSS_FREEMEM
|
RST ToDSS
|
||||||
RST #10
|
;
|
||||||
|
.loop: LD BC,Dss.Exit
|
||||||
LD C,DSS_EXIT
|
|
||||||
XOR A
|
XOR A
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET
|
JR .loop
|
||||||
|
|
||||||
MAKE_DEFAULT_ITEM
|
MAKE_DEFAULT_ITEM
|
||||||
LD HL,ITEMCOUNT
|
LD HL,ITEMCOUNT
|
||||||
@ -197,8 +196,8 @@ PRC_CNT LD A,#00
|
|||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
CALL PRINT_A
|
CALL PRINT_A
|
||||||
;
|
;
|
||||||
LD C,DSS_SYSTIME
|
LD C,Dss.SysTime
|
||||||
RST #10
|
RST ToDSS
|
||||||
LD A,(GO_TIME)
|
LD A,(GO_TIME)
|
||||||
CP 60 ;GO_TIME > 60?
|
CP 60 ;GO_TIME > 60?
|
||||||
JR C,YES_MKSUB
|
JR C,YES_MKSUB
|
||||||
@ -216,8 +215,8 @@ PRC_STR DB "-\\|/"; -\|/
|
|||||||
|
|
||||||
;GET TIMEOUT
|
;GET TIMEOUT
|
||||||
GETTIMEOUT
|
GETTIMEOUT
|
||||||
LD C,DSS_SYSTIME
|
LD C,Dss.SysTime
|
||||||
RST #10
|
RST ToDSS
|
||||||
LD A,(RUN_TIME)
|
LD A,(RUN_TIME)
|
||||||
CP B ;RUNTIME > CURTIME
|
CP B ;RUNTIME > CURTIME
|
||||||
JR Z,NO_TO_CORR ;ELSE
|
JR Z,NO_TO_CORR ;ELSE
|
||||||
@ -281,34 +280,34 @@ CLICK2 LD L,(IX+2)
|
|||||||
RST #30
|
RST #30
|
||||||
;
|
;
|
||||||
; POP HL
|
; POP HL
|
||||||
; LD C,DSS_PCHARS
|
; LD C,Dss.PCHARS
|
||||||
; RST #10
|
; RST ToDSS
|
||||||
|
|
||||||
;<Sayman>
|
;<Sayman>
|
||||||
;push bc
|
;push bc
|
||||||
ld c,DSS_CURDISK
|
; ld c,Dss.CurDisk
|
||||||
rst #10
|
; rst #10
|
||||||
add a,'A'
|
; add a,'A'
|
||||||
ld (cwd),a
|
; ld (cwd),a
|
||||||
ld a,':'
|
; ld a,':'
|
||||||
ld (cwd+1),a
|
; ld (cwd+1),a
|
||||||
ld c,DSS_CURDIR
|
; ld c,Dss.CurDir
|
||||||
ld hl,cwd+2
|
; ld hl,cwd+2
|
||||||
rst #10
|
; rst #10
|
||||||
;</Sayman>
|
;</Sayman>
|
||||||
|
|
||||||
POP HL
|
POP HL
|
||||||
;<Sayman>
|
;<Sayman>
|
||||||
ld bc,DSS_EXEC
|
ld bc,Dss.Exec
|
||||||
;</Sayman>
|
;</Sayman>
|
||||||
RST #10 ;Launch the program
|
RST ToDSS ;Launch the program
|
||||||
;<Sayman>
|
;<Sayman>
|
||||||
push af
|
; push af
|
||||||
|
|
||||||
ld hl,cwd
|
; ld hl,cwd
|
||||||
ld c,DSS_CHDIR
|
; ld c,Dss.ChDir
|
||||||
rst #10
|
; rst #10
|
||||||
pop af
|
; pop af
|
||||||
;pop bc
|
;pop bc
|
||||||
;</Sayman>
|
;</Sayman>
|
||||||
JR NC,OK_EXEC
|
JR NC,OK_EXEC
|
||||||
@ -326,8 +325,8 @@ OK_EXEC
|
|||||||
|
|
||||||
|
|
||||||
K_OBJECT
|
K_OBJECT
|
||||||
LD C,DSS_SCANKEY
|
LD C,Dss.ScanKey
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET Z
|
RET Z
|
||||||
CP 13
|
CP 13
|
||||||
JR Z,ENTER_MENU
|
JR Z,ENTER_MENU
|
||||||
@ -363,7 +362,9 @@ KEY_DOWN
|
|||||||
INC A
|
INC A
|
||||||
CP B
|
CP B
|
||||||
RET NZ
|
RET NZ
|
||||||
DEC A
|
;DEC A
|
||||||
|
LD A,#11
|
||||||
|
OR A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
KEY_UP
|
KEY_UP
|
||||||
@ -371,7 +372,9 @@ KEY_UP
|
|||||||
DEC A
|
DEC A
|
||||||
CP #10
|
CP #10
|
||||||
RET NZ
|
RET NZ
|
||||||
INC A
|
;INC A
|
||||||
|
LD A,(ITEMCOUNT)
|
||||||
|
ADD A,#10
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
@ -525,7 +528,7 @@ BTABLE
|
|||||||
PUSH DE
|
PUSH DE
|
||||||
PUSH BC
|
PUSH BC
|
||||||
CALL WIN_LOCATE
|
CALL WIN_LOCATE
|
||||||
; RST #10
|
; RST ToDSS
|
||||||
POP BC
|
POP BC
|
||||||
INC C
|
INC C
|
||||||
DJNZ BTABLE
|
DJNZ BTABLE
|
||||||
@ -601,10 +604,10 @@ MK_OBJ PUSH IX
|
|||||||
|
|
||||||
|
|
||||||
ELINE LD A,#BA ;º
|
ELINE LD A,#BA ;º
|
||||||
CALL DSS_PUTCHAR
|
CALL WIN_PUTCHAR
|
||||||
; LD A,#20 ;" "
|
; LD A,#20 ;" "
|
||||||
LD BC,(W_SIZE)
|
LD BC,(W_SIZE)
|
||||||
; LD BC,#2000+DSS_PUTCHAR
|
; LD BC,#2000+Dss.PUTCHAR
|
||||||
TLINE PUSH BC
|
TLINE PUSH BC
|
||||||
LD A,#20
|
LD A,#20
|
||||||
CALL WIN_PUTCHAR
|
CALL WIN_PUTCHAR
|
||||||
@ -618,7 +621,7 @@ HLINE LD A,#C7 ;
|
|||||||
CALL WIN_PUTCHAR
|
CALL WIN_PUTCHAR
|
||||||
; LD A,#C4 ;Ä
|
; LD A,#C4 ;Ä
|
||||||
LD BC,(W_SIZE)
|
LD BC,(W_SIZE)
|
||||||
; LD BC,#2000+DSS_PUTCHAR
|
; LD BC,#2000+Dss.PUTCHAR
|
||||||
TLINEH PUSH BC
|
TLINEH PUSH BC
|
||||||
LD A,#C4
|
LD A,#C4
|
||||||
CALL WIN_PUTCHAR
|
CALL WIN_PUTCHAR
|
||||||
@ -634,7 +637,7 @@ ITEMCOUNT
|
|||||||
DB 0
|
DB 0
|
||||||
|
|
||||||
W_SIZE
|
W_SIZE
|
||||||
DB DSS_PUTCHAR
|
DB 91
|
||||||
DB 32
|
DB 32
|
||||||
|
|
||||||
;HL - STRING
|
;HL - STRING
|
||||||
@ -751,8 +754,8 @@ NOSPACE_L2
|
|||||||
EX_COMMAND_LINE
|
EX_COMMAND_LINE
|
||||||
INC HL
|
INC HL
|
||||||
NEXTPR LD DE,WORKBUF
|
NEXTPR LD DE,WORKBUF
|
||||||
LD BC,#0745
|
LD BC,Dss.EX_Path.GSWITCH
|
||||||
RST #10
|
RST ToDSS
|
||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD A,(WORKBUF)
|
LD A,(WORKBUF)
|
||||||
@ -929,7 +932,7 @@ CH_L6 LD (WIN_Y),A
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
;<Sayman>
|
;<Sayman>
|
||||||
cwd: ds 256
|
;cwd: ds 256
|
||||||
;</Sayman>
|
;</Sayman>
|
||||||
|
|
||||||
OBSOLUTE_CNT_POS
|
OBSOLUTE_CNT_POS
|
||||||
@ -937,8 +940,9 @@ OBSOLUTE_CNT_POS
|
|||||||
|
|
||||||
MSG0 DB 0
|
MSG0 DB 0
|
||||||
;0
|
;0
|
||||||
DB "User Menu v1.00, Copyright "
|
DB "User Menu v1.01, Copyright "
|
||||||
DB "2002 (c) PETERS PLUS LTD",CR,LF,CR,LF,0
|
DB "2002 (c) Peters Plus LTD",CR,LF
|
||||||
|
DB "2023 (c) Sprinter Team",CR,LF,CR,LF,0
|
||||||
;1
|
;1
|
||||||
DB " Error: Unknown switch: %1",CR,LF,0
|
DB " Error: Unknown switch: %1",CR,LF,0
|
||||||
;2
|
;2
|
||||||
|
|||||||
12
parser.asm
12
parser.asm
@ -20,16 +20,16 @@ MNU_FHND DB #FF
|
|||||||
|
|
||||||
OPEN_MENU_FILE
|
OPEN_MENU_FILE
|
||||||
XOR A ;;;;;;;;
|
XOR A ;;;;;;;;
|
||||||
LD C,DSS_OPEN
|
LD C,Dss.Open
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET C
|
RET C
|
||||||
LD (MNU_FHND),A
|
LD (MNU_FHND),A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
CLOSE_MENU_FILE
|
CLOSE_MENU_FILE
|
||||||
LD A,(MNU_FHND)
|
LD A,(MNU_FHND)
|
||||||
LD C,DSS_CLOSE
|
LD C,Dss.Close
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
@ -62,9 +62,9 @@ NOT_DEF_MNU:
|
|||||||
RM_STEP2
|
RM_STEP2
|
||||||
LD HL,FILE_ARRAY
|
LD HL,FILE_ARRAY
|
||||||
LD DE,16384
|
LD DE,16384
|
||||||
LD C,DSS_READ
|
LD C,Dss.Read
|
||||||
LD A,(MNU_FHND)
|
LD A,(MNU_FHND)
|
||||||
RST #10
|
RST ToDSS
|
||||||
JR C,RF_ERR
|
JR C,RF_ERR
|
||||||
LD B,D
|
LD B,D
|
||||||
LD C,E
|
LD C,E
|
||||||
|
|||||||
44
screen.asm
44
screen.asm
@ -12,8 +12,8 @@ DEBUG_PRINTZ
|
|||||||
|
|
||||||
HL_D_POINT
|
HL_D_POINT
|
||||||
LD HL,#0000
|
LD HL,#0000
|
||||||
LD C,DSS_PCHARS
|
LD C,Dss.PChars
|
||||||
RST #10
|
RST ToDSS
|
||||||
CALL CRLF
|
CALL CRLF
|
||||||
|
|
||||||
CALL POPALL
|
CALL POPALL
|
||||||
@ -71,10 +71,10 @@ WIN_SHOW
|
|||||||
LD L,A
|
LD L,A
|
||||||
IN A,(#E2)
|
IN A,(#E2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD C,DSS_WINREST
|
LD C,Dss.WinRest
|
||||||
LD IX,MYWIN
|
LD IX,MYWIN
|
||||||
DI
|
DI
|
||||||
RST #10
|
RST ToDSS
|
||||||
EI
|
EI
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -83,8 +83,8 @@ SAVE_POSITION
|
|||||||
DW 0
|
DW 0
|
||||||
|
|
||||||
WIN_SAVE
|
WIN_SAVE
|
||||||
LD C,DSS_CURSOR
|
LD C,Dss.Cursor
|
||||||
RST #10
|
RST ToDSS
|
||||||
LD (SAVE_POSITION),DE
|
LD (SAVE_POSITION),DE
|
||||||
; RET
|
; RET
|
||||||
;
|
;
|
||||||
@ -95,10 +95,10 @@ WIN_SAVE
|
|||||||
LD L,A
|
LD L,A
|
||||||
IN A,(#E2)
|
IN A,(#E2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD C,DSS_WINCOPY
|
LD C,Dss.WinCopy
|
||||||
LD IX,SCR_BUF
|
LD IX,SCR_BUF
|
||||||
DI
|
DI
|
||||||
RST #10
|
RST ToDSS
|
||||||
EI
|
EI
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -110,15 +110,15 @@ WIN_BACK
|
|||||||
LD L,A
|
LD L,A
|
||||||
IN A,(#E2)
|
IN A,(#E2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD C,DSS_WINREST
|
LD C,Dss.WinRest
|
||||||
LD IX,SCR_BUF
|
LD IX,SCR_BUF
|
||||||
DI
|
DI
|
||||||
RST #10
|
RST ToDSS
|
||||||
EI
|
EI
|
||||||
|
|
||||||
LD DE,(SAVE_POSITION)
|
LD DE,(SAVE_POSITION)
|
||||||
LD C,DSS_LOCATE
|
LD C,Dss.Locate
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET
|
RET
|
||||||
|
|
||||||
WIN_CLS
|
WIN_CLS
|
||||||
@ -215,10 +215,10 @@ WIN_PUTCHAR
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
CRLF LD A,#0D
|
CRLF LD A,#0D
|
||||||
LD C,DSS_PUTCHAR
|
LD C,Dss.PutChar
|
||||||
RST #10
|
RST #10
|
||||||
LD A,#0A
|
LD A,#0A
|
||||||
LD C,DSS_PUTCHAR
|
LD C,Dss.PutChar
|
||||||
RST #10
|
RST #10
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -259,22 +259,22 @@ PRINTZ LD A,(HL)
|
|||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
LD BC,PRM1
|
LD BC,PRM1
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
LD C,DSS_PCHARS
|
LD C,Dss.PChars
|
||||||
RST #10
|
RST ToDSS
|
||||||
POP HL
|
POP HL
|
||||||
JR PRINTZ
|
JR PRINTZ
|
||||||
PRINTZ2 LD C,DSS_PUTCHAR
|
PRINTZ2 LD C,Dss.PutChar
|
||||||
RST #10
|
RST ToDSS
|
||||||
JP PRINTZ
|
JP PRINTZ
|
||||||
|
|
||||||
LOCATE_
|
LOCATE_
|
||||||
LD C,DSS_LOCATE
|
LD C,Dss.Locate
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET
|
RET
|
||||||
|
|
||||||
PRINT_A
|
PRINT_A
|
||||||
PRINT_ LD C,DSS_PUTCHAR
|
PRINT_ LD C,Dss.PutChar
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET
|
RET
|
||||||
|
|
||||||
MOVEBLOCKZ
|
MOVEBLOCKZ
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user