mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-17 10:20:35 +03:00
[Core] DISKINF: Метка диска проверяется сначала в корневом каталоге и если там нет, то берётся метка из BPB.
[Shell] Метка берётся только из функции DISKINF.
This commit is contained in:
parent
9ad718d6b3
commit
4b564101d1
@ -31,6 +31,10 @@
|
||||
; BC - à §¬¥à ᥪâ®à ¢ ¡ ©â å
|
||||
; CF=1:
|
||||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Œ¥âª ¤¨áª ¯à®¢¥àï¥âáï á ç « ¢ ª®à¥¢®¬ ª â «®£¥ ¨ ¥á«¨ â ¬ ;
|
||||
; ¥â, â® ¡¥àñâáï ¬¥âª ¨§ BPB ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
DISKINF: LD C,B
|
||||
LD B,1
|
||||
@ -76,8 +80,9 @@ DISKINF: LD C,B
|
||||
.next_prm: LD HL,CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER
|
||||
LD C,4 ;!HARDCODE _sBOOT_SECTOR_PARAMS.BPB_SERIAL_NUMBER
|
||||
CALL .mCOPY_LOOP
|
||||
; !FIXIT ¥á«¨ ¬¥âª ¢ BPB "NO NAME" ¨«¨ ¯à®¡¥«ë, â® ¯à®¢¥àïâì ¬¥âªã ¢ ª®à¥¢®¬ ª â «®£¥.
|
||||
LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
||||
;
|
||||
;LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
||||
CALL GET_LABEL
|
||||
LD C,11 ;!HARDCODE _sBOOT_SECTOR_PARAMS.BPB_LABEL
|
||||
CALL .mCOPY_LOOP
|
||||
; fat32
|
||||
@ -226,6 +231,18 @@ GetFreeSpace: LD A,1
|
||||
EXX
|
||||
JP .loop_free_space
|
||||
;
|
||||
|
||||
FAT_STRING: DB 'FAT12'
|
||||
;
|
||||
;
|
||||
; DE - ¡ãä¥à
|
||||
GET_LABEL: PUSH DE
|
||||
LD HL,.LABEL_MASK ; "\*.*" ¨¬ï ¬¥âª¨
|
||||
LD A,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
||||
LD BC,Dss.F_First.FATname ; f_first, ä®à¬ â 11
|
||||
RST ToDSS
|
||||
POP DE
|
||||
LD HL,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
||||
RET C
|
||||
LD HL,BUFFER_FIND.REC_Name
|
||||
ADD HL,DE
|
||||
RET
|
||||
.LABEL_MASK: DB '\*.*',0
|
||||
@ -134,11 +134,6 @@ BATCH:
|
||||
ld de,Buffers.input_line.Path + .shell.size - 1
|
||||
call copy_string
|
||||
;
|
||||
; ld c,Dss.CurDisk
|
||||
; rst ToDSS
|
||||
; add a,'A'
|
||||
; ld (.shell),a
|
||||
;
|
||||
ld hl,Buffers.input_line.Path
|
||||
ld bc,Dss.Exec
|
||||
RST ToDSS
|
||||
@ -161,10 +156,10 @@ BATCH:
|
||||
.shell.size EQU $ - .shell
|
||||
|
||||
;!TODO
|
||||
.ErrorEnv: DB 'ERRORLEVEL='
|
||||
.ErrorEnv.Code: DB 'xxx',0
|
||||
.ErrorEnv.Size EQU $ - .ErrorEnv
|
||||
;
|
||||
; .ErrorEnv: DB 'ERRORLEVEL='
|
||||
; .ErrorEnv.Code: DB 'xxx',0
|
||||
; .ErrorEnv.Size EQU $ - .ErrorEnv
|
||||
;
|
||||
|
||||
;---------------------------------------------------
|
||||
; ‚믮«¥¨¥ ª®¬ ¤ BAT-ä ©«
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
; [x] 11/12/23
|
||||
cmd_break:
|
||||
; pop hl ; ¢®ááâ ®¢«¥¨¥ ¡ « á á⥪
|
||||
; pop hl ; ¢®ááâ ®¢«¥¨¥ ¡ « á á⥪
|
||||
; XOR A
|
||||
; ld (MOVWORD.count),a
|
||||
.sp+1: LD SP,0
|
||||
;!TODO ¢«®¦¥ë¥ bat. ¯¥à¥¤ ¢ âì ®è¨¡ªã ®¡à â® ¢ ¢ë§ë¢ î騩 bat
|
||||
.exit: ld a,(BAT_FM) ; ¤¥áªà. bat-ä ©«
|
||||
|
||||
@ -54,7 +54,7 @@ ascii2byte:
|
||||
cp "0"
|
||||
ret c
|
||||
cp "9"+1
|
||||
jr c,$+10
|
||||
jr c,$+10 ;!FIXIT $
|
||||
and 5Fh
|
||||
cp "F"+1
|
||||
ccf
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
;///////////////////////////////////////////////////
|
||||
;
|
||||
; DIR. ‚뢮¤ á¯¨áª ä ©«®¢ ¨ ¯ ¯®ª
|
||||
; !TODO ã¡à âì ¡ £ ¥á«¨ ¢ ¯ à ¬¥âॠ¬ ᪨ 㪠§ ¯ãâì ¤® ¯ ¯ª¨ ¨«¨ ¤ ¦¥ ¤® ¤à㣮£® ¤¨áª
|
||||
;///////////////////////////////////////////////////
|
||||
cmd_dir: push de
|
||||
;;;; [ ] ¯®¤¤¥à¦ª ¯ à ¬¥â஢
|
||||
@ -22,7 +21,7 @@ cmd_dir: push de
|
||||
jr z,.skip
|
||||
LD DE,MAIN_MSG.CALCULATING
|
||||
CALL MESSAGE
|
||||
;!TEST 23/05/24
|
||||
; 23/05/24
|
||||
.skip: ;LD C,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||
;RST ToDSS
|
||||
;CALL read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
||||
@ -41,21 +40,11 @@ cmd_dir: push de
|
||||
ld de,Buffers.work.buffer1
|
||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||
RST ToDSS
|
||||
;!TODO âãâ ¢ Buffers.work.buffer1 «¥¦¨â ¯ãâì ¨/¨«¨/«¨¡® ¬ áª ä ©«
|
||||
; ¤® à §®¡à âì ¥ñ Dss.EX_Path ¢ë¤¥«¨âì ¥á«¨ ¥áâì ¤¨áª, ¯ãâì ¨ ¬ áªã, ¯®á«¥ 祣® 㦥
|
||||
; ®â¯¥ç âë¢ âì ¯ãâì ¢ è ¯ª¥, ã§ ¢ âì CurDisk ª ª ¢ .skip ¢ëè¥. „¥« âì íâ® ¤® ¢ë§®¢
|
||||
; ¯à®æ¥¤ãàë read_disk_info. ‹ãçè¥ ¤¥« âì íâ® ¯®á«¥ ¬¥âª¨ .skip
|
||||
;
|
||||
ld a,(Buffers.work.buffer1)
|
||||
or a
|
||||
;jr nz,.SkipMask ; § ¤ ¬ ᪠¨¬ñ
|
||||
jr z,.NoSkipMask ; ¥ § ¤ ¬ ᪠¨¬ñ
|
||||
; á®åà ¨âì ⥪ã騩 ¯ãâì ¢ Buffers.work.buffer2
|
||||
; ˆ§ ¡ãä¥à DE § ¯®¬¨âì ¬ áªã (¯¥à¢ë¥ á¯à ¢ ᨬ¢®«ë ¯®á«¥ ¯¥à¢®£® á¯à ¢ '\') ¨ ã¡à âì ¥ñ
|
||||
; ¥á«¨ ¬ ᪨ ¥â ¨ ¯®á«¥¤¨© ¢ áâப¥ '\', â® ¯®â®¬ ¤®¡ ¢¨âì ¬ áªã ª ª ¢ "; ¤®¡ ¢«¥¨¥ ¬ ᪨"
|
||||
; ᤥ« âì CD ¢ ¤¨à¥ªâ®à¨î ¨§ ¡ãä¥à DE
|
||||
; make_short_path
|
||||
;
|
||||
ld hl,Buffers.work.buffer1
|
||||
ld bc,Dss.EX_Path.GET_ALL
|
||||
rst ToDSS
|
||||
@ -111,7 +100,7 @@ cmd_dir: push de
|
||||
.NoSkipMask: ld hl,mask_fname ; "*.*"
|
||||
ld de,Buffers.work.free
|
||||
call copy_string
|
||||
; !TEST 23/05/24
|
||||
; 23/05/24
|
||||
.SkipMask: LD C,Dss.CurDisk ; ã§ âì ⥪. ¤¨áª
|
||||
RST ToDSS
|
||||
CALL read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©ë© ®¬¥à ¤¨áª
|
||||
@ -409,8 +398,6 @@ PRNSIZE: ld a,(ix+32)
|
||||
.PRZ: ld de,PRM3 ; 16 ¡ãä¥à
|
||||
jp ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬), ¬ ªá.15 ᨬ¢.
|
||||
|
||||
|
||||
|
||||
; ‘ª®¯¨à®¢ âì ¢ ¡ãä¥à ¤ âã ä ©« /¯ ¯ª¨
|
||||
PRNDATE: ld c,(ix+FAT_DIRECTORY_RECORD.DATE)
|
||||
ld b,(ix+FAT_DIRECTORY_RECORD.DATE+1)
|
||||
@ -419,10 +406,6 @@ PRNDATE: ld c,(ix+FAT_DIRECTORY_RECORD.DATE)
|
||||
ld (hl),0
|
||||
ld hl,SIZE_BUFFER.low ; "0 000 000 000"
|
||||
ld de,PRM4 ; 16 ªã¤
|
||||
; ld a,(hl)
|
||||
; cp "0"
|
||||
; jr nz,$+4
|
||||
; ld (hl)," "
|
||||
jp ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬), ¬ ªá.15 ᨬ¢.
|
||||
|
||||
; ‘ª®¯¨à®¢ âì ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
|
||||
@ -433,10 +416,6 @@ PRNTIME: ld b,(ix+22)
|
||||
ld (hl),0
|
||||
ld hl,SIZE_BUFFER.low ; "0 000 000 000"
|
||||
ld de,PRM5 ; 80 ¡ãä¥à áâப¨
|
||||
; ld a,(hl)
|
||||
; cp "0"
|
||||
; jr nz,$+4
|
||||
; ld (hl)," "
|
||||
jp ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬), ¬ ªá.15 ᨬ¢.
|
||||
|
||||
; ¢ ¡ãä¥à ¢à¥¬ï ä ©« /¯ ¯ª¨
|
||||
@ -740,26 +719,9 @@ read_disk_info: OR #80
|
||||
LD L,(HL)
|
||||
LD H,A
|
||||
call hex16
|
||||
.get_label: ; ¨é¥¬ ¬¥âªã ¢ ª®à¥ ”‘ à §¤¥«
|
||||
; ãáâ. ª®à¥ì ¤¨áª
|
||||
; ld hl,root_path ; "x:\",0
|
||||
; ld c,Dss.ChDir
|
||||
; RST ToDSS
|
||||
; ¯®¨áª ¬¥âª¨
|
||||
;ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
|
||||
ld hl,SlashMaskFname ; "\*.*" ¨¬ï ¬¥âª¨
|
||||
ld de,Buffers.work.buffer1 ; ªã¤
|
||||
ld a,FAT_ATTR.VOLUME_ID ; âਡãâ ¬¥âª¨ ⮬
|
||||
ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11
|
||||
RST ToDSS
|
||||
;push af
|
||||
;call restore_path ; ¢®ááâ. ⥪. ¯ãâì
|
||||
;pop af
|
||||
ld hl,Buffers.work.buffer1 + BUFFER_FIND.REC_Name ; ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
|
||||
jr nc,volume_label ; ¬¥âª ¢ ª®à¥¢®¬ ª â «®£¥
|
||||
; ¡¥àñ¬ ¬¥âªã ¨§ BPB
|
||||
; âãâ ¢ HL ¤«¨ ¯®«ï "Œ¥âª ¤¨áª "
|
||||
POP hl
|
||||
;
|
||||
.get_label: ; âãâ ¢ HL ¤«¨ ¯®«ï "Œ¥âª ¤¨áª "
|
||||
POP HL
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
AND A
|
||||
|
||||
@ -33,7 +33,7 @@ A8623: ld c,Dss.PChars
|
||||
A862E: ld a,(echo_mode) ; ä« £ echo-०¨¬
|
||||
or a
|
||||
ld de,7 ; ¨¤¥ªá "on"
|
||||
jr nz,$+5 ; false
|
||||
jr nz,$+5 ; false ;!FIXIT $
|
||||
ld de,MAIN_MSG.OFF ; ¨¤¥ªá "off"
|
||||
call FMESAGE ; ©â¨ áâப㠯® ¨¤¥ªáã
|
||||
ld de,PRM1 ; ªã¤ ( à£ã¬¥â %1)
|
||||
|
||||
@ -295,10 +295,10 @@ Enter: pop hl ;
|
||||
; ã¡à âì ª®æ. ¯à®¡¥«ë ª®¬-áâப¨
|
||||
ld a,(hl)
|
||||
cp c
|
||||
jr nz,$+8
|
||||
jr nz,$+8 ;!FIXIT $
|
||||
dec hl
|
||||
dec (iy+4) ; --ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
|
||||
djnz $-8
|
||||
djnz $-8 ;!FIXIT $
|
||||
inc hl
|
||||
ld (hl),d ; ¢ ª®¥æ ª®¬-áâப¨
|
||||
ld a,b
|
||||
@ -894,7 +894,7 @@ hist_comp_loop:
|
||||
hist_comp_notequal:
|
||||
inc hl
|
||||
dec c
|
||||
jr nz,$-2 ; 、ョ ェョュ譬 矮牋ェィ
|
||||
jr nz,$-2 ; ¤® ª®æ áâப¨ ;!FIXIT $
|
||||
hist_comp_next:
|
||||
pop de
|
||||
ex af,af'
|
||||
|
||||
@ -60,10 +60,10 @@ hex2dec_ascii_16bit:
|
||||
and a
|
||||
inc a
|
||||
sbc hl,bc
|
||||
jr nc,$-3
|
||||
jr nc,$-3 ;!FIXIT $
|
||||
add hl,bc
|
||||
cp "0"
|
||||
jr z,$+6
|
||||
jr z,$+6 ;!FIXIT $
|
||||
set 7,(ix+0)
|
||||
bit 7,(ix+0)
|
||||
ret z
|
||||
|
||||
@ -290,8 +290,8 @@ set_option_flag:
|
||||
cp "a"
|
||||
jr c,setopt1
|
||||
cp "z"+1
|
||||
jr nc,$+4
|
||||
and 5Fh ; a..z -> A..Z
|
||||
jr nc,$+4 ;!FIXIT $
|
||||
and #5F ; a..z -> A..Z
|
||||
setopt1: cp "P" ; § ¯ã᪠襫« á ®âà ¡. autoexec.bat
|
||||
jr nz,setopt2
|
||||
set 7,c
|
||||
@ -310,10 +310,6 @@ setopt4: ld a,c
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;!TODO ¯à®¢¥à¨âì 4 ¨¦¥¨¤ã騥 ¯à®æ¥¤ãàë ª®£¤ ¢ DSS ¡ã¤ã⠮ଠ«ì® ¯ã⨠§ ¯®¬¨ âìáï
|
||||
; ‘®åà ¨âì ⥪. ¤¨áª ¨ ¯ãâì
|
||||
;GETPATH:
|
||||
Get_Path:
|
||||
@ -328,31 +324,29 @@ Get_Path:
|
||||
ld (Buffers.screen_path),a ; 33 áâப íªà ®£® ¯ãâ¨
|
||||
ret
|
||||
|
||||
;!FIXIT ã¡à âì «¨è¨¥ ¢ë§®¢ë
|
||||
|
||||
; ‚®ááâ ®¢¨âì ⥪. ¤¨áª ¨ ¯ãâì (¯®á«¥ ®è¨¡ª¨)
|
||||
IFUSED restore_disk_path
|
||||
ASSERT restore_path
|
||||
restore_disk_path:
|
||||
; ãáâ. ⥪. ¤¨áª
|
||||
ld a,(Buffers.screen_path) ; 33 áâப íªà ®£® ¯ãâ¨
|
||||
sub "A"
|
||||
ld c,Dss.ChDisk
|
||||
RST ToDSS
|
||||
ENDIF
|
||||
|
||||
;!FIXIT ã¡à âì «¨è¨¥ ¢ë§®¢ë
|
||||
IFUSED restore_path
|
||||
restore_path:
|
||||
; ãáâ. ⥪. ª â «®£
|
||||
ld hl,Buffers.sys_path ; 256 ¡ãä¥à á¨áâ. ¯ãâ¨
|
||||
ld c,Dss.ChDir
|
||||
RST ToDSS
|
||||
JP ToDSS
|
||||
ret
|
||||
ENDIF
|
||||
;
|
||||
|
||||
|
||||
; ®¢ãî áâபã ;!FIXIT ᤥ« âì ç¥à¥§ .PChars
|
||||
; newline: ld a,_cc.cr
|
||||
; ld c,Dss.PutChar
|
||||
; rst ToDSS
|
||||
; ld a,_cc.lf
|
||||
; ld c,Dss.PutChar
|
||||
; jp ToDSS
|
||||
newline: push hl
|
||||
ld hl,MAIN_MSG.TABLE+1 ; "CR,LF,0"
|
||||
ld c,Dss.PChars
|
||||
@ -387,7 +381,7 @@ ncopy_string:
|
||||
ldi
|
||||
ret po
|
||||
or a
|
||||
jr nz,$-5
|
||||
jr nz,$-5 ;!FIXIT $
|
||||
ret
|
||||
|
||||
; ‘ª®¯¨à. áâபã (á ã«¥¬)
|
||||
|
||||
@ -1 +1 @@
|
||||
393
|
||||
402
|
||||
Loading…
Reference in New Issue
Block a user