mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
...
This commit is contained in:
parent
da7b40b234
commit
6088a447f7
@ -408,7 +408,7 @@ EVALCMD: xor a
|
|||||||
call EVALSTR
|
call EVALSTR
|
||||||
ld hl,work_buffer2 ;work_buffer+256
|
ld hl,work_buffer2 ;work_buffer+256
|
||||||
ld de,struct_input_line+5 ; ªã¤
|
ld de,struct_input_line+5 ; ªã¤
|
||||||
ld bc,255
|
ld bc,255 ;!HARDCODE
|
||||||
.loop: ld a,(hl)
|
.loop: ld a,(hl)
|
||||||
ldi
|
ldi
|
||||||
inc b
|
inc b
|
||||||
|
|||||||
@ -7,6 +7,7 @@ cmd_dir: push de
|
|||||||
;;;; [ ] ¯®¤¤¥à¦ª ¯ à ¬¥â஢
|
;;;; [ ] ¯®¤¤¥à¦ª ¯ à ¬¥â஢
|
||||||
; § ã«ï¥¬ ¢á¥ ¯ à ¬¥âàë áâ àâ¥
|
; § ã«ï¥¬ ¢á¥ ¯ à ¬¥âàë áâ àâ¥
|
||||||
xor a
|
xor a
|
||||||
|
ld (work_buffer2),a
|
||||||
ld (read_disk_info.full),a
|
ld (read_disk_info.full),a
|
||||||
ld (.key_p),a
|
ld (.key_p),a
|
||||||
; ¢ë¯®«ï¥¬/ áâà ¨¢ ¥¬ ¢á¥ ©¤¥ë¥ ¯ à ¬¥âàë ¢ áâப¥
|
; ¢ë¯®«ï¥¬/ áâà ¨¢ ¥¬ ¢á¥ ©¤¥ë¥ ¯ à ¬¥âàë ¢ áâப¥
|
||||||
@ -21,10 +22,10 @@ cmd_dir: push de
|
|||||||
jr z,.skip
|
jr z,.skip
|
||||||
LD DE,MAIN_MSG.CALCULATING
|
LD DE,MAIN_MSG.CALCULATING
|
||||||
CALL MESSAGE
|
CALL MESSAGE
|
||||||
;
|
;!TEST 23/05/24
|
||||||
.skip: ld c,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
.skip: ;LD C,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||||
RST ToDSS
|
;RST ToDSS
|
||||||
call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
;CALL read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
||||||
;
|
;
|
||||||
pop de
|
pop de
|
||||||
xor a
|
xor a
|
||||||
@ -37,7 +38,7 @@ cmd_dir: push de
|
|||||||
ld (S_HIGH),a
|
ld (S_HIGH),a
|
||||||
;
|
;
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ld de,work_buffer1 ; 80
|
ld de,work_buffer1
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;!TODO âãâ ¢ work_buffer1 «¥¦¨â ¯ãâì ¨/¨«¨/«¨¡® ¬ áª ä ©«
|
;!TODO âãâ ¢ work_buffer1 «¥¦¨â ¯ãâì ¨/¨«¨/«¨¡® ¬ áª ä ©«
|
||||||
@ -47,19 +48,82 @@ cmd_dir: push de
|
|||||||
;
|
;
|
||||||
ld a,(work_buffer1)
|
ld a,(work_buffer1)
|
||||||
or a
|
or a
|
||||||
jr nz,.skipMask ; § ¤ ¬ ᪠¨¬ñ
|
;jr nz,.SkipMask ; § ¤ ¬ ᪠¨¬ñ
|
||||||
|
jr z,.NoSkipMask ; ¥ § ¤ ¬ ᪠¨¬ñ
|
||||||
|
; á®åà ¨âì ⥪ã騩 ¯ãâì ¢ work_buffer2
|
||||||
|
; ˆ§ ¡ãä¥à DE § ¯®¬¨âì ¬ áªã (¯¥à¢ë¥ á¯à ¢ ᨬ¢®«ë ¯®á«¥ ¯¥à¢®£® á¯à ¢ '\') ¨ ã¡à âì ¥ñ
|
||||||
|
; ¥á«¨ ¬ ᪨ ¥â ¨ ¯®á«¥¤¨© ¢ áâப¥ '\', â® ¯®â®¬ ¤®¡ ¢¨âì ¬ áªã ª ª ¢ "; ¤®¡ ¢«¥¨¥ ¬ ᪨"
|
||||||
|
; ᤥ« âì CD ¢ ¤¨à¥ªâ®à¨î ¨§ ¡ãä¥à DE
|
||||||
|
; make_short_path
|
||||||
;
|
;
|
||||||
ld hl,mask_fname ; "*.*"
|
ld hl,work_buffer1
|
||||||
|
ld bc,Dss.EX_Path.GET_ALL
|
||||||
|
rst ToDSS
|
||||||
|
;
|
||||||
|
and %00001100 ; ¨¬ï ¤¨áª ¨ ¯ãâì
|
||||||
|
jr z,.SkipMask
|
||||||
|
;
|
||||||
|
ld hl,work_buffer2+2
|
||||||
|
ld c,Dss.CurDir
|
||||||
|
rst ToDSS
|
||||||
|
ld c,Dss.CurDisk
|
||||||
|
rst ToDSS
|
||||||
|
add a,"A"
|
||||||
|
ld (work_buffer2),a
|
||||||
|
ld a,":"
|
||||||
|
ld (work_buffer2+1),a
|
||||||
|
;
|
||||||
|
xor a
|
||||||
|
ld hl,work_buffer1
|
||||||
|
ld bc,256
|
||||||
|
cpir
|
||||||
|
;!FIXIT ¯à®¢¥àª ®è¨¡ªã ¯® ä« £ã P/V
|
||||||
|
dec hl
|
||||||
|
ex de,hl
|
||||||
|
ld hl,256-1
|
||||||
|
and a
|
||||||
|
sbc hl,bc
|
||||||
|
ld b,h
|
||||||
|
ld c,l
|
||||||
|
ld a,'\' ;
|
||||||
|
ex de,hl
|
||||||
|
cpdr
|
||||||
|
;!FIXIT ¯à®¢¥àª ®è¨¡ªã ¯® ä« £ã P/V
|
||||||
|
inc hl
|
||||||
|
ld (hl),0
|
||||||
|
inc hl
|
||||||
|
ld de,PRM1
|
||||||
|
call ncopy_string ; á®åà 塞 ¬ áªã ä ©«
|
||||||
|
;
|
||||||
|
ld hl,work_buffer1
|
||||||
|
ld c,Dss.ChDir
|
||||||
|
rst ToDSS
|
||||||
|
;
|
||||||
|
ld hl,PRM1
|
||||||
|
ld de,work_buffer1
|
||||||
|
call ncopy_string ; ¢®ááâ ¢«¨¢ ¥¬ ¬ áªã ä ©«
|
||||||
|
;
|
||||||
|
ld a,(PRM1)
|
||||||
|
or a
|
||||||
|
jr nz,.SkipMask
|
||||||
|
;
|
||||||
|
; ¤®¡ ¢«¥¨¥ ¬ ᪨
|
||||||
|
.NoSkipMask: ld hl,mask_fname ; "*.*"
|
||||||
ld de,work_buffer1
|
ld de,work_buffer1
|
||||||
call copy_string
|
call copy_string
|
||||||
; [ ] 1/10/23
|
; !TEST 23/05/24
|
||||||
.skipMask: ld hl,work_buffer1 ; ¨¬ï ä ©«
|
.SkipMask: LD C,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||||
|
RST ToDSS
|
||||||
|
CALL read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
||||||
|
;
|
||||||
|
CALL Print_Header
|
||||||
|
; [ ] 01/10/23
|
||||||
|
ld hl,work_buffer1 ; ¨¬ï ä ©«
|
||||||
ld de,work_buffer1 ; 80 ¡ãä¥à
|
ld de,work_buffer1 ; 80 ¡ãä¥à
|
||||||
ld a,FAT_ATTR.NoVolID ; âਡãâ (¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ )
|
ld a,FAT_ATTR.NoVolID ; âਡãâ (¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ )
|
||||||
ld bc,Dss.F_First.FATname ; f_first (ä®à¬ â 11)
|
ld bc,Dss.F_First.FATname ; f_first (ä®à¬ â 11)
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JR C,.Dir_Empty ;R14
|
JR C,.Dir_Empty ;R14
|
||||||
CALL Print_Header
|
|
||||||
;
|
;
|
||||||
LD A,32-5 ; ª®«¨ç¥á⢮ áâப ¤® ®¦¨¤ ¨ï ª« ¢¨è¨ (á ¢ëç¥â®¬ § £®«®¢ª ) ;!HARDCODE
|
LD A,32-5 ; ª®«¨ç¥á⢮ áâப ¤® ®¦¨¤ ¨ï ª« ¢¨è¨ (á ¢ëç¥â®¬ § £®«®¢ª ) ;!HARDCODE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
@ -110,9 +174,9 @@ cmd_dir: push de
|
|||||||
ld (dir_number),hl
|
ld (dir_number),hl
|
||||||
jr .next
|
jr .next
|
||||||
;;R14
|
;;R14
|
||||||
.Dir_Empty: push af
|
.Dir_Empty: ;push af
|
||||||
CALL Print_Header
|
;CALL Print_Header
|
||||||
pop af
|
;pop af
|
||||||
CALL print_err_message
|
CALL print_err_message
|
||||||
jr .print
|
jr .print
|
||||||
;;R14
|
;;R14
|
||||||
@ -156,24 +220,17 @@ cmd_dir: push de
|
|||||||
;CALL PRINT_DWORD
|
;CALL PRINT_DWORD
|
||||||
CALL PRINT_5BYTES
|
CALL PRINT_5BYTES
|
||||||
;
|
;
|
||||||
; [ ] ¢ë¢®¤ ª®«¨ç¥á⢠¯ ¯®ª
|
; [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,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 ᨬ¢.
|
||||||
;
|
;
|
||||||
;!TEST
|
|
||||||
;ld hl,(dir_number)
|
|
||||||
;ld de,PRM3
|
|
||||||
;call hex2dec_ascii_16bit.n10000
|
|
||||||
; „¥áïâ¨çë© ¢ë¢®¤
|
; „¥áïâ¨çë© ¢ë¢®¤
|
||||||
ld hl,(dir_number)
|
ld hl,(dir_number)
|
||||||
ld ix,PRM4 ; ª®«-¢® ª â «®£®¢ ¢ ª â «®£¥
|
ld ix,PRM4 ; ª®«-¢® ª â «®£®¢ ¢ ª â «®£¥
|
||||||
call PDIGIT
|
call PDIGIT
|
||||||
;xor a
|
|
||||||
;ld (de),a
|
|
||||||
;
|
|
||||||
; full capacity
|
; full capacity
|
||||||
ld a,(full_space_high)
|
ld a,(full_space_high)
|
||||||
ld hl,(full_space_medium) ; áâ. à §àï¤
|
ld hl,(full_space_medium) ; áâ. à §àï¤
|
||||||
@ -184,6 +241,13 @@ cmd_dir: push de
|
|||||||
ld de,MAIN_MSG.DIR_2 ; ¨¤¥ªá " %1 file(s), %2 bytes, %3 Dir(s)"
|
ld de,MAIN_MSG.DIR_2 ; ¨¤¥ªá " %1 file(s), %2 bytes, %3 Dir(s)"
|
||||||
CALL MESSAGE ; ¢ë¢¥á⨠áâபã
|
CALL MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||||
;
|
;
|
||||||
|
; [ ] 23/05/2024
|
||||||
|
ld hl,work_buffer2
|
||||||
|
ld c,Dss.ChDir
|
||||||
|
ld a,(hl)
|
||||||
|
or a
|
||||||
|
call nz,ToDSS
|
||||||
|
;
|
||||||
ld a,(read_disk_info.full)
|
ld a,(read_disk_info.full)
|
||||||
and a
|
and a
|
||||||
;ld de,MAIN_MSG.CRLF
|
;ld de,MAIN_MSG.CRLF
|
||||||
@ -200,7 +264,9 @@ cmd_dir: push de
|
|||||||
;
|
;
|
||||||
ld de,MAIN_MSG.DIR_4 ; ¨¤¥ªá " %6 bytes free"
|
ld de,MAIN_MSG.DIR_4 ; ¨¤¥ªá " %6 bytes free"
|
||||||
jp MESSAGE
|
jp MESSAGE
|
||||||
;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
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,PRM5 ; and PRM6 ; ªã¤
|
||||||
@ -212,7 +278,7 @@ Print_Header: ; %1
|
|||||||
ld a,'"'
|
ld a,'"'
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
inc hl
|
inc hl
|
||||||
ld a,(screen_path) ; ¤¨áª
|
ld a,(screen_path) ; ¤¨áª ; !TODO ¢®â íâ® § ¬¥¨âì ¢ë¢®¤ ç¥á⮣® ¤¨áª
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
inc hl
|
inc hl
|
||||||
ld a,'"'
|
ld a,'"'
|
||||||
@ -224,6 +290,8 @@ Print_Header: ; %1
|
|||||||
ld hl,serial_string ; áâப á¥à¨©®£® ®¬¥à ¤¨áª
|
ld hl,serial_string ; áâப á¥à¨©®£® ®¬¥à ¤¨áª
|
||||||
ld de,PRM2 ; ªã¤
|
ld de,PRM2 ; ªã¤
|
||||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
|
; ¤¨áª ; !TODO ¢®â íâ® § ¬¥¨âì ¢ë¢®¤ ç¥á⮣® ¯ãâ¨
|
||||||
|
; ¯à¨¬¥à ¢ë¢®¤ ¤«¨®© áâப¨ ¯ã⨠¥áâì ¢ print_compath:
|
||||||
; %3
|
; %3
|
||||||
ld hl,screen_path ; !FIXIT ¥á«¨ ¢¢¥á⨠"DIR gamez\*.*", â® ®â®¡à ¦ ¥¬ë© ¯ãâì ¢ § £®«®¢ª¥ ¡ã¤¥â ¥¢¥àë¬
|
ld hl,screen_path ; !FIXIT ¥á«¨ ¢¢¥á⨠"DIR gamez\*.*", â® ®â®¡à ¦ ¥¬ë© ¯ãâì ¢ § £®«®¢ª¥ ¡ã¤¥â ¥¢¥àë¬
|
||||||
ld de,PRM3 ; 16 ¡ãä¥à
|
ld de,PRM3 ; 16 ¡ãä¥à
|
||||||
|
|||||||
115
SHELL/EDLINE.ASM
115
SHELL/EDLINE.ASM
@ -66,45 +66,9 @@ input_line:
|
|||||||
; ‚뢮¤ ¯ã⨠¢ ª®¬-áâப¥ íªà + ®¢ ï è¨à¨ ¯®«ï ¢¢®¤
|
; ‚뢮¤ ¯ã⨠¢ ª®¬-áâப¥ íªà + ®¢ ï è¨à¨ ¯®«ï ¢¢®¤
|
||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
print_compath:
|
print_compath:
|
||||||
; ã§ âì ¤«¨ã á¨áâ. ¯ãâ¨
|
|
||||||
ld hl,system_path ; á¨áâ. ¯ãâì
|
ld hl,system_path ; á¨áâ. ¯ãâì
|
||||||
ld e,l
|
ld de,screen_path+2 ; ¡ãä¥à ¤«ï ª®à®âª®£® ¯ãâ¨
|
||||||
ld d,h
|
call make_short_path
|
||||||
ld bc,max_len_comline ; 254
|
|
||||||
xor a
|
|
||||||
ld (print_compath_flag),a ; á¡à. ä« £
|
|
||||||
cpir
|
|
||||||
dec hl
|
|
||||||
push hl ; á®åà. ª®¥æ ¯ãâ¨
|
|
||||||
sbc hl,de
|
|
||||||
ld a,l ; ¤«¨ áâப¨
|
|
||||||
cp max_screen_path+1 ; 33
|
|
||||||
jr c,print_compath__
|
|
||||||
; ¤«¨ ¯ã⨠> 32
|
|
||||||
ld a,max_screen_path ; 32
|
|
||||||
ld (print_compath_flag),a ; ãáâ. ä« £
|
|
||||||
print_compath__:
|
|
||||||
ld c,a ; ¯®« ï ¤«¨ áâப¨
|
|
||||||
ld b,0
|
|
||||||
ex af,af' ; á®åà. ¤«¨ã áâப¨
|
|
||||||
pop hl ; ¢®ááâ. ª®¥æ ¯ãâ¨
|
|
||||||
ld de,screen_path+2 ; ªã¤
|
|
||||||
; ᪮¯¨à®¢ âì áâபã
|
|
||||||
and a
|
|
||||||
sbc hl,bc ; hl= ç «® ¯¥à¥ª 窨
|
|
||||||
ldir
|
|
||||||
print_compath_flag+1:
|
|
||||||
ld a,0 ; ä« £ ¯¥à¥¯®«. áâப¨
|
|
||||||
or a
|
|
||||||
jr z,print_compath1__
|
|
||||||
ld hl,screen_path+2
|
|
||||||
ld (hl),'\'
|
|
||||||
inc hl
|
|
||||||
ld a,"."
|
|
||||||
ld (hl),a
|
|
||||||
inc hl
|
|
||||||
ld (hl),a
|
|
||||||
print_compath1__:
|
|
||||||
xor a
|
xor a
|
||||||
ld (de),a ; § ã«¥¨¥ áâப¨
|
ld (de),a ; § ã«¥¨¥ áâப¨
|
||||||
ex af,af' ; ¢®ááâ. ¤«¨ã áâப¨
|
ex af,af' ; ¢®ááâ. ¤«¨ã áâப¨
|
||||||
@ -164,7 +128,7 @@ print_inpline:
|
|||||||
push de
|
push de
|
||||||
ld (de),a
|
ld (de),a
|
||||||
inc de
|
inc de
|
||||||
djnz $-2
|
djnz $-2 ; !FIXIT
|
||||||
ld a,(iy+0)
|
ld a,(iy+0)
|
||||||
sub (iy+3)
|
sub (iy+3)
|
||||||
cp c
|
cp c
|
||||||
@ -203,6 +167,45 @@ print_inpline:
|
|||||||
prne1__:ld (cursor_position),a ; X ¯®«®¦. ªãàá®à íªà ¥
|
prne1__:ld (cursor_position),a ; X ¯®«®¦. ªãàá®à íªà ¥
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
; ¢å®¤: HL - ¯®«ë© ¯ãâì
|
||||||
|
; DE - ¡ãä¥à ¤«ï ª®à®âª®© áâப¨ ¯ãâ¨
|
||||||
|
make_short_path:; ã§ âì ¤«¨ã á¨áâ. ¯ãâ¨
|
||||||
|
ld (.bufferAddr),de
|
||||||
|
ld e,l
|
||||||
|
ld d,h
|
||||||
|
ld bc,max_len_comline ; 254
|
||||||
|
xor a
|
||||||
|
ld (.flag),a ; á¡à. ä« £
|
||||||
|
cpir
|
||||||
|
dec hl
|
||||||
|
push hl ; á®åà. ª®¥æ ¯ãâ¨
|
||||||
|
sbc hl,de
|
||||||
|
ld a,l ; ¤«¨ áâப¨
|
||||||
|
cp max_screen_path+1 ; 33
|
||||||
|
jr c,.copy
|
||||||
|
; ¤«¨ ¯ã⨠> 32
|
||||||
|
ld a,max_screen_path ; 32
|
||||||
|
ld (.flag),a ; ãáâ. ä« £
|
||||||
|
.copy: ld c,a ; ¯®« ï ¤«¨ áâப¨
|
||||||
|
ld b,0
|
||||||
|
ex af,af' ; á®åà. ¤«¨ã áâப¨
|
||||||
|
pop hl ; ¢®ááâ. ª®¥æ ¯ãâ¨
|
||||||
|
.bufferAddr+1: ld de,0 ; ªã¤
|
||||||
|
; ᪮¯¨à®¢ âì áâபã
|
||||||
|
and a
|
||||||
|
sbc hl,bc ; hl= ç «® ¯¥à¥ª 窨
|
||||||
|
ldir
|
||||||
|
.flag+1: ld a,0 ; ä« £ ¯¥à¥¯®«. áâப¨
|
||||||
|
or a
|
||||||
|
ret z
|
||||||
|
ld hl,(.bufferAddr)
|
||||||
|
ld (hl),'\'
|
||||||
|
inc hl
|
||||||
|
ld a,"."
|
||||||
|
ld (hl),a
|
||||||
|
inc hl
|
||||||
|
ld (hl),a
|
||||||
|
ret
|
||||||
|
|
||||||
; ‚뢮¤ áâப¨ ¯® áç¥â稪ã
|
; ‚뢮¤ áâப¨ ¯® áç¥â稪ã
|
||||||
;print_inpchar:
|
;print_inpchar:
|
||||||
@ -988,24 +991,24 @@ screen_path:
|
|||||||
system_path:
|
system_path:
|
||||||
BLOCK 256,0 ;!HARDCODE
|
BLOCK 256,0 ;!HARDCODE
|
||||||
|
|
||||||
; 7 0
|
; ; 7 0
|
||||||
; ‘âàãªâãà áâப¨ ¢¢®¤ ~input line~
|
; ; ‘âàãªâãà áâப¨ ¢¢®¤ ~input line~
|
||||||
struct_input_line:
|
; struct_input_line:
|
||||||
db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
|
; db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
|
||||||
db 0 ;+1 ä« £ ReadyString
|
; db 0 ;+1 ä« £ ReadyString
|
||||||
db 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
; db 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
db 0 ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
; db 0 ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||||||
db 0 ;+4 ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
; db 0 ;+4 ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
||||||
ds max_len_comline+1 ;+5 áâப ¢¢®¤
|
; BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
||||||
|
|
||||||
; 8 0
|
; ; 8 0
|
||||||
; <EFBFBD>ãä¥à ¨áâ®à¨¨
|
; ; <EFBFBD>ãä¥à ¨áâ®à¨¨
|
||||||
history_buff:
|
; history_buff:
|
||||||
BLOCK history_size,0 ; 256
|
; BLOCK history_size,0 ; 256
|
||||||
|
|
||||||
; 9 0
|
; ; 9 0
|
||||||
; <EFBFBD> ¡®ç¨© ¡ãä¥à
|
; ; <EFBFBD> ¡®ç¨© ¡ãä¥à
|
||||||
work_buffer:
|
; work_buffer:
|
||||||
BLOCK 512,0
|
; BLOCK 512,0
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
@ -43,6 +43,7 @@
|
|||||||
include 'shared_includes/constants/dss_equ.inc'
|
include 'shared_includes/constants/dss_equ.inc'
|
||||||
include 'SHELL/version.inc'
|
include 'SHELL/version.inc'
|
||||||
include 'shared_includes/structures/FileSystem.inc'
|
include 'shared_includes/structures/FileSystem.inc'
|
||||||
|
include 'SHELL/structures.inc'
|
||||||
;
|
;
|
||||||
; Program EQU section
|
; Program EQU section
|
||||||
;---------------------------------------------------------------------[]
|
;---------------------------------------------------------------------[]
|
||||||
@ -54,7 +55,7 @@ false EQU 0
|
|||||||
Loader_length EQU 0
|
Loader_length EQU 0
|
||||||
code_addr EQU shell
|
code_addr EQU shell
|
||||||
program_start EQU shell
|
program_start EQU shell
|
||||||
stack_point EQU #BFFE
|
stack_point EQU #C000
|
||||||
org_addr EQU #8000 + CLP_Buffer
|
org_addr EQU #8000 + CLP_Buffer
|
||||||
;---------------------------------------------------------------------[]
|
;---------------------------------------------------------------------[]
|
||||||
;
|
;
|
||||||
@ -555,6 +556,33 @@ T8C24: db "OFF",0
|
|||||||
include 'Commands/reboot.asm' ; á®äâ à¥á¥â
|
include 'Commands/reboot.asm' ; á®äâ à¥á¥â
|
||||||
;
|
;
|
||||||
DISPLAY "Empty space for buffers from ",/H,$
|
DISPLAY "Empty space for buffers from ",/H,$
|
||||||
|
|
||||||
|
CLEAR_ZONE:
|
||||||
|
|
||||||
|
Buffers Struc_Buffers = $
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; 7 0
|
||||||
|
; ‘âàãªâãà áâப¨ ¢¢®¤ ~input line~
|
||||||
|
struct_input_line:
|
||||||
|
db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
|
||||||
|
db 0 ;+1 ä« £ ReadyString
|
||||||
|
db 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
|
db 0 ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||||||
|
db 0 ;+4 ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
||||||
|
BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
||||||
|
|
||||||
|
; 8 0
|
||||||
|
; <20>ãä¥à ¨áâ®à¨¨
|
||||||
|
history_buff:
|
||||||
|
BLOCK history_size,0 ; 256
|
||||||
|
|
||||||
|
; 9 0
|
||||||
|
; <20> ¡®ç¨© ¡ãä¥à
|
||||||
|
work_buffer:
|
||||||
|
BLOCK 512,0
|
||||||
|
|
||||||
work_buffer1 equ $ ; 2-© à ¡. ¡ãä¥à ; 128 bytes
|
work_buffer1 equ $ ; 2-© à ¡. ¡ãä¥à ; 128 bytes
|
||||||
work_buffer2 equ work_buffer1+128 ; 3-© à ¡. ¡ãä¥à ; 256 bytes
|
work_buffer2 equ work_buffer1+128 ; 3-© à ¡. ¡ãä¥à ; 256 bytes
|
||||||
;
|
;
|
||||||
@ -1 +1 @@
|
|||||||
365
|
370
|
||||||
25
SHELL/structures.inc
Normal file
25
SHELL/structures.inc
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
STRUCT Input_Line
|
||||||
|
.max_Len BYTE 254 ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
|
||||||
|
.ReadyString BYTE 0 ;+1 ä« £ ReadyString
|
||||||
|
.Cur_X BYTE 0 ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
|
.Left_Shift BYTE 0 ;+3 X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||||||
|
.Symbols_Num BYTE 0 ;+4 ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
||||||
|
.Path BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
||||||
|
ENDS
|
||||||
|
|
||||||
|
STRUCT History
|
||||||
|
.cmds BLOCK history_size,0 ; 256
|
||||||
|
ENDS
|
||||||
|
|
||||||
|
STRUCT Work
|
||||||
|
.work_buffer BLOCK 512,0
|
||||||
|
.work_buffer1 BLOCK 128,0
|
||||||
|
.work_buffer2 BLOCK 256,0
|
||||||
|
.free_buffer BLOCK 3840,0
|
||||||
|
ENDS
|
||||||
|
|
||||||
|
STRUCT Struc_Buffers
|
||||||
|
.input_line Input_Line
|
||||||
|
.history History
|
||||||
|
.work Work
|
||||||
|
ENDS
|
||||||
Loading…
Reference in New Issue
Block a user