mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
лучше бы я этого не делал
This commit is contained in:
parent
1430dec045
commit
fb13b0231b
@ -59,7 +59,7 @@
|
|||||||
include 'API/Open.asm'
|
include 'API/Open.asm'
|
||||||
include 'API/Close.asm'
|
include 'API/Close.asm'
|
||||||
include 'API/Find.asm'
|
include 'API/Find.asm'
|
||||||
include 'API/ChnDisk.asm'
|
include 'API/ChDisk.asm'
|
||||||
include 'API/CurrDir.asm'
|
include 'API/CurrDir.asm'
|
||||||
include 'API/Time.asm'
|
include 'API/Time.asm'
|
||||||
include 'API/GetDateTime.asm'
|
include 'API/GetDateTime.asm'
|
||||||
@ -88,8 +88,8 @@
|
|||||||
|
|
||||||
|
|
||||||
;R09
|
;R09
|
||||||
;„ã¡«ì - CHNDISK = OPENDSK
|
;„ã¡«ì - CHDISK = OPENDSK
|
||||||
;CHNDISK:
|
;CHDISK:
|
||||||
; PUSH AF
|
; PUSH AF
|
||||||
; LD C,Dss.DRV.Open
|
; LD C,Dss.DRV.Open
|
||||||
; RST ToDSS.DRV
|
; RST ToDSS.DRV
|
||||||
|
|||||||
24
DSS/API/ChDisk.asm
Normal file
24
DSS/API/ChDisk.asm
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
;
|
||||||
|
;
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
CHDISK_FN: CALL CHDISK
|
||||||
|
RET C
|
||||||
|
PUSH AF
|
||||||
|
CALL DIR_PATH_CHANGE.FullCurrent
|
||||||
|
POP AF
|
||||||
|
RET
|
||||||
|
CHDISK: ;[x] ¡®«¥¥ ª®à४â ï ᬥ ¤¨áª
|
||||||
|
CALL OPENDSK
|
||||||
|
;
|
||||||
|
;R010
|
||||||
|
RET C
|
||||||
|
LD HL,CORE_BUFFERS.WorkDirectory
|
||||||
|
LD (HL),0
|
||||||
|
PUSH AF
|
||||||
|
CALL OPENDIR
|
||||||
|
POP BC
|
||||||
|
RET C
|
||||||
|
LD A,B
|
||||||
|
RET
|
||||||
|
;
|
||||||
@ -2,13 +2,13 @@
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CHNDISK_FN: CALL CHNDISK
|
CHDISK_FN: CALL CHDISK
|
||||||
RET C
|
RET C
|
||||||
PUSH AF
|
PUSH AF
|
||||||
CALL DIR_PATH_CHANGE.FullCurrent
|
CALL DIR_PATH_CHANGE.FullCurrent
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
CHNDISK: ;[x] ¡®«¥¥ ª®à४â ï ᬥ ¤¨áª
|
CHDISK: ;[x] ¡®«¥¥ ª®à४â ï ᬥ ¤¨áª
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
;
|
;
|
||||||
;R010
|
;R010
|
||||||
|
|||||||
@ -103,7 +103,6 @@ EXEC_1: ;LD (CMDLINE),HL
|
|||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
CALL TST_EXT
|
CALL TST_EXT
|
||||||
;LD A,DSS_Error.sys.FILE_NOT_FOUND
|
|
||||||
RET C
|
RET C
|
||||||
_mINCTASK ;R08
|
_mINCTASK ;R08
|
||||||
CALL OPEN_FN.FILE
|
CALL OPEN_FN.FILE
|
||||||
@ -164,17 +163,11 @@ EXEC02: LD (EXE_FM),A
|
|||||||
LD A,DSS_Error.sys.INVALID_EXE
|
LD A,DSS_Error.sys.INVALID_EXE
|
||||||
SCF
|
SCF
|
||||||
JP NZ,ERREXE
|
JP NZ,ERREXE
|
||||||
;!TEST
|
|
||||||
;LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
|
|
||||||
;OR A
|
|
||||||
;LD A,DSS_Error.sys.UNKNOWN_EXE
|
|
||||||
;SCF
|
|
||||||
;JP NZ,ERREXE
|
|
||||||
LD A,MINIMUM_EXE_VERSION
|
|
||||||
CP (IX + _sEXE_HEADER.VERSION)
|
|
||||||
LD A,DSS_Error.sys.UNKNOWN_EXE
|
|
||||||
JP C,ERREXE
|
|
||||||
;
|
;
|
||||||
|
LD A,MINIMUM_EXE_VERSION
|
||||||
|
CP (IX + _sEXE_HEADER.VERSION)
|
||||||
|
LD A,DSS_Error.sys.UNKNOWN_EXE
|
||||||
|
JP C,ERREXE
|
||||||
;
|
;
|
||||||
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER)
|
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER)
|
||||||
LD A,E
|
LD A,E
|
||||||
|
|||||||
@ -137,7 +137,7 @@ DISKINF: LD C,B
|
|||||||
JR Z,.CheckFreeSpace
|
JR Z,.CheckFreeSpace
|
||||||
;
|
;
|
||||||
.CustomDisk: PUSH BC
|
.CustomDisk: PUSH BC
|
||||||
CALL CHNDISK ;R06
|
CALL CHDISK ;R06
|
||||||
POP BC
|
POP BC
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
|
|||||||
@ -108,7 +108,7 @@ SetPath_GetName:
|
|||||||
INC HL
|
INC HL
|
||||||
INC HL
|
INC HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL CHNDISK
|
CALL CHDISK
|
||||||
;CALL OPENDSK
|
;CALL OPENDSK
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
@ -164,9 +164,9 @@ SetPath_GetName:
|
|||||||
; SUB #20
|
; SUB #20
|
||||||
; .next: SUB 'A'
|
; .next: SUB 'A'
|
||||||
; PUSH HL
|
; PUSH HL
|
||||||
; ;!TEST CHNDISK OPENDSK
|
; ;!TEST CHDISK OPENDSK
|
||||||
; ;CALL OPENDSK
|
; ;CALL OPENDSK
|
||||||
; CALL CHNDISK
|
; CALL CHDISK
|
||||||
; ;
|
; ;
|
||||||
; POP HL
|
; POP HL
|
||||||
; RET C
|
; RET C
|
||||||
@ -220,19 +220,24 @@ OPENDSK: ;!TEST DRV.Open
|
|||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
; !FIXIT ª®áâë«ì ¤«ï Flex Navigator ; [ ] media change
|
; !FIXIT ª®áâë«ì ¤«ï Flex Navigator ; [ ] media change
|
||||||
.error: CP DSS_Error.sys.INVALID_DRIVE
|
.error: CALL .error_convert
|
||||||
|
LD A,C
|
||||||
SCF
|
SCF
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.error_convert: CP DSS_Error.drv.INVALID_DRIVE
|
||||||
|
LD C,DSS_Error.sys.INVALID_DRIVE
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
CP DSS_Error.sys.MEDIA_CHANGED
|
CP DSS_Error.drv.ATAPI.UnitAttention
|
||||||
SCF
|
LD C,DSS_Error.sys.MEDIA_CHANGED
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
CP DSS_Error.sys.UNKNOWN_FORMAT
|
CP DSS_Error.drv.UNKNOWN_FORMAT
|
||||||
SCF
|
LD C,DSS_Error.sys.UNKNOWN_FORMAT
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
LD A,DSS_Error.sys.NOT_READY
|
LD C,DSS_Error.sys.NOT_READY
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;[x] 29/02/2024 fix "open drive error"; 20/06/2024 fixed
|
;[x] 29/02/2024 fix "open drive error"; 20/06/2024 fixed
|
||||||
|
|||||||
@ -34,7 +34,7 @@ A0000: JP RST_00
|
|||||||
|
|
||||||
;
|
;
|
||||||
RST_00:
|
RST_00:
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -83,7 +83,7 @@ A0020: JP DRV_PAGE.RST_20
|
|||||||
|
|
||||||
;
|
;
|
||||||
DRV_PAGE.RST_20:
|
DRV_PAGE.RST_20:
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -98,7 +98,7 @@ A0028: JP DRV_PAGE.RST_28
|
|||||||
|
|
||||||
;
|
;
|
||||||
DRV_PAGE.RST_28:
|
DRV_PAGE.RST_28:
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -195,16 +195,19 @@ A0066: JP DRV_PAGE.NMI ;
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[DRIVE PAGE SWITCH]> ;
|
; <[DRIVE PAGE SWITCH]> ;
|
||||||
BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out_DRV.switch - PORTAL.out_DRV),#C7
|
BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out_DRV.switch - PORTAL.out_DRV),#C7
|
||||||
PORTAL.out_DRV: PUSH BC ;
|
PORTAL.out_DRV: PUSH BC
|
||||||
.RETBANK+2: LD BC,SLOT0 + 0*256; ;!!!!! ReScnDRV ¨á¯®«ì§ã¥â íâ® § 票¥
|
.RETBANK+2: LD BC,SLOT0 + 0*256; ;!!!!! ReScnDRV ¨á¯®«ì§ã¥â íâ® § 票¥
|
||||||
.switch: OUT (C),B ;
|
.switch: OUT (C),B
|
||||||
ASSERT $!=84,'-> Portal error!';
|
ASSERT $!=84,'-> Portal error!';
|
||||||
;Entry point from DSS main page
|
;Entry point from DSS main page
|
||||||
LD (.RETBANK),A ;
|
LD (.RETBANK),A
|
||||||
POP BC ;
|
POP BC
|
||||||
POP AF ;
|
POP AF
|
||||||
.ADCALL+1: CALL DISPATCH ; ¯ âç¨âáï INTDISK
|
.ADCALL+1: CALL DISPATCH ; ¯ âç¨âáï INTDISK
|
||||||
JP PORTAL.out_DRV ;
|
JR NC,PORTAL.out_DRV
|
||||||
|
XOR DSS_Error.DRV_MASK
|
||||||
|
SCF
|
||||||
|
JP PORTAL.out_DRV
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -338,7 +338,7 @@ GO_ZERO EQU #0000
|
|||||||
DSS_API_TABLE: ;DS 512 ;,0
|
DSS_API_TABLE: ;DS 512 ;,0
|
||||||
;...............................................[LOW ADDRESS ]:
|
;...............................................[LOW ADDRESS ]:
|
||||||
; 0 1 2 3 4 5 6 7 8 9 DEC HEX
|
; 0 1 2 3 4 5 6 7 8 9 DEC HEX
|
||||||
DB low F_START, low CHNDISK_FN, low CURDISK_FN,low DISKINF, low NOPS, low NOPS, low NOPS, low NOPS, low SCANDRV, low BOOTDSK ; 0 00..09
|
DB low F_START, low CHDISK_FN, low CURDISK_FN,low DISKINF, low NOPS, low NOPS, low NOPS, low NOPS, low SCANDRV, low BOOTDSK ; 0 00..09
|
||||||
DB low CREATE, low CREATE.NEW, low NOPS, low NOPS, low DEL_FN, low NOPS, low RENAME, low OPEN_FN, low CLOSE_FN, low READ ; 1 0A..13
|
DB low CREATE, low CREATE.NEW, low NOPS, low NOPS, low DEL_FN, low NOPS, low RENAME, low OPEN_FN, low CLOSE_FN, low READ ; 1 0A..13
|
||||||
DB low WRITE, low MOVE_FP, low ATTRIB, low GET_D_T, low PUT_D_T, low F_FIRST_FN,low F_NEXT, low MKDIR.B, low RMDIR, low CHDIR_FN ; 2 14..1D
|
DB low WRITE, low MOVE_FP, low ATTRIB, low GET_D_T, low PUT_D_T, low F_FIRST_FN,low F_NEXT, low MKDIR.B, low RMDIR, low CHDIR_FN ; 2 14..1D
|
||||||
DB low CURRDIR_FN,low NOPS, low NOPS, low SYSTIME, low SETTIME, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 3 1E..27
|
DB low CURRDIR_FN,low NOPS, low NOPS, low SYSTIME, low SETTIME, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 3 1E..27
|
||||||
@ -367,7 +367,7 @@ DSS_API_TABLE: ;DS 512 ;,0
|
|||||||
;[ ] R09
|
;[ ] R09
|
||||||
ENDIF
|
ENDIF
|
||||||
;...............................................[HIGH ADDRESS]:
|
;...............................................[HIGH ADDRESS]:
|
||||||
DB high F_START, high CHNDISK_FN,high CURDISK_FN,high DISKINF,high NOPS, high NOPS, high NOPS, high NOPS, high SCANDRV, high BOOTDSK
|
DB high F_START, high CHDISK_FN, high CURDISK_FN,high DISKINF,high NOPS, high NOPS, high NOPS, high NOPS, high SCANDRV, high BOOTDSK
|
||||||
DB high CREATE, high CREATE.NEW,high NOPS, high NOPS, high DEL_FN, high NOPS, high RENAME, high OPEN_FN,high CLOSE_FN,high READ
|
DB high CREATE, high CREATE.NEW,high NOPS, high NOPS, high DEL_FN, high NOPS, high RENAME, high OPEN_FN,high CLOSE_FN,high READ
|
||||||
DB high WRITE, high MOVE_FP, high ATTRIB, high GET_D_T,high PUT_D_T,high F_FIRST_FN,high F_NEXT, high MKDIR.B,high RMDIR, high CHDIR_FN
|
DB high WRITE, high MOVE_FP, high ATTRIB, high GET_D_T,high PUT_D_T,high F_FIRST_FN,high F_NEXT, high MKDIR.B,high RMDIR, high CHDIR_FN
|
||||||
DB high CURRDIR_FN,high NOPS, high NOPS, high SYSTIME,high SETTIME,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
DB high CURRDIR_FN,high NOPS, high NOPS, high SYSTIME,high SETTIME,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
31
|
33
|
||||||
@ -276,46 +276,6 @@ Find_Record:
|
|||||||
RET
|
RET
|
||||||
;-----------------------[]
|
;-----------------------[]
|
||||||
|
|
||||||
;-----------------------[]
|
|
||||||
; ERROR_BOOTDRV_DIES:
|
|
||||||
; DI
|
|
||||||
; LD E,1
|
|
||||||
; LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
|
|
||||||
; RST ToBIOS
|
|
||||||
; ;
|
|
||||||
; LD HL,#2050
|
|
||||||
; LD DE,0
|
|
||||||
; LD BC,256*COLORS.CGA.PAPER.BLUE + BIOS.LP_CLS_WIN
|
|
||||||
; RST ToBIOS
|
|
||||||
; ;
|
|
||||||
; LD A,1
|
|
||||||
; OUT (SCREEN_SWITCH),A ; set scr-2
|
|
||||||
; ;
|
|
||||||
; LD HL,.ERROR_MSG
|
|
||||||
; LD DE,#A000
|
|
||||||
; LD BC,.ERROR_MSG.size
|
|
||||||
; LD A,C
|
|
||||||
; LDIR
|
|
||||||
; ;
|
|
||||||
; LD DE,16*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.INK.WHITE
|
|
||||||
; LD B,A
|
|
||||||
; LD C,BIOS.LP_PRINT_LINE3
|
|
||||||
; RST ToBIOS
|
|
||||||
; ;
|
|
||||||
; .loop: DI
|
|
||||||
; HALT
|
|
||||||
; JR .loop
|
|
||||||
; ;
|
|
||||||
; .ERROR_MSG: DZ "Kernel panic! Boot disk lost. Press Ctrl+Alt+Del or RESET."
|
|
||||||
; .ERROR_MSG.size EQU $-.ERROR_MSG
|
|
||||||
;-----------------------[]
|
|
||||||
|
|
||||||
|
|
||||||
;-----------------------[]
|
;-----------------------[]
|
||||||
; <20>… ƒ<>Ž•€’œ HL!
|
; <20>… ƒ<>Ž•€’œ HL!
|
||||||
; . ¥á«¨ ¤à ©¢ ¥áâì ¢ ®¢®© ¨ áâ ன, â® § â¨à ¥¬ ¢ ®¢®©
|
; . ¥á«¨ ¤à ©¢ ¥áâì ¢ ®¢®© ¨ áâ ன, â® § â¨à ¥¬ ¢ ®¢®©
|
||||||
|
|||||||
@ -210,7 +210,7 @@ INTDISK:
|
|||||||
RET
|
RET
|
||||||
NODEV: POP BC
|
NODEV: POP BC
|
||||||
POP HL
|
POP HL
|
||||||
LD A,DSS_Error.drv.INVALID_DRIVE
|
LD A,BIOS.Error.BadNumber
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
@ -207,7 +207,7 @@ API_TABLE: INC C
|
|||||||
DEC C
|
DEC C
|
||||||
JP Z,WriteLong ; [ ] ; c=11 Write Long
|
JP Z,WriteLong ; [ ] ; c=11 Write Long
|
||||||
;
|
;
|
||||||
.Reserved: LD A,DSS_Error.drv.INVALID_COMMAND
|
.Reserved: LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -279,7 +279,7 @@ Init: PUSH IY
|
|||||||
DJNZ .NX_DVCI
|
DJNZ .NX_DVCI
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.check_error: XOR BIOS.Error.BadNumber
|
.check_error: XOR BIOS.Error.BadNumber ; â ª ¤®
|
||||||
RET NZ
|
RET NZ
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
@ -294,34 +294,6 @@ Init: PUSH IY
|
|||||||
;+10 WORD Sector Size
|
;+10 WORD Sector Size
|
||||||
;+12 BYTE Removable Media Byte flags
|
;+12 BYTE Removable Media Byte flags
|
||||||
;+13_15 FREE
|
;+13_15 FREE
|
||||||
; SelectDrive: PUSH DE
|
|
||||||
; PUSH HL
|
|
||||||
; ;
|
|
||||||
; LD L,A
|
|
||||||
; ;
|
|
||||||
; LOGDRV_ENTRY_FIND LOGDRV
|
|
||||||
; ;
|
|
||||||
; ; [ ] custorm sector size
|
|
||||||
; CALL CHECK_IDE_SECTOR_SIZE
|
|
||||||
; RLA
|
|
||||||
; ;
|
|
||||||
; ;
|
|
||||||
; LD E,(IY+LOGDRV.SECTOR_OFFSET)
|
|
||||||
; LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
|
|
||||||
; ADD IX,DE
|
|
||||||
; LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
|
|
||||||
; LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
|
|
||||||
; POP HL
|
|
||||||
; ADC HL,DE
|
|
||||||
; ; [ ] custom sector size
|
|
||||||
; ;JR C,.exit
|
|
||||||
; RRA
|
|
||||||
; ;
|
|
||||||
; .exit: LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
|
||||||
; POP DE
|
|
||||||
; RET NC
|
|
||||||
; LD A,DSS_Error.drv.UNKNOWN_FORMAT
|
|
||||||
; RET
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@ -338,30 +310,16 @@ SelectDrive: PUSH DE
|
|||||||
;
|
;
|
||||||
LD L,A
|
LD L,A
|
||||||
ADD 0 - DSS_MAX_DRIVES_AMOUNT - 1
|
ADD 0 - DSS_MAX_DRIVES_AMOUNT - 1
|
||||||
LD A,DSS_Error.sys.INVALID_DRIVE
|
LD A,BIOS.Error.UnknownDevice
|
||||||
JR C,.error_pop
|
JR C,.error_pop
|
||||||
;
|
;
|
||||||
LOGDRV_ENTRY_FIND LOGDRV
|
LOGDRV_ENTRY_FIND LOGDRV
|
||||||
;
|
;
|
||||||
; ; [ ] custom sector size
|
|
||||||
; CALL CHECK_IDE_SECTOR_SIZE
|
|
||||||
; LD A,DSS_Error.sys.UNKNOWN_FORMAT
|
|
||||||
; JR C,.error_pop
|
|
||||||
; ;
|
|
||||||
; ;
|
|
||||||
; LD E,(IY+LOGDRV.SECTOR_OFFSET)
|
|
||||||
; LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
|
|
||||||
; ADD IX,DE
|
|
||||||
; LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
|
|
||||||
; LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
|
|
||||||
POP HL
|
POP HL
|
||||||
CALL .get_data
|
CALL .get_data
|
||||||
JR C,.error_pop2
|
JR C,.error_pop2
|
||||||
;
|
;
|
||||||
POP DE
|
POP DE
|
||||||
; LD A,DSS_Error.sys.SECTOR_NOT_FOUND
|
|
||||||
; RET C
|
|
||||||
;
|
|
||||||
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -371,7 +329,7 @@ SelectDrive: PUSH DE
|
|||||||
;
|
;
|
||||||
.get_data: ; [ ] custom sector size
|
.get_data: ; [ ] custom sector size
|
||||||
CALL CHECK_IDE_SECTOR_SIZE
|
CALL CHECK_IDE_SECTOR_SIZE
|
||||||
LD A,DSS_Error.sys.UNKNOWN_FORMAT
|
LD A,BIOS.Error.UnknownDevice
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
LD E,(IY+LOGDRV.SECTOR_OFFSET)
|
LD E,(IY+LOGDRV.SECTOR_OFFSET)
|
||||||
@ -380,7 +338,7 @@ SelectDrive: PUSH DE
|
|||||||
LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
|
LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
|
||||||
LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
|
LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
|
||||||
ADC HL,DE
|
ADC HL,DE
|
||||||
LD A,DSS_Error.sys.SECTOR_NOT_FOUND
|
LD A,BIOS.Error.SectorNotFound
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
@ -400,7 +358,7 @@ GenIOCTL: BIT 7,B
|
|||||||
JR Z,.error ;ReadTrack
|
JR Z,.error ;ReadTrack
|
||||||
DEC B
|
DEC B
|
||||||
JR Z,TestTRK
|
JR Z,TestTRK
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -412,11 +370,11 @@ GenIOCTL: BIT 7,B
|
|||||||
JR Z,.error ;WriteTrack
|
JR Z,.error ;WriteTrack
|
||||||
DEC B
|
DEC B
|
||||||
JR Z,.error
|
JR Z,.error
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.error: LD A,DSS_Error.drv.GENERAL_FAILURE
|
.error: LD A,BIOS.Error.Failure
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -459,7 +417,7 @@ GetParams: EX DE,HL
|
|||||||
AND A
|
AND A
|
||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
LD L,A
|
LD L,A
|
||||||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
LD A,BIOS.Error.Failure
|
||||||
SCF
|
SCF
|
||||||
RET NZ
|
RET NZ
|
||||||
;
|
;
|
||||||
@ -475,21 +433,12 @@ GetParams: EX DE,HL
|
|||||||
POP IY
|
POP IY
|
||||||
JR NC,.next
|
JR NC,.next
|
||||||
;
|
;
|
||||||
;CP BIOS.Error.ATAPI.NotReady
|
CP BIOS.Error.BadNumber
|
||||||
;SCF
|
SCF
|
||||||
;LD A,DSS_Error.drv.NOT_READY
|
JR Z,.error
|
||||||
;JR Z,.error
|
LD A,BIOS.Error.NotReady
|
||||||
;LD A,DSS_Error.drv.INVALID_DRIVE
|
JR .error
|
||||||
;JR .error
|
;
|
||||||
;
|
|
||||||
CP BIOS.Error.BadNumber
|
|
||||||
SCF
|
|
||||||
LD A,DSS_Error.drv.INVALID_DRIVE
|
|
||||||
JR Z,.error
|
|
||||||
LD A,DSS_Error.drv.NOT_READY
|
|
||||||
JR .error
|
|
||||||
|
|
||||||
|
|
||||||
; [ ] media change - ã¡à âì ;!FIXIT
|
; [ ] media change - ã¡à âì ;!FIXIT
|
||||||
.next: EX AF,AF
|
.next: EX AF,AF
|
||||||
JR NC,.NoMediaChange
|
JR NC,.NoMediaChange
|
||||||
@ -576,7 +525,7 @@ Open: CALL MediaCheck
|
|||||||
;
|
;
|
||||||
INC A
|
INC A
|
||||||
RET NZ
|
RET NZ
|
||||||
LD A,DSS_Error.sys.MEDIA_CHANGED
|
LD A,BIOS.Error.ATAPI.UnitAttention
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -587,7 +536,7 @@ MediaCheck: PUSH IY
|
|||||||
CALL SelectDrive.NoSector
|
CALL SelectDrive.NoSector
|
||||||
JR NC,.next_step
|
JR NC,.next_step
|
||||||
;
|
;
|
||||||
CP DSS_Error.sys.UNKNOWN_FORMAT
|
CP BIOS.Error.UnknownDevice
|
||||||
JR NZ,.exit
|
JR NZ,.exit
|
||||||
; A != 0
|
; A != 0
|
||||||
AND A ; á¡à®á ZF
|
AND A ; á¡à®á ZF
|
||||||
@ -604,7 +553,15 @@ MediaCheck: PUSH IY
|
|||||||
;
|
;
|
||||||
CP BIOS.Error.ATAPI.UnitAttention
|
CP BIOS.Error.ATAPI.UnitAttention
|
||||||
JR Z,.Reinit
|
JR Z,.Reinit
|
||||||
|
;!FIXIT § £«ãèª /ª®áâë«ì ¨§-§ ¯¥à¥á¥ç¥¨ï ®¬¥à®¢ ®è¨¡®ª
|
||||||
POP BC ; <20> « á á⥪
|
POP BC ; <20> « á á⥪
|
||||||
|
/*
|
||||||
|
BIOS.Error.BadNumber
|
||||||
|
BIOS.Error.Failure
|
||||||
|
BIOS.Error.Busy
|
||||||
|
BIOS.Error.ATAPI.TimeOut
|
||||||
|
*/
|
||||||
|
;LD A,BIOS.Error.Busy
|
||||||
.exit: SCF
|
.exit: SCF
|
||||||
POP IY
|
POP IY
|
||||||
RET
|
RET
|
||||||
@ -626,7 +583,7 @@ MediaCheck: PUSH IY
|
|||||||
POP IY
|
POP IY
|
||||||
JR NC,.no_errors
|
JR NC,.no_errors
|
||||||
;
|
;
|
||||||
CP DSS_Error.sys.UNKNOWN_FORMAT
|
CP BIOS.Error.UnknownDevice
|
||||||
SCF
|
SCF
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
@ -669,33 +626,6 @@ GetBPB: ; !FIXIT
|
|||||||
LD IX,0
|
LD IX,0
|
||||||
LD B,1
|
LD B,1
|
||||||
JR Read
|
JR Read
|
||||||
; PUSH IY
|
|
||||||
; PUSH DE
|
|
||||||
; LD L,A
|
|
||||||
; ;
|
|
||||||
; LOGDRV_ENTRY_FIND LOGDRV
|
|
||||||
; ;
|
|
||||||
; ; [ ] custorm sector size
|
|
||||||
; CALL CHECK_IDE_SECTOR_SIZE
|
|
||||||
; JR C,.error
|
|
||||||
; ;
|
|
||||||
; LD E,(IY+LOGDRV.SECTOR_OFFSET)
|
|
||||||
; LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
|
|
||||||
; LD L,(IY+LOGDRV.SECTOR_OFFSET+2)
|
|
||||||
; LD H,(IY+LOGDRV.SECTOR_OFFSET+3)
|
|
||||||
; LD XL,E
|
|
||||||
; LD XH,D
|
|
||||||
; LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
|
||||||
; POP DE
|
|
||||||
; POP IY
|
|
||||||
; LD BC,1*256 + BIOS.DRV_READ
|
|
||||||
; JP ToBIOS
|
|
||||||
; ;
|
|
||||||
; .error: POP DE
|
|
||||||
; POP IY
|
|
||||||
; LD A,DSS_Error.drv.UNKNOWN_FORMAT
|
|
||||||
; RET
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;HL:IX - SECTOR
|
;HL:IX - SECTOR
|
||||||
|
|||||||
@ -162,7 +162,7 @@ API_TABLE: INC C
|
|||||||
DEC C
|
DEC C
|
||||||
JP Z,Reserved ;#09
|
JP Z,Reserved ;#09
|
||||||
;
|
;
|
||||||
Reserved: LD A,DSS_Error.drv.INVALID_COMMAND
|
Reserved: LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ Open: PUSH AF
|
|||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD DE,-DSS_MAX_SECTOR_SIZE - 1 ; [ ] 15/04/25 ¥ ¡ã¤¥â ç¨â âì ᥪâ®à ¡®«ìè¥ DSS_MAX_SECTOR_SIZE
|
LD DE,-DSS_MAX_SECTOR_SIZE - 1 ; [ ] 15/04/25 ¥ ¡ã¤¥â ç¨â âì ᥪâ®à ¡®«ìè¥ DSS_MAX_SECTOR_SIZE
|
||||||
; ZF = 0
|
; ZF = 0
|
||||||
LD A,DSS_Error.sys.UNKNOWN_FORMAT
|
LD A,BIOS.Error.UnknownDevice
|
||||||
OR A ; ã¡¨à ¥¬ ZF, ¥á«¨ ¥áâì
|
OR A ; ã¡¨à ¥¬ ZF, ¥á«¨ ¥áâì
|
||||||
;
|
;
|
||||||
ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à ¡®«ìè¥, â® ®¡«®¬
|
ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à ¡®«ìè¥, â® ®¡«®¬
|
||||||
@ -279,7 +279,7 @@ GenIOCTL: BIT 7,B
|
|||||||
;DEC B
|
;DEC B
|
||||||
;JP Z,.TestTRK
|
;JP Z,.TestTRK
|
||||||
;
|
;
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -293,7 +293,7 @@ GenIOCTL: BIT 7,B
|
|||||||
;DEC B
|
;DEC B
|
||||||
;JP Z,.FormatTRK
|
;JP Z,.FormatTRK
|
||||||
;
|
;
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
; ; ;
|
; ; ;
|
||||||
@ -319,7 +319,7 @@ GenIOCTL: BIT 7,B
|
|||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
JR Z,.next
|
JR Z,.next
|
||||||
;
|
;
|
||||||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
LD A,BIOS.Error.Failure
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -377,7 +377,7 @@ GenIOCTL: BIT 7,B
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.NONE_FDD: POP BC
|
.NONE_FDD: POP BC
|
||||||
LD A,DSS_Error.drv.INVALID_DRIVE
|
LD A,BIOS.Error.BadNumber
|
||||||
; CF=1
|
; CF=1
|
||||||
RET
|
RET
|
||||||
; ; ;
|
; ; ;
|
||||||
|
|||||||
@ -172,7 +172,7 @@
|
|||||||
;
|
;
|
||||||
;[]===========================================================[ 11]
|
;[]===========================================================[ 11]
|
||||||
;
|
;
|
||||||
; Errors:
|
; Errors: ;!FIXIT ⑤<><E291A4>※<EFBFBD>㈲<EFBFBD> Л<>腑⑧<E88591>
|
||||||
; 0 (00h) - NO ERRORS
|
; 0 (00h) - NO ERRORS
|
||||||
; 1 (01h) - BAD COMMAND
|
; 1 (01h) - BAD COMMAND
|
||||||
; 2 (02h) - BAD DRIVE NUMBER
|
; 2 (02h) - BAD DRIVE NUMBER
|
||||||
@ -231,7 +231,7 @@ API_TABLE: INC C
|
|||||||
DEC C
|
DEC C
|
||||||
JP Z,WriteLong ; 11
|
JP Z,WriteLong ; 11
|
||||||
;
|
;
|
||||||
.error: LD A,DSS_Error.drv.INVALID_COMMAND
|
.error: LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -434,7 +434,7 @@ GenIOCTL: BIT 7,B
|
|||||||
;JP Z,FRDTRAC
|
;JP Z,FRDTRAC
|
||||||
;DEC B
|
;DEC B
|
||||||
;JP Z,FCHTRAC
|
;JP Z,FCHTRAC
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -446,7 +446,7 @@ GenIOCTL: BIT 7,B
|
|||||||
;JP Z,FWRTRAC
|
;JP Z,FWRTRAC
|
||||||
;DEC B
|
;DEC B
|
||||||
;JP Z,FFRTRAC
|
;JP Z,FFRTRAC
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
LD A,BIOS.Error.InvalidSubFunction
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -467,7 +467,7 @@ GenIOCTL: BIT 7,B
|
|||||||
AND A
|
AND A
|
||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
LD L,A
|
LD L,A
|
||||||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
LD A,BIOS.Error.Failure
|
||||||
SCF
|
SCF
|
||||||
RET NZ
|
RET NZ
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
494
|
503
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit f533c03f52f53e581c794c1017b7b0d61d39dfbf
|
Subproject commit 5a36cbee9ca6df7f7c1008fed7f242d0a505bc50
|
||||||
Loading…
Reference in New Issue
Block a user