This commit is contained in:
Anatoliy Belyanskiy 2024-06-08 01:39:30 +10:00
parent d653425a7f
commit cac616722c
7 changed files with 58 additions and 45 deletions

View File

@ -52,7 +52,7 @@ cmd_date:
push ix push ix
push de push de
ld a,d ; ç¨áŤŽ ld a,d ; ç¨áŤŽ
ld hl,PRM1 ; ªã¤  ld hl,Buffers.bat_params.PRM1; ªã¤ 
call PUTB ; ¤Ľáďâ. ˘ë˘Ž¤ ˘ ĄăäĽŕ call PUTB ; ¤Ľáďâ. ˘ë˘Ž¤ ˘ ĄăäĽŕ
ld a,"." ld a,"."
ld (hl),a ld (hl),a
@ -78,7 +78,7 @@ cmd_date:
LD BC,.days.size LD BC,.days.size
CALL LCPIR CALL LCPIR
; ;
LD DE,PRM2 LD DE,Buffers.bat_params.PRM2
CALL ncopy_string CALL ncopy_string
; ;
ld de,MAIN_MSG.DATE ; ¨­¤ĽŞá "Current date: %1" ld de,MAIN_MSG.DATE ; ¨­¤ĽŞá "Current date: %1"
@ -156,7 +156,7 @@ cmd_tm1:ld c,Dss.SysTime
push bc push bc
push hl push hl
ld a,h ; ç¨áŤŽ ld a,h ; ç¨áŤŽ
ld hl,PRM1 ; ªã¤  ld hl,Buffers.bat_params.PRM1; ªã¤ 
call PUTB ; ¤Ľáďâ. ˘ë˘Ž¤ ˘ ĄăäĽŕ call PUTB ; ¤Ľáďâ. ˘ë˘Ž¤ ˘ ĄăäĽŕ
ld a,":" ld a,":"
ld (hl),a ld (hl),a

View File

@ -81,18 +81,20 @@ cmd_dir: push de
inc hl inc hl
ld (hl),0 ld (hl),0
inc hl inc hl
ld de,PRM1 ld de,Buffers.bat_params.PRM1
call ncopy_string ; á®å࠭塞 ¬ áªã ä ©«  call ncopy_string ; á®å࠭塞 ¬ áªã ä ©« 
; ;
ld hl,Buffers.work.buffer1 ld hl,Buffers.work.buffer1
ld c,Dss.ChDir ld c,Dss.ChDir
rst ToDSS rst ToDSS
; ;ld a,DSS_Error.sys.NOT_READY
ld hl,PRM1 jp c,print_err_message
.no_error: ;
ld hl,Buffers.bat_params.PRM1
ld de,Buffers.work.free ld de,Buffers.work.free
call ncopy_string ; ¢®ááâ ­ ¢«¨¢ ¥¬ ¬ áªã ä ©«  call ncopy_string ; ¢®ááâ ­ ¢«¨¢ ¥¬ ¬ áªã ä ©« 
; ;
ld a,(PRM1) ld a,(Buffers.bat_params.PRM1)
or a or a
jr nz,.SkipMask jr nz,.SkipMask
; ;
@ -197,7 +199,7 @@ cmd_dir: push de
pop af ; ¡ « ­á á⥪  pop af ; ¡ « ­á á⥪ 
; „¥áïâ¨ç­ë© ¢ë¢®¤ ; „¥áïâ¨ç­ë© ¢ë¢®¤
.print: ld hl,(FILES) .print: ld hl,(FILES)
ld ix,PRM3 ; ª®«¨ç¥á⢮ ä ©«®¢ ld ix,Buffers.bat_params.PRM3; ª®«¨ç¥á⢮ ä ©«®¢
call PDIGIT call PDIGIT
; ;
ld a,(S_HIGH) ld a,(S_HIGH)
@ -212,13 +214,13 @@ cmd_dir: push de
; [x] ¢ë¢®¤ ª®«¨ç¥á⢠ ¯ ¯®ª ; [x] ¢ë¢®¤ ª®«¨ç¥á⢠ ¯ ¯®ª
; [x] ¢ë¢®¤ ®¡é¥£® ª®«¨ç¥á⢠ ᢮¡®¤­®£® ¬¥áâ  ; [x] ¢ë¢®¤ ®¡é¥£® ª®«¨ç¥á⢠ ᢮¡®¤­®£® ¬¥áâ 
ld hl,SIZE_BUFFER.high ; "000 000 000 000" ld hl,SIZE_BUFFER.high ; "000 000 000 000"
ld de,PRM1; + PRM2 ; à §¬¥à ä ©«®¢ ¢ ª â «®£¥ ld de,Buffers.bat_params.PRM1; + PRM2. à §¬¥à ä ©«®¢ ¢ ª â «®£¥
ld bc,SIZE_BUFFER.bytes ld bc,SIZE_BUFFER.bytes
call ncopy_string.start ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá. SIZE_BUFFER.bytes ᨬ¢. call ncopy_string.start ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá. SIZE_BUFFER.bytes ᨬ¢.
; ;
; „¥áïâ¨ç­ë© ¢ë¢®¤ ; „¥áïâ¨ç­ë© ¢ë¢®¤
ld hl,(dir_number) ld hl,(dir_number)
ld ix,PRM4 ; ª®«-¢® ª â «®£®¢ ¢ ª â «®£¥ ld ix,Buffers.bat_params.PRM4; ª®«-¢® ª â «®£®¢ ¢ ª â «®£¥
call PDIGIT call PDIGIT
; full capacity ; full capacity
ld a,(full_space_high) ld a,(full_space_high)
@ -258,12 +260,12 @@ cmd_dir: push de
PRN_DISK_SIZE: call PRINT_5BYTES PRN_DISK_SIZE: call PRINT_5BYTES
ld hl,SIZE_BUFFER.high ; "000 000 000 000" ld hl,SIZE_BUFFER.high ; "000 000 000 000"
ld de,PRM5 ; and PRM6 ; ªã¤  ld de,Buffers.bat_params.PRM5; and PRM6. ªã¤ 
ld bc,SIZE_BUFFER.bytes ld bc,SIZE_BUFFER.bytes
jp ncopy_string.start ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá. SIZE_BUFFER.bytes ᨬ¢. jp ncopy_string.start ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá. SIZE_BUFFER.bytes ᨬ¢.
; ;
Print_Header: ; %1 Print_Header: ; %1
ld hl,PRM1 ld hl,Buffers.bat_params.PRM1
ld a,'"' ld a,'"'
ld (hl),a ld (hl),a
inc hl inc hl
@ -283,27 +285,27 @@ Print_Header: ; %1
ld (hl),0 ld (hl),0
; %2 ; %2
ld hl,serial_string ; áâப  á¥à¨©­®£® ­®¬¥à  ¤¨áª  ld hl,serial_string ; áâப  á¥à¨©­®£® ­®¬¥à  ¤¨áª 
ld de,PRM2 ; ªã¤  ld de,Buffers.bat_params.PRM2; ªã¤ 
call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬) call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬)
; %3..5 ; %3..5
;push hl ;push hl
ld hl,Buffers.work.free + 256 + 128 ; 128 - ­  ¢á直© á«ãç © ld hl,Buffers.work.free + 256 + 128 ; 128 - ­  ¢á直© á«ãç ©
ld c,Dss.CurDir ld c,Dss.CurDir
rst ToDSS rst ToDSS
ld hl,PRM3 ld hl,Buffers.bat_params.PRM3
ld a,(PRM1 + 1) ld a,(Buffers.bat_params.PRM1 + 1)
ld (hl),a ld (hl),a
inc hl inc hl
ld (hl),':' ld (hl),':'
; ;
ld hl,PRM3+2 ld hl,Buffers.bat_params.PRM3 +2
ld de,PRM3+2+1 ld de,Buffers.bat_params.PRM3 +2 + 1
ld (hl),0 ld (hl),0
ld bc,16+16+16-1-2 ld bc,16+16+16-1-2
ldir ldir
; ;
ld hl,Buffers.work.free + 256 + 128 ; á¨áâ. ¯ãâì ld hl,Buffers.work.free + 256 + 128 ; á¨áâ. ¯ãâì
ld de,PRM3 + 2 ;+PRM4..5 ; 2 + 48 ¡ ©â®¢ ¡ãä¥à ld de,Buffers.bat_params.PRM3 + 2 ;+PRM4..5. 2 + 48 ¡ ©â®¢ ¡ãä¥à
call make_short_path call make_short_path
;pop hl ;pop hl
@ -323,11 +325,11 @@ PRNNAME: dec hl
inc hl inc hl
; ;
ld bc,8 ld bc,8
ld de,PRM1 ; ¡ãä¥à ld de,Buffers.bat_params.PRM1
ldir ldir
xor a xor a
ld (de),a ld (de),a
ld de,PRM2 ; ªã¤  ld de,Buffers.bat_params.PRM2; ªã¤ 
ldi ldi
ldi ldi
ldi ldi
@ -395,7 +397,7 @@ PRNSIZE: ld a,(ix+32)
ldi ldi
ld hl,SIZE_BUFFER.low ; "0 000 000 000" ld hl,SIZE_BUFFER.low ; "0 000 000 000"
pop ix pop ix
.PRZ: ld de,PRM3 ; 16 ¡ãä¥à .PRZ: ld de,Buffers.bat_params.PRM3; 16 ¡ãä¥à
jp ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢. jp ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢.
; ‘ª®¯¨à®¢ âì ¢ ¡ãä¥à ¤ âã ä ©« /¯ ¯ª¨ ; ‘ª®¯¨à®¢ âì ¢ ¡ãä¥à ¤ âã ä ©« /¯ ¯ª¨
@ -405,7 +407,7 @@ PRNDATE: ld c,(ix+FAT_DIRECTORY_RECORD.DATE)
call MAKE_DATE ; ¢ë¢®¤ ¢ ¡ãä¥à ¤ âë call MAKE_DATE ; ¢ë¢®¤ ¢ ¡ãä¥à ¤ âë
ld (hl),0 ld (hl),0
ld hl,SIZE_BUFFER.low ; "0 000 000 000" ld hl,SIZE_BUFFER.low ; "0 000 000 000"
ld de,PRM4 ; 16 ªã¤  ld de,Buffers.bat_params.PRM4; 16 ªã¤ 
jp ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢. jp ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢.
; ‘ª®¯¨à®¢ âì ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨ ; ‘ª®¯¨à®¢ âì ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
@ -415,7 +417,7 @@ PRNTIME: ld b,(ix+22)
call MAKE_TIME ; ᪮¯¨à. ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨ call MAKE_TIME ; ᪮¯¨à. ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
ld (hl),0 ld (hl),0
ld hl,SIZE_BUFFER.low ; "0 000 000 000" ld hl,SIZE_BUFFER.low ; "0 000 000 000"
ld de,PRM5 ; 80 ¡ãä¥à áâப¨ ld de,Buffers.bat_params.PRM5; 80 ¡ãä¥à áâப¨
jp ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢. jp ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢.
; ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨ ; ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
@ -738,24 +740,24 @@ read_disk_info: OR #80
; ­¥â ¬¥âª¨ ; ­¥â ¬¥âª¨
.no_volume_label:; %6 .no_volume_label:; %6
ld hl,volume_string_no ; áâப  ld hl,volume_string_no ; áâப 
ld de,PRM6 ; ªã¤  ld de,Buffers.bat_params.PRM6; ªã¤ 
call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬) call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬)
XOR A XOR A
LD (PRM7),A LD (Buffers.bat_params.PRM7),A
ret ret
.good_label: POP HL .good_label: POP HL
PUSH HL ; ⮫ª ¥¬ «¨è­¥¥ PUSH HL ; ⮫ª ¥¬ «¨è­¥¥
; ¥áâì ¬¥âª  ; ¥áâì ¬¥âª 
volume_label: POP DE ; á­¨¬ ¥¬ «¨è­¥¥ volume_label: POP DE ; á­¨¬ ¥¬ «¨è­¥¥
; %7 ; %7
ld de,PRM7 ld de,Buffers.bat_params.PRM7
ld bc,11 ;!HARDCODE ¤«¨­  ¬¥âª¨ ld bc,11 ;!HARDCODE ¤«¨­  ¬¥âª¨
ldir ldir
xor a xor a
ld (de),a ld (de),a
; %6 ; %6
ld hl,volume_string_yes ; áâப  ld hl,volume_string_yes ; áâப 
ld de,PRM6 ; ªã¤  ld de,Buffers.bat_params.PRM6; ªã¤ 
call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬) call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬)
ret ret
; ;

View File

@ -36,7 +36,7 @@ A862E: ld a,(echo_mode) ; 䫠
jr nz,$+5 ; false ;!FIXIT $ jr nz,$+5 ; false ;!FIXIT $
ld de,MAIN_MSG.OFF ; ¨­¤¥ªá "off" ld de,MAIN_MSG.OFF ; ¨­¤¥ªá "off"
call FMESAGE ; ­ ©â¨ áâப㠯® ¨­¤¥ªáã call FMESAGE ; ­ ©â¨ áâப㠯® ¨­¤¥ªáã
ld de,PRM1 ; ªã¤  ( à£ã¬¥­â %1) ld de,Buffers.bat_params.PRM1; ªã¤  ( à£ã¬¥­â %1)
call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢. call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢.
ld de,MAIN_MSG.ECHO ; ¨­¤¥ªá "Echo is %1" ld de,MAIN_MSG.ECHO ; ¨­¤¥ªá "Echo is %1"
jp ECHO_MESSAGE jp ECHO_MESSAGE

View File

@ -8,12 +8,12 @@ cmd_version:
RST ToDSS RST ToDSS
LD L,D LD L,D
LD H,E LD H,E
LD DE,PRM1 LD DE,Buffers.bat_params.PRM1
CALL .Set_Ver_to_PRM ; set DSS version CALL .Set_Ver_to_PRM ; set DSS version
;R13 ;R13
LD HL,256*CONSOLE_MODF + CONSOLE_VERS LD HL,256*CONSOLE_MODF + CONSOLE_VERS
LD BC,CONSOLE_BUILD LD BC,CONSOLE_BUILD
LD DE,PRM2 LD DE,Buffers.bat_params.PRM2
CALL .Set_Ver_to_PRM ; set Shell version CALL .Set_Ver_to_PRM ; set Shell version
;R13 ;R13
LD DE,MAIN_MSG.VERSION LD DE,MAIN_MSG.VERSION

View File

@ -24,7 +24,7 @@ invalid_param:
;------------------------------------------------- ;-------------------------------------------------
; ‚뢮¤ á®®¡é¥­¨ï ®è¨¡ª¨ ¯® ¨­¤¥ªáã ; ‚뢮¤ á®®¡é¥­¨ï ¯® ¨­¤¥ªáã
; ¢å®¤: de=¨­¤¥ªá áâப¨ ; ¢å®¤: de=¨­¤¥ªá áâப¨
;------------------------------------------------- ;-------------------------------------------------
ECHO_MESSAGE: ECHO_MESSAGE:
@ -94,7 +94,7 @@ PRINTZ: ld a,(hl)
LD L,A LD L,A
LD H,0 LD H,0
; ;
ld bc,PRM1 ; ¡ãä¥à ld bc,Buffers.bat_params.PRM1
add hl,bc add hl,bc
ld c,Dss.PChars ; ¢ë¢®¤ áâப¨ ld c,Dss.PChars ; ¢ë¢®¤ áâப¨
RST ToDSS RST ToDSS
@ -102,17 +102,14 @@ PRINTZ: ld a,(hl)
jp PRINTZ jp PRINTZ
;!FIXIT ¯¥à¥­¥á⨠ª ®¡é¨¬ ¡ãä¥à ¬ ª ª ã ¬¥­ï
; ¡ãä¥àë  à£ã¬¥­â®¢ ª®¬ ­¤­®© áâப¨ ; ¡ãä¥àë  à£ã¬¥­â®¢ ª®¬ ­¤­®© áâப¨
PRM1: BLOCK 16,0 ;  à£ã¬¥­â %1 ; PRM1: BLOCK 16,0 ;  à£ã¬¥­â %1
PRM2: BLOCK 16,0 ;  à£ã¬¥­â %2 ; PRM2: BLOCK 16,0 ;  à£ã¬¥­â %2
PRM3: BLOCK 16,0 ;  à£ã¬¥­â %3 ; PRM3: BLOCK 16,0 ;  à£ã¬¥­â %3
PRM4: BLOCK 16,0 ;  à£ã¬¥­â %4 ; PRM4: BLOCK 16,0 ;  à£ã¬¥­â %4
PRM5: BLOCK 16,0 ;  à£ã¬¥­â %5 ; PRM5: BLOCK 16,0 ;  à£ã¬¥­â %5
PRM6: BLOCK 16,0 ;  à£ã¬¥­â %6 ; PRM6: BLOCK 16,0 ;  à£ã¬¥­â %6
PRM7: BLOCK 16,0 ;  à£ã¬¥­â %7 ; PRM7: BLOCK 16,0 ;  à£ã¬¥­â %7
PRM8: BLOCK 16,0 ;  à£ã¬¥­â %8 ; PRM8: BLOCK 16,0 ;  à£ã¬¥­â %8
PRM9: BLOCK 16,0 ;  à£ã¬¥­â %9 ; PRM9: BLOCK 16,0 ;  à£ã¬¥­â %9
; ;

View File

@ -1 +1 @@
402 403

View File

@ -14,7 +14,21 @@
.free BLOCK 3840,0 .free BLOCK 3840,0
ENDS ENDS
; ¡ãä¥àë  à£ã¬¥­â®¢ ª®¬ ­¤­®© áâப¨
STRUCT BAT_PARAMS
.PRM1: BLOCK 16,0 ;  à£ã¬¥­â %1
.PRM2: BLOCK 16,0 ;  à£ã¬¥­â %2
.PRM3: BLOCK 16,0 ;  à£ã¬¥­â %3
.PRM4: BLOCK 16,0 ;  à£ã¬¥­â %4
.PRM5: BLOCK 16,0 ;  à£ã¬¥­â %5
.PRM6: BLOCK 16,0 ;  à£ã¬¥­â %6
.PRM7: BLOCK 16,0 ;  à£ã¬¥­â %7
.PRM8: BLOCK 16,0 ;  à£ã¬¥­â %8
.PRM9: BLOCK 16,0 ;  à£ã¬¥­â %9 Buffers.bat_params.
ENDS
STRUCT Struc_Buffers STRUCT Struc_Buffers
.bat_params BAT_PARAMS
.screen_path BLOCK 2 + max_screen_path + 1, 0 ; db "A:" : BLOCK max_screen_path+1,0 .screen_path BLOCK 2 + max_screen_path + 1, 0 ; db "A:" : BLOCK max_screen_path+1,0
.sys_path BLOCK 256,0 .sys_path BLOCK 256,0
.input_line Input_Line .input_line Input_Line