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