From c54d5d0eb8b099d10b5bc1c6b9d3872e4d2a4279 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 31 Mar 2024 04:05:05 +1000 Subject: [PATCH] ... --- menu.asm | 74 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/menu.asm b/menu.asm index 0a39d32..22ffd3b 100755 --- a/menu.asm +++ b/menu.asm @@ -1,7 +1,8 @@ ;[] ; ; MENU.EXE -; + DEFINE App_EXE_Version 0 + INCLUDE 'shared_includes/constants/dss_equ.inc' CR EQU 13 LF EQU 10 @@ -12,7 +13,7 @@ MAX_MENU_ITEMS EQU 24 EXE_HEADER: DB 'EXE' ;EXE ID - DB #00 ;EXE VERSION + DB App_EXE_Version ;EXE VERSION DW EXE_HEADER.Size DW #0000 ;CODE OFFSET HIGH DW #0000 ;END-BEG ;PRIMARY LOADER @@ -252,29 +253,37 @@ INIT: XOR A LD (CMD_MENU),A DEC 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) - 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 - ; - RET + LD C,Dss.CurDisk + RST ToDSS + ADD A,'A' + LD (WorkDir),A + LD A,':' + LD (WorkDir+1),A + LD C,Dss.CurDir + LD HL,WorkDir+2 + JP ToDSS ; HNDMEM DB 0 @@ -307,8 +316,10 @@ CLICK2 LD L,(IX+2) LD BC,Dss.Exec RST ToDSS ;Launch the program PUSH AF + ; !TODO оживить когда будет App_EXE_Version = 1 + ; LD HL,(WorkDirAddr) ; - LD HL,(WorkDirAddr) + LD HL,WorkDir LD C,Dss.ChDir RST ToDSS ; @@ -934,7 +945,7 @@ CH_L6 LD (WIN_Y),A LD (OBSOLUTE_CNT_POS),HL RET -WorkDirAddr: WORD 0 + OBSOLUTE_CNT_POS DW 0 @@ -1020,6 +1031,11 @@ GO_TIME DB #FF TEXT_INDEX DW TEXT_ARRAY + +; !TODO оживить когда будет App_EXE_Version = 1 +;WorkDirAddr: WORD 0 + + INIT_DATA FST_VAR EQU $ ;DS 256 @@ -1028,6 +1044,7 @@ WORKBUF EQU $+256+256 ;DS 256 WORDBUF EQU $+256+256+256 ;DS 256 MENU_TABLE EQU $+256+256+256+256 +;!FIXIT глянуть ITEM_DEFINE DW 0 ;ITEM 1 TEXT ADDRESS DW 0 ;ITEM 1 COMMAND ADDRESS @@ -1043,14 +1060,15 @@ ITEMSIZE EQU ITEM_DEFINE_END-ITEM_DEFINE ; ; DW 0 ;END ; 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 ; "Item 1",0 ; "C:\fn\fn.exe",0 ; 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