mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
R14 Исправлен баг "File not found" в команде DIR на пустом разделе
This commit is contained in:
parent
851c215879
commit
91b1e90517
@ -612,7 +612,6 @@ SEARCH5:
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
SEARCH3:
|
SEARCH3:
|
||||||
EXX
|
EXX
|
||||||
INC DE
|
INC DE
|
||||||
@ -1066,7 +1065,7 @@ DIRSIZE: WORD 0 ; ࠧ
|
|||||||
|
|
||||||
|
|
||||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï „Ž‘
|
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï „Ž‘
|
||||||
BANKTBL: BLOCK USING_MEMPAGES+1,#FF
|
BANKTBL: BLOCK USING_MEMPAGES,#FF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
164
DSS/DOS_X.ASM
164
DSS/DOS_X.ASM
@ -570,166 +570,12 @@ BACK_CUR_PATH:
|
|||||||
; ’ε<E28099>€: ₯β
|
; ’ε<E28099>€: ₯β
|
||||||
; ’λε<CEBB>€: A - <>¬₯ΰ ―<>α«₯€₯£<E282AF> «<>£. €¨αͺ ’ α¨αβ₯¬₯
|
; ’λε<CEBB>€: A - <>¬₯ΰ ―<>α«₯€₯£<E282AF> «<>£. €¨αͺ ’ α¨αβ₯¬₯
|
||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
SCANDRV:
|
INCLUDE 'ScanDRV.asm'
|
||||||
;1 [-----------] [-----------] [-----------] [-----------] [-----------]
|
; INCLUDE 'NScanDRV.asm'
|
||||||
; LD A,(LDRIVE)
|
|
||||||
; LD (.old_ldrive),A
|
|
||||||
;
|
|
||||||
CALL GETBOOT
|
|
||||||
LD (.old_letter),A ; bootdisk Log.number
|
|
||||||
; [-----------]
|
|
||||||
|
|
||||||
;2 [-----------] [-----------] [-----------] [-----------] [-----------]
|
|
||||||
; A = bootdisk Log.number
|
|
||||||
LD DE,Dss.DRV.GenIOCTL.Enter
|
|
||||||
LD BC,Dss.DRV.GenIOCTL.GetParams
|
|
||||||
RST ToDSS.DRV
|
|
||||||
EX AF,AF'
|
|
||||||
LD (.old_DRIVE_ID),A
|
|
||||||
; [-----------]
|
|
||||||
|
|
||||||
|
|
||||||
;3 [-----------] [-----------] [-----------] [-----------] [-----------]
|
|
||||||
;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥àë¢ ¨ï¬¨
|
|
||||||
;DI
|
|
||||||
LD A,Dss.DRV.RescanDRV
|
|
||||||
LD C,Dss.DRV.RescanDRV
|
|
||||||
RST ToDSS.DRV
|
|
||||||
LD (LDRIVE),A
|
|
||||||
;EI
|
|
||||||
;
|
|
||||||
; [-----------]
|
|
||||||
|
|
||||||
;4 [-----------] [-----------] [-----------] [-----------] [-----------]
|
|
||||||
.old_DRIVE_ID+1:
|
|
||||||
LD A,0
|
|
||||||
CALL SETBOOT
|
|
||||||
JR C,.ERROR_BOOTDRV_DIES
|
|
||||||
LD (.new_letter),A
|
|
||||||
;
|
|
||||||
LD A,(.old_letter)
|
|
||||||
LD (BOOTDRV),A
|
|
||||||
;
|
|
||||||
|
|
||||||
;5 [-----------] [-----------] [-----------] [-----------] [-----------]
|
|
||||||
AND A
|
|
||||||
LD A,R
|
|
||||||
PUSH AF
|
|
||||||
DI
|
|
||||||
;;;;;;;;
|
|
||||||
IN A,(SLOT3)
|
|
||||||
LD (.restore_page),A
|
|
||||||
LD A,(DRV_PG_NUMBER)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;;;;;
|
|
||||||
|
|
||||||
; ¢ëç¨á«ï¥¬ ᬥ饨¥ bootdisk ¢ ®¢®© â ¡«¨æ¥ DEVICE
|
|
||||||
.new_letter+1:
|
|
||||||
LD A,0
|
|
||||||
CALL .get_entry_addr
|
|
||||||
PUSH HL
|
|
||||||
; á®åà 塞 § ç¥¨ï ®¢®£® boot
|
|
||||||
LD DE,.TMP_BUFFER
|
|
||||||
LD BC,DEVICE.TBL_Entry
|
|
||||||
LDIR
|
|
||||||
; ¢ëç¨á«ï¥¬ ᬥ饨¥ ¤«ï ¡ãª¢ë áâ ண® bootdisk ¢ ®¢®© â ¡«¨æ¥ DEVICE
|
|
||||||
.old_letter+1:
|
|
||||||
LD A,0
|
|
||||||
CALL .get_entry_addr
|
|
||||||
; ¬¥ï¥¬ ¡ãª¢ã ¤¨áª ¤«ï ¤¥¢ ©á § ï¢è¥£® áâ àãî ¡ãª¢ã bootdisk
|
|
||||||
POP DE
|
|
||||||
LD BC,DEVICE.TBL_Entry
|
|
||||||
LDIR
|
|
||||||
; ¢®ááâ ¢«¨¢ ¥¬ bootdisk áâ ஥ ¬¥áâ®
|
|
||||||
DEC HL
|
|
||||||
LD DE,.TMP_BUFFER + DEVICE.TBL_Entry-1
|
|
||||||
LD BC,DEVICE.TBL_Entry
|
|
||||||
EX DE,HL
|
|
||||||
LDDR
|
|
||||||
; ¯à®¢¥à塞, ¥ 㢥«¨ç¨«®áì «¨ § 票¥ LDRIVE
|
|
||||||
;!TEST
|
|
||||||
LD HL,.old_letter
|
|
||||||
LD A,(LDRIVE)
|
|
||||||
CP (HL)
|
|
||||||
JR NC,.no_change_LDRIVE
|
|
||||||
LD A,(HL)
|
|
||||||
LD (LDRIVE),A
|
|
||||||
;
|
|
||||||
; .old_ldrive+1:
|
|
||||||
;LD L,0
|
|
||||||
;LD A,(LDRIVE)
|
|
||||||
;CP L
|
|
||||||
;JR NC,.no_change_LDRIVE
|
|
||||||
;LD A,L
|
|
||||||
;LD (LDRIVE),A
|
|
||||||
;
|
|
||||||
.no_change_LDRIVE:
|
|
||||||
;
|
|
||||||
; DEC A
|
|
||||||
; LD C,Dss.DskInfo
|
|
||||||
; RST ToDSS
|
|
||||||
; LD A,(BOOTDRV)
|
|
||||||
; LD C,Dss.ChDisk
|
|
||||||
; RST ToDSS
|
|
||||||
|
|
||||||
;;;;;
|
|
||||||
.restore_page+1:
|
|
||||||
LD A,0
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;;;;;;;;
|
|
||||||
POP AF
|
|
||||||
LD A,(LDRIVE)
|
|
||||||
RET PO
|
|
||||||
EI
|
|
||||||
RET
|
|
||||||
.ERROR_BOOTDRV_DIES:
|
|
||||||
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_OPEN_S
|
|
||||||
LD E,0
|
|
||||||
RST ToBIOS
|
|
||||||
|
|
||||||
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_CLS_WIN
|
|
||||||
LD DE,0
|
|
||||||
LD HL,#2050
|
|
||||||
RST ToBIOS
|
|
||||||
|
|
||||||
LD A,1
|
|
||||||
OUT (RGMOD),A ; set scr-2
|
|
||||||
|
|
||||||
LD HL,.ERROR_MSG
|
|
||||||
LD DE,#A000
|
|
||||||
LD BC,.ERROR_MSG.size
|
|
||||||
LD A,C
|
|
||||||
LDIR
|
|
||||||
|
|
||||||
LD DE,#10*256 + (80-.ERROR_MSG.size)/2 ;X=0, Y=16
|
|
||||||
LD C,BIOS.LP_SET_PLACE
|
|
||||||
RST ToBIOS
|
|
||||||
|
|
||||||
LD HL,#A000
|
|
||||||
LD DE,0*256 + COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
|
|
||||||
LD B,A
|
|
||||||
LD C,BIOS.LP_PRINT_LINE3
|
|
||||||
RST ToBIOS
|
|
||||||
|
|
||||||
.loop: DI
|
|
||||||
; .loop: LD A,R
|
|
||||||
; AND 7
|
|
||||||
; OUT (BorderColor),A
|
|
||||||
HALT
|
|
||||||
JR .loop
|
|
||||||
|
|
||||||
.ERROR_MSG: DZ "Kernel panic! Boot disk lost. Press Ctrl+Alt+Del or RESET."
|
|
||||||
.ERROR_MSG.size EQU $-.ERROR_MSG
|
|
||||||
.get_entry_addr:
|
|
||||||
_CALC_DEVICE_ENTRY DEVICE + #C000
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
.TMP_BUFFER: BLOCK 3,#FF
|
|
||||||
|
|
||||||
; .old_letter: DB #FF
|
|
||||||
; .old_DRIVE_ID: DB #FF
|
|
||||||
; .new_letter: DB #FF
|
|
||||||
;///////////////////////////////////////////////////////////////////////
|
;///////////////////////////////////////////////////////////////////////
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
;R12
|
;R12
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -233,7 +233,6 @@ INIT_H: PUSH IY
|
|||||||
LD A,C
|
LD A,C
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
JR Z,NO_HARDS
|
JR Z,NO_HARDS
|
||||||
;LD BC,4*256 + #80 ;!HARDCODE 4 - ª®«¨ç¥á⢮ ¢¨â®¢, 80 - ID ¢¨â ;!FIXIT
|
|
||||||
LD C,#80 ;!HARDCODE - ID ¢¨â ¤«ï ¯à®æ¥¤ãàë BIOS.DRV_DETECT
|
LD C,#80 ;!HARDCODE - ID ¢¨â ¤«ï ¯à®æ¥¤ãàë BIOS.DRV_DETECT
|
||||||
|
|
||||||
NX_DVCI: PUSH BC
|
NX_DVCI: PUSH BC
|
||||||
|
|||||||
157
DSS/ScanDRV.ASM
Normal file
157
DSS/ScanDRV.ASM
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
; !TODO § ¯®¬¨ âì ¯à¥àë¢ ¨ï, ®âª«îç âì áâ àâ¥, ¢®ááâ ¢«¨¢ âì ¢ë室¥
|
||||||
|
SCANDRV:
|
||||||
|
;1 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
|
; LD A,(LDRIVE)
|
||||||
|
; LD (.old_ldrive),A
|
||||||
|
;
|
||||||
|
CALL GETBOOT
|
||||||
|
LD (.old_letter),A ; bootdisk Log.number
|
||||||
|
; [-----------]
|
||||||
|
|
||||||
|
;2 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
|
; A = bootdisk Log.number
|
||||||
|
LD DE,Dss.DRV.GenIOCTL.Enter
|
||||||
|
LD BC,Dss.DRV.GenIOCTL.GetParams
|
||||||
|
RST ToDSS.DRV
|
||||||
|
EX AF,AF'
|
||||||
|
LD (.old_DRIVE_ID),A
|
||||||
|
; [-----------]
|
||||||
|
|
||||||
|
|
||||||
|
;3 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
|
;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥àë¢ ¨ï¬¨
|
||||||
|
;DI
|
||||||
|
LD A,Dss.DRV.RescanDRV
|
||||||
|
LD C,Dss.DRV.RescanDRV
|
||||||
|
RST ToDSS.DRV
|
||||||
|
LD (LDRIVE),A
|
||||||
|
;EI
|
||||||
|
;
|
||||||
|
; [-----------]
|
||||||
|
|
||||||
|
;4 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
|
.old_DRIVE_ID+1:
|
||||||
|
LD A,0
|
||||||
|
CALL SETBOOT
|
||||||
|
JR C,.ERROR_BOOTDRV_DIES
|
||||||
|
LD (.new_letter),A
|
||||||
|
;
|
||||||
|
LD A,(.old_letter)
|
||||||
|
LD (BOOTDRV),A
|
||||||
|
;
|
||||||
|
|
||||||
|
;5 [-----------] [-----------] [-----------] [-----------] [-----------]
|
||||||
|
AND A
|
||||||
|
LD A,R
|
||||||
|
PUSH AF
|
||||||
|
DI
|
||||||
|
;;;;;;;;
|
||||||
|
IN A,(SLOT3)
|
||||||
|
LD (.restore_page),A
|
||||||
|
LD A,(DRV_PG_NUMBER)
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;;;;;
|
||||||
|
|
||||||
|
; ¢ëç¨á«ï¥¬ ᬥ饨¥ bootdisk ¢ ®¢®© â ¡«¨æ¥ DEVICE
|
||||||
|
.new_letter+1:
|
||||||
|
LD A,0
|
||||||
|
CALL .get_entry_addr
|
||||||
|
PUSH HL
|
||||||
|
; á®åà 塞 § ç¥¨ï ®¢®£® boot
|
||||||
|
LD DE,.TMP_BUFFER
|
||||||
|
LD BC,DEVICE.TBL_Entry
|
||||||
|
LDIR
|
||||||
|
; ¢ëç¨á«ï¥¬ ᬥ饨¥ ¤«ï ¡ãª¢ë áâ ண® bootdisk ¢ ®¢®© â ¡«¨æ¥ DEVICE
|
||||||
|
.old_letter+1:
|
||||||
|
LD A,0
|
||||||
|
CALL .get_entry_addr
|
||||||
|
; ¬¥ï¥¬ ¡ãª¢ã ¤¨áª ¤«ï ¤¥¢ ©á § ï¢è¥£® áâ àãî ¡ãª¢ã bootdisk
|
||||||
|
POP DE
|
||||||
|
LD BC,DEVICE.TBL_Entry
|
||||||
|
LDIR
|
||||||
|
; ¢®ááâ ¢«¨¢ ¥¬ bootdisk áâ ஥ ¬¥áâ®
|
||||||
|
DEC HL
|
||||||
|
LD DE,.TMP_BUFFER + DEVICE.TBL_Entry-1
|
||||||
|
LD BC,DEVICE.TBL_Entry
|
||||||
|
EX DE,HL
|
||||||
|
LDDR
|
||||||
|
; ¯à®¢¥à塞, ¥ 㢥«¨ç¨«®áì «¨ § 票¥ LDRIVE
|
||||||
|
;!TEST
|
||||||
|
LD HL,.old_letter
|
||||||
|
LD A,(LDRIVE)
|
||||||
|
CP (HL)
|
||||||
|
JR NC,.no_change_LDRIVE
|
||||||
|
LD A,(HL)
|
||||||
|
LD (LDRIVE),A
|
||||||
|
;
|
||||||
|
; .old_ldrive+1:
|
||||||
|
;LD L,0
|
||||||
|
;LD A,(LDRIVE)
|
||||||
|
;CP L
|
||||||
|
;JR NC,.no_change_LDRIVE
|
||||||
|
;LD A,L
|
||||||
|
;LD (LDRIVE),A
|
||||||
|
;
|
||||||
|
.no_change_LDRIVE:
|
||||||
|
;
|
||||||
|
; DEC A
|
||||||
|
; CALL DISKINF
|
||||||
|
; LD A,(BOOTDRV)
|
||||||
|
; CALL CHNDISK
|
||||||
|
;;;;;
|
||||||
|
.restore_page+1:
|
||||||
|
LD A,0
|
||||||
|
OUT (SLOT3),A
|
||||||
|
;;;;;;;;
|
||||||
|
POP AF
|
||||||
|
LD A,(LDRIVE)
|
||||||
|
RET PO
|
||||||
|
EI
|
||||||
|
RET
|
||||||
|
.ERROR_BOOTDRV_DIES:
|
||||||
|
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_OPEN_S
|
||||||
|
LD E,0
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_CLS_WIN
|
||||||
|
LD DE,0
|
||||||
|
LD HL,#2050
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD A,1
|
||||||
|
OUT (RGMOD),A ; set scr-2
|
||||||
|
|
||||||
|
LD HL,.ERROR_MSG
|
||||||
|
LD DE,#A000
|
||||||
|
LD BC,.ERROR_MSG.size
|
||||||
|
LD A,C
|
||||||
|
LDIR
|
||||||
|
|
||||||
|
LD DE,#10*256 + (80-.ERROR_MSG.size)/2 ;X=0, Y=16
|
||||||
|
LD C,BIOS.LP_SET_PLACE
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD HL,#A000
|
||||||
|
LD DE,0*256 + COLORS.CGA.FLASH + COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
|
||||||
|
LD B,A
|
||||||
|
LD C,BIOS.LP_PRINT_LINE3
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
|
.loop: DI
|
||||||
|
; .loop: LD A,R
|
||||||
|
; AND 7
|
||||||
|
; OUT (BorderColor),A
|
||||||
|
HALT
|
||||||
|
JR .loop
|
||||||
|
|
||||||
|
.ERROR_MSG: DZ "Kernel panic! Boot disk lost. Press Ctrl+Alt+Del or RESET."
|
||||||
|
.ERROR_MSG.size EQU $-.ERROR_MSG
|
||||||
|
.get_entry_addr:
|
||||||
|
_CALC_DEVICE_ENTRY DEVICE + #C000
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.TMP_BUFFER: BLOCK 3,#FF
|
||||||
|
|
||||||
|
; .old_letter: DB #FF
|
||||||
|
; .old_DRIVE_ID: DB #FF
|
||||||
|
; .new_letter: DB #FF
|
||||||
@ -1 +1 @@
|
|||||||
297
|
302
|
||||||
@ -27,7 +27,7 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
|||||||
DIRPAGE EQU 0
|
DIRPAGE EQU 0
|
||||||
FATPAGE EQU 1
|
FATPAGE EQU 1
|
||||||
TXTPAGE EQU 2
|
TXTPAGE EQU 2
|
||||||
ENVPAGE EQU 2
|
ENVPAGE EQU TXTPAGE
|
||||||
DRVPAGE EQU 3
|
DRVPAGE EQU 3
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -26,42 +26,21 @@ cmd_dir: push de
|
|||||||
;ld de,T9186 ; ¡ãä¥à
|
;ld de,T9186 ; ¡ãä¥à
|
||||||
ld hl,work_buffer1 ; ¨¬ï ä ©«
|
ld hl,work_buffer1 ; ¨¬ï ä ©«
|
||||||
ld de,work_buffer1 ; 80 ¡ãä¥à
|
ld de,work_buffer1 ; 80 ¡ãä¥à
|
||||||
ld a,37h ; âਡãâ (¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ )
|
ld a,#37 ; âਡãâ (¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ )
|
||||||
ld bc,0*256 + Dss.F_First ; f_first (ä®à¬ â 11)
|
ld bc,0*256 + Dss.F_First ; f_first (ä®à¬ â 11)
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
;R14
|
||||||
; %1
|
;jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï DSS_Error.sys.FILE_NOT_FOUND
|
||||||
;ld a,(system_path) ; ¡ãä¥à ¯®«®£® á¨áâ. ¯ãâ¨
|
JR NC,.not_empty
|
||||||
;ld (T90F6),a
|
CP DSS_Error.sys.FILE_NOT_FOUND
|
||||||
;ld a,":"
|
JP NZ,print_err_message
|
||||||
;ld (T90F7),a
|
SCF
|
||||||
;xor a
|
JP .Print_Header
|
||||||
;ld (T90F8),a
|
.not_empty:
|
||||||
ld a,(screen_path) ; ¤¨áª
|
CALL .Print_Header
|
||||||
ld hl,PRM1
|
|
||||||
ld (hl),a
|
|
||||||
inc hl
|
|
||||||
ld (hl),":"
|
|
||||||
inc hl
|
|
||||||
ld (hl),0
|
|
||||||
; %2
|
|
||||||
ld hl,serial_string ; áâப á¥à¨©®£® ®¬¥à ¤¨áª
|
|
||||||
ld de,PRM2 ; ªã¤
|
|
||||||
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
|
||||||
;call print_sys_path ; ¢ë¢®¤ á¨áâ. ¯ã⨠íªà
|
|
||||||
; %3
|
|
||||||
ld hl,screen_path ; íªà . ¯ãâì
|
|
||||||
ld de,PRM3 ; 16 ¡ãä¥à
|
|
||||||
;ld a,(hl)
|
|
||||||
;ldi ; ᪮¯¨à. áâபã
|
|
||||||
;or a
|
|
||||||
;jr nz,$-4
|
|
||||||
call copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
|
||||||
;
|
;
|
||||||
ld de,0 ; ¨¤¥ªá "Volume in drive %1 has no label..."
|
|
||||||
call MESSAGE ; ¢ë¢¥á⨠áâபã
|
|
||||||
; 横« ¢ë¢®¤ á¯¨áª ä ©«®¢/¯ ¯®ª
|
; 横« ¢ë¢®¤ á¯¨áª ä ©«®¢/¯ ¯®ª
|
||||||
A882C: ;ld hl,T9186 ; à ¡. ¡ãä¥à
|
.loop: ;ld hl,T9186 ; à ¡. ¡ãä¥à
|
||||||
ld hl,work_buffer1 ; 80
|
ld hl,work_buffer1 ; 80
|
||||||
ld de,33
|
ld de,33
|
||||||
add hl,de
|
add hl,de
|
||||||
@ -70,7 +49,7 @@ A882C: ;ld hl,T9186 ; ࠡ.
|
|||||||
ld ix,work_buffer1 ; 80
|
ld ix,work_buffer1 ; 80
|
||||||
ld a,(ix+32) ; âਡãâ ⥪. § ¯¨á¨
|
ld a,(ix+32) ; âਡãâ ⥪. § ¯¨á¨
|
||||||
and 10h ; ¯ ¯ª ?
|
and 10h ; ¯ ¯ª ?
|
||||||
jr nz,A8866 ; ¤
|
jr nz,.next ; ¤
|
||||||
; ¯à¨¡ ¢¨âì à §¬¥à ⥪. ä ©«
|
; ¯à¨¡ ¢¨âì à §¬¥à ⥪. ä ©«
|
||||||
ld hl,(D88DC)
|
ld hl,(D88DC)
|
||||||
inc hl
|
inc hl
|
||||||
@ -89,16 +68,14 @@ A882C: ;ld hl,T9186 ; ࠡ.
|
|||||||
ld (D88DE),hl
|
ld (D88DE),hl
|
||||||
exx
|
exx
|
||||||
ld (D88E0),hl
|
ld (D88E0),hl
|
||||||
A8866: ;ld de,T9186 ; à ¡. ¡ãä¥à
|
.next: ;ld de,T9186 ; à ¡. ¡ãä¥à
|
||||||
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,A882C ; § ¤ ¢ 横«
|
jr nc,.loop ; § ¤ ¢ 横«, ¥á«¨ ¥ ª®¥æ ᯨáª
|
||||||
jr A8872 ; ª®¥æ ᯨ᪠, ¤¥áïâ. ¢ë¢®¤
|
|
||||||
|
|
||||||
|
|
||||||
; „¥áïâ¨çë© ¢ë¢®¤
|
; „¥áïâ¨çë© ¢ë¢®¤
|
||||||
A8872: ld hl,(D88DC)
|
.print: ld hl,(D88DC)
|
||||||
ld ix,PRM1 ; ¡ãä¥à
|
ld ix,PRM1 ; ¡ãä¥à
|
||||||
call A8964
|
call A8964
|
||||||
ld hl,(D88DE) ; ¬«. à §àï¤
|
ld hl,(D88DE) ; ¬«. à §àï¤
|
||||||
@ -109,10 +86,11 @@ A8872: ld hl,(D88DC)
|
|||||||
ld hl,T8B37 ; "0"
|
ld hl,T8B37 ; "0"
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
cp " "
|
cp " "
|
||||||
jr nz,A8892
|
jr nz,.not_zero
|
||||||
ld a,"0"
|
ld a,"0"
|
||||||
ld (hl),a
|
ld (hl),a
|
||||||
A8892: ld de,T8B46 ; "0 000 000 000"
|
.not_zero:
|
||||||
|
ld de,T8B46 ; "0 000 000 000"
|
||||||
ld hl,T8B2E ; "0000000000"
|
ld hl,T8B2E ; "0000000000"
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
ldi
|
ldi
|
||||||
@ -148,8 +126,42 @@ A8892: ld de,T8B46 ; "0 000 000 000"
|
|||||||
ld de,9 ; ¨¤¥ªá " %1 file(s) %2 bytes"
|
ld de,9 ; ¨¤¥ªá " %1 file(s) %2 bytes"
|
||||||
jp MESSAGE ; ¢ë¢¥á⨠áâபã
|
jp MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||||
|
|
||||||
|
;R14
|
||||||
|
.Print_Header:
|
||||||
|
PUSH AF
|
||||||
|
;
|
||||||
|
; %1
|
||||||
|
ld a,(screen_path) ; ¤¨áª
|
||||||
|
ld hl,PRM1
|
||||||
|
ld (hl),a
|
||||||
|
inc hl
|
||||||
|
ld (hl),":"
|
||||||
|
inc hl
|
||||||
|
ld (hl),0
|
||||||
|
; %2
|
||||||
|
ld hl,serial_string ; áâப á¥à¨©®£® ®¬¥à ¤¨áª
|
||||||
|
ld de,PRM2 ; ªã¤
|
||||||
|
call ncopy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
|
;
|
||||||
|
;R14
|
||||||
|
POP AF
|
||||||
|
ld hl,screen_path
|
||||||
|
JR NC,.not_empty_2
|
||||||
|
;
|
||||||
|
ld a,(screen_path)
|
||||||
|
LD (.str),A
|
||||||
|
ld hl,.str ; íªà . ¯ãâì
|
||||||
|
; %3
|
||||||
|
.not_empty_2:
|
||||||
|
;
|
||||||
|
ld de,PRM3 ; 16 ¡ãä¥à
|
||||||
|
CALL copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||||
|
;
|
||||||
|
ld de,0 ; ¨¤¥ªá "Volume in drive %1 has no label..." ;!HARDCODE ®¬¥à áâப¨ MSG0
|
||||||
|
JP MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||||
|
|
||||||
|
.str: DZ 'X:\ is empty' ;R14
|
||||||
|
;
|
||||||
|
|
||||||
; <20>®¤£®â®¢¨âì áâபã á¯¨áª ä ©«®¢/¯ ¯®ª
|
; <20>®¤£®â®¢¨âì áâபã á¯¨áª ä ©«®¢/¯ ¯®ª
|
||||||
A88E2: ld bc,8
|
A88E2: ld bc,8
|
||||||
|
|||||||
@ -133,24 +133,24 @@ HELPMSG EQU 11
|
|||||||
|
|
||||||
MSG0: db 0
|
MSG0: db 0
|
||||||
; 0
|
; 0
|
||||||
db "Volume in drive %1 "
|
db "Volume on drive %1 "
|
||||||
.volume_string: ;!FIXIT ᤥ« âì ç¥à¥§ PRM
|
.volume_string: ;!FIXIT ᤥ« âì ç¥à¥§ PRM
|
||||||
db "has no label ",0Dh,0Ah ;0
|
db "has no label ",CR,LF ;0
|
||||||
db "Volume Serial Number is %2",0Dh,0Ah
|
db "The volume serial number is %2",CR,LF
|
||||||
db 0Dh,0Ah,"Directory of %3",0Dh,0Ah,0Ah,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
|
; 2
|
||||||
db "Current date: %1",0Dh,0Ah,0 ;2
|
db "Current date: %1",CR,LF,0 ;2
|
||||||
db "Current time: %1",0Dh,0Ah,0 ;3
|
db "Current time: %1",CR,LF,0 ;3
|
||||||
db "Press any key to continue . . .",0Dh,0Ah,0Ah,0 ;4
|
db "Press any key to continue . . .",CR,LF,LF,0 ;4
|
||||||
db "Invalid parametr",0Dh,0Ah,0 ;5
|
db "Invalid parametr",CR,LF,0 ;5
|
||||||
db "Echo is %1",0Dh,0Ah,0 ;6
|
db "Echo is %1",CR,LF,0 ;6
|
||||||
db "on",0 ;7
|
db "on",0 ;7
|
||||||
db "off",0 ;8
|
db "off",0 ;8
|
||||||
db " %1 file(s) %2 bytes",0Dh,0Ah,0Ah,0 ;9
|
db " %1 file(s) %2 bytes",CR,LF,LF,0 ;9
|
||||||
; 10 FILENAME EXT SIZE DATE TIME
|
; 10 FILENAME EXT SIZE DATE TIME
|
||||||
db "%1 %2 %3 %4 %5",0Dh,0Ah,0 ;10
|
db "%1 %2 %3 %4 %5",CR,LF,0 ;10
|
||||||
; 11
|
; 11
|
||||||
DB "COMMANDS:",CR,LF,CR,LF
|
DB "COMMANDS:",CR,LF,CR,LF
|
||||||
DB "DIR REN | RENAME PATH HELP ",CR,LF
|
DB "DIR REN | RENAME PATH HELP ",CR,LF
|
||||||
|
|||||||
@ -12,6 +12,29 @@
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
; SYSTEM.EXE /S /P
|
||||||
|
;
|
||||||
|
; /P Primary command processor
|
||||||
|
; /S Secondary command processor
|
||||||
|
; /C Execute batch file
|
||||||
|
|
||||||
|
;=====================================================================[]
|
||||||
|
;Rev. Date Name Description
|
||||||
|
;---------------------------------------------------------------------[]
|
||||||
|
;R14 22-09-2023 BAO ˆá¯à ¢«¥ ¡ £ "File not found" ¢ ª®¬ ¤¥ DIR ¯ãá⮬ à §¤¥«¥
|
||||||
|
;R13 03-08-2023 BAO „®¡ ¢«¥ ¢ë¢®¤ ®¬¥à ¢¥àᨨ Š®á®«¨ ¤«ï ª®¬ ¤ë VERSION
|
||||||
|
;R12 23-07-2023 BAO „®¡ ¢«¥ ª®¬ ¤ REBOOT - ¯¥à¥§ £à㧪 á ¯®«®© ®ç¨á⪮© ¯ ¬ïâ¨
|
||||||
|
;R11 20-07-2023 BAO <09>®¯à ¢«¥ äãªæ¨ï LCPIR ¤«ï ª®à४⮣® ¢ë¡®à á®®¡é¥¨ï ®¡ ®è¨¡ª¥ ¯à¨ ®¬¥à¥ ®è¨¡ª¨ > § £®â®¢«¥ëå á®®¡é¥¨©
|
||||||
|
;R10 16-05-2023 BAO TE•T MODE AND TEXT ARE RESTORED AFTER RETURNING FROM THE APP
|
||||||
|
;R08 21-02-2003 DNS FIX BUG IN BAT-PARSER, IT SPLIT STRINGS WHEN LINE BEGAN AT #xx00 OFFSET
|
||||||
|
;R07 14-12-2002 DNS PARSING BATCH LINE
|
||||||
|
;R06 12-12-2002 DNS ADD %0, %1, %2 ...
|
||||||
|
;R05 11-12-2002 DNS IMPLEMENTED %VAR%
|
||||||
|
;R04 11-12-2002 DNS ADD 'EVALSTRING' ROUTINE
|
||||||
|
;R03 11-12-2002 DNS NEW VERSION
|
||||||
|
;R02 19-11-2002 DNS CORRECT SOME ERROR MESSAGES
|
||||||
|
;R01 19-11-2002 DNS ADD ENVIRONMENT %VARIABLE% IN ECHO
|
||||||
|
;=====================================================================[]
|
||||||
|
|
||||||
includelua 'Shared_includes/lua/Functions.lua'
|
includelua 'Shared_includes/lua/Functions.lua'
|
||||||
include 'shared_includes/constants/bios_equ.inc'
|
include 'shared_includes/constants/bios_equ.inc'
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
67
|
77
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit b593cb606636c961e49597b9b1e5b6ee72d191c9
|
Subproject commit a4f102897a7fa7488c1e64cf8329f5659c6b0d6b
|
||||||
Loading…
Reference in New Issue
Block a user