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-§ £àã§ç¨ª  ¨ ä ©«®¢ á¨á⥬ë.
;

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
607
620

View File

@ -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

View File

@ -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
////////////////////////////////////////////////////////////////////////
;

View File

@ -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

View File

@ -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 ¡ãä¥à á¨áâ. ¯ãâ¨

View File

@ -1 +1 @@
96
127

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