mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
...
This commit is contained in:
parent
883bbf0aeb
commit
22f9ae494c
@ -163,7 +163,7 @@ MKDIR:
|
||||
LD E,L
|
||||
INC DE
|
||||
LD (HL),0
|
||||
LD BC,512-65 ;!HARDCODE sector size
|
||||
LD BC,512-65 ;!HARDCODE ;!FIXIT ; [ ] sector size
|
||||
LDIR
|
||||
;
|
||||
POP HL ; áâ à訩 ®¬¥à ᥪâ®à
|
||||
@ -197,7 +197,7 @@ MKDIR:
|
||||
JR Z,.skip_clean
|
||||
;
|
||||
LD DE,CORE_BUFFERS.SECTOR_BUFFER+1
|
||||
LD BC,511 ;!HARDCODE sector size
|
||||
LD BC,511 ;!HARDCODE ;!FIXIT ; [ ] sector size
|
||||
LD (HL),0
|
||||
LDIR
|
||||
.skip_clean: ;
|
||||
|
||||
@ -110,7 +110,7 @@ READ: LD (.R_POINT),HL
|
||||
;
|
||||
EXX
|
||||
POP DE
|
||||
LD HL,512 ;!HARDCODE sector size!
|
||||
LD HL,512 ;!HARDCODE ;!FIXIT ; [ ] sector size
|
||||
AND A
|
||||
SBC HL,DE
|
||||
LD B,H
|
||||
|
||||
@ -152,7 +152,7 @@ WRITE: ;!TEST ;!TODO 5/12/23 ; [ ]
|
||||
EXX
|
||||
POP DE
|
||||
JP C,.ERR1
|
||||
LD HL,512 ;!HARDCODE sector size!
|
||||
LD HL,512 ;!HARDCODE ;!FIXIT ; [ ] sector size
|
||||
AND A
|
||||
SBC HL,DE
|
||||
LD B,H
|
||||
|
||||
@ -254,8 +254,9 @@ DEVICE EQU $
|
||||
;+01 LONG SECTOR OFFSET
|
||||
;+05 LONG SIZE IN SECTORS
|
||||
;+09 BYTE PARTITION RECORD NUMBER (in drive MBR)
|
||||
;+09 FREE
|
||||
;+15
|
||||
;+10 WORD Sector Size
|
||||
;+12 FREE
|
||||
;
|
||||
LOGDRV EQU DEVICE + DEVICE.End
|
||||
.TBL_Entry EQU 16
|
||||
.Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
||||
@ -264,6 +265,11 @@ LOGDRV EQU DEVICE + DEVICE.End
|
||||
.SECTOR_OFFSET EQU 1
|
||||
.SIZE_IN_SECTORS EQU 5
|
||||
.PARTITION_RECORD_NUM EQU 9
|
||||
.SECTOR_SIZE EQU 10 ; word
|
||||
.RemovableMedia EQU 12 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
||||
.Reserved_1 EQU 13
|
||||
.Reserved_1 EQU 14
|
||||
.Reserved_1 EQU 15
|
||||
; ‚•Ž„: L - «®£¨ç¥áª¨© ®¬¥à ¢ â ¡«¨æ¥
|
||||
; ‚›•Ž„: IY - ç «® § ¯¨á¨
|
||||
; <20>Ž<EFBFBD>’ˆ’: HL, IY. HL<-->DE
|
||||
|
||||
@ -1599,7 +1599,7 @@ SET_FAT32_CACHE_BLOCK_CHANGED_REGION:
|
||||
JR Z,.set_region
|
||||
;
|
||||
.loop: SLA H
|
||||
AND A
|
||||
;AND A
|
||||
SUB L
|
||||
JR NZ,.loop
|
||||
;
|
||||
@ -1676,20 +1676,16 @@ WRITE_TO_FAT: LD DE,(CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L) ;
|
||||
INC HL ; ®¬¥à ª« áâ¥à
|
||||
LD (HL),D
|
||||
.exit: ;
|
||||
IF FAST_FAT_CASHE
|
||||
; [ ] ã᪮२¥ à ¡®âë á ªí襬 FAT
|
||||
CALL SET_FAT32_CACHE_BLOCK_CHANGED_REGION
|
||||
;
|
||||
ENDIF
|
||||
POP AF ; ¢®ááâ. ¯®àâ
|
||||
POP HL
|
||||
OUT (SLOT3),A
|
||||
IFN FAST_FAT_CASHE
|
||||
; [x] 2/12/23 FAT ¥ ¢á¥£¤ ¬®£ § ¯¨á âìáï HDD
|
||||
LD A,#FF
|
||||
LD (CORE_BUFFERS.FatBuffer.CacheUpdated),A
|
||||
;LD A,#FF
|
||||
;LD (CORE_BUFFERS.FatBuffer.CacheUpdated),A
|
||||
;
|
||||
ENDIF
|
||||
; CF = 0
|
||||
RET
|
||||
;
|
||||
@ -1862,7 +1858,6 @@ WRITE_FAT_TABLE:
|
||||
LD B,E ; MAX ç¨á«® ᥪâ®à®¢ ¤«ï çâ¥¨ï ¢ ªíè
|
||||
LD A,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H)
|
||||
LD (.sub_A),A
|
||||
;LD DE,(CORE_BUFFERS.BootSector.SectorsPerFAT16) ; ᥪâ®à®¢ FAT
|
||||
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L)
|
||||
AND A
|
||||
LD A,C
|
||||
@ -1970,17 +1965,14 @@ WRITE_FAT_TABLE:
|
||||
LD XL,E
|
||||
; HL:IX - ᬥ饨¥ ¢ãâà¨ à §¤¥« ç «® 㦮£® ¡«®ª FAT
|
||||
LD A,(CORE_BUFFERS.FatBuffer.CacheUpdated)
|
||||
IF FAST_FAT_CASHE
|
||||
CP #FF
|
||||
JR NZ,.SAVE_NOT_ALL_BLOCK
|
||||
ENDIF
|
||||
;
|
||||
LD DE,FATPAGE.cache ; ®âªã¤
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
||||
LD C,Dss.DRV.Write
|
||||
JP ToDSS.DRV
|
||||
;
|
||||
IF FAST_FAT_CASHE
|
||||
.SAVE_NOT_ALL_BLOCK:
|
||||
; A = CORE_BUFFERS.FatBuffer.CacheUpdated
|
||||
; HL:IX - ᬥ饨¥ ¢ãâà¨ à §¤¥« ç «® 㦮£® ¡«®ª FAT
|
||||
@ -2042,9 +2034,6 @@ WRITE_FAT_TABLE:
|
||||
POP DE
|
||||
POP AF
|
||||
RET
|
||||
; DJNZ .region_loop
|
||||
; RET
|
||||
ENDIF
|
||||
;-----------------------------------------------------------------------
|
||||
;
|
||||
;[x] fat32 ;!TEST
|
||||
@ -2390,7 +2379,6 @@ BLOCK_READ: LD (READ.PointerOnBuffer),IX
|
||||
;
|
||||
.ECL1: AND A
|
||||
RET
|
||||
|
||||
;-----------------------------------------------------------------------
|
||||
|
||||
; [x] fat32
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
; ®¬¥à ¢¥àᨨ (0..9)
|
||||
VERS EQU 1
|
||||
; ®¬¥à ¬®¤¨ä¨ª 樨 (0..99)
|
||||
MODF EQU 70
|
||||
MODF EQU 71
|
||||
; ®¬¥à ¡¨«¤ (0..999)
|
||||
BUILD EQU lua_BUILD
|
||||
;
|
||||
|
||||
@ -1 +1 @@
|
||||
999
|
||||
0
|
||||
@ -28,7 +28,6 @@
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
DEFINE CHANGE_FREE_CLU_AFTER_DEL 1
|
||||
DEFINE FAST_FAT_CASHE 1
|
||||
|
||||
SERVICE_SECTORS:
|
||||
.FAT12 EQU #0FEF
|
||||
@ -94,6 +93,8 @@ FAT_CACHE:
|
||||
;.Part_Mask_12 EQU ((1<<(.bytes_record_12*8)) / (.Size/2))-1
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
DEFINE DSS_MAX_SECTOR_SIZE 512
|
||||
|
||||
DSS_MAX_DRIVES_AMOUNT EQU 26
|
||||
DEFINE MAX_RAMDRIVES 16
|
||||
DEFINE NeedSafePort_Y 1
|
||||
|
||||
@ -289,16 +289,26 @@ SELHDD: PUSH DE
|
||||
PUSH HL
|
||||
;
|
||||
LD L,A
|
||||
;
|
||||
LOGDRV_ENTRY_FIND LOGDRV
|
||||
; !HARDCODE
|
||||
LD E,(IY+1)
|
||||
LD D,(IY+2)
|
||||
;
|
||||
; [ ] 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+3)
|
||||
LD D,(IY+4)
|
||||
LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
|
||||
LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
|
||||
POP HL
|
||||
ADC HL,DE
|
||||
LD A,(IY+0) ;DRIVE NUMBER
|
||||
; [ ] custom sector size
|
||||
;JR C,.exit
|
||||
RRA
|
||||
;
|
||||
.exit: LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
||||
POP DE
|
||||
RET
|
||||
|
||||
@ -367,6 +377,16 @@ HFRTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
|
||||
; bit2 - reserved "0" (MAY BE OTHER)
|
||||
; bit1 - reserved "0" (MAY BE OTHER)
|
||||
; bit0 - Primary/Secondary Chanel
|
||||
; B - ;[ ] sector size ;!TODO
|
||||
; 00 - undefined
|
||||
; 01 - 128 bytes
|
||||
; 02 - 256 bytes
|
||||
; 04 - 512 bytes
|
||||
; 08 - 1024 bytes
|
||||
; 16 - 2048 bytes
|
||||
; 32 - 4096 bytes
|
||||
; 64 - 8192 bytes
|
||||
; 128 - 16384 bytes
|
||||
HGETPRM:
|
||||
EX DE,HL
|
||||
LD BC,#55AA
|
||||
@ -397,6 +417,13 @@ HGETPRM:
|
||||
LD A,B
|
||||
LD B,D
|
||||
EXX
|
||||
;[ ] 04/01/2025 ¢®§¢à 饨¥ à §¬¥à ᥪâ®à
|
||||
EX AF,AF'
|
||||
LD A,XH
|
||||
LD E,XL
|
||||
RL E
|
||||
RLA
|
||||
;
|
||||
; SECTORS ON LOGICAL DISK
|
||||
LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0)
|
||||
LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1)
|
||||
@ -406,7 +433,19 @@ HGETPRM:
|
||||
;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||
LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª
|
||||
;
|
||||
EX AF,AF'
|
||||
;[ ] 04/01/2025 ¢®§¢à 饨¥ à §¬¥à ᥪâ®à
|
||||
; 00 - undefined
|
||||
; 01 - 128 bytes
|
||||
; 02 - 256 bytes
|
||||
; 04 - 512 bytes
|
||||
; 08 - 1024 bytes
|
||||
; 16 - 2048 bytes
|
||||
; 32 - 4096 bytes
|
||||
; 64 - 8192 bytes
|
||||
; 128 - 16384 bytes
|
||||
;EX AF,AF'
|
||||
LD B,A
|
||||
;
|
||||
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||
EX AF,AF'
|
||||
;
|
||||
@ -434,6 +473,16 @@ CHEK_H: ;LD A,#FF
|
||||
RET
|
||||
|
||||
|
||||
; [ ] custorm sector size
|
||||
CHECK_IDE_SECTOR_SIZE:
|
||||
LD E,(IY+LOGDRV.SECTOR_SIZE)
|
||||
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
|
||||
LD HL,DSS_MAX_SECTOR_SIZE
|
||||
AND A
|
||||
SBC HL,DE
|
||||
RET
|
||||
;
|
||||
|
||||
; DE - ADDRESS
|
||||
; A - DRIVE
|
||||
GBPB_H: PUSH IY
|
||||
@ -441,20 +490,27 @@ GBPB_H: PUSH IY
|
||||
LD L,A
|
||||
;
|
||||
LOGDRV_ENTRY_FIND LOGDRV
|
||||
; !HARDCODE
|
||||
LD E,(IY+1)
|
||||
LD D,(IY+2)
|
||||
LD L,(IY+3)
|
||||
LD H,(IY+4)
|
||||
;
|
||||
; [ ] 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+0)
|
||||
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
|
||||
; DE - ADDRESS
|
||||
; B - COUNTER
|
||||
@ -463,9 +519,10 @@ GBPB_H: PUSH IY
|
||||
;READ SECTOR
|
||||
LREADH: PUSH IY
|
||||
CALL SELHDD
|
||||
JR C,.error ; [ ] custorm sector size
|
||||
LD C,BIOS.DRV_READ_LONG
|
||||
RST ToBIOS
|
||||
POP IY
|
||||
.error: POP IY
|
||||
RET
|
||||
|
||||
;HL:IX - SECTOR
|
||||
@ -477,9 +534,10 @@ LREADH: PUSH IY
|
||||
LWRITEH:
|
||||
PUSH IY
|
||||
CALL SELHDD
|
||||
JR C,.error ; [ ] custorm sector size
|
||||
LD C,BIOS.DRV_WRITE_LONG
|
||||
RST ToBIOS
|
||||
POP IY
|
||||
.error: POP IY
|
||||
RET
|
||||
|
||||
;HL:IX - SECTOR
|
||||
@ -489,9 +547,10 @@ LWRITEH:
|
||||
;WRITE SECTOR
|
||||
WRITEH: PUSH IY
|
||||
CALL SELHDD
|
||||
JR C,.error ; [ ] custorm sector size
|
||||
LD C,BIOS.DRV_WRITE
|
||||
RST ToBIOS
|
||||
POP IY
|
||||
.error: POP IY
|
||||
RET
|
||||
|
||||
;HL:IX - SECTOR
|
||||
@ -501,9 +560,10 @@ WRITEH: PUSH IY
|
||||
;READ SECTOR
|
||||
READH: PUSH IY
|
||||
CALL SELHDD
|
||||
JR C,.error ; [ ] custorm sector size
|
||||
LD C,BIOS.DRV_READ
|
||||
RST ToBIOS
|
||||
POP IY
|
||||
.error: POP IY
|
||||
RET
|
||||
|
||||
;HL:IX - SECTOR
|
||||
@ -595,12 +655,23 @@ DEFINE_PARTITIONS:
|
||||
;SCF
|
||||
;RET
|
||||
.check_atapi: LD A,(DRV_NUM)
|
||||
LD B,A
|
||||
AND #F0
|
||||
CP DRIVE_CODES.SPRINTER.ATAPI
|
||||
SCF
|
||||
RET NZ
|
||||
;
|
||||
; No Media
|
||||
;!TODO sector size
|
||||
LD A,B
|
||||
LD C,BIOS.DRV_GET_PAR
|
||||
RST ToBIOS
|
||||
JR NC,.no_err
|
||||
;
|
||||
LD IX,#FFFF
|
||||
.no_err: LD D,XH
|
||||
LD E,XL
|
||||
;
|
||||
XOR A
|
||||
;BPB SECTOR
|
||||
LD IX,(OFFSECT)
|
||||
@ -613,6 +684,10 @@ DEFINE_PARTITIONS:
|
||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 1),A
|
||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 2),A
|
||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 3),A
|
||||
; [ ] sector size
|
||||
LD (IX + LOGDRV.SECTOR_SIZE),E
|
||||
LD (IX + LOGDRV.SECTOR_SIZE + 1),D
|
||||
;
|
||||
; ¤«ï ¯à ¢¨«ì®£® ¢ë室 ¨§ ¯ àá¥à à §¤¥«®¢
|
||||
LD B,1
|
||||
PUSH BC
|
||||
|
||||
@ -293,11 +293,11 @@ GenIOCTL: BIT 7,B
|
||||
; BC' - SECTORS PER TRACK ON PHISICAL DISK
|
||||
; A' - PHISICAL DRIVE NUMBER
|
||||
; A - EXTENDED INFORMATION
|
||||
; D1..D3 - "0" RESERVED (MAY BE OTHER)
|
||||
; D4 - DEVICE MASTER/SLAVE
|
||||
; D5 - "1" RESERVED
|
||||
; D6 - ADDRESSING MODE LBA/CHS
|
||||
; D7 - "1" RESERVED
|
||||
; D6 - ADDRESSING MODE LBA/CHS
|
||||
; D5 - "1" RESERVED
|
||||
; D4 - DEVICE MASTER/SLAVE
|
||||
; D1..D3 - "0" RESERVED (MAY BE OTHER)
|
||||
.GetParams: EX DE,HL
|
||||
LD BC,#55AA
|
||||
AND #0F
|
||||
|
||||
@ -393,6 +393,13 @@ HGETPRM:
|
||||
LD A,B
|
||||
LD B,D
|
||||
EXX
|
||||
;[ ] 04/01/2025 ¢®§¢à 饨¥ à §¬¥à ᥪâ®à
|
||||
EX AF,AF'
|
||||
LD A,XH
|
||||
LD E,XL
|
||||
RL E
|
||||
RLA
|
||||
;
|
||||
; SECTORS ON LOGICAL DISK
|
||||
LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0)
|
||||
LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1)
|
||||
@ -402,7 +409,19 @@ HGETPRM:
|
||||
;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||
LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª
|
||||
;
|
||||
EX AF,AF'
|
||||
;[ ] 04/01/2025 ¢®§¢à 饨¥ à §¬¥à ᥪâ®à
|
||||
; 00 - undefined
|
||||
; 01 - 128 bytes
|
||||
; 02 - 256 bytes
|
||||
; 04 - 512 bytes
|
||||
; 08 - 1024 bytes
|
||||
; 16 - 2048 bytes
|
||||
; 32 - 4096 bytes
|
||||
; 64 - 8192 bytes
|
||||
; 128 - 16384 bytes
|
||||
;EX AF,AF'
|
||||
LD B,A
|
||||
;
|
||||
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||
EX AF,AF'
|
||||
;
|
||||
@ -437,14 +456,14 @@ GBPB_H: PUSH IY
|
||||
LD L,A
|
||||
;
|
||||
LOGDRV_ENTRY_FIND LOGDRV
|
||||
; !HARDCODE
|
||||
LD E,(IY+1)
|
||||
LD D,(IY+2)
|
||||
LD L,(IY+3)
|
||||
LD H,(IY+4)
|
||||
;
|
||||
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+0)
|
||||
LD A,(IY+LOGDRV.SECTOR_OFFSET.PHISICAL_DRV_NUMBER)
|
||||
POP DE
|
||||
POP IY
|
||||
LD BC,1*256 + BIOS.DRV_READ
|
||||
|
||||
@ -149,37 +149,37 @@ INITDVC: XOR A
|
||||
; ˆ¨æ¨¨à®¢ âì â ¡«¨æã ¯¥à¥å®¤®¢ ¤¥¢ ©á .
|
||||
; ¢å®¤: de= ¤à¥á ®¡à ¡®â稪 ¤¥¢ ©á
|
||||
; a=ç¨á«® ¤¥¢ ©á®¢ (0=¥â)
|
||||
MAKEDVC: LD C,A
|
||||
LD HL,DRV_PAGE.LDRIVE ; ï祩ª ®¬¥à ¯®á«. ¤¨áª
|
||||
ADD A,(HL)
|
||||
LD (HL),A
|
||||
;!TEST ;[ ] ®¯â¨¬¨§¨à®¢ âì ¡ë«® «¥ì
|
||||
CP DSS_MAX_DRIVES_AMOUNT+1
|
||||
JR C,1F
|
||||
LD (HL),DSS_MAX_DRIVES_AMOUNT
|
||||
SUB DSS_MAX_DRIVES_AMOUNT
|
||||
NEG
|
||||
ADD C
|
||||
JP 2F
|
||||
;
|
||||
1: LD A,C
|
||||
OR A
|
||||
RET Z ; ¥â ¤¥¢ ©á®¢
|
||||
2: LD C,0 ; á¡à.
|
||||
LD HL,(PDEVICE) ; ⥪. ¯®«®¦. ¢ â ¡«¨æ¥
|
||||
.loop: LD (HL),C ; ®¬¥à «®£.¤à ©¢ í⮣® ãáâனáâ¢
|
||||
INC HL
|
||||
LD (HL),E ; de= ¤à¥á ®¡à ¡®â稪
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
INC C ; ++®¬¥à ¤à ©¢
|
||||
DEC A
|
||||
JR NZ,.loop
|
||||
LD (PDEVICE),HL
|
||||
DEC A
|
||||
LD (HL),A
|
||||
RET
|
||||
MAKEDVC: LD C,A
|
||||
LD HL,DRV_PAGE.LDRIVE ; ï祩ª ®¬¥à ¯®á«. ¤¨áª
|
||||
ADD A,(HL)
|
||||
LD (HL),A
|
||||
;!TEST ;[ ] ®¯â¨¬¨§¨à®¢ âì ¡ë«® «¥ì
|
||||
CP DSS_MAX_DRIVES_AMOUNT+1
|
||||
JR C,1F
|
||||
LD (HL),DSS_MAX_DRIVES_AMOUNT
|
||||
SUB DSS_MAX_DRIVES_AMOUNT
|
||||
NEG
|
||||
ADD C
|
||||
JP 2F
|
||||
;
|
||||
1: LD A,C
|
||||
OR A
|
||||
RET Z ; ¥â ¤¥¢ ©á®¢
|
||||
2: LD C,0 ; á¡à.
|
||||
LD HL,(PDEVICE) ; ⥪. ¯®«®¦. ¢ â ¡«¨æ¥
|
||||
.loop: LD (HL),C ; ®¬¥à «®£.¤à ©¢ í⮣® ãáâனáâ¢
|
||||
INC HL
|
||||
LD (HL),E ; de= ¤à¥á ®¡à ¡®â稪
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
INC C ; ++®¬¥à ¤à ©¢
|
||||
DEC A
|
||||
JR NZ,.loop
|
||||
LD (PDEVICE),HL
|
||||
DEC A
|
||||
LD (HL),A
|
||||
RET
|
||||
|
||||
|
||||
;!FIXIT ¯®¯¥à¥¤¥«ë¢ âì âã⠢맮¢ë ç¥à¥§ â®çª¨ ¢å®¤ ⨯ RST ¨«¨ ¢ë§®¢ë ⨯ LD C,0 : CALL HDDRIVE ¯àï¬ë¥
|
||||
@ -192,10 +192,9 @@ INTDISK:
|
||||
CP #FF
|
||||
JR NZ,.noNeedRescan
|
||||
CP C
|
||||
;JR Z,INITDVC_RET_DRIVE
|
||||
JR Z,ReScanDRV
|
||||
.noNeedRescan:
|
||||
;
|
||||
.noNeedRescan:
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
_CALC_DEVICE_ENTRY DEVICE
|
||||
|
||||
@ -87,7 +87,7 @@ cmd_info: CALL Get_Path
|
||||
POP BC
|
||||
PUSH BC
|
||||
LD A,C
|
||||
CP "C"
|
||||
CP "C" - "A"
|
||||
JR C,.ItIsFDD
|
||||
LD DE,Dss.DRV.GenIOCTL.Enter
|
||||
LD BC,Dss.DRV.GenIOCTL.GetParams
|
||||
@ -98,18 +98,20 @@ cmd_info: CALL Get_Path
|
||||
LD DE,Buffers.bat_params.PRM5 ; Drive size
|
||||
CALL ncopy_string
|
||||
JR .print_info_2
|
||||
; HL:DE * 512 = A:HL:H'L'
|
||||
; HL:DE * 512 = A:H'L':HL ;!HARDCODE sector size
|
||||
.calc_size: RL E
|
||||
RL D
|
||||
RL L
|
||||
RL H
|
||||
LD C,E
|
||||
LD A,H
|
||||
EX AF,AF
|
||||
LD A,E
|
||||
LD H,L
|
||||
LD L,D
|
||||
EXX
|
||||
LD H,C
|
||||
LD H,A
|
||||
LD L,0
|
||||
EX AF,AF
|
||||
JR .convert_hex
|
||||
;
|
||||
.Collect_Msg: DZ " A: <WAITING>\r" ; ¯ âç¨âáï ¡ãª¢ ¤à ©¢ ¢ 横«¥
|
||||
|
||||
@ -1 +1 @@
|
||||
437
|
||||
444
|
||||
@ -1 +1 @@
|
||||
Subproject commit 6f28f9f83e4737733b76053891bd9be121aed186
|
||||
Subproject commit 7ef1dd98b491068d5a9ded34f5ff51430b7fa7e7
|
||||
Loading…
Reference in New Issue
Block a user