This commit is contained in:
Anatoliy Belyanskiy 2023-11-23 05:40:42 +10:00
parent 497344d117
commit 55e6b9b07d
10 changed files with 296 additions and 170 deletions

View File

@ -1,4 +1,8 @@
;!TODO ®¯à¥¤¥«¥­¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®ç­ë¬ ­¥ ¯¥à¢ë© à §¤¥« ////////////////////////////////////////////////////////////////////////
; CHANGELOG
; [ ] - ®¯à¥¤¥«¥­¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®ç­ë¬ ­¥ ¯¥à¢ë© à §¤¥«
////////////////////////////////////////////////////////////////////////
; <20>ணࠬ¬  § ¯¨á¨ ­  FDD/HDD boot-§ £àã§ç¨ª  ¨ ä ©«®¢ á¨á⥬ë. ; <20>ணࠬ¬  § ¯¨á¨ ­  FDD/HDD boot-§ £àã§ç¨ª  ¨ ä ©«®¢ á¨á⥬ë.
; ;

View File

@ -153,48 +153,116 @@ CURRDSK: LD A,(FatBuffer.DRIVE)
;///////////////////////////////////////////////////////////////////// ;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #03. ˆ­ä®à¬ æ¨ï ® ¤¨áª¥. ; [ ] ­®¢ ï ¯®¤äã­ªæ¨ï á ¡¨â®¬ 7 ¢ ॣ. €
; ‚®§¢à é ¥â ¨­ä®à¬ æ¨î ®¡ ®¡é¥¬ ¨ ᢮¡®¤­®¬ ¯à®áâà ­á⢥ ¤¨áª®¢®£® ; ‚®§¢à é ¥â ¨­ä®à¬ æ¨î ®¡ ®¡é¥¬ ¨ ᢮¡®¤­®¬ ¯à®áâà ­á⢥ ¤¨áª®¢®£®
; ãáâனá⢠. ; ãáâனá⢠.
; ;
; ¢å®¤: A - ­®¬¥à ¤¨áª  (0=A,1=B,..#FF-⥪ã騩) ; ¢å®¤: A - ­®¬¥à ¤¨áª  (0=A,1=B .. 25=Z. #FF-⥪ã騩)
; <09>ਠA bit7 = 1:
; HL - ¡ãä¥à (256 ¡ ©â®¢) ¤«ï à áè¨à¥­­ëå ¤ ­­ëå:
; B != 0 - áç¨â âì ᢮¡®¤­®¥ ¬¥áâ®
; ;
; à §¬¥à ¯®«ï - 1 ¡ ©â
; ” ©«®¢ ï á¨á⥬ 
; ;
; à §¬¥à ¯®«ï - 1 ¡ ©â
; ‘¥à¨©­ë© ­®¬¥à ¤¨áª 
; ;
; à §¬¥à ¯®«ï - 1 ¡ ©â
; Œ¥âª  ¤¨áª 
; ;
; à §¬¥à ¯®«ï - 1 ¡ ©â
; ‡ à¥§¥à¢¨à®¢ ­®...
; ;
; A xor #80 - ­®¬¥à ¤¨áª 
;
; ¢ë室: A - à §¬¥à ª« áâ¥à  ¢ ᥪâ®à å, ¥á«¨ CF=0 ; ¢ë室: A - à §¬¥à ª« áâ¥à  ¢ ᥪâ®à å, ¥á«¨ CF=0
; HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢ ; HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
; DE - ᢮¡®¤­ëå ª« áâ¥à®¢ ; DE - ᢮¡®¤­ëå ª« áâ¥à®¢
; BC - à §¬¥à ᥪâ®à  ¢ ¡ ©â å ; BC - à §¬¥à ᥪâ®à  ¢ ¡ ©â å
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1 ; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;///////////////////////////////////////////////////////////////////// ;/////////////////////////////////////////////////////////////////////
DISKINF: ; [ ] 22/11/23 ¯®¤äã­ªæ¨ï á ¤®¯.¨­ä®©
CP #FF ; !FIXIT WorkDirectory MACRO _mCOPY_LOOP
LD C,A
LD B,0
LD (DE),A
INC DE
LDIR
; .loop:
; LD (HL),A
; INC DE
; INC HL
; LD A,(DE)
; DJNZ .loop
ENDM
;
DISKINF:; [ ] 22/11/23 ¯®¤äã­ªæ¨ï á ¤®¯.¨­ä®©
CP #80
JR C,.CustomDisk
CP #FF
JR Z,.CurrentDisk
; more info
PUSH HL
AND %0111'1111
CALL .CustomDisk
JR C,.error
;
EX (SP),HL
PUSH AF
PUSH DE
PUSH BC
;;;;
;
EX DE,HL
LD HL,CORE_BUFFERS.BootSector.ID_FAT
LD A,8 ;!HARDCODE _sBOOT_SEC.ID_FAT.length
_mCOPY_LOOP
;
LD HL,CORE_BUFFERS.BootSector.BPB_SERIAL_NUMBER
LD A,4 ;!HARDCODE _sBOOT_SEC.BPB_SERIAL_NUMBER
_mCOPY_LOOP
;
LD HL,CORE_BUFFERS.BootSector.BPB_LABEL
LD A,11 ;!HARDCODE _sBOOT_SEC.BPB_LABEL
_mCOPY_LOOP
;
XOR A
LD (DE),A
;;;;
POP BC
POP DE
POP AF
.error: POP HL
RET
;
;CP #FF ; !FIXIT WorkDirectory
;!TEST Current Dir ;!TEST Current Dir
;JR Z,CURRDS ;R06 ;JR Z,CURRDS ;R06
JR NZ,.CustomDisk .CurrentDisk:
LD A,(CurrentPath) LD A,(CurrentPath)
SUB 'A' SUB 'A'
LD HL,FatBuffer.DRIVE LD HL,FatBuffer.DRIVE
CP (HL) CP (HL)
JR Z,CURRDS JR Z,.CheckFreeSpace
; ;
.CustomDisk: .CustomDisk:
PUSH BC
CALL CHNDISK ;R06 CALL CHNDISK ;R06
RET C ;R06
CURRDS:
LD HL,2
LD BC,0
FRESP: PUSH BC
CALL R_F_FAT
POP BC POP BC
CP DSS_Error.sys.DISK_FULL RET C ;R06
JR Z,FRESP2
LD A,E .CheckFreeSpace:
OR D ;
JR NZ,SKIC XOR A
INC BC OR B
SKIC: INC HL CALL NZ,.CURRDS
JP FRESP ;
;
FRESP2: LD D,B .FRESP2:
LD D,B
LD E,C LD E,C
LD HL,(MAX_CLU) LD HL,(MAX_CLU)
DEC HL DEC HL
@ -202,6 +270,24 @@ FRESP2: LD D,B
LD A,(CORE_BUFFERS.BootSector.S_P_C) LD A,(CORE_BUFFERS.BootSector.S_P_C)
AND A AND A
RET RET
;
.CURRDS:
LD HL,2
LD BC,0
.FRESP: PUSH BC
CALL R_F_FAT
POP BC
CP DSS_Error.sys.DISK_FULL
RET Z
LD A,E
OR D
JR NZ,.SKIC
INC BC
.SKIC: INC HL
JP .FRESP
;
; <20>®¬¥à ¯®á«¥¤­¥£® ¤¨áª  ¢ á¨á⥬¥ ; <20>®¬¥à ¯®á«¥¤­¥£® ¤¨áª  ¢ á¨á⥬¥
LDRIVE: DB DSS_MAX_DRIVES_AMOUNT LDRIVE: DB DSS_MAX_DRIVES_AMOUNT

View File

@ -446,7 +446,7 @@ GBPB_H: PUSH IY
POP IY POP IY
LD BC,1*256 + BIOS.DRV_READ LD BC,1*256 + BIOS.DRV_READ
JP ToBIOS JP ToBIOS
;RET
;HL:IX - SECTOR ;HL:IX - SECTOR
; DE - ADDRESS ; DE - ADDRESS

View File

@ -1 +1 @@
607 620

View File

@ -3,10 +3,13 @@
; DIR. ‚뢮¤ ᯨ᪠ ä ©«®¢ ¨ ¯ ¯®ª ; DIR. ‚뢮¤ ᯨ᪠ ä ©«®¢ ¨ ¯ ¯®ª
; ;
;/////////////////////////////////////////////////// ;///////////////////////////////////////////////////
cmd_dir: push de cmd_dir:
push de
ld c,Dss.CurDisk ; ã§­ âì ⥪. ¤¨áª ld c,Dss.CurDisk ; ã§­ âì ⥪. ¤¨áª
RST ToDSS RST ToDSS
ld (disk+1),a ; ­®¬¥à ¤¨áª  ADD A,"A"
ld (root_path),a ; ­®¬¥à ¤¨áª 
SUB "A"
call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©­ë© ­®¬¥à ¤¨áª  call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©­ë© ­®¬¥à ¤¨áª 
pop de pop de
ld hl,0 ld hl,0
@ -51,9 +54,15 @@ cmd_dir: push de
;ld ix,T9186 ;ld ix,T9186
ld ix,work_buffer1 ; 80 ld ix,work_buffer1 ; 80
ld a,(ix+32) ;  âਡãâ ⥪. § ¯¨á¨ ld a,(ix+32) ;  âਡãâ ⥪. § ¯¨á¨
and 10h ; ¯ ¯ª  ? and FAT_ATTR.DIRECTORY ; ¯ ¯ª  ?
jr nz,.next ; ¤  jr z,.calc_size ; ­¥â
; 㢥«¨ç¨¢ ¥¬ áçñâ稪 ¯ ¯®ª
ld hl,(dir_number)
inc hl
ld (dir_number),hl
jr .next
; ¯à¨¡ ¢¨âì à §¬¥à ⥪. ä ©«  ; ¯à¨¡ ¢¨âì à §¬¥à ⥪. ä ©« 
.calc_size:
ld hl,(D88DC) ld hl,(D88DC)
inc hl inc hl
ld (D88DC),hl ld (D88DC),hl
@ -71,8 +80,7 @@ cmd_dir: push de
ld (D88DE),hl ld (D88DE),hl
exx exx
ld (D88E0),hl ld (D88E0),hl
.next: ;ld de,T9186 ; à ¡. ¡ãä¥à .next: ld de,work_buffer1 ; 80 ¡ãä¥à
ld de,work_buffer1 ; 80 ¡ãä¥à
ld c,Dss.F_Next ; ¯®¨áª á«¥¤. ld c,Dss.F_Next ; ¯®¨áª á«¥¤.
RST ToDSS RST ToDSS
jr nc,.loop ; ­ § ¤ ¢ 横«, ¥á«¨ ­¥ ª®­¥æ ᯨ᪠ jr nc,.loop ; ­ § ¤ ¢ 横«, ¥á«¨ ­¥ ª®­¥æ ᯨ᪠
@ -123,6 +131,7 @@ cmd_dir: push de
ldi ldi
ldi ldi
ldi ldi
­¥¤®¤¥« ­®
ld hl,T8B46 ; "0 000 000 000" ld hl,T8B46 ; "0 000 000 000"
ld de,PRM2 ; ªã¤  ld de,PRM2 ; ªã¤ 
call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢. call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬), ¬ ªá.15 ᨬ¢.
@ -163,7 +172,7 @@ cmd_dir: push de
ld de,0 ; ¨­¤¥ªá "Volume in drive %1 has no label..." ;!HARDCODE ­®¬¥à áâப¨ MSG0 ld de,0 ; ¨­¤¥ªá "Volume in drive %1 has no label..." ;!HARDCODE ­®¬¥à áâப¨ MSG0
JP MESSAGE ; ¢ë¢¥á⨠áâபã JP MESSAGE ; ¢ë¢¥á⨠áâபã
.str: DZ 'X:\ is empty' ;R14 .str: DZ 'X:\ is empty' ;R14 ;!FIXIT
; ;
; <20>®¤£®â®¢¨âì áâபã ᯨ᪠ ä ©«®¢/¯ ¯®ª ; <20>®¤£®â®¢¨âì áâபã ᯨ᪠ ä ©«®¢/¯ ¯®ª
@ -402,127 +411,151 @@ A8B16: inc a
ld (ix+0),a ld (ix+0),a
inc ix inc ix
ret ret
;
D88DC: dw 0 D88DC: dw 0
D88DE: dw 0 D88DE: dw 0
D88E0: dw 0 D88E0: dw 0
;
T8B2E: db "000000000" T8B2E: db "000000000"
T8B37: db "0" T8B37: db "0"
T8B38: db "<DIR> ",0 T8B38: db "<DIR> ",0
T8B46: db "0 000 000 000",0 T8B46: db "0 000 000 000",0
db 0 db 0
;
;!FIXIT ¯¥à¥­¥á⨠¢ DSS - FN #04: GET_BPB ;!FIXIT ¯¥à¥­¥á⨠¢ DSS - FN #04: GET_BPB
; ¯à®ç¨â âì BPB ¤¨áª  ; ¯à®ç¨â âì BPB ¤¨áª 
read_disk_info: read_disk_info:
disk: ld a,0 ; á®åà. ­®¬¥à ¤¨áª  OR #80
ld c,1 ; open device LD HL,work_buffer
rst 18h LD BC,Dss.DskInfo
jr c,get_inf_data_err ;!FIXIT ­¥â ®¡à ¡®â稪  ®è¨¡ª RST ToDSS
ld a,(disk+1) ; ” ©«®¢ ï á¨á⥬ 
ld de,work_buffer ; ¡ãä¥à ; ‘¥à¨©­ë© ­®¬¥à ¤¨áª 
ld c,4 ; get BPB ; Œ¥âª  ¤¨áª  ¢ BPB
rst 18h
push af
ld a,(disk+1) ; ­®¬¥à ¤¨áª 
ld c,2 ; close device
rst 18h
pop af
jr c,get_inf_data_err ;!FIXIT ­¥â ®¡à ¡®â稪  ®è¨¡ª¨
;
get_inf_data_err:
;
; ‘¥à¨©­ë© ­®¬¥à «®£. ¤¨áª  ; parse
ld hl,(work_buffer+41) ; áâ.ç áâì LD D,0
LD HL,work_buffer
; âãâ ¢ HL ¤«¨­  ¯®«ï "” ©«®¢ ï á¨á⥬ "
LD E,(HL)
ADD HL,DE
INC HL
; ¤«¨­  ¯®«ï "‘¥à¨©­ë© ­®¬¥à ¤¨áª "
LD A,(HL)
LD E,A
ADD HL,DE
INC HL
PUSH HL ; 㪠§ â¥«ì ­  ¤«¨­ã ¯®«ï "Œ¥âª  ¤¨áª "
CP 4 ;!HARDCODE ¤«¨­  ¯®«ï á¥à¨©­®£® ­®¬¥à 
JR NZ,unknown_serial
DEC HL
; áâ à襥 á«®¢® á¥à¨©­¨ª 
LD D,(HL)
DEC HL
LD E,(HL)
DEC HL
PUSH HL
EX DE,HL
ld de,serial_string ; xxxx-xxxx ld de,serial_string ; xxxx-xxxx
call hex16 call hex16
POP HL
;
ld a,"-" ld a,"-"
ld (de),a ld (de),a
inc de INC DE
ld hl,(work_buffer+39) ; ¬«.ç áâì ; ¬« ¤è¥¥ á«®¢® á¥à¨©­¨ª 
LD A,(HL)
DEC HL
LD L,(HL)
LD H,A
call hex16 call hex16
; ;
; Œ¥âª  ¤¨áª  ; Œ¥âª  ¤¨áª 
ld a,(disk+1) ; ­®¬¥à ¤¨áª  ; ld a,(disk) ; ­®¬¥à ¤¨áª 
cp 2 ; ¬¥­ìè¥ "C:" ? ; cp 2 ; ¬¥­ìè¥ "C:" ?
jr nc,get_inf_data1 ; ¬¥âª  ¢ BPB ; jr nc,get_inf_data1 ; ¬¥âª  ¢ BPB
; floppy, ¬¥âª  - ª ª § ¯¨áì ä ©« 
ld c,Dss.ChDisk ; ãáâ. ¤¨áª .get_label:
RST ToDSS ; ¨é¥¬ ¬¥âªã ¢ ª®à­¥ ”‘ à §¤¥« 
; ãáâ. ª®à¥­ì ¤¨áª  ; ãáâ. ª®à¥­ì ¤¨áª 
ld hl,root_path ; "\",0 ld hl,root_path ; "x:\",0
ld c,Dss.ChDir ld c,Dss.ChDir
RST ToDSS RST ToDSS
; ¯®¨áª ¬¥âª¨ ; ¯®¨áª ¬¥âª¨
ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨ ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
ld de,work_buffer1 ; ªã¤  ld de,work_buffer1 ; ªã¤ 
ld a,8 ;  âਡãâ ¬¥âª¨ ⮬  ld a,FAT_ATTR.VOLUME_ID ;  âਡãâ ¬¥âª¨ ⮬ 
ld bc,0*256 + Dss.F_First ; f_first, ä®à¬ â 11 ld bc,0*256 + Dss.F_First ; f_first, ä®à¬ â 11
RST ToDSS RST ToDSS
push af push af
call restore_path ; ¢®ááâ. ⥪. ¯ãâì call restore_path ; ¢®ááâ. ⥪. ¯ãâì
pop af pop af
jr c,no_volume_label ; ¬¥âª¨ ­¥â ;jr c,no_volume_label ; ¬¥âª¨ ­¥â ¤¨à४â®à¨¨
ld hl,work_buffer1+33 ; ­ ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first ld hl,work_buffer1+33 ; ­ ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
jr volume_label jr nc,volume_label ; ¬¥âª  ¢ ª®à­¥¢®¬ ª â «®£¥
; ¡¥àñ¬ ¬¥âªã ¨§ BPB
; âãâ ¢ HL ¤«¨­  ¯®«ï "Œ¥âª  ¤¨áª "
POP hl
LD A,(HL)
INC HL
AND A
jr z,.no_volume_label ; ¤ 
PUSH HL
LD B,A
LD A,' '
; ;
get_inf_data1: ;!FIXIT â ª â ¬ ¯à®¡¥«ë áâ®ïâì ¬®£ãâ, ¥á«¨ ¬¥âª  ª®à®ç¥ 11 ᨬ¢®«®¢ .loop: CP (HL)
ld hl,work_buffer+53 ; ª®­¥æ ¬¥âª¨ ¢ BPB JR NZ,.good_label
ld a,(hl) INC HL
cp " " ; ¥áâì ¬¥âª  ? DJNZ .loop
ld hl,work_buffer+43 ; ­ ç «® ¬¥âª¨ ¢ BPB POP HL ; á­¨¬ ¥¬ «¨è­¥¥
jr nz,volume_label ; ¤ 
;!FIXIT ᤥ« âì ç¥à¥§  à£ã¬¥­âë %1-%9
; ­¥â ¬¥âª¨ ; ­¥â ¬¥âª¨
no_volume_label: ;!FIXIT ᤥ« âì ç¥à¥§ PRM %4 .no_volume_label:
ld hl,volume_string1 ; "has no label " ; %4
ld de,MSG0.volume_string ; ªã¤  ld hl,volume_string_no ; áâப 
ld bc,14 ld de,PRM4 ; ªã¤ 
ldir call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬)
XOR A
LD (PRM5),A
ret ret
.good_label:
POP HL
PUSH HL ; «¨è­¥¥
;!FIXIT ᤥ« âì ç¥à¥§  à£ã¬¥­âë %1-%9 ;!FIXIT ᤥ« âì ç¥à¥§  à£ã¬¥­âë %1-%9
; ¥áâì ¬¥âª  ; ¥áâì ¬¥âª 
volume_label: volume_label:
ex de,hl pop DE ; «¨è­¥¥
ld hl,MSG0.volume_string ; ªã¤  ; %5
ld (hl),"i" ld de,PRM5
inc hl ld bc,11 ;!HARDCODE ¤«¨­  ¬¥âª¨
ld (hl),"s"
inc hl
ld (hl)," "
inc hl
ex de,hl
; ᪮¯¨à. ¨¬ï ¬¥âª¨
ld bc,11 ; ¬ ªá. ¤«¨­  ¬¥âª¨
ld a,(hl)
cp " "+1
jr nc,$+6
inc hl
dec c
jr $-7
ld a,11
sub c
ldir ldir
ld b,a xor a
or a ; ¤«¨­  ¬¥âª¨ 11 ᨬ¢. ?
ret z ; ¤ 
; ¤®¯®«­¨âì 墮áâ. ¯à®¡¥« ¬¨
ld (de),a ld (de),a
inc de ; %4
djnz $-2 ld hl,volume_string_yes ; áâப 
ld de,PRM4 ; ªã¤ 
call ncopy_string ; ᪮¯¨à. áâபã (á ­ã«¥¬)
ret ret
;
; ¥á«¨ ­¥ 㤠«®áì ¯à®ç¨â âì á¥à¨©­ë© ­®¬¥à ¤¨áª  ¨«¨ ä®à¬ â ­¥¨§¢¥á⥭
unknown_serial:
; á¥à¨©­ë© ­®¬¥à ¤¨áª  - ­¥¨§¢¥á⥭ ;!HARDCODE ­¨¦¥
LD HL,serial_string
LD A,'?'
LD B,serial_string.Size
.loop: LD (HL),A
INC HL
DJNZ .loop
LD HL,serial_string+4
LD (HL),'-'
;POP HL ; «¨è­¥¥
JP read_disk_info.get_label
;
@ -538,33 +571,34 @@ hex8: push af
rrca rrca
rrca rrca
rrca rrca
call $+4 call .num
pop af pop af
and 0Fh ;
add a,90h .num: and %0000'1111
add a,#90
daa daa
adc a,40h adc a,#40
daa daa
ld (de),a ld (de),a
inc de inc de
ret ret
; ¬ áª  ä ©«®¢ ; ¬ áª  ä ©«®¢
mask_fname: mask_fname:
db "*.*",0 db "*.*",0
; ª®à¥­ì ¤¨áª  ; ª®à¥­ì ¤¨áª 
root_path: root_path:
db '\',0 db 'X:\',0
; ‘¥à¨©­ë© ­®¬¥à ¤¨áª  ; ‘¥à¨©­ë© ­®¬¥à ¤¨áª 
serial_string: serial_string:
db "xxxx-xxxx",0 db "xxxx-xxxx"
.Size equ $-serial_string
db 0 ; § ªà뢠誠
volume_string1: ;!FIXIT ᤥ« âì ç¥à¥§ PRM volume_string_no: ;!FIXIT ᤥ« âì ç¥à¥§ PRM
db "has no label " ; 14 db "has no label",0
volume_string_yes:
db "has label",0

View File

@ -226,7 +226,9 @@ prne1__:ld (cursor_position),a ; X
; —⥭¨¥ ᮡë⨩ ; —⥭¨¥ ᮡë⨩
;------------------------------------------------- ;-------------------------------------------------
handle_event: handle_event:
ld de,(cursor_position) cursor_position+1:
ld de,0
;
ld c,Dss.Locate ld c,Dss.Locate
RST ToDSS RST ToDSS
ld c,Dss.EchoKey ; ®¯à®á ª« ¢ë ld c,Dss.EchoKey ; ®¯à®á ª« ¢ë
@ -956,36 +958,37 @@ not_move_to_end:
;!FIXIT ª ¡ãä¥à ¬ ¯®ç⨠¢áñ
////////////////////////////////////////////////////////////////////////
; 1 0
;cursor_position:
; dw 0 ; Y/X ¯®«®¦. ªãàá®à 
; 2 0
cursor_position:
dw 0 ; Y/X ¯®«®¦. ªãàá®à 
width_inpline: width_inpline:
.MAX EQU 80 .MAX EQU 80
db width_inpline.MAX-4 ; ⥪. è¨à¨­  ¯®«ï ¢¢®¤  db width_inpline.MAX-4 ; ⥪. è¨à¨­  ¯®«ï ¢¢®¤ 
; 3 0
YXpos: dw 0 ; Y/X ­ ç «® ª®¬-áâப¨ YXpos: dw 0 ; Y/X ­ ç «® ª®¬-áâப¨
; 4 0
; ०¨¬ ¢¢®¤  ; ०¨¬ ¢¢®¤ 
insert_mode: insert_mode:
db 1 ; 01/00 inser/overwrite db 1 ; 01/00 inser/overwrite
; 5 0
; íªà ­­ë© ¯ãâì ; íªà ­­ë© ¯ãâì
screen_path: screen_path:
db "A:" db "A:"
ds max_screen_path+1 ; 32+1 BLOCK max_screen_path+1,0 ; 32+1
; 6 0
; á¨á⥬­ë© ¯ãâì ; á¨á⥬­ë© ¯ãâì
system_path: system_path:
;db "\BORLAND\LMDTOOLS\TESTING\PROGRAM\SOURCES\TURBO\PR",0 BLOCK 256,0 ;!HARDCODE
ds 256
; 7 0
; ‘âàãªâãà  áâப¨ ¢¢®¤  ~input line~ ; ‘âàãªâãà  áâப¨ ¢¢®¤  ~input line~
struct_input_line: struct_input_line:
db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢ db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
@ -995,12 +998,14 @@ struct_input_line:
db 0 ;+4 ç¨á«® ¢¢¥¤¥­­ëå ᨬ¢®«®¢ db 0 ;+4 ç¨á«® ¢¢¥¤¥­­ëå ᨬ¢®«®¢
ds max_len_comline+1 ;+5 áâப  ¢¢®¤  ds max_len_comline+1 ;+5 áâப  ¢¢®¤ 
; 8 0
; <20>ãä¥à ¨áâ®à¨¨ ; <20>ãä¥à ¨áâ®à¨¨
history_buff: history_buff:
ds history_size ; 256 BLOCK history_size,0 ; 256
; 9 0
; <20> ¡®ç¨© ¡ãä¥à ; <20> ¡®ç¨© ¡ãä¥à
work_buffer: work_buffer:
ds 512 BLOCK 512,0
////////////////////////////////////////////////////////////////////////
;

View File

@ -132,33 +132,27 @@ DIR3MSG EQU 10
HELPMSG EQU 11 HELPMSG EQU 11
MSG0: db 0 MSG0: db 0
; 0 /* 0 */ db "Volume in drive %1 %4 %5",CR,LF
db "Volume on drive %1 " db "Volume Serial Number is %2",CR,LF
.volume_string: ;!FIXIT ᤥ« âì ç¥à¥§ PRM
db "has no label ",CR,LF ;0
db "The volume serial number is %2",CR,LF
db CR,LF,"Directory of %3",CR,LF,LF,0 db CR,LF,"Directory of %3",CR,LF,LF,0
; 1 /* 1 */ db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13
db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13 /* 2 */ db "Current date: %1",CR,LF,0
; 2 /* 3 */ db "Current time: %1",CR,LF,0
db "Current date: %1",CR,LF,0 ;2 /* 4 */ db "Press any key to continue . . .",CR,LF,LF,0
db "Current time: %1",CR,LF,0 ;3 /* 5 */ db "Invalid parametr",CR,LF,0
db "Press any key to continue . . .",CR,LF,LF,0 ;4 /* 6 */ db "Echo is %1",CR,LF,0
db "Invalid parametr",CR,LF,0 ;5 /* 7 */ db "on",0
db "Echo is %1",CR,LF,0 ;6 /* 8 */ db "off",0
db "on",0 ;7 /* 9 */ db " %1 File(s) %2 bytes",CR,LF
db "off",0 ;8 db " %3 Dir(s) %4 bytes",CR,LF,LF,0
db " %1 file(s) %2 bytes",CR,LF,LF,0 ;9 /* 10 */ db "%1 %2 %3 %4 %5",CR,LF,0 ;FILENAME EXT SIZE DATE TIME
; 10 FILENAME EXT SIZE DATE TIME /* 11 */ DB "COMMANDS:",CR,LF,CR,LF
db "%1 %2 %3 %4 %5",CR,LF,0 ;10
; 11
DB "COMMANDS:",CR,LF,CR,LF
DB "DIR REN | RENAME PATH HELP ",CR,LF DB "DIR REN | RENAME PATH HELP ",CR,LF
DB "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF DB "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
DB "MD | MKDIR TIME ECHO EXIT ",CR,LF DB "MD | MKDIR TIME ECHO EXIT ",CR,LF
DB "RD | RMDIR DATE CLS REBOOT ",CR,LF,0 DB "RD | RMDIR DATE CLS REBOOT ",CR,LF,0
;R11 ;R11
BYTE 0 DB 0
DZ "Unknown command" DZ "Unknown command"
; ;
.Size EQU $-MSG0 .Size EQU $-MSG0

View File

@ -316,6 +316,7 @@ save_disk:
ld (screen_path),a ; 33 áâப  íªà ­­®£® ¯ã⨠ld (screen_path),a ; 33 áâப  íªà ­­®£® ¯ãâ¨
ret ret
;!FIXIT 耤<>碪 咧霅言 c妙c
; ‚®ááâ ­®¢¨âì ⥪. ¤¨áª ¨ ¯ãâì (¯®á«¥ ®è¨¡ª¨) ; ‚®ááâ ­®¢¨âì ⥪. ¤¨áª ¨ ¯ãâì (¯®á«¥ ®è¨¡ª¨)
restore_disk_path: restore_disk_path:
; ãáâ. ⥪. ¤¨áª ; ãáâ. ⥪. ¤¨áª
@ -323,6 +324,8 @@ restore_disk_path:
sub "A" sub "A"
ld c,Dss.ChDir ld c,Dss.ChDir
RST ToDSS RST ToDSS
;!FIXIT 耤<>碪 咧霅言 c妙c
restore_path: restore_path:
; ãáâ. ⥪. ª â «®£ ; ãáâ. ⥪. ª â «®£
ld hl,system_path ; 256 ¡ãä¥à á¨áâ. ¯ã⨠ld hl,system_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨

View File

@ -1 +1 @@
96 127

@ -1 +1 @@
Subproject commit 18269745815d90e76686f5693e0cb45f8f31741c Subproject commit 349ba286106d21a77cf3f8a25b6f7c952eccb046