mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
SHELL: подвигал буферы; комманда DIR теперь работает с путями корректно
This commit is contained in:
parent
6088a447f7
commit
9ad718d6b3
@ -75,9 +75,9 @@ BATCH:
|
|||||||
;
|
;
|
||||||
|
|
||||||
push hl ; á®åà. ¨¬ï bat-ä ©«
|
push hl ; á®åà. ¨¬ï bat-ä ©«
|
||||||
ld de,work_buffer ; 512 ¬¥áâë© ¡ãä¥à
|
ld de,Buffers.work.buffer ; 512 ¬¥áâë© ¡ãä¥à
|
||||||
call copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
call copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
ld hl,work_buffer ; 512 ¬¥áâë© ¡ãä¥à
|
ld hl,Buffers.work.buffer ; 512 ¬¥áâë© ¡ãä¥à
|
||||||
ld de,BAT_PRM_ARRAY ; â ¡«¨æ 㪠§ â. "ZERO".."NINE"
|
ld de,BAT_PRM_ARRAY ; â ¡«¨æ 㪠§ â. "ZERO".."NINE"
|
||||||
ld b,BAT_PRM_ARRAY.TOTAL ; ç¨á«® á«®¢ "ZERO".."NINE"
|
ld b,BAT_PRM_ARRAY.TOTAL ; ç¨á«® á«®¢ "ZERO".."NINE"
|
||||||
call MAKE_BATCH_PRM_ARRAY
|
call MAKE_BATCH_PRM_ARRAY
|
||||||
@ -123,15 +123,15 @@ BATCH:
|
|||||||
ret
|
ret
|
||||||
; [x] 11/12/23 ¢«®¦¥ë¥ bat
|
; [x] 11/12/23 ¢«®¦¥ë¥ bat
|
||||||
.new_process:
|
.new_process:
|
||||||
ld de,work_buffer2
|
ld de,Buffers.work.buffer2
|
||||||
call copy_string
|
call copy_string
|
||||||
;
|
;
|
||||||
ld hl,.shell
|
ld hl,.shell
|
||||||
ld de,struct_input_line+5
|
ld de,Buffers.input_line.Path
|
||||||
call copy_string
|
call copy_string
|
||||||
;
|
;
|
||||||
ld hl,work_buffer2
|
ld hl,Buffers.work.buffer2
|
||||||
ld de,struct_input_line+5 + .shell.size - 1
|
ld de,Buffers.input_line.Path + .shell.size - 1
|
||||||
call copy_string
|
call copy_string
|
||||||
;
|
;
|
||||||
; ld c,Dss.CurDisk
|
; ld c,Dss.CurDisk
|
||||||
@ -139,7 +139,7 @@ BATCH:
|
|||||||
; add a,'A'
|
; add a,'A'
|
||||||
; ld (.shell),a
|
; ld (.shell),a
|
||||||
;
|
;
|
||||||
ld hl,struct_input_line+5
|
ld hl,Buffers.input_line.Path
|
||||||
ld bc,Dss.Exec
|
ld bc,Dss.Exec
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||||||
@ -172,9 +172,9 @@ BATCH:
|
|||||||
NEWLINE:
|
NEWLINE:
|
||||||
LD (cmd_break.sp),SP ; [x] 11/12/23 cmd_break
|
LD (cmd_break.sp),SP ; [x] 11/12/23 cmd_break
|
||||||
;
|
;
|
||||||
ld de,struct_input_line+5 ;!HARDCODE
|
ld de,Buffers.input_line.Path
|
||||||
.ADDBAT: push de
|
.ADDBAT: push de
|
||||||
call READBAT ; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©« ¢ "work_buffer1"
|
call READBAT ; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©« ¢ "Buffers.work.buffer1"
|
||||||
pop de
|
pop de
|
||||||
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , ¢ë¢®¤¨âì ®è¨¡ªã
|
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , ¢ë¢®¤¨âì ®è¨¡ªã
|
||||||
jp c,cmd_break.exit
|
jp c,cmd_break.exit
|
||||||
@ -182,11 +182,11 @@ NEWLINE:
|
|||||||
jr nz,.BATLINE
|
jr nz,.BATLINE
|
||||||
;
|
;
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ld de,struct_input_line+5
|
ld de,Buffers.input_line.Path
|
||||||
sbc hl,de
|
sbc hl,de
|
||||||
jp z,cmd_break.exit; ;[x] <Vasil> ã¡à ¡ £ á ¥§ ªàëâë¬ BAT-ä ©«®¬
|
jp z,cmd_break.exit; ;[x] <Vasil> ã¡à ¡ £ á ¥§ ªàëâë¬ BAT-ä ©«®¬
|
||||||
ld a,l
|
ld a,l
|
||||||
ld (struct_input_line+4),a ; ¤«¨ áâப¨
|
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨ áâப¨
|
||||||
call CMDMODE ; â¥áâ bat-ª®¬ ¤ë
|
call CMDMODE ; â¥áâ bat-ª®¬ ¤ë
|
||||||
; ^^^^^^^
|
; ^^^^^^^
|
||||||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||||||
@ -200,21 +200,21 @@ NEWLINE:
|
|||||||
; ret
|
; ret
|
||||||
;
|
;
|
||||||
.BATLINE:
|
.BATLINE:
|
||||||
ld hl,work_buffer1
|
ld hl,Buffers.work.buffer1
|
||||||
.loop: call MOVWORD ; ᪮¯¨à. work_buffer1 -> struct_input_line+5
|
.loop: call MOVWORD ; ᪮¯¨à. Buffers.work.buffer1 -> Buffers.input_line.Path
|
||||||
jr c,.ADDBAT
|
jr c,.ADDBAT
|
||||||
ld a,b
|
ld a,b
|
||||||
ld (MOVWORD.count),a ; ®áâ «®áì ¯à®¯ àá¨âì ¯à®ç¨â ëå ¡ ©â®¢
|
ld (MOVWORD.count),a ; ®áâ «®áì ¯à®¯ àá¨âì ¯à®ç¨â ëå ¡ ©â®¢
|
||||||
push hl
|
push hl
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ld de,struct_input_line+5
|
ld de,Buffers.input_line.Path
|
||||||
sbc hl,de
|
sbc hl,de
|
||||||
ld a,l
|
ld a,l
|
||||||
ld (struct_input_line+4),a ; ¤«¨ áâப¨
|
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨ áâப¨
|
||||||
call CMDMODE ; â¥áâ bat-ª®¬ ¤ë
|
call CMDMODE ; â¥áâ bat-ª®¬ ¤ë
|
||||||
; ^^^^^^^
|
; ^^^^^^^
|
||||||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||||||
ld de,struct_input_line+5
|
ld de,Buffers.input_line.Path
|
||||||
pop hl
|
pop hl
|
||||||
jr .loop
|
jr .loop
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ MOVWORD:
|
|||||||
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , ¢ë¢®¤¨âì ®è¨¡ªã
|
;!TODO ¤®¤¥« âì âã⠮ଠ«ìãî ¯à®¢¥àªã ®¡«®¬ á ç⥨¥¬ ä ©« , ¢ë¢®¤¨âì ®è¨¡ªã
|
||||||
RET C
|
RET C
|
||||||
;ld hl,BATBUFF ; 128 ¡ãä¥à (ccp.asm) "work_buffer1"
|
;ld hl,BATBUFF ; 128 ¡ãä¥à (ccp.asm) "work_buffer1"
|
||||||
ld hl,work_buffer1
|
ld hl,Buffers.work.buffer1
|
||||||
ld b,a ; ç¨á«® ¯à®ç¨â. ¡ ©â
|
ld b,a ; ç¨á«® ¯à®ç¨â. ¡ ©â
|
||||||
or a
|
or a
|
||||||
jr nz,.loop2
|
jr nz,.loop2
|
||||||
@ -264,8 +264,7 @@ MOVWORD:
|
|||||||
|
|
||||||
; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©«
|
; ¯à®ç¨â âì 128 ¡ ©â ¨§ ä ©«
|
||||||
READBAT:
|
READBAT:
|
||||||
;ld hl,T99B9 ; 128 ¡ãä¥à ¯®¤ ¤ ë¥ (ccp.asm) "work_buffer1"
|
ld hl,Buffers.work.buffer1
|
||||||
ld hl,work_buffer1
|
|
||||||
ld de,128 ; ᪮«ìª®
|
ld de,128 ; ᪮«ìª®
|
||||||
ld a,(BAT_FM) ; ¤¥áªà. bat-ä ©«
|
ld a,(BAT_FM) ; ¤¥áªà. bat-ä ©«
|
||||||
ld c,Dss.Read ; ç⥨¥ ä ©«
|
ld c,Dss.Read ; ç⥨¥ ä ©«
|
||||||
@ -288,18 +287,18 @@ CMDMODE:
|
|||||||
call EVALCMD ; (batch.asm)
|
call EVALCMD ; (batch.asm)
|
||||||
;ld ix,T96AC ; 㦮?? § ª®¬¥â ਫ (inline.asm)
|
;ld ix,T96AC ; 㦮?? § ª®¬¥â ਫ (inline.asm)
|
||||||
;ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
|
;ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
|
||||||
ld hl,struct_input_line+5
|
ld hl,Buffers.input_line.Path
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
cp "@" ; 40h
|
cp "@" ; 40h
|
||||||
jr nz,.A8240
|
jr nz,.A8240
|
||||||
dec hl
|
dec hl
|
||||||
;ld hl,struct_input_line+4;;
|
;ld hl,Buffers.input_line.Symbols_Num;;
|
||||||
dec (hl)
|
dec (hl)
|
||||||
jr z,.A825B
|
jr z,.A825B
|
||||||
ld c,(hl) ; ¤«¨ áâப¨
|
ld c,(hl) ; ¤«¨ áâப¨
|
||||||
inc hl
|
inc hl
|
||||||
ld b,0
|
ld b,0
|
||||||
;ld hl,work_buffer+256;;
|
;ld hl,Buffers.work.buffer+256;;
|
||||||
ld d,h
|
ld d,h
|
||||||
ld e,l
|
ld e,l
|
||||||
inc hl
|
inc hl
|
||||||
@ -311,7 +310,7 @@ CMDMODE:
|
|||||||
jr z,.A825B ; off
|
jr z,.A825B ; off
|
||||||
; ¢ë¢¥á⨠á¨áâ. ¯ãâì ¨ áâபã ᮤ¥à¦¨¬®£® bat-ä ©«
|
; ¢ë¢¥á⨠á¨áâ. ¯ãâì ¨ áâபã ᮤ¥à¦¨¬®£® bat-ä ©«
|
||||||
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
|
;ld de,T96AE ;;256 ¡ãä¥à (inline.asm)
|
||||||
;ld de,struct_input_line+5
|
;ld de,Buffers.input_line.Path
|
||||||
;call A95DE ; ¢ë¢®¤ íªà . ¯ã⨠á ">" (inline.asm)
|
;call A95DE ; ¢ë¢®¤ íªà . ¯ã⨠á ">" (inline.asm)
|
||||||
; ¢ë¢¥á⨠íªà . ¯ãâì ¨ ¢¢¥¤. ª®¬ ¤ã
|
; ¢ë¢¥á⨠íªà . ¯ãâì ¨ ¢¢¥¤. ª®¬ ¤ã
|
||||||
ld c,BIOS.LP_GET_PLACE ; ã§ âì ¯®«®¦. ªãàá®à
|
ld c,BIOS.LP_GET_PLACE ; ã§ âì ¯®«®¦. ªãàá®à
|
||||||
@ -322,8 +321,8 @@ CMDMODE:
|
|||||||
ld de,(YXpos) ; Y/X ç «® ª®¬-áâப¨
|
ld de,(YXpos) ; Y/X ç «® ª®¬-áâப¨
|
||||||
ld c,Dss.Locate ; ãáâ. ¯®«®¦. ªãàá®à
|
ld c,Dss.Locate ; ãáâ. ¯®«®¦. ªãàá®à
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,work_buffer+256;;
|
;ld hl,Buffers.work.buffer+256;;
|
||||||
ld hl,struct_input_line+4 ; ¤«¨ áâப¨
|
ld hl,Buffers.input_line.Symbols_Num ; ¤«¨ áâப¨
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
ld b,a
|
ld b,a
|
||||||
inc hl ;+5
|
inc hl ;+5
|
||||||
@ -348,25 +347,25 @@ CMDMODE:
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
;ld a,(D96AD) ;; ¤«¨ áâப¨ (inline.asm)
|
;ld a,(D96AD) ;; ¤«¨ áâப¨ (inline.asm)
|
||||||
;ld a,(struct_input_line+4);-
|
;ld a,(Buffers.input_line.Symbols_Num);-
|
||||||
;or a
|
;or a
|
||||||
;ret z
|
;ret z
|
||||||
;call newline
|
;call newline
|
||||||
;jr A8264
|
;jr A8264
|
||||||
;
|
;
|
||||||
.A825B: ;ld a,(D96AD) ;; ¤«¨ áâப¨ (inline.asm)
|
.A825B: ;ld a,(D96AD) ;; ¤«¨ áâப¨ (inline.asm)
|
||||||
ld a,(struct_input_line+4)
|
ld a,(Buffers.input_line.Symbols_Num)
|
||||||
or a
|
or a
|
||||||
ret z
|
ret z
|
||||||
;A8264: ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
|
;A8264: ld hl,T96AE ;;256 ¡ãä¥à (inline.asm)
|
||||||
;ld hl,struct_input_line+5
|
;ld hl,Buffers.input_line.Path
|
||||||
;dec hl
|
;dec hl
|
||||||
; ã¡à âì ª®æ¥¢ë¥ ¯à®¡¥«ë áâப¨
|
; ã¡à âì ª®æ¥¢ë¥ ¯à®¡¥«ë áâப¨
|
||||||
ld hl,struct_input_line+4
|
ld hl,Buffers.input_line.Symbols_Num
|
||||||
ld c,(hl) ; hl=¤«¨ áâப¨ (inline.asm)
|
ld c,(hl) ; hl=¤«¨ áâப¨ (inline.asm)
|
||||||
ld b,0
|
ld b,0
|
||||||
inc hl
|
inc hl
|
||||||
;ld hl,work_buffer+256;;
|
;ld hl,Buffers.work.buffer+256;;
|
||||||
.A826C: ld a,(hl)
|
.A826C: ld a,(hl)
|
||||||
cp " "
|
cp " "
|
||||||
jr nz,.A8276
|
jr nz,.A8276
|
||||||
@ -391,23 +390,23 @@ CMDMODE:
|
|||||||
ld c,a ; ¤«¨ á«®¢ ¨«¨ áâப¨ ?
|
ld c,a ; ¤«¨ á«®¢ ¨«¨ áâப¨ ?
|
||||||
ld hl,BATLIST ; ª®¬ ¤ë bat + dos-ª®¬ ¤ë
|
ld hl,BATLIST ; ª®¬ ¤ë bat + dos-ª®¬ ¤ë
|
||||||
;
|
;
|
||||||
; de=struct_input_line+5, c=¤«¨ áâப¨ (¡¥§ ª®æ. ¯à®¡¥«®¢)
|
; de=Buffers.input_line.Path, c=¤«¨ áâப¨ (¡¥§ ª®æ. ¯à®¡¥«®¢)
|
||||||
; ¢ë¯®«. ª®¬ ¤ã ¨«¨ § ¯ãáâ¨âì ä ©«
|
; ¢ë¯®«. ª®¬ ¤ã ¨«¨ § ¯ãáâ¨âì ä ©«
|
||||||
jp COMP.start
|
jp COMP.start
|
||||||
|
|
||||||
; ¤®«¦ ã¡à âì ª®æ. ¯à®¡¥«ë ¨ ãáâ. ¤«¨ã áâப¨, ¥á«¨ ã१ « áì
|
; ¤®«¦ ã¡à âì ª®æ. ¯à®¡¥«ë ¨ ãáâ. ¤«¨ã áâப¨, ¥á«¨ ã१ « áì
|
||||||
EVALCMD: xor a
|
EVALCMD: xor a
|
||||||
ld hl,struct_input_line+4 ;!HARDCODE
|
ld hl,Buffers.input_line.Symbols_Num ;!HARDCODE
|
||||||
ld c,(hl)
|
ld c,(hl)
|
||||||
ld b,a
|
ld b,a
|
||||||
inc hl
|
inc hl
|
||||||
add hl,bc
|
add hl,bc
|
||||||
ld (hl),a ; 0 ¢ ª®¥æ áâப¨
|
ld (hl),a ; 0 ¢ ª®¥æ áâப¨
|
||||||
sbc hl,bc
|
sbc hl,bc
|
||||||
ld de,work_buffer2 ; 256 ¡ãä¥à
|
ld de,Buffers.work.buffer2 ; 256 ¡ãä¥à
|
||||||
call EVALSTR
|
call EVALSTR
|
||||||
ld hl,work_buffer2 ;work_buffer+256
|
ld hl,Buffers.work.buffer2 ;work_buffer+256
|
||||||
ld de,struct_input_line+5 ; ªã¤
|
ld de,Buffers.input_line.Path ; ªã¤
|
||||||
ld bc,255 ;!HARDCODE
|
ld bc,255 ;!HARDCODE
|
||||||
.loop: ld a,(hl)
|
.loop: ld a,(hl)
|
||||||
ldi
|
ldi
|
||||||
@ -416,7 +415,7 @@ EVALCMD: xor a
|
|||||||
jr nz,.loop
|
jr nz,.loop
|
||||||
dec b
|
dec b
|
||||||
ld a,b
|
ld a,b
|
||||||
ld (struct_input_line+4),a ; ¤«¨ áâப¨ (edline.asm)
|
ld (Buffers.input_line.Symbols_Num),a ; ¤«¨ áâப¨ (edline.asm)
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_chdir:
|
cmd_chdir:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
xor a
|
xor a
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
cp (hl)
|
cp (hl)
|
||||||
jr nz,.chdir
|
jr nz,.chdir
|
||||||
ld (hl),"." ; ".." த¨â. ¯ ¯ª
|
ld (hl),"." ; ".." த¨â. ¯ ¯ª
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_cls: ex de,hl ; hl=ª®¬-áâப
|
cmd_cls: ex de,hl ; hl=ª®¬-áâப
|
||||||
;ld de,T9186 ; ¡ãä¥à ¯®¤ ¯ à ¬¥âà
|
;ld de,T9186 ; ¡ãä¥à ¯®¤ ¯ à ¬¥âà
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
push de
|
push de
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
|
|||||||
@ -9,10 +9,10 @@
|
|||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_date:
|
cmd_date:
|
||||||
ex de,hl ; hl=ª®¬-áâப
|
ex de,hl ; hl=ª®¬-áâப
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld a,(de)
|
ld a,(de)
|
||||||
or a
|
or a
|
||||||
jr z,.cmd_dt1
|
jr z,.cmd_dt1
|
||||||
@ -104,11 +104,11 @@ cmd_date:
|
|||||||
cmd_time:
|
cmd_time:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
;ld de,T9186
|
;ld de,T9186
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch
|
ld c,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld de,T9186
|
;ld de,T9186
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld a,(de)
|
ld a,(de)
|
||||||
or a
|
or a
|
||||||
jr z,cmd_tm1
|
jr z,cmd_tm1
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
;
|
;
|
||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_del: ex de,hl
|
cmd_del: ex de,hl
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch
|
ld c,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld c,Dss.Delete
|
ld c,Dss.Delete
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
|||||||
@ -7,7 +7,7 @@ cmd_dir: push de
|
|||||||
;;;; [ ] ¯®¤¤¥à¦ª ¯ à ¬¥â஢
|
;;;; [ ] ¯®¤¤¥à¦ª ¯ à ¬¥â஢
|
||||||
; § ã«ï¥¬ ¢á¥ ¯ à ¬¥âàë áâ àâ¥
|
; § ã«ï¥¬ ¢á¥ ¯ à ¬¥âàë áâ àâ¥
|
||||||
xor a
|
xor a
|
||||||
ld (work_buffer2),a
|
ld (Buffers.work.buffer2),a
|
||||||
ld (read_disk_info.full),a
|
ld (read_disk_info.full),a
|
||||||
ld (.key_p),a
|
ld (.key_p),a
|
||||||
; ¢ë¯®«ï¥¬/ áâà ¨¢ ¥¬ ¢á¥ ©¤¥ë¥ ¯ à ¬¥âàë ¢ áâப¥
|
; ¢ë¯®«ï¥¬/ áâà ¨¢ ¥¬ ¢á¥ ©¤¥ë¥ ¯ à ¬¥âàë ¢ áâப¥
|
||||||
@ -38,43 +38,43 @@ cmd_dir: push de
|
|||||||
ld (S_HIGH),a
|
ld (S_HIGH),a
|
||||||
;
|
;
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ld de,work_buffer1
|
ld de,Buffers.work.buffer1
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;!TODO âãâ ¢ work_buffer1 «¥¦¨â ¯ãâì ¨/¨«¨/«¨¡® ¬ áª ä ©«
|
;!TODO âãâ ¢ Buffers.work.buffer1 «¥¦¨â ¯ãâì ¨/¨«¨/«¨¡® ¬ áª ä ©«
|
||||||
; ¤® à §®¡à âì ¥ñ Dss.EX_Path ¢ë¤¥«¨âì ¥á«¨ ¥áâì ¤¨áª, ¯ãâì ¨ ¬ áªã, ¯®á«¥ 祣® 㦥
|
; ¤® à §®¡à âì ¥ñ Dss.EX_Path ¢ë¤¥«¨âì ¥á«¨ ¥áâì ¤¨áª, ¯ãâì ¨ ¬ áªã, ¯®á«¥ 祣® 㦥
|
||||||
; ®â¯¥ç âë¢ âì ¯ãâì ¢ è ¯ª¥, ã§ ¢ âì CurDisk ª ª ¢ .skip ¢ëè¥. „¥« âì íâ® ¤® ¢ë§®¢
|
; ®â¯¥ç âë¢ âì ¯ãâì ¢ è ¯ª¥, ã§ ¢ âì CurDisk ª ª ¢ .skip ¢ëè¥. „¥« âì íâ® ¤® ¢ë§®¢
|
||||||
; ¯à®æ¥¤ãàë read_disk_info. ‹ãçè¥ ¤¥« âì íâ® ¯®á«¥ ¬¥âª¨ .skip
|
; ¯à®æ¥¤ãàë read_disk_info. ‹ãçè¥ ¤¥« âì íâ® ¯®á«¥ ¬¥âª¨ .skip
|
||||||
;
|
;
|
||||||
ld a,(work_buffer1)
|
ld a,(Buffers.work.buffer1)
|
||||||
or a
|
or a
|
||||||
;jr nz,.SkipMask ; § ¤ ¬ ᪠¨¬ñ
|
;jr nz,.SkipMask ; § ¤ ¬ ᪠¨¬ñ
|
||||||
jr z,.NoSkipMask ; ¥ § ¤ ¬ ᪠¨¬ñ
|
jr z,.NoSkipMask ; ¥ § ¤ ¬ ᪠¨¬ñ
|
||||||
; á®åà ¨âì ⥪ã騩 ¯ãâì ¢ work_buffer2
|
; á®åà ¨âì ⥪ã騩 ¯ãâì ¢ Buffers.work.buffer2
|
||||||
; ˆ§ ¡ãä¥à DE § ¯®¬¨âì ¬ áªã (¯¥à¢ë¥ á¯à ¢ ᨬ¢®«ë ¯®á«¥ ¯¥à¢®£® á¯à ¢ '\') ¨ ã¡à âì ¥ñ
|
; ˆ§ ¡ãä¥à DE § ¯®¬¨âì ¬ áªã (¯¥à¢ë¥ á¯à ¢ ᨬ¢®«ë ¯®á«¥ ¯¥à¢®£® á¯à ¢ '\') ¨ ã¡à âì ¥ñ
|
||||||
; ¥á«¨ ¬ ᪨ ¥â ¨ ¯®á«¥¤¨© ¢ áâப¥ '\', â® ¯®â®¬ ¤®¡ ¢¨âì ¬ áªã ª ª ¢ "; ¤®¡ ¢«¥¨¥ ¬ ᪨"
|
; ¥á«¨ ¬ ᪨ ¥â ¨ ¯®á«¥¤¨© ¢ áâப¥ '\', â® ¯®â®¬ ¤®¡ ¢¨âì ¬ áªã ª ª ¢ "; ¤®¡ ¢«¥¨¥ ¬ ᪨"
|
||||||
; ᤥ« âì CD ¢ ¤¨à¥ªâ®à¨î ¨§ ¡ãä¥à DE
|
; ᤥ« âì CD ¢ ¤¨à¥ªâ®à¨î ¨§ ¡ãä¥à DE
|
||||||
; make_short_path
|
; make_short_path
|
||||||
;
|
;
|
||||||
ld hl,work_buffer1
|
ld hl,Buffers.work.buffer1
|
||||||
ld bc,Dss.EX_Path.GET_ALL
|
ld bc,Dss.EX_Path.GET_ALL
|
||||||
rst ToDSS
|
rst ToDSS
|
||||||
;
|
;
|
||||||
and %00001100 ; ¨¬ï ¤¨áª ¨ ¯ãâì
|
and %00001100 ; ¨¬ï ¤¨áª ¨ ¯ãâì
|
||||||
jr z,.SkipMask
|
jr z,.SkipMask
|
||||||
;
|
;
|
||||||
ld hl,work_buffer2+2
|
ld hl,Buffers.work.buffer2+2
|
||||||
ld c,Dss.CurDir
|
ld c,Dss.CurDir
|
||||||
rst ToDSS
|
rst ToDSS
|
||||||
ld c,Dss.CurDisk
|
ld c,Dss.CurDisk
|
||||||
rst ToDSS
|
rst ToDSS
|
||||||
add a,"A"
|
add a,"A"
|
||||||
ld (work_buffer2),a
|
ld (Buffers.work.buffer2),a
|
||||||
ld a,":"
|
ld a,":"
|
||||||
ld (work_buffer2+1),a
|
ld (Buffers.work.buffer2+1),a
|
||||||
;
|
;
|
||||||
xor a
|
xor a
|
||||||
ld hl,work_buffer1
|
ld hl,Buffers.work.buffer1
|
||||||
ld bc,256
|
ld bc,256
|
||||||
cpir
|
cpir
|
||||||
;!FIXIT ¯à®¢¥àª ®è¨¡ªã ¯® ä« £ã P/V
|
;!FIXIT ¯à®¢¥àª ®è¨¡ªã ¯® ä« £ã P/V
|
||||||
@ -95,12 +95,12 @@ cmd_dir: push de
|
|||||||
ld de,PRM1
|
ld de,PRM1
|
||||||
call ncopy_string ; á®åà 塞 ¬ áªã ä ©«
|
call ncopy_string ; á®åà 塞 ¬ áªã ä ©«
|
||||||
;
|
;
|
||||||
ld hl,work_buffer1
|
ld hl,Buffers.work.buffer1
|
||||||
ld c,Dss.ChDir
|
ld c,Dss.ChDir
|
||||||
rst ToDSS
|
rst ToDSS
|
||||||
;
|
;
|
||||||
ld hl,PRM1
|
ld hl,PRM1
|
||||||
ld de,work_buffer1
|
ld de,Buffers.work.free
|
||||||
call ncopy_string ; ¢®ááâ ¢«¨¢ ¥¬ ¬ áªã ä ©«
|
call ncopy_string ; ¢®ááâ ¢«¨¢ ¥¬ ¬ áªã ä ©«
|
||||||
;
|
;
|
||||||
ld a,(PRM1)
|
ld a,(PRM1)
|
||||||
@ -109,7 +109,7 @@ cmd_dir: push de
|
|||||||
;
|
;
|
||||||
; ¤®¡ ¢«¥¨¥ ¬ ᪨
|
; ¤®¡ ¢«¥¨¥ ¬ ᪨
|
||||||
.NoSkipMask: ld hl,mask_fname ; "*.*"
|
.NoSkipMask: ld hl,mask_fname ; "*.*"
|
||||||
ld de,work_buffer1
|
ld de,Buffers.work.free
|
||||||
call copy_string
|
call copy_string
|
||||||
; !TEST 23/05/24
|
; !TEST 23/05/24
|
||||||
.SkipMask: LD C,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
.SkipMask: LD C,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||||
@ -118,8 +118,8 @@ cmd_dir: push de
|
|||||||
;
|
;
|
||||||
CALL Print_Header
|
CALL Print_Header
|
||||||
; [ ] 01/10/23
|
; [ ] 01/10/23
|
||||||
ld hl,work_buffer1 ; ¨¬ï ä ©«
|
ld hl,Buffers.work.free ; ¨¬ï ä ©«
|
||||||
ld de,work_buffer1 ; 80 ¡ãä¥à
|
ld de,Buffers.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
|
||||||
@ -144,13 +144,13 @@ cmd_dir: push de
|
|||||||
;ld (.key_p),a ; ®â¬¥ï¥¬ ESC
|
;ld (.key_p),a ; ®â¬¥ï¥¬ ESC
|
||||||
.skip_esc: ld a,32-1
|
.skip_esc: ld a,32-1
|
||||||
.skip_wait: PUSH AF
|
.skip_wait: PUSH AF
|
||||||
ld hl,work_buffer1+33 ; 80
|
ld hl,Buffers.work.buffer1+33 ; 80
|
||||||
;push af
|
;push af
|
||||||
;ld de,33
|
;ld de,33
|
||||||
;add hl,de
|
;add hl,de
|
||||||
call PRNNAME
|
call PRNNAME
|
||||||
;
|
;
|
||||||
ld ix,work_buffer1 ; 80
|
ld ix,Buffers.work.buffer1 ; 80
|
||||||
ld a,(ix+32) ; âਡãâ ⥪. § ¯¨á¨
|
ld a,(ix+32) ; âਡãâ ⥪. § ¯¨á¨
|
||||||
and FAT_ATTR.DIRECTORY ; ¯ ¯ª ?
|
and FAT_ATTR.DIRECTORY ; ¯ ¯ª ?
|
||||||
jr z,.Calc_Size ; ¥â
|
jr z,.Calc_Size ; ¥â
|
||||||
@ -201,7 +201,7 @@ cmd_dir: push de
|
|||||||
adc a,0
|
adc a,0
|
||||||
ld (S_HIGH),a
|
ld (S_HIGH),a
|
||||||
;exx
|
;exx
|
||||||
.next: ld de,work_buffer1 ; 80 ¡ãä¥à
|
.next: ld de,Buffers.work.buffer1 ; 80 ¡ãä¥à
|
||||||
ld c,Dss.F_Next ; ¯®¨áª á«¥¤.
|
ld c,Dss.F_Next ; ¯®¨áª á«¥¤.
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
jp nc,.loop ; § ¤ ¢ 横«, ¥á«¨ ¥ ª®¥æ ᯨáª
|
jp nc,.loop ; § ¤ ¢ 横«, ¥á«¨ ¥ ª®¥æ ᯨáª
|
||||||
@ -242,7 +242,7 @@ cmd_dir: push de
|
|||||||
CALL MESSAGE ; ¢ë¢¥á⨠áâபã
|
CALL MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||||
;
|
;
|
||||||
; [ ] 23/05/2024
|
; [ ] 23/05/2024
|
||||||
ld hl,work_buffer2
|
ld hl,Buffers.work.buffer2
|
||||||
ld c,Dss.ChDir
|
ld c,Dss.ChDir
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
or a
|
or a
|
||||||
@ -278,7 +278,13 @@ Print_Header: ; %1
|
|||||||
ld a,'"'
|
ld a,'"'
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
inc hl
|
inc hl
|
||||||
ld a,(screen_path) ; ¤¨áª ; !TODO ¢®â íâ® § ¬¥¨âì ¢ë¢®¤ ç¥á⮣® ¤¨áª
|
push hl
|
||||||
|
;
|
||||||
|
ld c,Dss.CurDisk
|
||||||
|
rst ToDSS
|
||||||
|
add a,"A"
|
||||||
|
;
|
||||||
|
pop hl
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
inc hl
|
inc hl
|
||||||
ld a,'"'
|
ld a,'"'
|
||||||
@ -290,12 +296,31 @@ Print_Header: ; %1
|
|||||||
ld hl,serial_string ; áâப á¥à¨©®£® ®¬¥à ¤¨áª
|
ld hl,serial_string ; áâப á¥à¨©®£® ®¬¥à ¤¨áª
|
||||||
ld de,PRM2 ; ªã¤
|
ld de,PRM2 ; ªã¤
|
||||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
; ¤¨áª ; !TODO ¢®â íâ® § ¬¥¨âì ¢ë¢®¤ ç¥á⮣® ¯ãâ¨
|
; %3..5
|
||||||
; ¯à¨¬¥à ¢ë¢®¤ ¤«¨®© áâப¨ ¯ã⨠¥áâì ¢ print_compath:
|
;push hl
|
||||||
; %3
|
ld hl,Buffers.work.free + 256 + 128 ; 128 - ¢á直© á«ãç ©
|
||||||
ld hl,screen_path ; !FIXIT ¥á«¨ ¢¢¥á⨠"DIR gamez\*.*", â® ®â®¡à ¦ ¥¬ë© ¯ãâì ¢ § £®«®¢ª¥ ¡ã¤¥â ¥¢¥àë¬
|
ld c,Dss.CurDir
|
||||||
ld de,PRM3 ; 16 ¡ãä¥à
|
rst ToDSS
|
||||||
CALL copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
ld hl,PRM3
|
||||||
|
ld a,(PRM1 + 1)
|
||||||
|
ld (hl),a
|
||||||
|
inc hl
|
||||||
|
ld (hl),':'
|
||||||
|
;
|
||||||
|
ld hl,PRM3+2
|
||||||
|
ld de,PRM3+2+1
|
||||||
|
ld (hl),0
|
||||||
|
ld bc,16+16+16-1-2
|
||||||
|
ldir
|
||||||
|
;
|
||||||
|
ld hl,Buffers.work.free + 256 + 128 ; á¨áâ. ¯ãâì
|
||||||
|
ld de,PRM3 + 2 ;+PRM4..5 ; 2 + 48 ¡ ©â®¢ ¡ãä¥à
|
||||||
|
call make_short_path
|
||||||
|
;pop hl
|
||||||
|
|
||||||
|
; ld hl,Buffers.screen_path ; !FIXIT ¥á«¨ ¢¢¥á⨠"DIR gamez\*.*", â® ®â®¡à ¦ ¥¬ë© ¯ãâì ¢ § £®«®¢ª¥ ¡ã¤¥â ¥¢¥àë¬
|
||||||
|
; ld de,PRM3 ;+PRM4 ; 32 ¡ ©â ¡ãä¥à
|
||||||
|
; CALL copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
;
|
;
|
||||||
ld de,MAIN_MSG.DIR_1 ; ¨¤¥ªá "Volume in drive %1..."
|
ld de,MAIN_MSG.DIR_1 ; ¨¤¥ªá "Volume in drive %1..."
|
||||||
JP MESSAGE ; ¢ë¢¥á⨠áâபã
|
JP MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||||
@ -318,7 +343,7 @@ PRNNAME: dec hl
|
|||||||
ldi
|
ldi
|
||||||
ldi
|
ldi
|
||||||
ld (de),a
|
ld (de),a
|
||||||
ld ix,work_buffer1
|
ld ix,Buffers.work.buffer1
|
||||||
call PRNSIZE ; ¢ë¢¥á⨠¢ ¡ãä¥à ¨¬ï ä ©« ¨ ¥£® à §¬¥à (ã ¯ ¯ª¨ <DIR>)
|
call PRNSIZE ; ¢ë¢¥á⨠¢ ¡ãä¥à ¨¬ï ä ©« ¨ ¥£® à §¬¥à (ã ¯ ¯ª¨ <DIR>)
|
||||||
call PRNDATE ; ¢ë¢¥á⨠¢ ¡ãä¥à ¤ âã ä ©« /¯ ¯ª¨
|
call PRNDATE ; ¢ë¢¥á⨠¢ ¡ãä¥à ¤ âã ä ©« /¯ ¯ª¨
|
||||||
call PRNTIME ; ¢ë¢¥á⨠¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
|
call PRNTIME ; ¢ë¢¥á⨠¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
|
||||||
@ -593,7 +618,7 @@ SIZE_BUFFER: db " " ;
|
|||||||
; ¨ ï «®£¨ª ¯®«ãç¥¨ï ¬¥âª¨ ⮬ - á ç « ¨é¥âáï ¢ ª®à¥¢®© ¤¨à¥ªâ®à¨¨,
|
; ¨ ï «®£¨ª ¯®«ãç¥¨ï ¬¥âª¨ ⮬ - á ç « ¨é¥âáï ¢ ª®à¥¢®© ¤¨à¥ªâ®à¨¨,
|
||||||
; ¥á«¨ â ¬ ¥â, â® ¡¥àñâáï ¨§ BPB
|
; ¥á«¨ â ¬ ¥â, â® ¡¥àñâáï ¨§ BPB
|
||||||
read_disk_info: OR #80
|
read_disk_info: OR #80
|
||||||
LD HL,work_buffer
|
LD HL,Buffers.work.buffer
|
||||||
.full+1: LD B,0
|
.full+1: LD B,0
|
||||||
LD C,Dss.DskInfo
|
LD C,Dss.DskInfo
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
@ -681,7 +706,7 @@ read_disk_info: OR #80
|
|||||||
.no_full_space_option:
|
.no_full_space_option:
|
||||||
; parse
|
; parse
|
||||||
LD D,0
|
LD D,0
|
||||||
LD HL,work_buffer
|
LD HL,Buffers.work.buffer
|
||||||
; âãâ ¢ HL ¤«¨ ¯®«ï "” ©«®¢ ï á¨á⥬ "
|
; âãâ ¢ HL ¤«¨ ¯®«ï "” ©«®¢ ï á¨á⥬ "
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
@ -723,14 +748,14 @@ read_disk_info: OR #80
|
|||||||
; ¯®¨áª ¬¥âª¨
|
; ¯®¨áª ¬¥âª¨
|
||||||
;ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
|
;ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
|
||||||
ld hl,SlashMaskFname ; "\*.*" ¨¬ï ¬¥âª¨
|
ld hl,SlashMaskFname ; "\*.*" ¨¬ï ¬¥âª¨
|
||||||
ld de,work_buffer1 ; ªã¤
|
ld de,Buffers.work.buffer1 ; ªã¤
|
||||||
ld a,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
ld a,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
||||||
ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11
|
ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;push af
|
;push af
|
||||||
;call restore_path ; ¢®ááâ. ⥪. ¯ãâì
|
;call restore_path ; ¢®ááâ. ⥪. ¯ãâì
|
||||||
;pop af
|
;pop af
|
||||||
ld hl,work_buffer1 + BUFFER_FIND.REC_Name ; ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
|
ld hl,Buffers.work.buffer1 + BUFFER_FIND.REC_Name ; ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
|
||||||
jr nc,volume_label ; ¬¥âª ¢ ª®à¥¢®¬ ª â «®£¥
|
jr nc,volume_label ; ¬¥âª ¢ ª®à¥¢®¬ ª â «®£¥
|
||||||
; ¡¥àñ¬ ¬¥âªã ¨§ BPB
|
; ¡¥àñ¬ ¬¥âªã ¨§ BPB
|
||||||
; âãâ ¢ HL ¤«¨ ¯®«ï "Œ¥âª ¤¨áª "
|
; âãâ ¢ HL ¤«¨ ¯®«ï "Œ¥âª ¤¨áª "
|
||||||
@ -749,26 +774,26 @@ read_disk_info: OR #80
|
|||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
POP HL ; ᨬ ¥¬ «¨è¥¥
|
POP HL ; ᨬ ¥¬ «¨è¥¥
|
||||||
; ¥â ¬¥âª¨
|
; ¥â ¬¥âª¨
|
||||||
.no_volume_label:; %4
|
.no_volume_label:; %6
|
||||||
ld hl,volume_string_no ; áâப
|
ld hl,volume_string_no ; áâப
|
||||||
ld de,PRM4 ; ªã¤
|
ld de,PRM6 ; ªã¤
|
||||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
XOR A
|
XOR A
|
||||||
LD (PRM5),A
|
LD (PRM7),A
|
||||||
ret
|
ret
|
||||||
.good_label: POP HL
|
.good_label: POP HL
|
||||||
PUSH HL ; ⮫ª ¥¬ «¨è¥¥
|
PUSH HL ; ⮫ª ¥¬ «¨è¥¥
|
||||||
; ¥áâì ¬¥âª
|
; ¥áâì ¬¥âª
|
||||||
volume_label: POP DE ; ᨬ ¥¬ «¨è¥¥
|
volume_label: POP DE ; ᨬ ¥¬ «¨è¥¥
|
||||||
; %5
|
; %7
|
||||||
ld de,PRM5
|
ld de,PRM7
|
||||||
ld bc,11 ;!HARDCODE ¤«¨ ¬¥âª¨
|
ld bc,11 ;!HARDCODE ¤«¨ ¬¥âª¨
|
||||||
ldir
|
ldir
|
||||||
xor a
|
xor a
|
||||||
ld (de),a
|
ld (de),a
|
||||||
; %4
|
; %6
|
||||||
ld hl,volume_string_yes ; áâப
|
ld hl,volume_string_yes ; áâப
|
||||||
ld de,PRM4 ; ªã¤
|
ld de,PRM6 ; ªã¤
|
||||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
ret
|
ret
|
||||||
;
|
;
|
||||||
|
|||||||
@ -6,11 +6,11 @@
|
|||||||
cmd_mkdir:
|
cmd_mkdir:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
;ld de,T9186 ; ¡ãä¥à
|
;ld de,T9186 ; ¡ãä¥à
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,T9186 ; ¨¬ï ¯ ¯ª¨
|
;ld hl,T9186 ; ¨¬ï ¯ ¯ª¨
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld c,Dss.MkDir ; á®§¤ âì ¯ ¯ªã
|
ld c,Dss.MkDir ; á®§¤ âì ¯ ¯ªã
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
|||||||
@ -34,7 +34,7 @@ cmd_path:
|
|||||||
|
|
||||||
; <20>®ª § âì á¨áâ¥¬ë© ¯ãâì
|
; <20>®ª § âì á¨áâ¥¬ë© ¯ãâì
|
||||||
A85B9: ;ld de,T9186 ; ªã¤
|
A85B9: ;ld de,T9186 ; ªã¤
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld hl,T858C ; ¨¬ï ¯¥à¥¬¥®© "PATH="
|
ld hl,T858C ; ¨¬ï ¯¥à¥¬¥®© "PATH="
|
||||||
ld bc,Dss.Environ.Get ; ¯®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
ld bc,Dss.Environ.Get ; ¯®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
@ -43,7 +43,7 @@ A85B9: ;ld de,T9186 ;
|
|||||||
ld c,Dss.PChars
|
ld c,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,T9186 ; áâப
|
;ld hl,T9186 ; áâப
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld c,Dss.PChars
|
ld c,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
jp newline
|
jp newline
|
||||||
|
|||||||
@ -6,17 +6,17 @@
|
|||||||
cmd_rename:
|
cmd_rename:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
;ld de,T9186
|
;ld de,T9186
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch
|
ld c,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld de,T9206
|
;ld de,T9206
|
||||||
ld de,work_buffer+256;
|
ld de,Buffers.work.buffer+256;
|
||||||
ld c,Dss.GSwitch
|
ld c,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,T9186
|
;ld hl,T9186
|
||||||
;ld de,T9206
|
;ld de,T9206
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld de,work_buffer+256;
|
ld de,Buffers.work.buffer+256;
|
||||||
ld c,Dss.Rename
|
ld c,Dss.Rename
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
|||||||
@ -6,11 +6,11 @@
|
|||||||
cmd_rmdir:
|
cmd_rmdir:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
;ld de,T9186 ; ¡ãä¥à
|
;ld de,T9186 ; ¡ãä¥à
|
||||||
ld de,work_buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,T9186 ; ¨¬ï ¯ ¯ª¨
|
;ld hl,T9186 ; ¨¬ï ¯ ¯ª¨
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld c,Dss.RmDir ; 㤠«¨âì ¯ ¯ªã
|
ld c,Dss.RmDir ; 㤠«¨âì ¯ ¯ªã
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
|||||||
@ -21,11 +21,11 @@ cmd_set:ld a,(de) ;
|
|||||||
|
|
||||||
; <20>®ª § âì á¨á⥬®¥ ®ªà㦥¨¥
|
; <20>®ª § âì á¨á⥬®¥ ®ªà㦥¨¥
|
||||||
A85EE: ;ld hl,T9186 ; ªã¤
|
A85EE: ;ld hl,T9186 ; ªã¤
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld bc,Dss.Environ.Read ; ¯®«ãç¨âì á¨áâ. ®ªà㦥¨¥
|
ld bc,Dss.Environ.Read ; ¯®«ãç¨âì á¨áâ. ®ªà㦥¨¥
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,T9186
|
;ld hl,T9186
|
||||||
ld hl,work_buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
A85F8: ld c,Dss.PChars
|
A85F8: ld c,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call newline
|
call newline
|
||||||
|
|||||||
271
SHELL/EDLINE.ASM
271
SHELL/EDLINE.ASM
@ -4,12 +4,12 @@
|
|||||||
; ”ãªæ¨ï áâப¨ । ªâ¨à®¢ ¨ï. ˆ¬¥¥â ¨áâ®à¨î ¢¢®¤¨¬ëå áâப.
|
; ”ãªæ¨ï áâப¨ । ªâ¨à®¢ ¨ï. ˆ¬¥¥â ¨áâ®à¨î ¢¢®¤¨¬ëå áâப.
|
||||||
; ”ãªæ¨ï ¨á¯®«ì§ã¥â ¤«ï ᢮¥© à ¡®âë ¢à¥¬¥ë© ¡ãä¥à:
|
; ”ãªæ¨ï ¨á¯®«ì§ã¥â ¤«ï ᢮¥© à ¡®âë ¢à¥¬¥ë© ¡ãä¥à:
|
||||||
;
|
;
|
||||||
; work_buffer - íâ®â ¡ãä¥à ¨á¯®«ì§ã¥â ¨áâ®à¨ï
|
; Buffers.work.buffer - íâ®â ¡ãä¥à ¨á¯®«ì§ã¥â ¨áâ®à¨ï
|
||||||
; ;work_buffer+256 - ¢®§¢à é ¥âáï ¡à ï áâப
|
; ;Buffers.work.buffer+256 - ¢®§¢à é ¥âáï ¡à ï áâப
|
||||||
;
|
;
|
||||||
; Š« ¢¨è¨:
|
; Š« ¢¨è¨:
|
||||||
; Esc - á¡à®á¨âì ⥪ãéãî áâபã
|
; Esc - á¡à®á¨âì ⥪ãéãî áâபã
|
||||||
; Enter - ¢ë室 ¨§ äãªæ¨¨ (¢ work_buffer+256 £®â®¢ ï áâப )
|
; Enter - ¢ë室 ¨§ äãªæ¨¨ (¢ Buffers.work.buffer+256 £®â®¢ ï áâப )
|
||||||
; Ins - ᬥ ०¨¬ ¢¢®¤ (¢áâ ¢ª /§ ¬¥ )
|
; Ins - ᬥ ०¨¬ ¢¢®¤ (¢áâ ¢ª /§ ¬¥ )
|
||||||
; , ªãàá®à - ¯à®ªàã⪠¨áâ®à¨¨
|
; , ªãàá®à - ¯à®ªàã⪠¨áâ®à¨¨
|
||||||
; PageUp - ¢ ç «® ¨áâ®à¨¨
|
; PageUp - ¢ ç «® ¨áâ®à¨¨
|
||||||
@ -45,7 +45,7 @@ evCombKey equ 2 ;
|
|||||||
; ‘âப । ªâ¨à®¢ ¨ï
|
; ‘âப । ªâ¨à®¢ ¨ï
|
||||||
;
|
;
|
||||||
; ‚ë室 ¨§ áâப¨ ¯® ª« ¢¨è¥ <Enter>,
|
; ‚ë室 ¨§ áâப¨ ¯® ª« ¢¨è¥ <Enter>,
|
||||||
; ;¢ work_buffer+256 = ¡à ï áâப (¨«¨ ¯ãáâ ï)
|
; ;¢ Buffers.work.buffer+256 = ¡à ï áâப (¨«¨ ¯ãáâ ï)
|
||||||
;===========================================================
|
;===========================================================
|
||||||
input_line:
|
input_line:
|
||||||
ld a,1
|
ld a,1
|
||||||
@ -66,8 +66,8 @@ input_line:
|
|||||||
; ‚뢮¤ ¯ã⨠¢ ª®¬-áâப¥ íªà + ®¢ ï è¨à¨ ¯®«ï ¢¢®¤
|
; ‚뢮¤ ¯ã⨠¢ ª®¬-áâப¥ íªà + ®¢ ï è¨à¨ ¯®«ï ¢¢®¤
|
||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
print_compath:
|
print_compath:
|
||||||
ld hl,system_path ; á¨áâ. ¯ãâì
|
ld hl,Buffers.sys_path ; á¨áâ. ¯ãâì
|
||||||
ld de,screen_path+2 ; ¡ãä¥à ¤«ï ª®à®âª®£® ¯ãâ¨
|
ld de,Buffers.screen_path+2 ; ¡ãä¥à ¤«ï ª®à®âª®£® ¯ãâ¨
|
||||||
call make_short_path
|
call make_short_path
|
||||||
xor a
|
xor a
|
||||||
ld (de),a ; § ã«¥¨¥ áâப¨
|
ld (de),a ; § ã«¥¨¥ áâப¨
|
||||||
@ -91,7 +91,7 @@ print_compath:
|
|||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
pop bc
|
pop bc
|
||||||
; ¢ë¢¥á⨠íªà . ¯ãâì
|
; ¢ë¢¥á⨠íªà . ¯ãâì
|
||||||
ld hl,screen_path ; íªà . ¯ãâì
|
ld hl,Buffers.screen_path ; íªà . ¯ãâì
|
||||||
;call print_inpchar ; ¢ë¢®¤ áâப¨ ¯® áç¥â稪ã
|
;call print_inpchar ; ¢ë¢®¤ áâப¨ ¯® áç¥â稪ã
|
||||||
ld c,BIOS.LP_PRINT_LINE2
|
ld c,BIOS.LP_PRINT_LINE2
|
||||||
RST ToBIOS;
|
RST ToBIOS;
|
||||||
@ -106,13 +106,13 @@ print_inpline:
|
|||||||
ld de,(YXpos) ; Y/X ç «® ª®¬-áâப¨
|
ld de,(YXpos) ; Y/X ç «® ª®¬-áâப¨
|
||||||
ld c,Dss.Locate ; ãáâ. ªãàá®à
|
ld c,Dss.Locate ; ãáâ. ªãàá®à
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
push hl
|
push hl
|
||||||
pop iy
|
pop iy
|
||||||
ld a,(iy+3) ;+3 ᬥé. áâப¨ § «¥¢ë© ªà ©
|
ld a,(iy + Input_Line.Left_Shift) ;+3 ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,$+3
|
jr nc,$+3 ; !FIXIT
|
||||||
inc h
|
inc h
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
@ -124,26 +124,26 @@ print_inpline:
|
|||||||
ld b,a
|
ld b,a
|
||||||
push bc
|
push bc
|
||||||
xor a
|
xor a
|
||||||
ld de,work_buffer ; ¢à¥¬. ¡ãä¥à
|
ld de,Buffers.work.buffer ; ¢à¥¬. ¡ãä¥à
|
||||||
push de
|
push de
|
||||||
ld (de),a
|
ld (de),a
|
||||||
inc de
|
inc de
|
||||||
djnz $-2 ; !FIXIT
|
djnz $-2 ; !FIXIT
|
||||||
ld a,(iy+0)
|
ld a,(iy + Input_Line.max_Len)
|
||||||
sub (iy+3)
|
sub (iy + Input_Line.Left_Shift)
|
||||||
cp c
|
cp c
|
||||||
jr nc,$+3
|
jr nc,$+3 ; !FIXIT
|
||||||
ld c,a
|
ld c,a
|
||||||
ld a,(iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld a,(iy + Input_Line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
sub c
|
sub c
|
||||||
jr nc,$+4
|
jr nc,$+4 ; !FIXIT
|
||||||
add a,c
|
add a,c
|
||||||
ld c,a
|
ld c,a
|
||||||
pop de
|
pop de
|
||||||
push de
|
push de
|
||||||
ld a,b
|
ld a,b
|
||||||
or c
|
or c
|
||||||
jr z,$+4
|
jr z,$+4 ; !FIXIT
|
||||||
ldir
|
ldir
|
||||||
pop hl
|
pop hl
|
||||||
pop bc
|
pop bc
|
||||||
@ -153,7 +153,7 @@ print_inpline:
|
|||||||
ld c,BIOS.LP_PRINT_LINE2
|
ld c,BIOS.LP_PRINT_LINE2
|
||||||
call nz,ToBIOS
|
call nz,ToBIOS
|
||||||
ld a,(YXpos) ; X ç «® ª®¬-áâப¨
|
ld a,(YXpos) ; X ç «® ª®¬-áâப¨
|
||||||
ld e,(iy+2) ;+2 ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld e,(iy + Input_Line.Cur_X) ;+2 ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
add a,e
|
add a,e
|
||||||
cp width_inpline.MAX ; è¨à¨ íªà
|
cp width_inpline.MAX ; è¨à¨ íªà
|
||||||
jr c,prne1__
|
jr c,prne1__
|
||||||
@ -162,7 +162,7 @@ print_inpline:
|
|||||||
ld d,a ; " ¥§¤" § ¯à ¢ë© ªà ©
|
ld d,a ; " ¥§¤" § ¯à ¢ë© ªà ©
|
||||||
ld a,e
|
ld a,e
|
||||||
sub d
|
sub d
|
||||||
ld (iy+2),a ;+2 ®¢®¥ ¯®«®¦. ªãàá®à
|
ld (iy + Input_Line.Cur_X),a ;+2 ®¢®¥ ¯®«®¦. ªãàá®à
|
||||||
ld a,b
|
ld a,b
|
||||||
prne1__:ld (cursor_position),a ; X ¯®«®¦. ªãàá®à íªà ¥
|
prne1__:ld (cursor_position),a ; X ¯®«®¦. ªãàá®à íªà ¥
|
||||||
ret
|
ret
|
||||||
@ -257,11 +257,6 @@ handle_event_comb:
|
|||||||
; ¯®«¥ ᮡë⨩
|
; ¯®«¥ ᮡë⨩
|
||||||
what: ds 3
|
what: ds 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
step_scroll equ 1 ; è £ X áªà®««¨£ áâப¨
|
step_scroll equ 1 ; è £ X áªà®««¨£ áâப¨
|
||||||
|
|
||||||
|
|
||||||
@ -272,7 +267,7 @@ event_input_line:
|
|||||||
call handle_event ; ç¨â ¥¬ ᮡë⨥
|
call handle_event ; ç¨â ¥¬ ᮡë⨥
|
||||||
ld hl,event_input_line
|
ld hl,event_input_line
|
||||||
push hl
|
push hl
|
||||||
ld iy,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld iy,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld hl,what ; ᯨ᮪ ᮡë⨩
|
ld hl,what ; ᯨ᮪ ᮡë⨩
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
inc hl
|
inc hl
|
||||||
@ -285,8 +280,8 @@ event_input_line:
|
|||||||
; <Enter>
|
; <Enter>
|
||||||
Enter: pop hl ; ¢®ááâ. ¡ « á á⥪ (¢ë室 ¨§ ®¡à ¡®â稪 )
|
Enter: pop hl ; ¢®ááâ. ¡ « á á⥪ (¢ë室 ¨§ ®¡à ¡®â稪 )
|
||||||
xor a
|
xor a
|
||||||
;ld (work_buffer+256),a ; § ¤ âì ¯ãáâãî áâபã
|
;ld (Buffers.work.buffer+256),a ; § ¤ âì ¯ãáâãî áâபã
|
||||||
ld hl,struct_input_line+4 ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld hl,Buffers.input_line.Symbols_Num ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
ld e,(hl)
|
ld e,(hl)
|
||||||
cp e
|
cp e
|
||||||
ret z ; ¯ãáâ ï áâப
|
ret z ; ¯ãáâ ï áâப
|
||||||
@ -309,12 +304,12 @@ Enter: pop hl ;
|
|||||||
ld a,b
|
ld a,b
|
||||||
or a
|
or a
|
||||||
ret z ; ¡ë«¨ ®¤¨ ¯à®¡¥«ë
|
ret z ; ¡ë«¨ ®¤¨ ¯à®¡¥«ë
|
||||||
ld de,struct_input_line+4 ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld de,Buffers.input_line.Symbols_Num ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
ld (de),a ; ®¢®¥ ç¨á«® (¤«ï history_adding)
|
ld (de),a ; ®¢®¥ ç¨á«® (¤«ï history_adding)
|
||||||
ent1__: call history_adding ; ¤®¡ ¢¨âì áâப㠢 history
|
ent1__: call history_adding ; ¤®¡ ¢¨âì áâப㠢 history
|
||||||
; ᪮¯¨à. áâப㠢® ¢à¥¬. ¡ãä¥à
|
; ᪮¯¨à. áâப㠢® ¢à¥¬. ¡ãä¥à
|
||||||
; ld hl,struct_input_line+4 ; ®âªã¤
|
; ld hl,Buffers.input_line.Symbols_Num ; ®âªã¤
|
||||||
; ld de,work_buffer+254 ; ªã¤
|
; ld de,Buffers.work.buffer+254 ; ªã¤
|
||||||
; ld a,(hl) ; ᪮¯¨à. áâபã (á ã«¥¬)
|
; ld a,(hl) ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
; ldi
|
; ldi
|
||||||
; or a
|
; or a
|
||||||
@ -327,8 +322,8 @@ ent1__: call history_adding ;
|
|||||||
; xor a
|
; xor a
|
||||||
; ld (YXpos+1),a;
|
; ld (YXpos+1),a;
|
||||||
; ¢®ááâ. ¡ãä¥à
|
; ¢®ááâ. ¡ãä¥à
|
||||||
; ld hl,work_buffer+254 ; ®âªã¤
|
; ld hl,Buffers.work.buffer+254 ; ®âªã¤
|
||||||
; ld de,struct_input_line+4 ; ªã¤
|
; ld de,Buffers.input_line.Symbols_Num ; ªã¤
|
||||||
; ld a,(hl) ; ᪮¯¨à. áâபã (á ã«¥¬)
|
; ld a,(hl) ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
; ldi
|
; ldi
|
||||||
; or a
|
; or a
|
||||||
@ -353,45 +348,45 @@ EvComKeys:
|
|||||||
inpline_work:
|
inpline_work:
|
||||||
ld de,input_line_done
|
ld de,input_line_done
|
||||||
push de
|
push de
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ex af,af'
|
ex af,af'
|
||||||
res 7,(iy+1) ;+1 ä« £ ReadyString
|
res 7,(iy + Input_Line.ReadyString) ;+1 ä« £ ReadyString
|
||||||
ld a,(insert_mode) ; ०¨¬ ¢¢®¤ : 1-inser, 0-overwrite
|
ld a,(insert_mode) ; ०¨¬ ¢¢®¤ : 1-inser, 0-overwrite
|
||||||
and 1
|
and 1
|
||||||
rrca ; ¢¯à ¢® (¬«.¡¨â -> ¯¥à¥®á)
|
rrca ; ¢¯à ¢® (¬«.¡¨â -> ¯¥à¥®á)
|
||||||
or (iy+1)
|
or (iy + Input_Line.ReadyString)
|
||||||
ld (iy+1),a ;+1 ä« £ ReadyString
|
ld (iy + Input_Line.ReadyString),a ;+1 ä« £ ReadyString
|
||||||
ex af,af'
|
ex af,af'
|
||||||
cp 8 ; Backspace
|
cp 8 ; Backspace
|
||||||
jp z,back_space
|
jp z,back_space
|
||||||
ex af,af'
|
ex af,af'
|
||||||
ld a,(iy+4) ; InputSymb
|
ld a,(iy + Input_Line.Symbols_Num) ; InputSymb
|
||||||
cp (iy+0) ; Max len
|
cp (iy + Input_Line.max_Len)
|
||||||
jr nz,ILn___
|
jr nz,ILn___
|
||||||
ld a,(iy+2)
|
ld a,(iy + Input_Line.Cur_X)
|
||||||
add a,(iy+3)
|
add a,(iy + Input_Line.Left_Shift)
|
||||||
cp (iy+0)
|
cp (iy + Input_Line.max_Len)
|
||||||
;ret nc
|
;ret nc
|
||||||
JR NC,LastChar_BEEP
|
JR NC,LastChar_BEEP
|
||||||
bit 7,(iy+1)
|
bit 7,(iy + Input_Line.ReadyString)
|
||||||
;ret nz
|
;ret nz
|
||||||
JR NZ,NoMoreChars_BEEP
|
JR NZ,NoMoreChars_BEEP
|
||||||
ILn___: ld a,(iy+4)
|
ILn___: ld a,(iy + Input_Line.Symbols_Num)
|
||||||
sub (iy+3)
|
sub (iy + Input_Line.Left_Shift)
|
||||||
sub (iy+2)
|
sub (iy + Input_Line.Cur_X)
|
||||||
jr z,no_insert
|
jr z,no_insert
|
||||||
dec (iy+4)
|
dec (iy + Input_Line.Symbols_Num)
|
||||||
bit 7,(iy+1)
|
bit 7,(iy + Input_Line.ReadyString)
|
||||||
jr z,no_insert
|
jr z,no_insert
|
||||||
inc (iy+4)
|
inc (iy + Input_Line.Symbols_Num)
|
||||||
; ¢¢®¤ ¢ á¥à¥¤¨ã ⥪áâ (¢áâ ¢ª )
|
; ¢¢®¤ ¢ á¥à¥¤¨ã ⥪áâ (¢áâ ¢ª )
|
||||||
ld c,a
|
ld c,a
|
||||||
ld b,0
|
ld b,0
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld a,(iy + Input_Line.Symbols_Num) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,$+3
|
jr nc,$+3 ;!FIXIT
|
||||||
inc h
|
inc h
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
@ -403,12 +398,12 @@ ILn___: ld a,(iy+4)
|
|||||||
dec hl
|
dec hl
|
||||||
lddr
|
lddr
|
||||||
no_insert:
|
no_insert:
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld a,(iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
add a,(iy+3)
|
add a,(iy + Input_Line.Left_Shift)
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,$+3
|
jr nc,$+3 ;!FIXIT
|
||||||
inc h
|
inc h
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
@ -417,14 +412,14 @@ no_insert:
|
|||||||
inc hl
|
inc hl
|
||||||
ex af,af'
|
ex af,af'
|
||||||
ld (hl),a ; á®åà. ᨬ¢®« ¢ áâப¥
|
ld (hl),a ; á®åà. ᨬ¢®« ¢ áâப¥
|
||||||
inc (iy+4)
|
inc (iy + Input_Line.Symbols_Num)
|
||||||
inc (iy+2)
|
inc (iy + Input_Line.Cur_X)
|
||||||
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
||||||
cp (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
cp (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
jr nz,$+8
|
jr nz,$+8 ;!FIXIT
|
||||||
; ªãàá®à § ¯®«¥¬
|
; ªãàá®à § ¯®«¥¬
|
||||||
inc (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
inc (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
dec (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
dec (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
call print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
call print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
||||||
pop de ; ¢®ááâ. ¡ « á á⥪
|
pop de ; ¢®ááâ. ¡ « á á⥪
|
||||||
input_line_done:
|
input_line_done:
|
||||||
@ -450,7 +445,7 @@ EvComComb:
|
|||||||
ld b,(hl) ;+1 what
|
ld b,(hl) ;+1 what
|
||||||
inc hl
|
inc hl
|
||||||
ld a,(hl) ;+2 what
|
ld a,(hl) ;+2 what
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld de,input_line_done ; â®çª ¢ë室
|
ld de,input_line_done ; â®çª ¢ë室
|
||||||
push de
|
push de
|
||||||
cp #54 ; ªãàá®à ¢«¥¢®
|
cp #54 ; ªãàá®à ¢«¥¢®
|
||||||
@ -488,52 +483,52 @@ change_insert_mode:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
; Šãàá®à ¢«¥¢®
|
; Šãàá®à ¢«¥¢®
|
||||||
Left: ld a,(iy+2)
|
Left: ld a,(iy + Input_Line.Cur_X)
|
||||||
dec a
|
dec a
|
||||||
jp p,ComPrint
|
jp p,ComPrint
|
||||||
ld a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
ld a,(iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
sub step_scroll ; è £ áªà®««¨£
|
sub step_scroll ; è £ áªà®««¨£
|
||||||
ret c ; ªãàá®à ¢ ªà ©¥¬ «¥¢®¬ ¯®«®¦.
|
ret c ; ªãàá®à ¢ ªà ©¥¬ «¥¢®¬ ¯®«®¦.
|
||||||
ld (iy+3),a ; X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
ld (iy + Input_Line.Left_Shift),a ; X ᬥé. áâப¨ § «¥¢ë© ªà © (¢ ᨬ¢®« å)
|
||||||
ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
ld a,(iy + Input_Line.Cur_X) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
add a,step_scroll-1 ; è £ áªà®««¨£
|
add a,step_scroll-1 ; è £ áªà®««¨£
|
||||||
ComPrint:
|
ComPrint:
|
||||||
ld (iy+2),a
|
ld (iy + Input_Line.Cur_X),a
|
||||||
jp print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
jp print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
||||||
|
|
||||||
; Šãàá®à ¢¯à ¢®
|
; Šãàá®à ¢¯à ¢®
|
||||||
Right: ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
Right: ld a,(iy + Input_Line.Cur_X) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
add a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
add a,(iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
cp (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
cp (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
ret z
|
ret z
|
||||||
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
||||||
ld b,a
|
ld b,a
|
||||||
ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
ld a,(iy + Input_Line.Cur_X) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
inc a
|
inc a
|
||||||
cp b
|
cp b
|
||||||
jr nz,ComPrint
|
jr nz,ComPrint
|
||||||
inc (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
inc (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
ld a,(iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
ld a,(iy + Input_Line.Cur_X) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
sub step_scroll-1 ; è £ áªà®««¨£
|
sub step_scroll-1 ; è £ áªà®««¨£
|
||||||
jr ComPrint
|
jr ComPrint
|
||||||
|
|
||||||
; Backspace - 㤠«¨âì ᨬ¢®« «¥¢¥¥ ªãàá®à
|
; Backspace - 㤠«¨âì ᨬ¢®« «¥¢¥¥ ªãàá®à
|
||||||
back_space:
|
back_space:
|
||||||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld a,(iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
or a
|
or a
|
||||||
jr nz,back_space1
|
jr nz,back_space1
|
||||||
ld a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
ld a,(iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
sub step_scroll ; è £ áªà®««¨£
|
sub step_scroll ; è £ áªà®««¨£
|
||||||
ret c
|
ret c
|
||||||
ld (iy+3),a
|
ld (iy + Input_Line.Left_Shift),a
|
||||||
inc (iy+2) ;+2 ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
inc (iy + Input_Line.Cur_X) ;+2 ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
back_space1:
|
back_space1:
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld a,(iy+2) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld a,(iy + Input_Line.Cur_X) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
add a,(iy+3) ;+3 ᬥé. áâப¨ § «¥¢ë© ªà ©
|
add a,(iy + Input_Line.Left_Shift) ;+3 ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,$+3
|
jr nc,$+3 ;!FIXIT
|
||||||
inc h
|
inc h
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
@ -543,27 +538,27 @@ back_space1:
|
|||||||
ld d,h
|
ld d,h
|
||||||
ld e,l
|
ld e,l
|
||||||
dec de
|
dec de
|
||||||
ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld a,(iy + Input_Line.Symbols_Num) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
sub (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
sub (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
sub (iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
sub (iy + Input_Line.Cur_X) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
jr z,$+7 ; ªãàá®à § ª®æ®¬ áâப¨
|
jr z,$+7 ; ªãàá®à § ª®æ®¬ áâப¨ ;!FIXIT
|
||||||
ld c,a
|
ld c,a
|
||||||
ld b,0
|
ld b,0
|
||||||
ldir ; ®¡®¢¨âì ®áâ ⮪ áâப¨
|
ldir ; ®¡®¢¨âì ®áâ ⮪ áâப¨
|
||||||
xor a
|
xor a
|
||||||
ld (de),a ; ¢ ª®¥æ áâப¨
|
ld (de),a ; ¢ ª®¥æ áâப¨
|
||||||
dec (iy+2) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
dec (iy + Input_Line.Cur_X) ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
dec (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
dec (iy + Input_Line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
jp print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
jp print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
||||||
|
|
||||||
; Delete - 㤠«¨âì ᨬ¢®« ¢ ⥪. ¯®§¨æ¨¨
|
; Delete - 㤠«¨âì ᨬ¢®« ¢ ⥪. ¯®§¨æ¨¨
|
||||||
Delete: ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
Delete: ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld a,(iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
inc a
|
inc a
|
||||||
add a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
add a,(iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,$+3
|
jr nc,$+3 ;!FIXIT
|
||||||
inc h
|
inc h
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
@ -573,45 +568,45 @@ Delete: ld hl,struct_input_line ;
|
|||||||
ld d,h
|
ld d,h
|
||||||
ld e,l
|
ld e,l
|
||||||
dec de
|
dec de
|
||||||
ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld a,(iy + Input_Line.Symbols_Num) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
sub (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
sub (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
sub (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
sub (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
ret z ; ªãàá®à § ª®æ®¬ áâப¨
|
ret z ; ªãàá®à § ª®æ®¬ áâப¨
|
||||||
ld c,a
|
ld c,a
|
||||||
ld b,0
|
ld b,0
|
||||||
ldir ; ®¡®¢¨âì ®áâ ⮪ áâப¨
|
ldir ; ®¡®¢¨âì ®áâ ⮪ áâப¨
|
||||||
xor a
|
xor a
|
||||||
ld (de),a ; ¢ ª®¥æ áâப¨
|
ld (de),a ; ¢ ª®¥æ áâப¨
|
||||||
dec (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
dec (iy + Input_Line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
jp print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
jp print_inpline ; ¢ë¢¥á⨠áâபã íªà
|
||||||
|
|
||||||
; Home - ¢ ç «® áâப¨
|
; Home - ¢ ç «® áâப¨
|
||||||
Home: ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
Home: ld a,(iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
add a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
add a,(iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
ret z
|
ret z
|
||||||
xor a ; X ¯®«®¦. ªãàá®à
|
xor a ; X ¯®«®¦. ªãàá®à
|
||||||
ld (iy+2),a ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
ld (iy + Input_Line.Cur_X),a ; X ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
ld (iy+3),a ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
ld (iy + Input_Line.Left_Shift),a ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
jp ComPrint ; ¢ë¢¥á⨠áâபã íªà
|
jp ComPrint ; ¢ë¢¥á⨠áâபã íªà
|
||||||
|
|
||||||
; End - ¢ ª®¥æ áâப¨
|
; End - ¢ ª®¥æ áâப¨
|
||||||
End1: ld a,(iy+4) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
End1: ld a,(iy + Input_Line.Symbols_Num) ;+4 ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
sub (iy+3) ;+3 ᬥé. áâப¨ § «¥¢ë© ªà ©
|
sub (iy + Input_Line.Left_Shift) ;+3 ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
cp (iy+2) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
cp (iy + Input_Line.Cur_X) ;+2 X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
ret z
|
ret z
|
||||||
add a,(iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
add a,(iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
ld c,a
|
ld c,a
|
||||||
ld (iy+3),0 ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
ld (iy + Input_Line.Left_Shift),0 ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
||||||
sub c
|
sub c
|
||||||
jr z,EndLp
|
jr z,EndLp
|
||||||
jr nc,EndNIL
|
jr nc,EndNIL
|
||||||
neg
|
neg
|
||||||
EndLp: inc (iy+3) ; X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
EndLp: inc (iy + Input_Line.Left_Shift) ; X ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
sub step_scroll ; è £ áªà®««¨£
|
sub step_scroll ; è £ áªà®««¨£
|
||||||
jr nc,EndLp
|
jr nc,EndLp
|
||||||
EndNIL: ld a,(iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
EndNIL: ld a,(iy + Input_Line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
sub (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
sub (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
jp ComPrint ; ¢ë¢¥á⨠áâபã íªà
|
jp ComPrint ; ¢ë¢¥á⨠áâபã íªà
|
||||||
|
|
||||||
|
|
||||||
@ -626,7 +621,7 @@ clear_input_line:
|
|||||||
; ®ç¨áâ¨âì áâàãªâãàã ~input line~
|
; ®ç¨áâ¨âì áâàãªâãàã ~input line~
|
||||||
clear_inpline:
|
clear_inpline:
|
||||||
xor a
|
xor a
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld b,(hl) ;+0 ¬ ªá. ¤«¨ áâப¨
|
ld b,(hl) ;+0 ¬ ªá. ¤«¨ áâப¨
|
||||||
inc hl
|
inc hl
|
||||||
ld (hl),a ;+1 á¡à. ä« £ ReadyString
|
ld (hl),a ;+1 á¡à. ä« £ ReadyString
|
||||||
@ -640,7 +635,7 @@ clear_inpline:
|
|||||||
ret z
|
ret z
|
||||||
inc hl ;+5 ¡ãä¥à । ªâ. áâப¨
|
inc hl ;+5 ¡ãä¥à । ªâ. áâப¨
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
djnz $-2
|
djnz $-2 ;!FIXIT
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
@ -653,12 +648,12 @@ put_from_history:
|
|||||||
ld c,a
|
ld c,a
|
||||||
put_history_loop:
|
put_history_loop:
|
||||||
inc de
|
inc de
|
||||||
ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld a,(iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
add a,(iy+3)
|
add a,(iy + Input_Line.Left_Shift)
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,$+3
|
jr nc,$+3 ;!FIXIT
|
||||||
inc h
|
inc h
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
@ -667,14 +662,14 @@ put_history_loop:
|
|||||||
inc hl
|
inc hl
|
||||||
ld a,(de)
|
ld a,(de)
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
inc (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
inc (iy + Input_Line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
inc (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
inc (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
||||||
cp (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
cp (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
jr nz,$+8
|
jr nz,$+8 ;!FIXIT
|
||||||
; ªãàá®à § ¯à ¢ë¬ ªà ¥¬ ¯®«ï ¢¢®¤
|
; ªãàá®à § ¯à ¢ë¬ ªà ¥¬ ¯®«ï ¢¢®¤
|
||||||
inc (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
inc (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
dec (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
dec (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
dec c
|
dec c
|
||||||
jr nz,put_history_loop
|
jr nz,put_history_loop
|
||||||
; ¢ë¢¥á⨠áâபã íªà
|
; ¢ë¢¥á⨠áâபã íªà
|
||||||
@ -688,7 +683,7 @@ clear_history:
|
|||||||
xor a
|
xor a
|
||||||
ld (history_count),a ; ç¨á«® áâப ¢ history
|
ld (history_count),a ; ç¨á«® áâப ¢ history
|
||||||
ld (history_cur_string),a ; ®¬¥à ⥪. áâப¨ history
|
ld (history_cur_string),a ; ®¬¥à ⥪. áâப¨ history
|
||||||
ld hl,history_buff ; ª®¥æ ¯®á«. áâப¨
|
ld hl,Buffers.history ; ª®¥æ ¯®á«. áâப¨
|
||||||
ld (history_end),hl
|
ld (history_end),hl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -708,7 +703,7 @@ history_cur_string:
|
|||||||
db 0 ; ®¬¥à ⥪. áâப¨ ¨áâ®à¨¨
|
db 0 ; ®¬¥à ⥪. áâப¨ ¨áâ®à¨¨
|
||||||
;
|
;
|
||||||
history_end:
|
history_end:
|
||||||
dw history_buff ; ª®¥æ ¯®á«¥¤. áâப¨ ¨áâ®à¨¨
|
dw Buffers.history ; ª®¥æ ¯®á«¥¤. áâப¨ ¨áâ®à¨¨
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -745,7 +740,7 @@ history_next:
|
|||||||
ld hl,history_cur_string
|
ld hl,history_cur_string
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
cp b
|
cp b
|
||||||
jr c,$+7
|
jr c,$+7 ;!FIXIT
|
||||||
inc b
|
inc b
|
||||||
ld (hl),b
|
ld (hl),b
|
||||||
jp clear_input_line ; ¢¥àãâì ¯ãáâãî áâபã
|
jp clear_input_line ; ¢¥àãâì ¯ãáâãî áâபã
|
||||||
@ -767,7 +762,7 @@ history_prev:
|
|||||||
or a
|
or a
|
||||||
jr z,history_copy ; 㯥૨áì ¢ ç «® ¨áâ®à¨¨
|
jr z,history_copy ; 㯥૨áì ¢ ç «® ¨áâ®à¨¨
|
||||||
cp b
|
cp b
|
||||||
jr c,$+3
|
jr c,$+3 ;!FIXIT
|
||||||
ld a,b
|
ld a,b
|
||||||
dec a
|
dec a
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
@ -780,14 +775,14 @@ history_copy:
|
|||||||
; ¢ë室: de=áâப (¥¥ áâàãªâãà ¨§ history-¡ãä¥à )
|
; ¢ë室: de=áâப (¥¥ áâàãªâãà ¨§ history-¡ãä¥à )
|
||||||
history_index:
|
history_index:
|
||||||
ld b,0
|
ld b,0
|
||||||
ld hl,history_buff ; ¡ãä¥à ¨áâ®à¨¨
|
ld hl,Buffers.history ; ¡ãä¥à ¨áâ®à¨¨
|
||||||
or a ; ¨¤¥ªá áâப¨
|
or a ; ¨¤¥ªá áâப¨
|
||||||
jr z,hist_index ; 1-ï áâப ¨áâ®à¨¨
|
jr z,hist_index ; 1-ï áâப ¨áâ®à¨¨
|
||||||
ld c,(hl) ; à §¬¥à áâப¨
|
ld c,(hl) ; à §¬¥à áâப¨
|
||||||
inc c
|
inc c
|
||||||
add hl,bc ; á«¥¤. áâபã
|
add hl,bc ; á«¥¤. áâபã
|
||||||
dec a
|
dec a
|
||||||
jr nz,$-4
|
jr nz,$-4 ;!FIXIT
|
||||||
hist_index:
|
hist_index:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ret
|
ret
|
||||||
@ -799,11 +794,11 @@ hist_index:
|
|||||||
; â¥å ¯®à, ¯®ª ¯®ï¢¨âáï ¤®áâ â®ç® ¬¥áâ ¤«ï ®¢®© áâப¨.
|
; â¥å ¯®à, ¯®ª ¯®ï¢¨âáï ¤®áâ â®ç® ¬¥áâ ¤«ï ®¢®© áâப¨.
|
||||||
;-----------------------------------------------------------
|
;-----------------------------------------------------------
|
||||||
history_adding:
|
history_adding:
|
||||||
ld de,struct_input_line+4 ; áâàãªâãà áâப¨
|
ld de,Buffers.input_line.Symbols_Num ; áâàãªâãà áâப¨
|
||||||
call history_compare ; áà ¢¨âì áâப¨
|
call history_compare ; áà ¢¨âì áâப¨
|
||||||
ret z ; 㦥 ¥áâì â ª ï áâப
|
ret z ; 㦥 ¥áâì â ª ï áâப
|
||||||
ld bc,(history_end) ; ¤à¥á ª®æ ¯®á«. áâப¨
|
ld bc,(history_end) ; ¤à¥á ª®æ ¯®á«. áâப¨
|
||||||
ld hl,history_buff+history_size ; ¤à¥á ª®æ ¡ãä¥à
|
ld hl,Buffers.history + history_size ; ¤à¥á ª®æ ¡ãä¥à
|
||||||
and a
|
and a
|
||||||
sbc hl,bc ; hl=à §¬¥à ᢮¡. ¬¥áâ
|
sbc hl,bc ; hl=à §¬¥à ᢮¡. ¬¥áâ
|
||||||
ld a,(de) ; ¤«¨ ®¢®© áâப¨
|
ld a,(de) ; ¤«¨ ®¢®© áâப¨
|
||||||
@ -815,7 +810,7 @@ history_adding:
|
|||||||
jr nc,history_add_ok ; ¤
|
jr nc,history_add_ok ; ¤
|
||||||
; 㤠«¨âì ¯¥à¢ãî (á ¬ãî áâ àãî) áâப㠨§ ¡ãä¥à
|
; 㤠«¨âì ¯¥à¢ãî (á ¬ãî áâ àãî) áâப㠨§ ¡ãä¥à
|
||||||
;push de
|
;push de
|
||||||
ld de,history_buff ; ¡ãä¥à ¨áâ®à¨¨
|
ld de,Buffers.history ; ¡ãä¥à ¨áâ®à¨¨
|
||||||
ld a,(de) ; ¤«¨ 1-© áâப¨
|
ld a,(de) ; ¤«¨ 1-© áâப¨
|
||||||
inc a
|
inc a
|
||||||
ld c,a
|
ld c,a
|
||||||
@ -837,7 +832,7 @@ history_adding:
|
|||||||
ldir
|
ldir
|
||||||
ld hl,history_count
|
ld hl,history_count
|
||||||
dec (hl) ; --ç¨á«® áâப ¢ history
|
dec (hl) ; --ç¨á«® áâப ¢ history
|
||||||
;pop de ; ¢®ááâ. ¤à¥á struct_input_line+4
|
;pop de ; ¢®ááâ. ¤à¥á Buffers.input_line.Symbols_Num
|
||||||
jr history_adding
|
jr history_adding
|
||||||
;
|
;
|
||||||
history_add_ok:
|
history_add_ok:
|
||||||
@ -866,7 +861,7 @@ history_compare:
|
|||||||
ex af,af'
|
ex af,af'
|
||||||
xor a ; á¡à. ¨¤¥ªá áà ¢. áâப¨
|
xor a ; á¡à. ¨¤¥ªá áà ¢. áâப¨
|
||||||
ex af,af'
|
ex af,af'
|
||||||
ld hl,history_buff ; ¡ãä¥à ¨áâ®à¨¨
|
ld hl,Buffers.history ; ¡ãä¥à ¨áâ®à¨¨
|
||||||
history_comp_loop:
|
history_comp_loop:
|
||||||
push de
|
push de
|
||||||
ld (move_cur_str+1),hl ; ⥪. áâப ¨áâ®à¨¨
|
ld (move_cur_str+1),hl ; ⥪. áâப ¨áâ®à¨¨
|
||||||
@ -922,7 +917,7 @@ move_to_end_history:
|
|||||||
; á®åà. áâப㠢® ¢à¥¬. ¡ãä¥à¥
|
; á®åà. áâப㠢® ¢à¥¬. ¡ãä¥à¥
|
||||||
move_cur_str:
|
move_cur_str:
|
||||||
ld hl,0 ; ⥪. áâப ¨áâ®à¨¨
|
ld hl,0 ; ⥪. áâப ¨áâ®à¨¨
|
||||||
ld de,work_buffer ; ¢à¥¬. ¡ãä¥à
|
ld de,Buffers.work.buffer ; ¢à¥¬. ¡ãä¥à
|
||||||
ld c,(hl) ;+0 ¤«¨ áâப¨
|
ld c,(hl) ;+0 ¤«¨ áâப¨
|
||||||
inc c ; ãç¥áâì ï祩ªã ¤«¨ë áâப¨
|
inc c ; ãç¥áâì ï祩ªã ¤«¨ë áâப¨
|
||||||
xor a
|
xor a
|
||||||
@ -944,7 +939,7 @@ move_cur_str:
|
|||||||
pop hl ; ®âªã¤
|
pop hl ; ®âªã¤
|
||||||
ldir
|
ldir
|
||||||
; ¢®ááâ. áâப㠨§ ¢à¥¬. ¡ãä¥à ¢ ª®¥æ ¨áâ®à¨¨
|
; ¢®ááâ. áâப㠨§ ¢à¥¬. ¡ãä¥à ¢ ª®¥æ ¨áâ®à¨¨
|
||||||
ld hl,work_buffer ; ¢à¥¬. ¡ãä¥à
|
ld hl,Buffers.work.buffer ; ¢à¥¬. ¡ãä¥à
|
||||||
ld c,(hl)
|
ld c,(hl)
|
||||||
inc c
|
inc c
|
||||||
ld b,a
|
ld b,a
|
||||||
@ -982,18 +977,18 @@ insert_mode:
|
|||||||
|
|
||||||
; 5 0
|
; 5 0
|
||||||
; íªà ë© ¯ãâì
|
; íªà ë© ¯ãâì
|
||||||
screen_path:
|
; screen_path:
|
||||||
db "A:"
|
; db "A:"
|
||||||
BLOCK max_screen_path+1,0 ; 32+1
|
; BLOCK max_screen_path+1,0 ; 32+1
|
||||||
|
|
||||||
; 6 0
|
; 6 0
|
||||||
; á¨áâ¥¬ë© ¯ãâì
|
; á¨áâ¥¬ë© ¯ãâì
|
||||||
system_path:
|
; system_path:
|
||||||
BLOCK 256,0 ;!HARDCODE
|
; BLOCK 256,0 ;!HARDCODE
|
||||||
|
|
||||||
; ; 7 0
|
; ; 7 0
|
||||||
; ; ‘âàãªâãà áâப¨ ¢¢®¤ ~input line~
|
; ; ‘âàãªâãà áâப¨ ¢¢®¤ ~input line~
|
||||||
; struct_input_line:
|
; Buffers.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 ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
@ -1008,7 +1003,7 @@ system_path:
|
|||||||
|
|
||||||
; ; 9 0
|
; ; 9 0
|
||||||
; ; <20> ¡®ç¨© ¡ãä¥à
|
; ; <20> ¡®ç¨© ¡ãä¥à
|
||||||
; work_buffer:
|
; Buffers.work.buffer:
|
||||||
; BLOCK 512,0
|
; BLOCK 512,0
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;
|
||||||
@ -7,11 +7,11 @@ SAVEHL: dw 0
|
|||||||
; <20> §¡®à ¨ ¢ë¯®«¥¨¥ ¢¢¥¤¥ëå ª®¬ ¤ ¨ ¨¬¥ ä ©«®¢
|
; <20> §¡®à ¨ ¢ë¯®«¥¨¥ ¢¢¥¤¥ëå ª®¬ ¤ ¨ ¨¬¥ ä ©«®¢
|
||||||
;-------------------------------------------------------------
|
;-------------------------------------------------------------
|
||||||
COMP: call EVALCMD ; (batch.asm)
|
COMP: call EVALCMD ; (batch.asm)
|
||||||
ld hl,struct_input_line+5
|
ld hl,Buffers.input_line.Path
|
||||||
dec hl
|
dec hl
|
||||||
ld c,(hl) ; ¤«¨ áâப¨
|
ld c,(hl) ; ¤«¨ áâப¨
|
||||||
ld b,0
|
ld b,0
|
||||||
inc hl ; struct_input_line+5
|
inc hl ; Buffers.input_line.Path
|
||||||
.loop: ld a,(hl)
|
.loop: ld a,(hl)
|
||||||
cp " "
|
cp " "
|
||||||
jr nz,.COMP01
|
jr nz,.COMP01
|
||||||
@ -42,7 +42,7 @@ COMP: call EVALCMD ; (batch.asm)
|
|||||||
.skip: ; <20>¥ ¤®á-ª®¬ ¤ë. ’¥áâ § ¤ ¨¥ ¤¨áª ¨ § ¯ãáª ä ©«
|
.skip: ; <20>¥ ¤®á-ª®¬ ¤ë. ’¥áâ § ¤ ¨¥ ¤¨áª ¨ § ¯ãáª ä ©«
|
||||||
ld h,d
|
ld h,d
|
||||||
ld l,e
|
ld l,e
|
||||||
; hl=struct_input_line+5
|
; hl=Buffers.input_line.Path
|
||||||
ld b,(hl) ;+0 1-© ᨬ¢®«
|
ld b,(hl) ;+0 1-© ᨬ¢®«
|
||||||
inc hl
|
inc hl
|
||||||
ld c,(hl) ;+1 2-© ᨬ¢®«
|
ld c,(hl) ;+1 2-© ᨬ¢®«
|
||||||
@ -65,10 +65,10 @@ COMP: call EVALCMD ; (batch.asm)
|
|||||||
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
|
||||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ ¥âáï ¤¨à¥ªâ®à¨ï ¨ ¬®£ãâ ¡ëâì £«îª¨ ®¢®¬ ï¤à¥
|
;!FIXIT âãâ ¢®ááâ ¢«¨¢ ¥âáï ¤¨à¥ªâ®à¨ï ¨ ¬®£ãâ ¡ëâì £«îª¨ ®¢®¬ ï¤à¥
|
||||||
;!TODO ¤®áâ ¢ âì system_path ®â¤¥«ì® ¤«ï ª ¦¤®£® ¤¨áª (¨«¨ ¢ ï¤à¥ ᤥ« âì?)
|
;!TODO ¤®áâ ¢ âì Buffers.sys_path ®â¤¥«ì® ¤«ï ª ¦¤®£® ¤¨áª (¨«¨ ¢ ï¤à¥ ᤥ« âì?)
|
||||||
; â¥áâ áãé¥á⢮¢ ¨¥ ¯ ¯ª¨ 楫¥¢®¬ ¤¨áª¥
|
; â¥áâ áãé¥á⢮¢ ¨¥ ¯ ¯ª¨ 楫¥¢®¬ ¤¨áª¥
|
||||||
IFDEF MANY_SYS_PATHES
|
IFDEF MANY_SYS_PATHES
|
||||||
ld hl,system_path ; ¡ãä¥à á¨áâ. ¯ãâ¨
|
ld hl,Buffers.sys_path ; ¡ãä¥à á¨áâ. ¯ãâ¨
|
||||||
ld c,Dss.ChDir ; ãáâ. ⥪. ¯ãâì
|
ld c,Dss.ChDir ; ãáâ. ⥪. ¯ãâì
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
jp nc,Get_Path ; Ok
|
jp nc,Get_Path ; Ok
|
||||||
@ -76,7 +76,7 @@ COMP: call EVALCMD ; (batch.asm)
|
|||||||
;
|
;
|
||||||
|
|
||||||
; ãáâ. ª®à¥ì, ¥â â ª®© ¯ ¯ª¨ ®¢®¬ ¤¨áª¥
|
; ãáâ. ª®à¥ì, ¥â â ª®© ¯ ¯ª¨ ®¢®¬ ¤¨áª¥
|
||||||
ld hl,system_path+1 ; ¡ãä¥à á¨áâ. ¯ãâ¨
|
ld hl,Buffers.sys_path + 1 ; ¡ãä¥à á¨áâ. ¯ãâ¨
|
||||||
ld (hl),0
|
ld (hl),0
|
||||||
dec hl
|
dec hl
|
||||||
ld (hl),'\'
|
ld (hl),'\'
|
||||||
@ -92,7 +92,7 @@ COMP: call EVALCMD ; (batch.asm)
|
|||||||
|
|
||||||
; § ¤ ¥ ¤¨áª
|
; § ¤ ¥ ¤¨áª
|
||||||
RUN_EXT: ex de,hl ; ¢®ááâ. ¤à¥á ç « áâப¨
|
RUN_EXT: ex de,hl ; ¢®ááâ. ¤à¥á ç « áâப¨
|
||||||
ld (SAVEHL),hl ; struct_input_line+5
|
ld (SAVEHL),hl ; Buffers.input_line.Path
|
||||||
ld de,EXTBF ; ¡ãä¥à
|
ld de,EXTBF ; ¡ãä¥à
|
||||||
ld bc,4*256 + Dss.EX_Path ; ¢ë¤¥«¨âì à áè. ä ©«
|
ld bc,4*256 + Dss.EX_Path ; ¢ë¤¥«¨âì à áè. ä ©«
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
@ -124,7 +124,7 @@ RUN_EXT: ex de,hl ;
|
|||||||
jr nz,EXEERR
|
jr nz,EXEERR
|
||||||
push hl
|
push hl
|
||||||
;ld a,(D96AD) ; ¤«¨ áâப¨ (inline.asm)
|
;ld a,(D96AD) ; ¤«¨ áâப¨ (inline.asm)
|
||||||
ld a,(struct_input_line+4) ; ¤«¨ áâப¨
|
ld a,(Buffers.input_line.Symbols_Num) ; ¤«¨ áâப¨
|
||||||
ld b,a
|
ld b,a
|
||||||
.loop: ld a,(hl)
|
.loop: ld a,(hl)
|
||||||
cp " "+1
|
cp " "+1
|
||||||
@ -187,12 +187,12 @@ RESTORE_ALL:
|
|||||||
;[x] 01/11/23 ;!TEST
|
;[x] 01/11/23 ;!TEST
|
||||||
CALL Get_Path
|
CALL Get_Path
|
||||||
;
|
;
|
||||||
LD A,(screen_path)
|
LD A,(Buffers.screen_path)
|
||||||
SUB 'A'
|
SUB 'A'
|
||||||
LD C,Dss.ChDisk
|
LD C,Dss.ChDisk
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;
|
;
|
||||||
LD HL,system_path
|
LD HL,Buffers.sys_path
|
||||||
LD C,Dss.ChDir
|
LD C,Dss.ChDir
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;
|
;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ MAIN_MSG:
|
|||||||
;
|
;
|
||||||
; 1 2 3 4 5 6 7
|
; 1 2 3 4 5 6 7
|
||||||
; 01234567890123456789012345678901234567890123456789012345678901234567890123456789;
|
; 01234567890123456789012345678901234567890123456789012345678901234567890123456789;
|
||||||
stN .DIR_1_ : db "Volume in drive %1 %4 %5\r\n"
|
stN .DIR_1_ : db "Volume in drive %1 %6 %7\r\n"
|
||||||
db "Volume Serial Number is %2\r\n"
|
db "Volume Serial Number is %2\r\n"
|
||||||
DZ "\r\nDirectory of %3\r\n\n"
|
DZ "\r\nDirectory of %3\r\n\n"
|
||||||
stN .VERS_ : DZ "Estex DSS version %1. Shell version %2.\r\n" ;R13
|
stN .VERS_ : DZ "Estex DSS version %1. Shell version %2.\r\n" ;R13
|
||||||
|
|||||||
@ -56,6 +56,7 @@ Loader_length EQU 0
|
|||||||
code_addr EQU shell
|
code_addr EQU shell
|
||||||
program_start EQU shell
|
program_start EQU shell
|
||||||
stack_point EQU #C000
|
stack_point EQU #C000
|
||||||
|
stack_size EQU #100
|
||||||
org_addr EQU #8000 + CLP_Buffer
|
org_addr EQU #8000 + CLP_Buffer
|
||||||
;---------------------------------------------------------------------[]
|
;---------------------------------------------------------------------[]
|
||||||
;
|
;
|
||||||
@ -91,15 +92,17 @@ org_addr EQU #8000 + CLP_Buffer
|
|||||||
;==============================================================
|
;==============================================================
|
||||||
; ’®çª ¢å®¤ ¢ ˜¥««
|
; ’®çª ¢å®¤ ¢ ˜¥««
|
||||||
;==============================================================
|
;==============================================================
|
||||||
shell:
|
shell: ld hl,Buffers
|
||||||
;!TODO merge: ªâ¨¢¨à®¢ âì ª®£¤ ¡ãä¥àë ¡ã¤ãâ ç¥à¥§ áâàãªâãàã, ¥ ã«ï¬¨
|
ld de,Buffers+1
|
||||||
;LD HL,WORK_BUFFERS
|
ld (hl),0
|
||||||
;LD DE,WORK_BUFFERS+1
|
ld bc,Struc_Buffers-1
|
||||||
;LD BC,BUFFERS_STRUCT-1
|
ldir
|
||||||
;LD (HL),0
|
;
|
||||||
;LDIR
|
ld hl,":A"
|
||||||
|
ld (Buffers.screen_path),hl
|
||||||
|
ld a,max_len_comline
|
||||||
|
ld (Buffers.input_line),a
|
||||||
;
|
;
|
||||||
|
|
||||||
; á®åà. ã஢¥ì ⥪. 襫«
|
; á®åà. ã஢¥ì ⥪. 襫«
|
||||||
ld a,(ix-1)
|
ld a,(ix-1)
|
||||||
ld (cmd_exit.TASKX),a
|
ld (cmd_exit.TASKX),a
|
||||||
@ -155,8 +158,8 @@ back_to_parent_process:
|
|||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
option_c:
|
option_c:
|
||||||
;ld hl,T96AE ; ¨¬ï bat-ä ©« , 256 ¡ãä¥à (inline.asm)
|
;ld hl,T96AE ; ¨¬ï bat-ä ©« , 256 ¡ãä¥à (inline.asm)
|
||||||
;ld hl,work_buffer+256;;
|
;ld hl,Buffers.work.buffer+256;;
|
||||||
ld hl,struct_input_line+5 ; ¨¬ï bat-ä ©«
|
ld hl,Buffers.input_line.Path ; ¨¬ï bat-ä ©«
|
||||||
call BATCH ; ®¡à ¡®âª bat-ä ©« (batch.asm)
|
call BATCH ; ®¡à ¡®âª bat-ä ©« (batch.asm)
|
||||||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||||||
jr back_to_parent_process.saveA ; ¢¥àãâìáï ¢ த¨â. ¯à®æ¥áá
|
jr back_to_parent_process.saveA ; ¢¥àãâìáï ¢ த¨â. ¯à®æ¥áá
|
||||||
@ -187,7 +190,7 @@ run_shell_loop:
|
|||||||
run_shell_loop1:
|
run_shell_loop1:
|
||||||
call input_line
|
call input_line
|
||||||
call newline ; ®¢ãî áâபã
|
call newline ; ®¢ãî áâபã
|
||||||
ld a,(struct_input_line+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
ld a,(Buffers.input_line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
or a
|
or a
|
||||||
jr z,run_shell_loop1 ; ¯ãáâ ï
|
jr z,run_shell_loop1 ; ¯ãáâ ï
|
||||||
; <20> àᨣ ¨ ¢ë¯®«¥¨¥ ª®¬ ¤
|
; <20> àᨣ ¨ ¢ë¯®«¥¨¥ ª®¬ ¤
|
||||||
@ -225,12 +228,12 @@ GET_CMD:
|
|||||||
dec hl
|
dec hl
|
||||||
cp '/' ; ®¯æ¨ï
|
cp '/' ; ®¯æ¨ï
|
||||||
jr nz,.PROCESS
|
jr nz,.PROCESS
|
||||||
ld de,work_buffer1 ; 128 ¡ãä¥à ¤«ï ¯ à ¬¥âà
|
ld de,Buffers.work.buffer1 ; 128 ¡ãä¥à ¤«ï ¯ à ¬¥âà
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«. ¯ à ¬¥âà ª®¬-áâப¨
|
ld c,Dss.GSwitch ; ¢ë¤¥«. ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
push af
|
push af
|
||||||
ex de,hl
|
ex de,hl
|
||||||
ld hl,work_buffer1 ; 128 ¡ãä¥à ¤«ï ¯ à ¬¥âà
|
ld hl,Buffers.work.buffer1 ; 128 ¡ãä¥à ¤«ï ¯ à ¬¥âà
|
||||||
inc hl
|
inc hl
|
||||||
call set_option_flag ; ãáâ. ¡¨âë ä« £®¢
|
call set_option_flag ; ãáâ. ¡¨âë ä« £®¢
|
||||||
pop af
|
pop af
|
||||||
@ -244,13 +247,13 @@ GET_CMD:
|
|||||||
; ᪮¯¨à. ¯ à ¬¥âà ¨§ ª®¬-áâப¨
|
; ᪮¯¨à. ¯ à ¬¥âà ¨§ ª®¬-áâப¨
|
||||||
; ¢ ¡ãä¥à áâப¨ । ªâ¨à®¢ ¨ï
|
; ¢ ¡ãä¥à áâப¨ । ªâ¨à®¢ ¨ï
|
||||||
;copy_to_input_line:
|
;copy_to_input_line:
|
||||||
ld iy,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
ld iy,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
push hl
|
push hl
|
||||||
call clear_inpline ; ®¡ã«¨âì áâàãªâãàã "input line"
|
call clear_inpline ; ®¡ã«¨âì áâàãªâãàã "input line"
|
||||||
pop de ; de=墮áâ áâப¨
|
pop de ; de=墮áâ áâப¨
|
||||||
.loop: ld hl,struct_input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
.loop: ld hl,Buffers.input_line ; áâàãªâãà ¡ãä¥à ~input line~
|
||||||
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
ld a,(iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
add a,(iy+3)
|
add a,(iy + Input_Line.Left_Shift)
|
||||||
add a,l
|
add a,l
|
||||||
ld l,a
|
ld l,a
|
||||||
jr nc,1F
|
jr nc,1F
|
||||||
@ -264,14 +267,14 @@ GET_CMD:
|
|||||||
ld (hl),a
|
ld (hl),a
|
||||||
or a
|
or a
|
||||||
ret z ; ª®¥æ áâப¨
|
ret z ; ª®¥æ áâப¨
|
||||||
inc (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
inc (iy + Input_Line.Symbols_Num) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||||
inc (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
inc (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ áâப¥
|
||||||
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
ld a,(width_inpline) ; è¨à¨ ¯®«ï ¢¢®¤
|
||||||
cp (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
cp (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
jr nz,2F
|
jr nz,2F
|
||||||
; ªãàá®à § ¯à ¢ë¬ ªà ¥¬ ¯®«ï ¢¢®¤
|
; ªãàá®à § ¯à ¢ë¬ ªà ¥¬ ¯®«ï ¢¢®¤
|
||||||
inc (iy+3) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
inc (iy + Input_Line.Left_Shift) ; ᬥé. áâப¨ § «¥¢ë© ªà ©
|
||||||
dec (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
dec (iy + Input_Line.Cur_X) ; X ⥪. ¯®«®¦. ªãàá®à ¢ ¯à¥¤¥« å áâப¨
|
||||||
2: ld a,(de) ; ᨬ¢®« ¨§ áâப¨
|
2: ld a,(de) ; ᨬ¢®« ¨§ áâப¨
|
||||||
inc de ; ¯à®¤¢. ¯®â®ª
|
inc de ; ¯à®¤¢. ¯®â®ª
|
||||||
cp " "
|
cp " "
|
||||||
@ -315,21 +318,21 @@ setopt4: ld a,c
|
|||||||
;GETPATH:
|
;GETPATH:
|
||||||
Get_Path:
|
Get_Path:
|
||||||
; ã§ âì ⥪. ª â «®£
|
; ã§ âì ⥪. ª â «®£
|
||||||
ld hl,system_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨
|
ld hl,Buffers.sys_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨
|
||||||
ld c,Dss.CurDir
|
ld c,Dss.CurDir
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
.disk: ; ã§ âì ⥪. ¤¨áª
|
.disk: ; ã§ âì ⥪. ¤¨áª
|
||||||
ld c,Dss.CurDisk
|
ld c,Dss.CurDisk
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
add a,"A"
|
add a,"A"
|
||||||
ld (screen_path),a ; 33 áâப íªà ®£® ¯ãâ¨
|
ld (Buffers.screen_path),a ; 33 áâப íªà ®£® ¯ãâ¨
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;!FIXIT ã¡à âì «¨è¨¥ ¢ë§®¢ë
|
;!FIXIT ã¡à âì «¨è¨¥ ¢ë§®¢ë
|
||||||
; ‚®ááâ ®¢¨âì ⥪. ¤¨áª ¨ ¯ãâì (¯®á«¥ ®è¨¡ª¨)
|
; ‚®ááâ ®¢¨âì ⥪. ¤¨áª ¨ ¯ãâì (¯®á«¥ ®è¨¡ª¨)
|
||||||
restore_disk_path:
|
restore_disk_path:
|
||||||
; ãáâ. ⥪. ¤¨áª
|
; ãáâ. ⥪. ¤¨áª
|
||||||
ld a,(screen_path) ; 33 áâப íªà ®£® ¯ãâ¨
|
ld a,(Buffers.screen_path) ; 33 áâப íªà ®£® ¯ãâ¨
|
||||||
sub "A"
|
sub "A"
|
||||||
ld c,Dss.ChDisk
|
ld c,Dss.ChDisk
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
@ -337,7 +340,7 @@ restore_disk_path:
|
|||||||
;!FIXIT ã¡à âì «¨è¨¥ ¢ë§®¢ë
|
;!FIXIT ã¡à âì «¨è¨¥ ¢ë§®¢ë
|
||||||
restore_path:
|
restore_path:
|
||||||
; ãáâ. ⥪. ª â «®£
|
; ãáâ. ⥪. ª â «®£
|
||||||
ld hl,system_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨
|
ld hl,Buffers.sys_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨
|
||||||
ld c,Dss.ChDir
|
ld c,Dss.ChDir
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ret
|
ret
|
||||||
@ -556,33 +559,40 @@ 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,$
|
||||||
|
DISPLAY "Free space from ",/H,$ + Struc_Buffers
|
||||||
CLEAR_ZONE:
|
assert ($ + Struc_Buffers) < (stack_point - stack_size), "Buffers can leack to stack!"
|
||||||
|
|
||||||
Buffers Struc_Buffers = $
|
Buffers Struc_Buffers = $
|
||||||
|
|
||||||
|
; 5 0
|
||||||
|
; íªà ë© ¯ãâì
|
||||||
|
;screen_path:
|
||||||
|
; db "A:"
|
||||||
|
; BLOCK max_screen_path+1,0 ; 32+1
|
||||||
|
; 6 0
|
||||||
|
; á¨áâ¥¬ë© ¯ãâì
|
||||||
|
; system_path:
|
||||||
|
; 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 ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
||||||
BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
; BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
||||||
|
|
||||||
; 8 0
|
; 8 0
|
||||||
; <20>ãä¥à ¨áâ®à¨¨
|
; <20>ãä¥à ¨áâ®à¨¨
|
||||||
history_buff:
|
; history_buff:
|
||||||
BLOCK history_size,0 ; 256
|
; BLOCK history_size,0 ; 256
|
||||||
|
|
||||||
; 9 0
|
; 9 0
|
||||||
; <20> ¡®ç¨© ¡ãä¥à
|
; <20> ¡®ç¨© ¡ãä¥à
|
||||||
work_buffer:
|
; work_buffer:
|
||||||
BLOCK 512,0
|
; 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 @@
|
|||||||
370
|
393
|
||||||
@ -7,19 +7,17 @@
|
|||||||
.Path BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
.Path BLOCK max_len_comline+1,0 ;+5 áâப ¢¢®¤
|
||||||
ENDS
|
ENDS
|
||||||
|
|
||||||
STRUCT History
|
|
||||||
.cmds BLOCK history_size,0 ; 256
|
|
||||||
ENDS
|
|
||||||
|
|
||||||
STRUCT Work
|
STRUCT Work
|
||||||
.work_buffer BLOCK 512,0
|
.buffer BLOCK 512,0
|
||||||
.work_buffer1 BLOCK 128,0
|
.buffer1 BLOCK 128,0
|
||||||
.work_buffer2 BLOCK 256,0
|
.buffer2 BLOCK 256,0
|
||||||
.free_buffer BLOCK 3840,0
|
.free BLOCK 3840,0
|
||||||
ENDS
|
ENDS
|
||||||
|
|
||||||
STRUCT Struc_Buffers
|
STRUCT Struc_Buffers
|
||||||
|
.screen_path BLOCK 2 + max_screen_path + 1, 0 ; db "A:" : BLOCK max_screen_path+1,0
|
||||||
|
.sys_path BLOCK 256,0
|
||||||
.input_line Input_Line
|
.input_line Input_Line
|
||||||
.history History
|
.history BLOCK history_size,0 ; 256
|
||||||
.work Work
|
.work Work
|
||||||
ENDS
|
ENDS
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user