mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
Почти доделал смену диска ATAPI
This commit is contained in:
parent
4bde8c738c
commit
a93bbd76ad
@ -31,6 +31,7 @@ CLOSE_FN:
|
|||||||
; [x] 15/11/2023 -bug with bad clusters ;!TEST
|
; [x] 15/11/2023 -bug with bad clusters ;!TEST
|
||||||
LD A,(IY+_sFM.DRIVE)
|
LD A,(IY+_sFM.DRIVE)
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
|
JR C,.error
|
||||||
;
|
;
|
||||||
XOR A
|
XOR A
|
||||||
CALL SET_FM
|
CALL SET_FM
|
||||||
@ -83,4 +84,8 @@ CLOSE_FN:
|
|||||||
.NOTMODF:
|
.NOTMODF:
|
||||||
LD A,(.TMP)
|
LD A,(.TMP)
|
||||||
JP RES_FM
|
JP RES_FM
|
||||||
|
;
|
||||||
|
.error: POP DE
|
||||||
|
POP DE
|
||||||
|
RET
|
||||||
;
|
;
|
||||||
@ -222,8 +222,27 @@ OPENDSK: ;!TEST DRV.Open
|
|||||||
.error: CP DSS_Error.sys.INVALID_DRIVE
|
.error: CP DSS_Error.sys.INVALID_DRIVE
|
||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
|
;
|
||||||
|
CP DSS_Error.sys.MEDIA_CHANGED
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
CP DSS_Error.sys.UNKNOWN_FORMAT
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
LD A,DSS_Error.sys.NOT_READY
|
LD A,DSS_Error.sys.NOT_READY
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
/*
|
||||||
|
0000 0010 02
|
||||||
|
0001 1100 1c
|
||||||
|
0000 1101 0d
|
||||||
|
|
||||||
|
0001 0011
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
;[x] 29/02/2024 fix "open drive error"; 20/06/2024 fixed
|
;[x] 29/02/2024 fix "open drive error"; 20/06/2024 fixed
|
||||||
.error_bpb: PUSH AF ; á®åà 塞 ®¬¥à ®è¨¡ª¨
|
.error_bpb: PUSH AF ; á®åà 塞 ®¬¥à ®è¨¡ª¨
|
||||||
|
|||||||
@ -266,7 +266,7 @@ LOGDRV EQU DEVICE + DEVICE.End
|
|||||||
.SIZE_IN_SECTORS EQU 5
|
.SIZE_IN_SECTORS EQU 5
|
||||||
.PARTITION_RECORD_NUM EQU 9
|
.PARTITION_RECORD_NUM EQU 9
|
||||||
.SECTOR_SIZE EQU 10 ; word
|
.SECTOR_SIZE EQU 10 ; word
|
||||||
.MediaParameters EQU 12 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
.MediaParameters EQU 12 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
||||||
.Reserved_1 EQU 13
|
.Reserved_1 EQU 13
|
||||||
.Reserved_2 EQU 14
|
.Reserved_2 EQU 14
|
||||||
.Reserved_3 EQU 15
|
.Reserved_3 EQU 15
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
9
|
12
|
||||||
@ -335,7 +335,7 @@ SelectDrive: PUSH DE
|
|||||||
;
|
;
|
||||||
; [ ] custom sector size
|
; [ ] custom sector size
|
||||||
CALL CHECK_IDE_SECTOR_SIZE
|
CALL CHECK_IDE_SECTOR_SIZE
|
||||||
LD A,DSS_Error.drv.UNKNOWN_FORMAT
|
LD A,DSS_Error.sys.UNKNOWN_FORMAT
|
||||||
JR C,.error_pop
|
JR C,.error_pop
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
@ -463,7 +463,7 @@ GetParams: EX DE,HL
|
|||||||
JR .error
|
JR .error
|
||||||
|
|
||||||
|
|
||||||
; [ ] media change
|
; [ ] media change - ã¡à âì ;!FIXIT
|
||||||
.next: EX AF,AF
|
.next: EX AF,AF
|
||||||
JR NC,.NoMediaChange
|
JR NC,.NoMediaChange
|
||||||
CP BIOS.Error.ATAPI.UnitAttention
|
CP BIOS.Error.ATAPI.UnitAttention
|
||||||
@ -545,9 +545,15 @@ Close: XOR A
|
|||||||
|
|
||||||
;!TODO ¯®ª Open ¨ç¥£® ¥ ¤¥« ¥â ªà®¬¥ ¯à®¢¥àª¨ MediaCheck
|
;!TODO ¯®ª Open ¨ç¥£® ¥ ¤¥« ¥â ªà®¬¥ ¯à®¢¥àª¨ MediaCheck
|
||||||
Open: CALL MediaCheck
|
Open: CALL MediaCheck
|
||||||
;!TODO
|
RET Z
|
||||||
;RET ‘
|
RET C
|
||||||
|
;!TODO ???
|
||||||
;CALL READ_PARTITION_PARAMETERS
|
;CALL READ_PARTITION_PARAMETERS
|
||||||
|
;
|
||||||
|
INC A
|
||||||
|
RET NZ
|
||||||
|
LD A,DSS_Error.sys.MEDIA_CHANGED
|
||||||
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;[ ] media changed - bios 5x DETECT
|
;[ ] media changed - bios 5x DETECT
|
||||||
@ -588,23 +594,25 @@ MediaCheck: PUSH IY
|
|||||||
CALL SelectDrive
|
CALL SelectDrive
|
||||||
JR NC,.next_step
|
JR NC,.next_step
|
||||||
;
|
;
|
||||||
CP DSS_Error.drv.UNKNOWN_FORMAT
|
CP DSS_Error.sys.UNKNOWN_FORMAT
|
||||||
SCF
|
|
||||||
JR NZ,.exit
|
JR NZ,.exit
|
||||||
|
AND A ; á¡à®á ZF
|
||||||
|
SCF
|
||||||
; [ ] media changed
|
; [ ] media changed
|
||||||
.next_step: PUSH AF ; ‘®åà 塞 CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
.next_step: PUSH AF ; ‘®åà 塞 CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
||||||
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
LD C,BIOS.DRV_DETECT ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
|
LD C,BIOS.DRV_GET_PAR ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
|
||||||
PUSH IY
|
PUSH IY
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
POP IY
|
POP IY
|
||||||
|
EX AF,AF'
|
||||||
JR NC,.next_check
|
JR NC,.next_check
|
||||||
;
|
;
|
||||||
CP BIOS.Error.ATAPI.UnitAttention
|
CP BIOS.Error.ATAPI.UnitAttention
|
||||||
JR Z,.Reinit
|
JR Z,.Reinit
|
||||||
SCF
|
|
||||||
POP BC ; <20> « á á⥪
|
POP BC ; <20> « á á⥪
|
||||||
.exit: POP IY
|
.exit: SCF
|
||||||
|
POP IY
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.next_check: BIT 1,(IY + LOGDRV.MediaParameters)
|
.next_check: BIT 1,(IY + LOGDRV.MediaParameters)
|
||||||
@ -619,12 +627,12 @@ MediaCheck: PUSH IY
|
|||||||
.Reinit: LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
.Reinit: LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
LD (CURRENT_DRIVE.Number),A
|
LD (CURRENT_DRIVE.Number),A
|
||||||
LD (LOGDRV_OFFSET),IY
|
LD (LOGDRV_OFFSET),IY
|
||||||
;RES 1,(IY + LOGDRV.MediaParameters)
|
;RES 1,(IY + LOGDRV.MediaParameters) - á¡à áë¢ ¥âáï ¢ DEFINE_PARTITIONS
|
||||||
CALL DEFINE_PARTITIONS
|
CALL DEFINE_PARTITIONS
|
||||||
POP AF
|
POP AF
|
||||||
POP IY
|
POP IY
|
||||||
RET C ; ‚®ááâ ¢«¨¢ ¥¬ CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
RET C ; ‚®ááâ ¢«¨¢ ¥¬ CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
||||||
LD A,#FF ;!HARDCODE drive changed
|
LD A,#FF ;!HARDCODE drive changed
|
||||||
OR A
|
OR A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -633,9 +641,11 @@ MediaCheck: PUSH IY
|
|||||||
CHECK_IDE_SECTOR_SIZE:
|
CHECK_IDE_SECTOR_SIZE:
|
||||||
LD E,(IY+LOGDRV.SECTOR_SIZE)
|
LD E,(IY+LOGDRV.SECTOR_SIZE)
|
||||||
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
|
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
|
||||||
LD HL,DSS_MAX_SECTOR_SIZE
|
; LD HL,DSS_MAX_SECTOR_SIZE
|
||||||
AND A
|
; AND A
|
||||||
SBC HL,DE
|
; SBC HL,DE
|
||||||
|
LD HL,-DSS_MAX_SECTOR_SIZE - 1
|
||||||
|
ADD HL,DE
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -725,7 +735,7 @@ Exec_BIOS: PUSH IY
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.exec: CALL SelectDrive
|
.exec: CALL SelectDrive
|
||||||
RET C
|
RET C ;!FIXIT ¯¥à¥¤¥« âì ®¬¥à ®è¨¡ª¨ á ¤à ©¢¥à ¤®á
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
RET NC
|
RET NC
|
||||||
CP BIOS.Error.ATAPI.UnitAttention
|
CP BIOS.Error.ATAPI.UnitAttention
|
||||||
@ -799,11 +809,7 @@ DEFINE_PARTITIONS:
|
|||||||
CALL INC_DRV_COUNT
|
CALL INC_DRV_COUNT
|
||||||
RET NC
|
RET NC
|
||||||
;
|
;
|
||||||
LD A,(CURRENT_DRIVE.Number)
|
CALL .set_drv_tbl
|
||||||
LD (IX + LOGDRV.PHISICAL_DRV_NUMBER),A
|
|
||||||
LD DE,LOGDRV.TBL_Entry ;DSKITEM
|
|
||||||
ADD IX,DE
|
|
||||||
LD (LOGDRV_OFFSET),IX
|
|
||||||
JP .NextPartition
|
JP .NextPartition
|
||||||
;
|
;
|
||||||
.NotExtended: CP PartitionSysTypes.FAT16
|
.NotExtended: CP PartitionSysTypes.FAT16
|
||||||
@ -824,8 +830,14 @@ DEFINE_PARTITIONS:
|
|||||||
JP Z,.SubLevel
|
JP Z,.SubLevel
|
||||||
JP .NextPartition ; à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
JP .NextPartition ; à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
||||||
;
|
;
|
||||||
|
.set_drv_tbl: LD A,(CURRENT_DRIVE.Number)
|
||||||
.ATAPI_TST: ;JR .check_atapi ;!FIXIT CDFS
|
LD (IX + LOGDRV.PHISICAL_DRV_NUMBER),A
|
||||||
|
LD DE,LOGDRV.TBL_Entry ;DSKITEM
|
||||||
|
ADD IX,DE
|
||||||
|
LD (LOGDRV_OFFSET),IX
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.CDFS_TST: ;JR .check_atapi ;!FIXIT CDFS
|
||||||
;SCF
|
;SCF
|
||||||
;RET
|
;RET
|
||||||
.check_atapi: LD A,(CURRENT_DRIVE.Number)
|
.check_atapi: LD A,(CURRENT_DRIVE.Number)
|
||||||
@ -833,10 +845,22 @@ DEFINE_PARTITIONS:
|
|||||||
AND #F0
|
AND #F0
|
||||||
CP DRIVE_CODES.SPRINTER.ATAPI
|
CP DRIVE_CODES.SPRINTER.ATAPI
|
||||||
SCF
|
SCF
|
||||||
RET NZ
|
;RET NZ
|
||||||
|
PUSH AF
|
||||||
;
|
;
|
||||||
CALL GetSectorSize
|
CALL GetSectorSize
|
||||||
;BPB SECTOR ;!TODO ¥á«¨ CD-ROM, â® ¤à㣮© ®¬¥à ᥪâ®à
|
CALL .set_LOGDRV
|
||||||
|
POP AF
|
||||||
|
RET NZ ; १ã«ìâ â CP DRIVE_CODES.SPRINTER.ATAPI
|
||||||
|
; ¤«ï ¯à ¢¨«ì®£® ¢ë室 ¨§ ¯ àá¥à à §¤¥«®¢
|
||||||
|
LD B,1
|
||||||
|
PUSH BC
|
||||||
|
;§ £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
|
LD A,#FF ; ¤«ï ¯à®¯ã᪠.tst_zipNoMBR ¨ § ¯¨á¨ ¢ LOGDRV.PARTITION_RECORD_NUM
|
||||||
|
LD (CURRENT_SECTOR.Low),A
|
||||||
|
JP .not_supported
|
||||||
|
;
|
||||||
|
.set_LOGDRV: ;BPB SECTOR ;!TODO ¥á«¨ CD-ROM, â® ¤à㣮© ®¬¥à ᥪâ®à
|
||||||
LD IX,(LOGDRV_OFFSET)
|
LD IX,(LOGDRV_OFFSET)
|
||||||
LD A,(CURRENT_DRIVE.Removable)
|
LD A,(CURRENT_DRIVE.Removable)
|
||||||
LD (IX + LOGDRV.MediaParameters),A
|
LD (IX + LOGDRV.MediaParameters),A
|
||||||
@ -851,15 +875,9 @@ DEFINE_PARTITIONS:
|
|||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 2),L
|
LD (IX + LOGDRV.SIZE_IN_SECTORS + 2),L
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 3),H
|
LD (IX + LOGDRV.SIZE_IN_SECTORS + 3),H
|
||||||
; [ ] sector size
|
; [ ] sector size
|
||||||
LD (IX + LOGDRV.SECTOR_SIZE),C
|
LD (IX + LOGDRV.SECTOR_SIZE),C
|
||||||
LD (IX + LOGDRV.SECTOR_SIZE + 1),B
|
LD (IX + LOGDRV.SECTOR_SIZE + 1),B
|
||||||
;
|
RET
|
||||||
; ¤«ï ¯à ¢¨«ì®£® ¢ë室 ¨§ ¯ àá¥à à §¤¥«®¢
|
|
||||||
LD B,1
|
|
||||||
PUSH BC
|
|
||||||
;§ £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
|
||||||
DEC A
|
|
||||||
JP .not_supported
|
|
||||||
;
|
;
|
||||||
; ¢å®¤: B - bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
; ¢å®¤: B - bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
||||||
.Start: LD IX,0
|
.Start: LD IX,0
|
||||||
@ -883,7 +901,7 @@ DEFINE_PARTITIONS:
|
|||||||
;JR NZ,NODEFIN
|
;JR NZ,NODEFIN
|
||||||
|
|
||||||
; [ ] CDFS
|
; [ ] CDFS
|
||||||
JR NZ,.ATAPI_TST
|
JR NZ,.CDFS_TST
|
||||||
;SCF
|
;SCF
|
||||||
;RET NZ
|
;RET NZ
|
||||||
;
|
;
|
||||||
@ -927,7 +945,43 @@ DEFINE_PARTITIONS:
|
|||||||
ADD IY,DE
|
ADD IY,DE
|
||||||
POP BC
|
POP BC
|
||||||
DJNZ .DOSAGA
|
DJNZ .DOSAGA
|
||||||
AND A
|
;
|
||||||
|
.tst_zipNoMBR: ; [ ] zip no MBR
|
||||||
|
; ⮫쪮 ¤«ï Removable media
|
||||||
|
LD A,(CURRENT_DRIVE.Removable)
|
||||||
|
AND %0000'0001
|
||||||
|
RET Z
|
||||||
|
; ⮫쪮 ¤«ï ATAPI
|
||||||
|
LD A,(CURRENT_DRIVE.Number)
|
||||||
|
LD B,A
|
||||||
|
AND #F0
|
||||||
|
CP DRIVE_CODES.SPRINTER.ATAPI
|
||||||
|
JR NZ,.exit
|
||||||
|
;
|
||||||
|
XOR A
|
||||||
|
LD HL,(CURRENT_SECTOR.Low)
|
||||||
|
OR H
|
||||||
|
OR L
|
||||||
|
LD HL,(CURRENT_SECTOR.High)
|
||||||
|
OR H
|
||||||
|
OR L
|
||||||
|
RET NZ
|
||||||
|
;
|
||||||
|
PUSH IY
|
||||||
|
LD A,B
|
||||||
|
LD C,BIOS.DRV_GET_PAR
|
||||||
|
RST ToBIOS
|
||||||
|
POP IY
|
||||||
|
;
|
||||||
|
LD B,XH
|
||||||
|
LD C,XL
|
||||||
|
CALL .set_LOGDRV
|
||||||
|
LD A,(CURRENT_DRIVE.Removable)
|
||||||
|
LD (IX + LOGDRV.MediaParameters),A
|
||||||
|
LD (IX + LOGDRV.PARTITION_RECORD_NUM),#FF
|
||||||
|
CALL .set_drv_tbl
|
||||||
|
;
|
||||||
|
.exit: AND A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.ParseExtended: LD HL,(EXT_Partition.Low)
|
.ParseExtended: LD HL,(EXT_Partition.Low)
|
||||||
@ -970,7 +1024,7 @@ DEFINE_PARTITIONS:
|
|||||||
GetSectorSize: PUSH IY
|
GetSectorSize: PUSH IY
|
||||||
LD A,(CURRENT_DRIVE.Number)
|
LD A,(CURRENT_DRIVE.Number)
|
||||||
; sector size
|
; sector size
|
||||||
LD C,BIOS.DRV_GET_PAR
|
LD C,BIOS.DRV_GET_PAR ; [ ] media change § ¬¥¨âì drv_detect ?
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
JR NC,.no_err
|
JR NC,.no_err
|
||||||
;
|
;
|
||||||
|
|||||||
@ -87,7 +87,15 @@ cmd_dir: push de
|
|||||||
ld hl,Buffers.work.buffer1
|
ld hl,Buffers.work.buffer1
|
||||||
ld c,Dss.ChDir
|
ld c,Dss.ChDir
|
||||||
rst ToDSS
|
rst ToDSS
|
||||||
;ld a,DSS_Error.sys.NOT_READY
|
jr nc,.no_error
|
||||||
|
;
|
||||||
|
cp DSS_Error.sys.MEDIA_CHANGED
|
||||||
|
jp nz,print_err_message
|
||||||
|
call print_err_message
|
||||||
|
;
|
||||||
|
ld hl,Buffers.work.buffer1
|
||||||
|
ld c,Dss.ChDir
|
||||||
|
rst ToDSS
|
||||||
jp c,print_err_message
|
jp c,print_err_message
|
||||||
.no_error: ;
|
.no_error: ;
|
||||||
ld hl,Buffers.bat_params.PRM1
|
ld hl,Buffers.bat_params.PRM1
|
||||||
|
|||||||
@ -4,14 +4,16 @@
|
|||||||
;
|
;
|
||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_mkdir:
|
cmd_mkdir:
|
||||||
ex de,hl
|
|
||||||
;ld de,T9186 ; ¡ãä¥à
|
|
||||||
ld de,Buffers.work.buffer1;
|
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
|
||||||
RST ToDSS
|
|
||||||
;ld hl,T9186 ; ¨¬ï ¯ ¯ª¨
|
|
||||||
ld hl,Buffers.work.buffer1;
|
|
||||||
ld c,Dss.MkDir ; á®§¤ âì ¯ ¯ªã
|
ld c,Dss.MkDir ; á®§¤ âì ¯ ¯ªã
|
||||||
RST ToDSS
|
push bc
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
jp cmd_rmdir.shared
|
||||||
ret
|
|
||||||
|
; ex de,hl
|
||||||
|
; ld de,Buffers.work.buffer1;
|
||||||
|
; ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
|
; RST ToDSS
|
||||||
|
; ld hl,Buffers.work.buffer1 ; ¨¬ï ¯ ¯ª¨
|
||||||
|
; ld c,Dss.MkDir ; á®§¤ âì ¯ ¯ªã
|
||||||
|
; RST ToDSS
|
||||||
|
; call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
; ret
|
||||||
|
|||||||
@ -5,16 +5,12 @@
|
|||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_rename:
|
cmd_rename:
|
||||||
ex de,hl
|
ex de,hl
|
||||||
;ld de,T9186
|
|
||||||
ld de,Buffers.work.buffer1;
|
ld de,Buffers.work.buffer1;
|
||||||
ld c,Dss.GSwitch
|
ld c,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld de,T9206
|
|
||||||
ld de,Buffers.work.buffer+256;
|
ld de,Buffers.work.buffer+256;
|
||||||
ld c,Dss.GSwitch
|
ld c,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;ld hl,T9186
|
|
||||||
;ld de,T9206
|
|
||||||
ld hl,Buffers.work.buffer1;
|
ld hl,Buffers.work.buffer1;
|
||||||
ld de,Buffers.work.buffer+256;
|
ld de,Buffers.work.buffer+256;
|
||||||
ld c,Dss.Rename
|
ld c,Dss.Rename
|
||||||
|
|||||||
@ -3,15 +3,16 @@
|
|||||||
; RD, RMDIR. “¤ «¨âì ¯ ¯ªã
|
; RD, RMDIR. “¤ «¨âì ¯ ¯ªã
|
||||||
;
|
;
|
||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_rmdir:
|
cmd_rmdir: ld c,Dss.RmDir ; á®§¤ âì ¯ ¯ªã
|
||||||
ex de,hl
|
push bc
|
||||||
;ld de,T9186 ; ¡ãä¥à
|
;
|
||||||
ld de,Buffers.work.buffer1;
|
.shared: ex de,hl
|
||||||
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
ld de,Buffers.work.buffer1;
|
||||||
RST ToDSS
|
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
|
||||||
;ld hl,T9186 ; ¨¬ï ¯ ¯ª¨
|
RST ToDSS
|
||||||
ld hl,Buffers.work.buffer1;
|
ld hl,Buffers.work.buffer1 ; ¨¬ï ¯ ¯ª¨
|
||||||
ld c,Dss.RmDir ; 㤠«¨âì ¯ ¯ªã
|
POP BC
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
ret nc
|
||||||
ret
|
JP print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
;
|
||||||
|
|||||||
@ -60,10 +60,21 @@ COMP: call EVALCMD ; (batch.asm)
|
|||||||
jr nc,.NOUP
|
jr nc,.NOUP
|
||||||
and #5F ; a..z -> A..Z
|
and #5F ; a..z -> A..Z
|
||||||
.NOUP: sub "A" ; ®¬¥à ¤¨áª
|
.NOUP: sub "A" ; ®¬¥à ¤¨áª
|
||||||
|
ld (.dsk),a
|
||||||
ld c,Dss.ChDisk ; ᬥ¨âì ⥪. ¤¨áª
|
ld c,Dss.ChDisk ; ᬥ¨âì ⥪. ¤¨áª
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
jr nc,.no_err
|
||||||
|
;
|
||||||
|
cp DSS_Error.sys.MEDIA_CHANGED
|
||||||
|
jp nz,print_err_message
|
||||||
|
;
|
||||||
|
call print_err_message
|
||||||
|
.dsk+1: ld a,0
|
||||||
|
ld c,Dss.ChDisk ; ᬥ¨âì ⥪. ¤¨áª
|
||||||
|
RST ToDSS
|
||||||
|
jp c,print_err_message
|
||||||
|
;
|
||||||
|
.no_err:
|
||||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ ¥âáï ¤¨à¥ªâ®à¨ï ¨ ¬®£ãâ ¡ëâì £«îª¨ ®¢®¬ ï¤à¥
|
;!FIXIT âãâ ¢®ááâ ¢«¨¢ ¥âáï ¤¨à¥ªâ®à¨ï ¨ ¬®£ãâ ¡ëâì £«îª¨ ®¢®¬ ï¤à¥
|
||||||
;!TODO ¤®áâ ¢ âì Buffers.sys_path ®â¤¥«ì® ¤«ï ª ¦¤®£® ¤¨áª (¨«¨ ¢ ï¤à¥ ᤥ« âì?)
|
;!TODO ¤®áâ ¢ âì Buffers.sys_path ®â¤¥«ì® ¤«ï ª ¦¤®£® ¤¨áª (¨«¨ ¢ ï¤à¥ ᤥ« âì?)
|
||||||
; â¥áâ áãé¥á⢮¢ ¨¥ ¯ ¯ª¨ 楫¥¢®¬ ¤¨áª¥
|
; â¥áâ áãé¥á⢮¢ ¨¥ ¯ ¯ª¨ 楫¥¢®¬ ¤¨áª¥
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
452
|
456
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit b3224fc3afac71c6b1d461ff54049e58657bbe5a
|
Subproject commit aa0c67b6b30b02b1302145cd4d57b708130e2e0a
|
||||||
Loading…
Reference in New Issue
Block a user