mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-17 18:30:35 +03:00
...
This commit is contained in:
parent
497344d117
commit
55e6b9b07d
@ -1,4 +1,8 @@
|
||||
;!TODO ®¯à¥¤¥«¥¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®çë¬ ¥ ¯¥à¢ë© à §¤¥«
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
; CHANGELOG
|
||||
; [ ] - ®¯à¥¤¥«¥¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®çë¬ ¥ ¯¥à¢ë© à §¤¥«
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
; <20>à®£à ¬¬ § ¯¨á¨ FDD/HDD boot-§ £àã§ç¨ª ¨ ä ©«®¢ á¨á⥬ë.
|
||||
;
|
||||
|
||||
132
DSS/DOS_X.ASM
132
DSS/DOS_X.ASM
@ -153,55 +153,141 @@ 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
|
||||
; HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
|
||||
; DE - ᢮¡®¤ëå ª« áâ¥à®¢
|
||||
; BC - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
DISKINF:
|
||||
CP #FF ; !FIXIT WorkDirectory
|
||||
; [ ] 22/11/23 ¯®¤äãªæ¨ï á ¤®¯.¨ä®©
|
||||
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
|
||||
;JR Z,CURRDS ;R06
|
||||
JR NZ,.CustomDisk
|
||||
.CurrentDisk:
|
||||
LD A,(CurrentPath)
|
||||
SUB 'A'
|
||||
LD HL,FatBuffer.DRIVE
|
||||
CP (HL)
|
||||
JR Z,CURRDS
|
||||
JR Z,.CheckFreeSpace
|
||||
;
|
||||
.CustomDisk:
|
||||
PUSH BC
|
||||
CALL CHNDISK ;R06
|
||||
RET C ;R06
|
||||
CURRDS:
|
||||
LD HL,2
|
||||
LD BC,0
|
||||
FRESP: PUSH BC
|
||||
CALL R_F_FAT
|
||||
POP BC
|
||||
CP DSS_Error.sys.DISK_FULL
|
||||
JR Z,FRESP2
|
||||
RET C ;R06
|
||||
|
||||
LD A,E
|
||||
OR D
|
||||
JR NZ,SKIC
|
||||
INC BC
|
||||
SKIC: INC HL
|
||||
JP FRESP
|
||||
|
||||
FRESP2: LD D,B
|
||||
.CheckFreeSpace:
|
||||
;
|
||||
XOR A
|
||||
OR B
|
||||
CALL NZ,.CURRDS
|
||||
;
|
||||
;
|
||||
.FRESP2:
|
||||
LD D,B
|
||||
LD E,C
|
||||
LD HL,(MAX_CLU)
|
||||
DEC HL
|
||||
LD BC,(CORE_BUFFERS.BootSector.B_P_S)
|
||||
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
||||
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>®¬¥à ¯®á«¥¤¥£® ¤¨áª ¢ á¨á⥬¥
|
||||
LDRIVE: DB DSS_MAX_DRIVES_AMOUNT
|
||||
|
||||
@ -446,7 +446,7 @@ GBPB_H: PUSH IY
|
||||
POP IY
|
||||
LD BC,1*256 + BIOS.DRV_READ
|
||||
JP ToBIOS
|
||||
;RET
|
||||
|
||||
|
||||
;HL:IX - SECTOR
|
||||
; DE - ADDRESS
|
||||
|
||||
@ -1 +1 @@
|
||||
607
|
||||
620
|
||||
@ -3,10 +3,13 @@
|
||||
; DIR. ‚뢮¤ á¯¨áª ä ©«®¢ ¨ ¯ ¯®ª
|
||||
;
|
||||
;///////////////////////////////////////////////////
|
||||
cmd_dir: push de
|
||||
cmd_dir:
|
||||
push de
|
||||
ld c,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||
RST ToDSS
|
||||
ld (disk+1),a ; ®¬¥à ¤¨áª
|
||||
ADD A,"A"
|
||||
ld (root_path),a ; ®¬¥à ¤¨áª
|
||||
SUB "A"
|
||||
call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
||||
pop de
|
||||
ld hl,0
|
||||
@ -51,9 +54,15 @@ cmd_dir: push de
|
||||
;ld ix,T9186
|
||||
ld ix,work_buffer1 ; 80
|
||||
ld a,(ix+32) ; âਡãâ ⥪. § ¯¨á¨
|
||||
and 10h ; ¯ ¯ª ?
|
||||
jr nz,.next ; ¤
|
||||
and FAT_ATTR.DIRECTORY ; ¯ ¯ª ?
|
||||
jr z,.calc_size ; ¥â
|
||||
; 㢥«¨ç¨¢ ¥¬ áçñâ稪 ¯ ¯®ª
|
||||
ld hl,(dir_number)
|
||||
inc hl
|
||||
ld (dir_number),hl
|
||||
jr .next
|
||||
; ¯à¨¡ ¢¨âì à §¬¥à ⥪. ä ©«
|
||||
.calc_size:
|
||||
ld hl,(D88DC)
|
||||
inc hl
|
||||
ld (D88DC),hl
|
||||
@ -71,8 +80,7 @@ cmd_dir: push de
|
||||
ld (D88DE),hl
|
||||
exx
|
||||
ld (D88E0),hl
|
||||
.next: ;ld de,T9186 ; à ¡. ¡ãä¥à
|
||||
ld de,work_buffer1 ; 80 ¡ãä¥à
|
||||
.next: ld de,work_buffer1 ; 80 ¡ãä¥à
|
||||
ld c,Dss.F_Next ; ¯®¨áª á«¥¤.
|
||||
RST ToDSS
|
||||
jr nc,.loop ; § ¤ ¢ 横«, ¥á«¨ ¥ ª®¥æ ᯨáª
|
||||
@ -123,6 +131,7 @@ cmd_dir: push de
|
||||
ldi
|
||||
ldi
|
||||
ldi
|
||||
¥¤®¤¥« ®
|
||||
ld hl,T8B46 ; "0 000 000 000"
|
||||
ld de,PRM2 ; ªã¤
|
||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬), ¬ ªá.15 ᨬ¢.
|
||||
@ -163,7 +172,7 @@ cmd_dir: push de
|
||||
ld de,0 ; ¨¤¥ªá "Volume in drive %1 has no label..." ;!HARDCODE ®¬¥à áâப¨ MSG0
|
||||
JP MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||
|
||||
.str: DZ 'X:\ is empty' ;R14
|
||||
.str: DZ 'X:\ is empty' ;R14 ;!FIXIT
|
||||
;
|
||||
|
||||
; <20>®¤£®â®¢¨âì áâபã á¯¨áª ä ©«®¢/¯ ¯®ª
|
||||
@ -402,127 +411,151 @@ A8B16: inc a
|
||||
ld (ix+0),a
|
||||
inc ix
|
||||
ret
|
||||
|
||||
|
||||
|
||||
;
|
||||
|
||||
D88DC: dw 0
|
||||
D88DE: dw 0
|
||||
D88E0: dw 0
|
||||
|
||||
|
||||
;
|
||||
|
||||
T8B2E: db "000000000"
|
||||
T8B37: db "0"
|
||||
T8B38: db "<DIR> ",0
|
||||
T8B46: db "0 000 000 000",0
|
||||
db 0
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
|
||||
;!FIXIT ¯¥à¥¥á⨠¢ DSS - FN #04: GET_BPB
|
||||
; ¯à®ç¨â âì BPB ¤¨áª
|
||||
read_disk_info:
|
||||
disk: ld a,0 ; á®åà. ®¬¥à ¤¨áª
|
||||
ld c,1 ; open device
|
||||
rst 18h
|
||||
jr c,get_inf_data_err ;!FIXIT ¥â ®¡à ¡®â稪 ®è¨¡ª
|
||||
ld a,(disk+1)
|
||||
ld de,work_buffer ; ¡ãä¥à
|
||||
ld c,4 ; get 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:
|
||||
;
|
||||
OR #80
|
||||
LD HL,work_buffer
|
||||
LD BC,Dss.DskInfo
|
||||
RST ToDSS
|
||||
; ” ©«®¢ ï á¨á⥬
|
||||
; ‘¥à¨©ë© ®¬¥à ¤¨áª
|
||||
; Œ¥âª ¤¨áª ¢ BPB
|
||||
|
||||
; ‘¥à¨©ë© ®¬¥à «®£. ¤¨áª
|
||||
ld hl,(work_buffer+41) ; áâ.ç áâì
|
||||
; parse
|
||||
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
|
||||
call hex16
|
||||
POP HL
|
||||
;
|
||||
ld a,"-"
|
||||
ld (de),a
|
||||
inc de
|
||||
ld hl,(work_buffer+39) ; ¬«.ç áâì
|
||||
INC DE
|
||||
; ¬« ¤è¥¥ á«®¢® á¥à¨©¨ª
|
||||
LD A,(HL)
|
||||
DEC HL
|
||||
LD L,(HL)
|
||||
LD H,A
|
||||
call hex16
|
||||
;
|
||||
|
||||
; Œ¥âª ¤¨áª
|
||||
ld a,(disk+1) ; ®¬¥à ¤¨áª
|
||||
cp 2 ; ¬¥ìè¥ "C:" ?
|
||||
jr nc,get_inf_data1 ; ¬¥âª ¢ BPB
|
||||
; floppy, ¬¥âª - ª ª § ¯¨áì ä ©«
|
||||
ld c,Dss.ChDisk ; ãáâ. ¤¨áª
|
||||
RST ToDSS
|
||||
; ld a,(disk) ; ®¬¥à ¤¨áª
|
||||
; cp 2 ; ¬¥ìè¥ "C:" ?
|
||||
; jr nc,get_inf_data1 ; ¬¥âª ¢ BPB
|
||||
|
||||
.get_label:
|
||||
; ¨é¥¬ ¬¥âªã ¢ ª®à¥ ”‘ à §¤¥«
|
||||
; ãáâ. ª®à¥ì ¤¨áª
|
||||
ld hl,root_path ; "\",0
|
||||
ld hl,root_path ; "x:\",0
|
||||
ld c,Dss.ChDir
|
||||
RST ToDSS
|
||||
; ¯®¨áª ¬¥âª¨
|
||||
ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
|
||||
ld de,work_buffer1 ; ªã¤
|
||||
ld a,8 ; âਡãâ ¬¥âª¨ ⮬
|
||||
ld a,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
||||
ld bc,0*256 + Dss.F_First ; f_first, ä®à¬ â 11
|
||||
RST ToDSS
|
||||
push af
|
||||
call restore_path ; ¢®ááâ. ⥪. ¯ãâì
|
||||
pop af
|
||||
jr c,no_volume_label ; ¬¥âª¨ ¥â
|
||||
;jr c,no_volume_label ; ¬¥âª¨ ¥â ¤¨à४â®à¨¨
|
||||
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 ᨬ¢®«®¢
|
||||
ld hl,work_buffer+53 ; ª®¥æ ¬¥âª¨ ¢ BPB
|
||||
ld a,(hl)
|
||||
cp " " ; ¥áâì ¬¥âª ?
|
||||
ld hl,work_buffer+43 ; ç «® ¬¥âª¨ ¢ BPB
|
||||
jr nz,volume_label ; ¤
|
||||
;!FIXIT ᤥ« âì ç¥à¥§ à£ã¬¥âë %1-%9
|
||||
.loop: CP (HL)
|
||||
JR NZ,.good_label
|
||||
INC HL
|
||||
DJNZ .loop
|
||||
POP HL ; ᨬ ¥¬ «¨è¥¥
|
||||
; ¥â ¬¥âª¨
|
||||
no_volume_label: ;!FIXIT ᤥ« âì ç¥à¥§ PRM %4
|
||||
ld hl,volume_string1 ; "has no label "
|
||||
ld de,MSG0.volume_string ; ªã¤
|
||||
ld bc,14
|
||||
ldir
|
||||
.no_volume_label:
|
||||
; %4
|
||||
ld hl,volume_string_no ; áâப
|
||||
ld de,PRM4 ; ªã¤
|
||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||
XOR A
|
||||
LD (PRM5),A
|
||||
ret
|
||||
.good_label:
|
||||
POP HL
|
||||
PUSH HL ; «¨è¥¥
|
||||
;!FIXIT ᤥ« âì ç¥à¥§ à£ã¬¥âë %1-%9
|
||||
; ¥áâì ¬¥âª
|
||||
volume_label:
|
||||
ex de,hl
|
||||
ld hl,MSG0.volume_string ; ªã¤
|
||||
ld (hl),"i"
|
||||
inc hl
|
||||
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
|
||||
pop DE ; «¨è¥¥
|
||||
; %5
|
||||
ld de,PRM5
|
||||
ld bc,11 ;!HARDCODE ¤«¨ ¬¥âª¨
|
||||
ldir
|
||||
ld b,a
|
||||
or a ; ¤«¨ ¬¥âª¨ 11 ᨬ¢. ?
|
||||
ret z ; ¤
|
||||
; ¤®¯®«¨âì 墮áâ. ¯à®¡¥« ¬¨
|
||||
xor a
|
||||
ld (de),a
|
||||
inc de
|
||||
djnz $-2
|
||||
ret
|
||||
; %4
|
||||
ld hl,volume_string_yes ; áâப
|
||||
ld de,PRM4 ; ªã¤
|
||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||
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
|
||||
call $+4
|
||||
call .num
|
||||
pop af
|
||||
and 0Fh
|
||||
add a,90h
|
||||
;
|
||||
.num: and %0000'1111
|
||||
add a,#90
|
||||
daa
|
||||
adc a,40h
|
||||
adc a,#40
|
||||
daa
|
||||
ld (de),a
|
||||
inc de
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
; ¬ áª ä ©«®¢
|
||||
mask_fname:
|
||||
db "*.*",0
|
||||
|
||||
; ª®à¥ì ¤¨áª
|
||||
root_path:
|
||||
db '\',0
|
||||
|
||||
|
||||
db 'X:\',0
|
||||
|
||||
; ‘¥à¨©ë© ®¬¥à ¤¨áª
|
||||
serial_string:
|
||||
db "xxxx-xxxx",0
|
||||
db "xxxx-xxxx"
|
||||
.Size equ $-serial_string
|
||||
db 0 ; § ªàë¢ èª
|
||||
|
||||
volume_string1: ;!FIXIT ᤥ« âì ç¥à¥§ PRM
|
||||
db "has no label " ; 14
|
||||
volume_string_no: ;!FIXIT ᤥ« âì ç¥à¥§ PRM
|
||||
db "has no label",0
|
||||
volume_string_yes:
|
||||
db "has label",0
|
||||
@ -226,7 +226,9 @@ prne1__:ld (cursor_position),a ; X
|
||||
; —⥨¥ ᮡë⨩
|
||||
;-------------------------------------------------
|
||||
handle_event:
|
||||
ld de,(cursor_position)
|
||||
cursor_position+1:
|
||||
ld de,0
|
||||
;
|
||||
ld c,Dss.Locate
|
||||
RST ToDSS
|
||||
ld c,Dss.EchoKey ; ®¯à®á ª« ¢ë
|
||||
@ -956,36 +958,37 @@ not_move_to_end:
|
||||
|
||||
|
||||
|
||||
;!FIXIT ª ¡ãä¥à ¬ ¯®ç⨠¢áñ
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
; 1 0
|
||||
;cursor_position:
|
||||
; dw 0 ; Y/X ¯®«®¦. ªãàá®à
|
||||
|
||||
|
||||
cursor_position:
|
||||
dw 0 ; Y/X ¯®«®¦. ªãàá®à
|
||||
|
||||
; 2 0
|
||||
width_inpline:
|
||||
.MAX EQU 80
|
||||
db width_inpline.MAX-4 ; ⥪. è¨à¨ ¯®«ï ¢¢®¤
|
||||
|
||||
; 3 0
|
||||
YXpos: dw 0 ; Y/X ç «® ª®¬-áâப¨
|
||||
|
||||
|
||||
; 4 0
|
||||
; ०¨¬ ¢¢®¤
|
||||
insert_mode:
|
||||
db 1 ; 01/00 inser/overwrite
|
||||
|
||||
|
||||
|
||||
; 5 0
|
||||
; íªà ë© ¯ãâì
|
||||
screen_path:
|
||||
db "A:"
|
||||
ds max_screen_path+1 ; 32+1
|
||||
BLOCK max_screen_path+1,0 ; 32+1
|
||||
|
||||
; 6 0
|
||||
; á¨áâ¥¬ë© ¯ãâì
|
||||
system_path:
|
||||
;db "\BORLAND\LMDTOOLS\TESTING\PROGRAM\SOURCES\TURBO\PR",0
|
||||
ds 256
|
||||
|
||||
|
||||
BLOCK 256,0 ;!HARDCODE
|
||||
|
||||
; 7 0
|
||||
; ‘âàãªâãà áâப¨ ¢¢®¤ ~input line~
|
||||
struct_input_line:
|
||||
db max_len_comline ;+0 254 ¬ ªá. ç¨á«® ¢¢®¤. ᨬ¢®«®¢
|
||||
@ -995,12 +998,14 @@ struct_input_line:
|
||||
db 0 ;+4 ç¨á«® ¢¢¥¤¥ëå ᨬ¢®«®¢
|
||||
ds max_len_comline+1 ;+5 áâப ¢¢®¤
|
||||
|
||||
|
||||
; 8 0
|
||||
; <20>ãä¥à ¨áâ®à¨¨
|
||||
history_buff:
|
||||
ds history_size ; 256
|
||||
|
||||
BLOCK history_size,0 ; 256
|
||||
|
||||
; 9 0
|
||||
; <20> ¡®ç¨© ¡ãä¥à
|
||||
work_buffer:
|
||||
ds 512
|
||||
BLOCK 512,0
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
@ -131,35 +131,29 @@ DIR2MSG EQU 9
|
||||
DIR3MSG EQU 10
|
||||
HELPMSG EQU 11
|
||||
|
||||
MSG0: db 0
|
||||
; 0
|
||||
db "Volume on drive %1 "
|
||||
.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
|
||||
; 1
|
||||
db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13
|
||||
; 2
|
||||
db "Current date: %1",CR,LF,0 ;2
|
||||
db "Current time: %1",CR,LF,0 ;3
|
||||
db "Press any key to continue . . .",CR,LF,LF,0 ;4
|
||||
db "Invalid parametr",CR,LF,0 ;5
|
||||
db "Echo is %1",CR,LF,0 ;6
|
||||
db "on",0 ;7
|
||||
db "off",0 ;8
|
||||
db " %1 file(s) %2 bytes",CR,LF,LF,0 ;9
|
||||
; 10 FILENAME EXT SIZE DATE TIME
|
||||
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 "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
|
||||
DB "MD | MKDIR TIME ECHO EXIT ",CR,LF
|
||||
DB "RD | RMDIR DATE CLS REBOOT ",CR,LF,0
|
||||
MSG0: db 0
|
||||
/* 0 */ db "Volume in drive %1 %4 %5",CR,LF
|
||||
db "Volume Serial Number is %2",CR,LF
|
||||
db CR,LF,"Directory of %3",CR,LF,LF,0
|
||||
/* 1 */ db "Estex DSS version %1. Shell version %2.",CR,LF,0 ;R13
|
||||
/* 2 */ db "Current date: %1",CR,LF,0
|
||||
/* 3 */ db "Current time: %1",CR,LF,0
|
||||
/* 4 */ db "Press any key to continue . . .",CR,LF,LF,0
|
||||
/* 5 */ db "Invalid parametr",CR,LF,0
|
||||
/* 6 */ db "Echo is %1",CR,LF,0
|
||||
/* 7 */ db "on",0
|
||||
/* 8 */ db "off",0
|
||||
/* 9 */ db " %1 File(s) %2 bytes",CR,LF
|
||||
db " %3 Dir(s) %4 bytes",CR,LF,LF,0
|
||||
/* 10 */ db "%1 %2 %3 %4 %5",CR,LF,0 ;FILENAME EXT SIZE DATE TIME
|
||||
/* 11 */ DB "COMMANDS:",CR,LF,CR,LF
|
||||
DB "DIR REN | RENAME PATH HELP ",CR,LF
|
||||
DB "CD | CHDIR DEL | ERASE SET VER | VERSION ",CR,LF
|
||||
DB "MD | MKDIR TIME ECHO EXIT ",CR,LF
|
||||
DB "RD | RMDIR DATE CLS REBOOT ",CR,LF,0
|
||||
;R11
|
||||
BYTE 0
|
||||
DZ "Unknown command"
|
||||
DB 0
|
||||
DZ "Unknown command"
|
||||
;
|
||||
.Size EQU $-MSG0
|
||||
|
||||
|
||||
@ -316,6 +316,7 @@ save_disk:
|
||||
ld (screen_path),a ; 33 áâப íªà ®£® ¯ãâ¨
|
||||
ret
|
||||
|
||||
;!FIXIT 耤<>碪 咧霅言 c妙c
|
||||
; ‚®ááâ ®¢¨âì ⥪. ¤¨áª ¨ ¯ãâì (¯®á«¥ ®è¨¡ª¨)
|
||||
restore_disk_path:
|
||||
; ãáâ. ⥪. ¤¨áª
|
||||
@ -323,6 +324,8 @@ restore_disk_path:
|
||||
sub "A"
|
||||
ld c,Dss.ChDir
|
||||
RST ToDSS
|
||||
|
||||
;!FIXIT 耤<>碪 咧霅言 c妙c
|
||||
restore_path:
|
||||
; ãáâ. ⥪. ª â «®£
|
||||
ld hl,system_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨
|
||||
|
||||
@ -1 +1 @@
|
||||
96
|
||||
127
|
||||
@ -1 +1 @@
|
||||
Subproject commit 18269745815d90e76686f5693e0cb45f8f31741c
|
||||
Subproject commit 349ba286106d21a77cf3f8a25b6f7c952eccb046
|
||||
Loading…
Reference in New Issue
Block a user