mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
проверка DSS_MAX_SECTOR_SIZE для FDD
This commit is contained in:
parent
a51e56090b
commit
1430dec045
@ -1 +1 @@
|
|||||||
30
|
31
|
||||||
@ -249,8 +249,8 @@ ERR_MSG PUSH DE
|
|||||||
|
|
||||||
|
|
||||||
FMESAGE INC DE
|
FMESAGE INC DE
|
||||||
LD HL,ERR0
|
LD HL,SYS_ERRORS
|
||||||
LD BC,ERR0.Size
|
LD BC,SYS_ERRORS.Size
|
||||||
LCPIR XOR A
|
LCPIR XOR A
|
||||||
CPIR
|
CPIR
|
||||||
RET PO
|
RET PO
|
||||||
|
|||||||
@ -55,7 +55,7 @@ ReScanDRV:
|
|||||||
; HDD! ‘¢¥àª ¯® â ¡«¨æ¥ LOGDRV
|
; HDD! ‘¢¥àª ¯® â ¡«¨æ¥ LOGDRV
|
||||||
JP Z,SCAN_TABLES.HARD_DRV
|
JP Z,SCAN_TABLES.HARD_DRV
|
||||||
; RD?
|
; RD?
|
||||||
LD HL,RMDRIVE
|
LD HL,RAMDSK_DRV.API_TABLE
|
||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
; RAM Drive! ‘¢¥àª ¯® â ¡«¨æ¥ RAMDTBL
|
; RAM Drive! ‘¢¥àª ¯® â ¡«¨æ¥ RAMDTBL
|
||||||
@ -173,7 +173,7 @@ Fill_if_Exists:
|
|||||||
LD A,RAMDTBL.TBL_Entry
|
LD A,RAMDTBL.TBL_Entry
|
||||||
LD IY,RAMDTBL
|
LD IY,RAMDTBL
|
||||||
CALL .RUN
|
CALL .RUN
|
||||||
LD DE,RMDRIVE
|
LD DE,RAMDSK_DRV.API_TABLE
|
||||||
RET NC
|
RET NC
|
||||||
LD A,(.tbl)
|
LD A,(.tbl)
|
||||||
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
||||||
@ -328,7 +328,7 @@ RAM_DRV:
|
|||||||
; <20>®«ãç ¥¬ ®¬¥à à ¬¤¨áª ¢ OLD_TABLES.RAMDTBL
|
; <20>®«ãç ¥¬ ®¬¥à à ¬¤¨áª ¢ OLD_TABLES.RAMDTBL
|
||||||
LD A,B
|
LD A,B
|
||||||
LD BC,OLD_TABLES.RAMDTBL
|
LD BC,OLD_TABLES.RAMDTBL
|
||||||
CALL GET_RAMDRV_NUM.skip_tbl
|
CALL RAMDSK_DRV.GET_RAMDRV_NUM.skip_tbl
|
||||||
LD (.cur_drv),BC
|
LD (.cur_drv),BC
|
||||||
AND #0F
|
AND #0F
|
||||||
LD C,A ; ®¬¥à à ¬¤¨áª
|
LD C,A ; ®¬¥à à ¬¤¨áª
|
||||||
|
|||||||
@ -140,8 +140,8 @@ INITDVC: XOR A
|
|||||||
LD DE,IDE_DRV.API_TABLE
|
LD DE,IDE_DRV.API_TABLE
|
||||||
CALL MAKEDVC
|
CALL MAKEDVC
|
||||||
; RAM-¤¨áި
|
; RAM-¤¨áި
|
||||||
CALL INIT_RD
|
CALL RAMDSK_DRV.Init
|
||||||
LD DE,RMDRIVE
|
LD DE,RAMDSK_DRV.API_TABLE
|
||||||
CALL MAKEDVC
|
CALL MAKEDVC
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
|||||||
@ -580,40 +580,9 @@ Open: CALL MediaCheck
|
|||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;[ ] media changed - bios 5x DETECT
|
|
||||||
; ¢ë室 A=#FF - changed, A=0 - not changed, ZF=1 - not changed
|
|
||||||
; MediaCheck: PUSH IY
|
;[ ] media changed - bios 5x DETECT
|
||||||
; CALL SelectDrive
|
|
||||||
; JR C,.exit
|
|
||||||
; ;
|
|
||||||
; ; [ ] media changed
|
|
||||||
; LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
|
||||||
; LD C,BIOS.DRV_DETECT ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
|
|
||||||
; PUSH IY
|
|
||||||
; RST ToBIOS
|
|
||||||
; POP IY
|
|
||||||
; JR NC,.next_check
|
|
||||||
; ;
|
|
||||||
; CP BIOS.Error.ATAPI.UnitAttention
|
|
||||||
; JR Z,.Reinit
|
|
||||||
; JR .exit
|
|
||||||
; ;
|
|
||||||
; .next_check: BIT 1,(IY + LOGDRV.MediaParameters)
|
|
||||||
; JR NZ,.Reinit
|
|
||||||
; ;
|
|
||||||
; XOR A
|
|
||||||
; .exit: POP IY
|
|
||||||
; RET
|
|
||||||
; ;
|
|
||||||
; .Reinit: LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
|
||||||
; LD (CURRENT_DRIVE.Number),A
|
|
||||||
; LD (LOGDRV_OFFSET),IY
|
|
||||||
; ;RES 1,(IY + LOGDRV.MediaParameters)
|
|
||||||
; CALL DEFINE_PARTITIONS
|
|
||||||
; LD A,#FF ;!HARDCODE drive changed
|
|
||||||
; OR A
|
|
||||||
; POP IY
|
|
||||||
; RET
|
|
||||||
MediaCheck: PUSH IY
|
MediaCheck: PUSH IY
|
||||||
CALL SelectDrive.NoSector
|
CALL SelectDrive.NoSector
|
||||||
JR NC,.next_step
|
JR NC,.next_step
|
||||||
|
|||||||
@ -172,7 +172,7 @@ Reserved: LD A,DSS_Error.drv.INVALID_COMMAND
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;
|
;
|
||||||
Init: LD A,2 ;ª®«¨ç¥á⢮ FDD ¢ ª®¬¯¥ ;!FIXIT ¥á«¨ ®âª«îçã ¢ <20>ˆŽ‘?
|
Init: LD A,2 ;ª®«¨ç¥á⢮ FDD ¢ ª®¬¯¥
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
; ; ;
|
; ; ;
|
||||||
@ -190,9 +190,9 @@ Open: PUSH AF
|
|||||||
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,DSS_Error.sys.UNKNOWN_FORMAT
|
||||||
OR A
|
OR A ; ã¡¨à ¥¬ ZF, ¥á«¨ ¥áâì
|
||||||
;
|
;
|
||||||
ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à ¡®«ìè¥, â® ®¡«®¬
|
ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à ¡®«ìè¥, â® ®¡«®¬
|
||||||
RET
|
RET
|
||||||
; ; ;
|
; ; ;
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ Close: XOR A
|
|||||||
; ; ;
|
; ; ;
|
||||||
|
|
||||||
|
|
||||||
;!FIXIT ¯à®¢¥àïâì ‚ƒ93 ª®£¤ íâ® á⠥⠢®§¬®¦ë¬
|
;!FIXIT ¯à®¢¥àïâì ‚ƒ93 ª®£¤ (¥á«¨) íâ® á⠥⠢®§¬®¦ë¬
|
||||||
MediaCheck: CALL Open
|
MediaCheck: CALL Open
|
||||||
RET C
|
RET C
|
||||||
IF NON_REMOVABLE_FDD
|
IF NON_REMOVABLE_FDD
|
||||||
@ -249,13 +249,13 @@ GetBPB: LD IX,0
|
|||||||
; RET
|
; RET
|
||||||
; ; ;
|
; ; ;
|
||||||
|
|
||||||
; !FIXIT ¬®¦¥â 㬥à¥âì à §¬¥à¥ ᥪâ®à ¡®«ìè¥ 512 ¡ ©â®¢
|
|
||||||
Read: LD C,BIOS.DRV_READ
|
Read: LD C,BIOS.DRV_READ
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
RET
|
RET
|
||||||
; ; ;
|
; ; ;
|
||||||
|
|
||||||
; !FIXIT ¬®¦¥â 㬥à¥âì à §¬¥à¥ ᥪâ®à ¡®«ìè¥ 512 ¡ ©â®¢
|
|
||||||
Write: LD C,BIOS.DRV_WRITE
|
Write: LD C,BIOS.DRV_WRITE
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
RET
|
RET
|
||||||
@ -411,16 +411,10 @@ GenIOCTL: BIT 7,B
|
|||||||
POP AF
|
POP AF
|
||||||
LD C,BIOS.DRV_SET_PAR
|
LD C,BIOS.DRV_SET_PAR
|
||||||
JP ToBIOS
|
JP ToBIOS
|
||||||
;RST ToBIOS
|
|
||||||
;RET C
|
|
||||||
;AND A
|
|
||||||
;RET
|
|
||||||
; ; ;
|
; ; ;
|
||||||
|
|
||||||
|
|
||||||
Removable: ; LD A,1
|
Removable: XOR A
|
||||||
; AND A
|
|
||||||
XOR A
|
|
||||||
INC A
|
INC A
|
||||||
RET
|
RET
|
||||||
; ; ;
|
; ; ;
|
||||||
|
|||||||
@ -202,54 +202,57 @@
|
|||||||
; OR #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
; OR #60 ;!HARDCODE ᤥ« âì ®¬¥à à §ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
|
||||||
; ENDM
|
; ENDM
|
||||||
|
|
||||||
|
MODULE RAMDSK_DRV
|
||||||
|
|
||||||
; parser
|
; parser
|
||||||
RMDRIVE: INC C
|
API_TABLE: INC C
|
||||||
DEC C
|
DEC C
|
||||||
JP Z,INIT_RD ; 0
|
JP Z,Init ; 0
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,RESET_RD ; 1
|
JR Z,Open ; 1
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,STATUS_RD ; 2
|
JR Z,Close ; 2
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,CHEK_RD ; 3
|
JR Z,MediaCheck ; 3
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,GBPB_RD ; 4
|
JR Z,GetBPB ; 4
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,READ_RD ; 5
|
JR Z,Read ; 5
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,WRITE_RD ; 6
|
JR Z,Write ; 6
|
||||||
DEC C
|
DEC C
|
||||||
JR Z,REMOV_RD ; 7
|
JR Z,Removable ; 7
|
||||||
DEC C
|
DEC C
|
||||||
JP Z,IOCTL_RD ; 8
|
JP Z,GenIOCTL ; 8
|
||||||
DEC C
|
DEC C
|
||||||
JP Z,.error ; 9 RESR_H
|
JP Z,.error ; 9 RESR_H
|
||||||
DEC C
|
DEC C
|
||||||
JP Z,LREAD_RD ; 10
|
JP Z,ReadLong ; 10
|
||||||
DEC C
|
DEC C
|
||||||
JP Z,LWRITE_RD ; 11
|
JP Z,WriteLong ; 11
|
||||||
.error:
|
;
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
.error: LD A,DSS_Error.drv.INVALID_COMMAND
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
REMOV_RD:
|
;
|
||||||
RESET_RD:
|
Removable:
|
||||||
STATUS_RD: XOR A
|
Open:
|
||||||
|
Close: XOR A
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
|
|
||||||
;!FIXIT ᤥ« âì ¢ SYS_PAGE ¤«ï à ¬¤¨áª®¢ ¯¥à¥¬¥ë¥ ¨ ¡à âì ®ââ㤠§ 票¥
|
;!FIXIT ᤥ« âì ¢ SYS_PAGE ¤«ï à ¬¤¨áª®¢ ¯¥à¥¬¥ë¥ ¨ ¡à âì ®ââ㤠§ 票¥
|
||||||
;!FIXIT ª ª-â® ®¯à¥¤¥«ïâì ᬥã RMD?
|
;!FIXIT ª ª-â® ®¯à¥¤¥«ïâì ᬥã RMD?
|
||||||
; [x] 18/08/2024 ¯®ª ¥¬®£® ª®áâë«ì® ¨ ®¯ á®
|
; [x] 18/08/2024 ¯®ª ¥¬®£® ª®áâë«ì® ¨ ®¯ á®
|
||||||
CHEK_RD: ;LD A,#FF
|
MediaCheck: ;LD A,#FF
|
||||||
;AND A
|
;AND A
|
||||||
XOR A
|
XOR A
|
||||||
;
|
;
|
||||||
RET
|
RET
|
||||||
|
|
||||||
;DE - ADDRESS
|
;DE - ADDRESS
|
||||||
GBPB_RD: LD IX,0
|
GetBPB: LD IX,0
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD B,#01
|
LD B,#01
|
||||||
;JP READ_RD
|
;JP READ_RD
|
||||||
@ -258,7 +261,7 @@ GBPB_RD: LD IX,0
|
|||||||
; DE - ADDRESS
|
; DE - ADDRESS
|
||||||
; B - COUNT
|
; B - COUNT
|
||||||
; A - DRIVE
|
; A - DRIVE
|
||||||
READ_RD: PUSH BC
|
Read: PUSH BC
|
||||||
CALL GET_RAMDRV_NUM
|
CALL GET_RAMDRV_NUM
|
||||||
POP BC
|
POP BC
|
||||||
LD C,BIOS.DRV_READ
|
LD C,BIOS.DRV_READ
|
||||||
@ -266,8 +269,7 @@ READ_RD: PUSH BC
|
|||||||
; RST ToBIOS
|
; RST ToBIOS
|
||||||
; XOR A
|
; XOR A
|
||||||
; RET
|
; RET
|
||||||
LREAD_RD:
|
ReadLong: PUSH BC
|
||||||
PUSH BC
|
|
||||||
CALL GET_RAMDRV_NUM
|
CALL GET_RAMDRV_NUM
|
||||||
POP BC
|
POP BC
|
||||||
LD C,BIOS.DRV_READ_LONG
|
LD C,BIOS.DRV_READ_LONG
|
||||||
@ -281,8 +283,7 @@ LREAD_RD:
|
|||||||
; DE - ADDRESS
|
; DE - ADDRESS
|
||||||
; B - COUNT
|
; B - COUNT
|
||||||
; A - DRIVE
|
; A - DRIVE
|
||||||
WRITE_RD:
|
Write: PUSH BC
|
||||||
PUSH BC
|
|
||||||
CALL GET_RAMDRV_NUM
|
CALL GET_RAMDRV_NUM
|
||||||
POP BC
|
POP BC
|
||||||
LD C,BIOS.DRV_WRITE
|
LD C,BIOS.DRV_WRITE
|
||||||
@ -291,8 +292,7 @@ WRITE_RD:
|
|||||||
; XOR A
|
; XOR A
|
||||||
; RET
|
; RET
|
||||||
|
|
||||||
LWRITE_RD:
|
WriteLong: PUSH BC
|
||||||
PUSH BC
|
|
||||||
CALL GET_RAMDRV_NUM
|
CALL GET_RAMDRV_NUM
|
||||||
POP BC
|
POP BC
|
||||||
LD C,BIOS.DRV_WRITE_LONG
|
LD C,BIOS.DRV_WRITE_LONG
|
||||||
@ -358,7 +358,7 @@ LWRITE_RD:
|
|||||||
;;;
|
;;;
|
||||||
;----------------------------------------------------------------------;!TEST
|
;----------------------------------------------------------------------;!TEST
|
||||||
;S_P_P DB #00
|
;S_P_P DB #00
|
||||||
INIT_RD:
|
Init:
|
||||||
; .SectorSize EQU 512 ;!HARDCODE
|
; .SectorSize EQU 512 ;!HARDCODE
|
||||||
; LD HL,.SectorSize
|
; LD HL,.SectorSize
|
||||||
; LD A,#80
|
; LD A,#80
|
||||||
@ -425,8 +425,7 @@ INIT_RD:
|
|||||||
; 80 - SET DEVICE PARAMETERS
|
; 80 - SET DEVICE PARAMETERS
|
||||||
; 81 - WRITE TRACK
|
; 81 - WRITE TRACK
|
||||||
; 82 - FORMAT TRACK
|
; 82 - FORMAT TRACK
|
||||||
IOCTL_RD:
|
GenIOCTL: BIT 7,B
|
||||||
BIT 7,B
|
|
||||||
JR NZ,.O_CTL_F
|
JR NZ,.O_CTL_F
|
||||||
INC B
|
INC B
|
||||||
DEC B
|
DEC B
|
||||||
@ -530,4 +529,5 @@ GET_RAMDRV_NUM: LD BC,RAMDTBL
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;ENDDRVR EQU $
|
;ENDDRVR EQU $
|
||||||
;
|
ENDMODULE ;RAMDSK_DRV
|
||||||
|
;
|
||||||
|
|||||||
@ -3,16 +3,23 @@
|
|||||||
; ¢å®¤: a=®¬¥à ®è¨¡ª¨
|
; ¢å®¤: a=®¬¥à ®è¨¡ª¨
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
print_err_message:
|
print_err_message:
|
||||||
ld e,a
|
ld hl,SYS_ERRORS ; ¬ áᨢ áâப
|
||||||
ld d,0
|
ld bc,SYS_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||||||
inc de
|
;cp %1000'0000
|
||||||
ld hl,ERR0 ; ¬ áᨢ áâப
|
RLA
|
||||||
ld bc,ERR0.Size ; à §¬¥à ¬ áᨢ
|
jr nc,.set_de
|
||||||
call LCPIR ; ©â¨ áâபã
|
;
|
||||||
call PRINTZ ; ä®à¬ â. ¢ë¢®¤ áâப¨
|
;and %0111'1111
|
||||||
; call newline
|
ld hl,DRV_ERRORS ; ¬ áᨢ áâப
|
||||||
jp newline
|
ld bc,DRV_ERRORS.Size ; à §¬¥à ¬ áᨢ
|
||||||
|
;
|
||||||
|
.set_de: SRL A
|
||||||
|
ld e,a
|
||||||
|
ld d,0
|
||||||
|
inc de
|
||||||
|
call LCPIR ; ©â¨ áâபã
|
||||||
|
call PRINTZ ; ä®à¬ â. ¢ë¢®¤ áâப¨
|
||||||
|
jp newline
|
||||||
|
|
||||||
|
|
||||||
; ‚뢮¤ áâப¨ ®è¨¡ª¨
|
; ‚뢮¤ áâப¨ ®è¨¡ª¨
|
||||||
@ -36,25 +43,25 @@ ECHO_MESSAGE:
|
|||||||
; <20> ©â¨ áâப㠯® ¨¤¥ªáã
|
; <20> ©â¨ áâப㠯® ¨¤¥ªáã
|
||||||
; ¢å®¤: de=¨¤¥ªá áâப¨
|
; ¢å®¤: de=¨¤¥ªá áâப¨
|
||||||
; ¢ë室: hl=áâப
|
; ¢ë室: hl=áâப
|
||||||
FMESAGE: inc de
|
FMESAGE: inc de
|
||||||
ld hl,MAIN_MSG.TABLE ; ç «® ¬ áᨢ áâப
|
ld hl,MAIN_MSG.TABLE ; ç «® ¬ áᨢ áâப
|
||||||
ld bc,MAIN_MSG.TABLE.Size ; à §¬¥à ¬ áᨢ
|
ld bc,MAIN_MSG.TABLE.Size ; à §¬¥à ¬ áᨢ
|
||||||
LCPIR: xor a
|
LCPIR: xor a
|
||||||
cpir
|
cpir
|
||||||
ret po
|
ret po
|
||||||
ret nz
|
ret nz
|
||||||
;R11
|
;R11
|
||||||
XOR A
|
XOR A
|
||||||
CP (HL)
|
CP (HL)
|
||||||
JR Z,.no_mess
|
JR Z,.no_mess
|
||||||
;
|
;
|
||||||
dec de
|
dec de
|
||||||
ld a,d
|
ld a,d
|
||||||
or e
|
or e
|
||||||
jr nz,LCPIR
|
jr nz,LCPIR
|
||||||
ret
|
ret
|
||||||
.no_mess: INC HL
|
.no_mess: INC HL
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
489
|
494
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit bd4546a854905998edab6144547b79aa673404f6
|
Subproject commit f533c03f52f53e581c794c1017b7b0d61d39dfbf
|
||||||
Loading…
Reference in New Issue
Block a user