mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-16 01:41:17 +03:00
добавлены ключи /f и /p для команды DIR
This commit is contained in:
parent
ce4125e4c6
commit
c5ca8e7597
@ -9,15 +9,21 @@ cmd_dir:
|
||||
; § ã«ï¥¬ ¢á¥ ¯ à ¬¥âàë áâ àâ¥
|
||||
xor a
|
||||
ld (read_disk_info.full),a
|
||||
|
||||
ld (.key_p),a
|
||||
|
||||
; ¢ë¯®«ï¥¬/ áâà ¨¢ ¥¬ ¢á¥ ©¤¥ë¥ ¯ à ¬¥âàë ¢ áâப¥
|
||||
ld hl,cmd_dir_options
|
||||
LD C,256-3 ;!HARDCODE ¤«¨ áâப¨ á ª®¬ ¤®©
|
||||
.parse: call RUN_OPTION
|
||||
jr nc,.skip
|
||||
.parse: ld hl,cmd_dir_options
|
||||
call RUN_OPTION
|
||||
jr nc,.end_opt
|
||||
jp (hl)
|
||||
;
|
||||
.end_opt:
|
||||
; ¢ë¢®¤¨¬ áâப㠮 à áçñ⥠᢮¡®¤®£® ¬¥áâ â ª, ç⮡ ® § âñà« áì
|
||||
ld a,(read_disk_info.full)
|
||||
and a
|
||||
jr z,.skip
|
||||
LD DE,MAIN_MSG.CALCULATING
|
||||
CALL MESSAGE
|
||||
.skip: ld c,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||
RST ToDSS
|
||||
ADD A,"A"
|
||||
@ -26,8 +32,6 @@ cmd_dir:
|
||||
call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
||||
;
|
||||
pop de
|
||||
ld a,#ff
|
||||
ld (.key_p),a
|
||||
ld hl,0
|
||||
ld (D88DC),hl
|
||||
ld (D88DE),hl
|
||||
@ -205,10 +209,10 @@ cmd_dir:
|
||||
;ld (de),a
|
||||
;
|
||||
;
|
||||
LD A,(read_disk_info.full)
|
||||
OR A
|
||||
ld hl,has_not_full_info
|
||||
JR Z,.skip_full_space
|
||||
;LD A,(read_disk_info.full)
|
||||
;OR A
|
||||
;ld hl,has_not_full_info
|
||||
;JR Z,.skip_full_space
|
||||
;
|
||||
ld hl,(free_space) ; ¬«. à §àï¤
|
||||
exx
|
||||
@ -217,13 +221,20 @@ cmd_dir:
|
||||
CALL Size2Char
|
||||
ld hl,T8B46 ; "0 000 000 000"
|
||||
;
|
||||
.skip_full_space:
|
||||
;.skip_full_space:
|
||||
ld de,PRM4 ; ªã¤
|
||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬), ¬ ªá.15 ᨬ¢.
|
||||
;
|
||||
;
|
||||
ld de,MAIN_MSG.DIR_2 ; ¨¤¥ªá " %1 file(s) %2 bytes"
|
||||
jp MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||
CALL MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||
ld a,(read_disk_info.full)
|
||||
and a
|
||||
ld de,MAIN_MSG.DIR_4 ;
|
||||
jp nz,MESSAGE
|
||||
ld de,MAIN_MSG.CRLF ;
|
||||
jp MESSAGE
|
||||
|
||||
|
||||
.Print_Header:
|
||||
; %1
|
||||
@ -243,7 +254,7 @@ cmd_dir:
|
||||
ld de,PRM3 ; 16 ¡ãä¥à
|
||||
CALL copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||
;
|
||||
ld de,MAIN_MSG.DIR_1 ; ¨¤¥ªá "Volume in drive %1..." ;!HARDCODE ®¬¥à áâப¨ MSG0
|
||||
ld de,MAIN_MSG.DIR_1 ; ¨¤¥ªá "Volume in drive %1..."
|
||||
JP MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||
;
|
||||
;
|
||||
@ -625,7 +636,7 @@ read_disk_info:
|
||||
.good_label:
|
||||
POP HL
|
||||
PUSH HL ; «¨è¥¥
|
||||
;!FIXIT ᤥ« âì ç¥à¥§ à£ã¬¥âë %1-%9
|
||||
|
||||
; ¥áâì ¬¥âª
|
||||
volume_label:
|
||||
pop DE ; «¨è¥¥
|
||||
@ -676,46 +687,46 @@ volume_string_no:
|
||||
db "has no label",0
|
||||
volume_string_yes:
|
||||
db "has label",0
|
||||
has_not_full_info:
|
||||
db ' (?)',0
|
||||
; has_not_full_info:
|
||||
; db ' (?)',0
|
||||
;
|
||||
cmd_dir_options:
|
||||
; [ ] ¯ à ¬¥âà /F - ¢ë¢®¤ ª®«¨ç¥á⢠᢮¡®¤®£® ¬¥áâ ¤¨áª¥ (â®à¬®§¨â, ¯®í⮬㠯 à ¬¥â஬)
|
||||
DB 'f' : DW cmd_dir_freeSpace
|
||||
;DB 'p' : DW cmd_dir_pause
|
||||
DB 'p' : DW cmd_dir_pause
|
||||
.Size EQU ($-cmd_dir_options)/3
|
||||
.paramLength equ 3
|
||||
;
|
||||
|
||||
;
|
||||
cmd_dir_freeSpace:
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
;PUSH DE
|
||||
;PUSH BC
|
||||
; § â¨à ¥¬ ©¤¥ë© ª«îç
|
||||
ld A,'/'
|
||||
ex de,hl
|
||||
ld bc,4
|
||||
CPDR
|
||||
inc hl
|
||||
ld (hl),' '
|
||||
inc hl
|
||||
ld (hl),' '
|
||||
; ld A,'/'
|
||||
; ex de,hl
|
||||
; ld bc,4
|
||||
; CPDR
|
||||
; inc hl
|
||||
; ld (hl),' '
|
||||
; inc hl
|
||||
; ld (hl),' '
|
||||
|
||||
; áâ ¢¨¬ ®¯æ¨î ¤«ï API DSS DskInfo
|
||||
ld a,1
|
||||
ld (read_disk_info.full),a
|
||||
; ¢ë¢®¤¨¬ áâப㠮 à áçñ⥠᢮¡®¤®£® ¬¥áâ â ª, ç⮡ ® § âñà« áì
|
||||
LD DE,MAIN_MSG.CALCULATING
|
||||
CALL MESSAGE
|
||||
; ; ¢ë¢®¤¨¬ áâப㠮 à áçñ⥠᢮¡®¤®£® ¬¥áâ â ª, ç⮡ ® § âñà« áì
|
||||
; LD DE,MAIN_MSG.CALCULATING
|
||||
; CALL MESSAGE
|
||||
; ¢®§¢à é ¥¬áï ¢ 横«
|
||||
POP BC
|
||||
POP DE
|
||||
;POP BC
|
||||
;POP DE
|
||||
jp cmd_dir.parse
|
||||
;
|
||||
; cmd_dir_pause:
|
||||
; xor a
|
||||
; ld (cmd_dir.key_p),a
|
||||
; jp cmd_dir.parse
|
||||
cmd_dir_pause:
|
||||
ld a,#ff
|
||||
ld (cmd_dir.key_p),a
|
||||
jp cmd_dir.parse
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
Size2Char:
|
||||
call A8A8F ; ¤¥áïâ¨çë© 32-å à §àï¤ë© ¢ë¢®¤
|
||||
|
||||
@ -34,7 +34,7 @@ A862E: ld a,(echo_mode) ; 䫠
|
||||
or a
|
||||
ld de,7 ; ¨¤¥ªá "on"
|
||||
jr nz,$+5 ; false
|
||||
ld de,8 ; 身丰花 "off"
|
||||
ld de,MAIN_MSG.OFF ; 身丰花 "off"
|
||||
call FMESAGE ; ©â¨ áâப㠯® ¨¤¥ªáã
|
||||
ld de,PRM1 ; ªã¤ ( à£ã¬¥â %1)
|
||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬), ¬ ªá.15 ᨬ¢.
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
;!TODO ¥ § ¡ëâì § ¬¥¨âì æ¨äàë í⨠¬¥âª¨
|
||||
MAIN_MSG:
|
||||
.DIR_1 EQU 0
|
||||
.VERSION EQU 1
|
||||
.DATE EQU 2
|
||||
.TIME EQU 3
|
||||
.PAUSE EQU 4
|
||||
.INVALID EQU 5
|
||||
.ECHO EQU 6
|
||||
.ON EQU 7
|
||||
.OFF EQU 8
|
||||
.DIR_2 EQU 9
|
||||
.DIR_3 EQU 10
|
||||
.HELP EQU 11
|
||||
.CALCULATING EQU 12
|
||||
.CRLF EQU 13
|
||||
|
||||
.TABLE: db 0
|
||||
/* 0 */ db "Volume in drive %1 %4 %5",CR,LF
|
||||
db "Volume Serial Number is %2",CR,LF
|
||||
db CR,LF,"Directory of %3",CR,LF,LF,0
|
||||
/* 1 */ db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13
|
||||
/* 2 */ db "Current date: %1",CR,LF,0
|
||||
/* 3 */ db "Current time: %1",CR,LF,0
|
||||
/* 4 */ db "Press any key to continue . . .",CR,0
|
||||
/* 5 */ db "Invalid parametr",CR,LF,0
|
||||
/* 6 */ db "Echo is %1",CR,LF,0
|
||||
/* 7 */ db "on",0
|
||||
/* 8 */ db "off",0
|
||||
/* 9 */ db " %1 File(s) %2 bytes",CR,LF
|
||||
db " %3 Dir(s) %4 bytes free",CR,LF,LF,0
|
||||
; db " %3 Dir(s)",CR,LF,LF,0
|
||||
/* 10 */ db "%1 %2 %3 %4 - %5",CR,LF,0 ;FILENAME EXT SIZE DATE TIME
|
||||
/* 11 */ DB "COMMANDS:",CR,LF,CR,LF
|
||||
DB "DIR REN | RENAME PATH HELP ",CR,LF
|
||||
DB "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
|
||||
DB "MD | MKDIR TIME ECHO EXIT ",CR,LF
|
||||
DB "RD | RMDIR DATE CLS REBOOT ",CR,LF,LF,0
|
||||
/* 12 */ DB "Calculating free space...",CR,0
|
||||
/* 13 */ DB CR,LF,0
|
||||
;R11
|
||||
DB 0
|
||||
DZ "Unknown command"
|
||||
;
|
||||
.TABLE.Size EQU $-.TABLE
|
||||
;
|
||||
59
SHELL/Messages/main_txt.asm
Normal file
59
SHELL/Messages/main_txt.asm
Normal file
@ -0,0 +1,59 @@
|
||||
|
||||
MACRO stN Name?
|
||||
@Name? EQU txtCounter
|
||||
!txtCounter=txtCounter+1
|
||||
ENDM
|
||||
|
||||
MAIN_MSG:
|
||||
; ¤«ï 㤮¡á⢠:
|
||||
.DIR_1 EQU .DIR_1_
|
||||
.VERSION EQU .VERS_
|
||||
.DATE EQU .DATE_
|
||||
.TIME EQU .TIME_
|
||||
.PAUSE EQU .PAUSE_
|
||||
.INVALID EQU .INV_
|
||||
.ECHO EQU .ECHO_
|
||||
.ON EQU .ON_
|
||||
.OFF EQU .OFF_
|
||||
.DIR_2 EQU .DIR_2_
|
||||
.DIR_3 EQU .DIR_3_
|
||||
.DIR_4 EQU .DIR_4_
|
||||
.HELP EQU .HELP_
|
||||
.CALCULATING EQU .CALC_
|
||||
.CRLF EQU .CRLF_
|
||||
;
|
||||
!txtCounter DEFL 0
|
||||
;
|
||||
.TABLE: : db 0
|
||||
stN .DIR_1_ : db "Volume in drive %1 %4 %5",CR,LF
|
||||
db "Volume Serial Number is %2",CR,LF
|
||||
db CR,LF,"Directory of %3",CR,LF,LF,0
|
||||
stN .VERS_ : db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13
|
||||
stN .DATE_ : db "Current date: %1",CR,LF,0
|
||||
stN .TIME_ : db "Current time: %1",CR,LF,0
|
||||
stN .PAUSE_ : db "Press any key to continue . . .",CR,0
|
||||
stN .INV_ : db "Invalid parametr",CR,LF,0
|
||||
stN .ECHO_ : db "Echo is %1",CR,LF,0
|
||||
stN .ON_ : db "on",0
|
||||
stN .OFF_ : db "off",0
|
||||
stN .DIR_2_ : db " %1 File(s) %2 bytes",CR,LF
|
||||
db " %3 Dir(s) ",0
|
||||
stN .DIR_4_ : db "%4 bytes free",CR,LF,0
|
||||
; db " %3 Dir(s) %4 bytes free",CR,LF,LF,0
|
||||
; : db " %3 Dir(s)",CR,LF,LF,0
|
||||
stN .DIR_3_ : db "%1 %2 %3 %4 - %5",CR,LF,0 ;FILENAME EXT SIZE DATE TIME
|
||||
stN .HELP_ : db "COMMANDS:",CR,LF,CR,LF
|
||||
db "DIR REN | RENAME PATH HELP ",CR,LF
|
||||
db "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
|
||||
db "MD | MKDIR TIME ECHO EXIT ",CR,LF
|
||||
db "RD | RMDIR DATE CLS REBOOT ",CR,LF,LF,0
|
||||
stN .CALC_ : db "Calculating free space...",CR,0
|
||||
stN .CRLF_ : db CR,LF,0
|
||||
; ;R11
|
||||
db 0
|
||||
DZ "Unknown command"
|
||||
; ;
|
||||
.TABLE.Size EQU $-.TABLE
|
||||
;
|
||||
!txtCounter=0
|
||||
;
|
||||
@ -82,10 +82,10 @@ RUN_OPTION:
|
||||
JR Z,.good
|
||||
AND A
|
||||
JR NZ,RUN_OPTION.loop
|
||||
LD C,1
|
||||
;LD C,1
|
||||
;
|
||||
.good: push hl
|
||||
dec hl
|
||||
.good: dec hl
|
||||
push hl
|
||||
ld b,cmd_dir_options.Size ;!HARDCODE
|
||||
ex de,hl
|
||||
ld a,(de)
|
||||
@ -100,7 +100,27 @@ RUN_OPTION:
|
||||
pop hl
|
||||
jr RUN_OPTION
|
||||
; found
|
||||
.found: pop de
|
||||
.found: ; § â¨à ¥¬ ©¤¥ë© ª«îç
|
||||
pop de
|
||||
ex de,hl
|
||||
ld (hl),' '
|
||||
dec hl
|
||||
ld (hl),' '
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
ex de,hl
|
||||
;ld A,'/'
|
||||
;ex de,hl
|
||||
;ld bc,4
|
||||
;CPDR
|
||||
;inc hl
|
||||
;ld (hl),' '
|
||||
;inc hl
|
||||
;ld (hl),' '
|
||||
;inc hl
|
||||
;ex de,hl
|
||||
;
|
||||
LD B,C
|
||||
inc hl
|
||||
ld a,(hl)
|
||||
|
||||
@ -525,8 +525,8 @@ T8C24: db "OFF",0
|
||||
include 'batch.asm' ; ¯ àᨣ bat-ä ©«®¢
|
||||
include 'exec.asm' ; ¢ë¯®«. ¢¢¥¤. ª®¬ ¤ á ª®á®«¨
|
||||
include 'procedures/print.asm' ; äãªæ¨¨ ¢ë¢®¤ á®®¡é¥¨©
|
||||
include 'messages/errors.asm' ; á®®¡é¥¨ï ®¡ ®è¨¡ª å
|
||||
include 'messages/main.asm' ; á®®¡é¥¨ï
|
||||
include 'messages/errors_txt.asm' ; á®®¡é¥¨ï ®¡ ®è¨¡ª å
|
||||
include 'messages/main_txt.asm' ; á®®¡é¥¨ï
|
||||
include 'procedures/parsers.asm' ; äãªæ¨¨ ¯à®ç¥áë¢ ¨ï ¨ ¢ë¡®à
|
||||
include 'procedures/math.asm' ; äãªæ¨¨ ¬ ⥬ â¨ç¥áª¨¥
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
201
|
||||
259
|
||||
Loading…
Reference in New Issue
Block a user