This commit is contained in:
Anatoliy Belyanskiy 2024-03-31 04:05:05 +10:00
parent 8e8ca188d3
commit c54d5d0eb8

View File

@ -1,7 +1,8 @@
;[] ;[]
; ;
; MENU.EXE ; MENU.EXE
; DEFINE App_EXE_Version 0
INCLUDE 'shared_includes/constants/dss_equ.inc' INCLUDE 'shared_includes/constants/dss_equ.inc'
CR EQU 13 CR EQU 13
LF EQU 10 LF EQU 10
@ -12,7 +13,7 @@ MAX_MENU_ITEMS EQU 24
EXE_HEADER: EXE_HEADER:
DB 'EXE' ;EXE ID DB 'EXE' ;EXE ID
DB #00 ;EXE VERSION DB App_EXE_Version ;EXE VERSION
DW EXE_HEADER.Size DW EXE_HEADER.Size
DW #0000 ;CODE OFFSET HIGH DW #0000 ;CODE OFFSET HIGH
DW #0000 ;END-BEG ;PRIMARY LOADER DW #0000 ;END-BEG ;PRIMARY LOADER
@ -252,29 +253,37 @@ INIT: XOR A
LD (CMD_MENU),A LD (CMD_MENU),A
DEC A DEC A
LD (GO_TIME),A LD (GO_TIME),A
; !TODO ®¦¨¢¨âì ª®£¤  ¡ã¤¥â App_EXE_Version = 1
; LD A,(IX+0)
; ADD A,3
; LD E,A
; EX DE,HL
; LD D,XH
; LD E,XL
; EX DE,HL
; ADD HL,DE
; LD (WorkDirAddr),HL
; ;
; XOR A
; LD BC,128 ;!HARDCODE ¤«¨­  CL
; CPIR
; DEC HL
; LD BC,128 ;!HARDCODE ¤«¨­  CL
; LD A,'\' ;
; CPDR
; INC HL
; XOR A
; LD (HL),A
; ;
LD A,(IX+0) LD C,Dss.CurDisk
ADD A,3 RST ToDSS
LD E,A ADD A,'A'
EX DE,HL LD (WorkDir),A
LD D,XH LD A,':'
LD E,XL LD (WorkDir+1),A
EX DE,HL LD C,Dss.CurDir
ADD HL,DE LD HL,WorkDir+2
LD (WorkDirAddr),HL JP ToDSS
;
XOR A
LD BC,128 ;!HARDCODE か┃<E3818B> CL
CPIR
DEC HL
LD BC,128 ;!HARDCODE か┃<E3818B> CL
LD A,'\' ;
CPDR
INC HL
XOR A
LD (HL),A
;
RET
; ;
HNDMEM DB 0 HNDMEM DB 0
@ -307,8 +316,10 @@ CLICK2 LD L,(IX+2)
LD BC,Dss.Exec LD BC,Dss.Exec
RST ToDSS ;Launch the program RST ToDSS ;Launch the program
PUSH AF PUSH AF
; !TODO ®¦¨¢¨âì ª®£¤  ¡ã¤¥â App_EXE_Version = 1
; LD HL,(WorkDirAddr)
; ;
LD HL,(WorkDirAddr) LD HL,WorkDir
LD C,Dss.ChDir LD C,Dss.ChDir
RST ToDSS RST ToDSS
; ;
@ -934,7 +945,7 @@ CH_L6 LD (WIN_Y),A
LD (OBSOLUTE_CNT_POS),HL LD (OBSOLUTE_CNT_POS),HL
RET RET
WorkDirAddr: WORD 0
OBSOLUTE_CNT_POS OBSOLUTE_CNT_POS
DW 0 DW 0
@ -1020,6 +1031,11 @@ GO_TIME DB #FF
TEXT_INDEX TEXT_INDEX
DW TEXT_ARRAY DW TEXT_ARRAY
; !TODO ®¦¨¢¨âì ª®£¤  ¡ã¤¥â App_EXE_Version = 1
;WorkDirAddr: WORD 0
INIT_DATA INIT_DATA
FST_VAR EQU $ ;DS 256 FST_VAR EQU $ ;DS 256
@ -1028,6 +1044,7 @@ WORKBUF EQU $+256+256 ;DS 256
WORDBUF EQU $+256+256+256 ;DS 256 WORDBUF EQU $+256+256+256 ;DS 256
MENU_TABLE EQU $+256+256+256+256 MENU_TABLE EQU $+256+256+256+256
;!FIXIT £«ï­ãâì
ITEM_DEFINE ITEM_DEFINE
DW 0 ;ITEM 1 TEXT ADDRESS DW 0 ;ITEM 1 TEXT ADDRESS
DW 0 ;ITEM 1 COMMAND ADDRESS DW 0 ;ITEM 1 COMMAND ADDRESS
@ -1043,14 +1060,15 @@ ITEMSIZE EQU ITEM_DEFINE_END-ITEM_DEFINE
; ;
; DW 0 ;END ; DW 0 ;END
; DS 256 ; DS 256
WorkDir EQU $+256+256+256+256+256
TEXT_ARRAY EQU $+256+256+256+256+256 TEXT_ARRAY EQU $+256+256+256+256+256+256
; "Title name",0 ; "Title name",0
; "Item 1",0 ; "Item 1",0
; "C:\fn\fn.exe",0 ; "C:\fn\fn.exe",0
; DS 4096 ; DS 4096
FILE_ARRAY EQU $+256+256+256+256+256+4096 FILE_ARRAY EQU $+256+256+256+256+256+256+4096
MYWIN EQU #0000-2560*4 ;DS 34*8*2 MYWIN EQU #0000-2560*4 ;DS 34*8*2