mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-16 01:41:17 +03:00
optimization. bug with BootSector size fixed
This commit is contained in:
parent
f59cca8dfa
commit
35e9b7b9fe
@ -30,7 +30,7 @@ DRIVE:
|
|||||||
DI
|
DI
|
||||||
LD (DRIVE),A
|
LD (DRIVE),A
|
||||||
LD C,BIOS.EXT_VERSION
|
LD C,BIOS.EXT_VERSION
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD A,INCORR
|
LD A,INCORR
|
||||||
JR C,FAIL
|
JR C,FAIL
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
@ -45,9 +45,9 @@ GOOD_DRIVE:
|
|||||||
LD DE,#8200
|
LD DE,#8200
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD IX,2
|
LD IX,2
|
||||||
LD BC,2*256+BIOS.DRV_READ
|
LD BC,2*256 + BIOS.DRV_READ
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
JR C,NULL
|
JR C,NULL
|
||||||
JP CONTINU
|
JP CONTINU
|
||||||
|
|
||||||
@ -88,37 +88,37 @@ PRINTX CP #0D
|
|||||||
JR Z,CR_
|
JR Z,CR_
|
||||||
CP #0A
|
CP #0A
|
||||||
JR Z,LF_
|
JR Z,LF_
|
||||||
LD BC,#0182
|
LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
RET
|
RET
|
||||||
CR_ LD C,#8E
|
CR_ LD C,BIOS.LP_GET_PLACE
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD E,0
|
LD E,0
|
||||||
LD C,#84
|
LD C,#84
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
RET
|
RET
|
||||||
LF_ LD C,#8E
|
LF_ LD C,BIOS.LP_GET_PLACE
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD A,#1F
|
LD A,#1F
|
||||||
CP D
|
CP D
|
||||||
JR NZ,LF2
|
JR NZ,LF2
|
||||||
PUSH DE
|
PUSH DE
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD DE,#0020
|
LD DE,#0020
|
||||||
LD BC,#018A
|
LD BC,1*256 + BIOS.LP_SCROLL_UD
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD DE,#1F00
|
LD DE,#1F00
|
||||||
LD C,#84
|
LD C,BIOS.LP_SET_PLACE
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD A," "
|
LD A," "
|
||||||
LD BC,#5082
|
LD BC,#50 + BIOS.LP_PRINT_SYM
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
POP HL
|
POP HL
|
||||||
POP DE
|
POP DE
|
||||||
DEC D
|
DEC D
|
||||||
LF2 INC D
|
LF2 INC D
|
||||||
LD C,#84
|
LD C,BIOS.LP_SET_PLACE
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
RET ;R01
|
RET ;R01
|
||||||
;R01 End
|
;R01 End
|
||||||
|
|
||||||
@ -155,8 +155,8 @@ CONTINU
|
|||||||
LD (DISKL),HL
|
LD (DISKL),HL
|
||||||
LD (DISKH),HL
|
LD (DISKH),HL
|
||||||
|
|
||||||
LD BC,1*256+BIOS.GetMem
|
LD BC,1*256 + BIOS.GetMem
|
||||||
RST #18 ;GET PAGE FOR DOS
|
RST ToBIOS_18 ;GET PAGE FOR DOS
|
||||||
LD (BANKDOS),A
|
LD (BANKDOS),A
|
||||||
CALL GET_BPB ;READ BPB
|
CALL GET_BPB ;READ BPB
|
||||||
LD A,ERRIBPB
|
LD A,ERRIBPB
|
||||||
@ -290,9 +290,9 @@ YEPDOS LD E,(IX+08)
|
|||||||
LD (DISKL),IX
|
LD (DISKL),IX
|
||||||
LD (DISKH),HL
|
LD (DISKH),HL
|
||||||
LD DE,BOOT
|
LD DE,BOOT
|
||||||
LD BC,1*256+BIOS.DRV_READ
|
LD BC,1*256 + BIOS.DRV_READ
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
POP BC
|
POP BC
|
||||||
LD A,C
|
LD A,C
|
||||||
RET
|
RET
|
||||||
@ -300,13 +300,13 @@ YEPDOS LD E,(IX+08)
|
|||||||
SET_PRM PUSH BC
|
SET_PRM PUSH BC
|
||||||
LD A,B
|
LD A,B
|
||||||
LD C,BIOS.DRV_GET_PAR
|
LD C,BIOS.DRV_GET_PAR
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD A,(BOOT.S_P_T)
|
LD A,(BOOT.S_P_T)
|
||||||
LD L,A
|
LD L,A
|
||||||
POP AF
|
POP AF
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD C,BIOS.DRV_SET_PAR
|
LD C,BIOS.DRV_SET_PAR
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
POP BC
|
POP BC
|
||||||
LD A,C
|
LD A,C
|
||||||
RET
|
RET
|
||||||
@ -314,9 +314,9 @@ SET_PRM PUSH BC
|
|||||||
GET_BPB LD IX,#0000
|
GET_BPB LD IX,#0000
|
||||||
LD HL,#0000
|
LD HL,#0000
|
||||||
LD DE,BOOT
|
LD DE,BOOT
|
||||||
LD BC,1*256+BIOS.DRV_READ
|
LD BC,1*256 + BIOS.DRV_READ
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
RET C
|
RET C
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
LD B,A
|
LD B,A
|
||||||
@ -416,9 +416,9 @@ BPB_FAT
|
|||||||
ADC HL,BC
|
ADC HL,BC
|
||||||
;HL:IX
|
;HL:IX
|
||||||
LD DE,FAT
|
LD DE,FAT
|
||||||
LD BC,3*256+BIOS.DRV_READ
|
LD BC,3*256 + BIOS.DRV_READ
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
RET C
|
RET C
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD (FATCASH),HL
|
LD (FATCASH),HL
|
||||||
@ -447,10 +447,10 @@ NEXTSEC PUSH AF
|
|||||||
;HL:IX
|
;HL:IX
|
||||||
PUSH IX
|
PUSH IX
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD BC,1*256+BIOS.DRV_READ
|
LD BC,1*256 + BIOS.DRV_READ
|
||||||
LD DE,DIR
|
LD DE,DIR
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
CALL SEARCH
|
CALL SEARCH
|
||||||
POP HL
|
POP HL
|
||||||
POP IX
|
POP IX
|
||||||
@ -510,21 +510,21 @@ LD_FILE PUSH HL
|
|||||||
LD A,(BOOT.S_P_C)
|
LD A,(BOOT.S_P_C)
|
||||||
CP #20
|
CP #20
|
||||||
JR C,SMCLUS
|
JR C,SMCLUS
|
||||||
LD BC,#2052
|
LD BC,#20*256 + BIOS.DRV_READ_LONG
|
||||||
LD A,(BANKDOS)
|
LD A,(BANKDOS)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
POP HL
|
POP HL
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
SMCLUS LD B,A
|
SMCLUS LD B,A
|
||||||
LD C,#52
|
LD C,BIOS.DRV_READ_LONG
|
||||||
LD A,(BANKDOS)
|
LD A,(BANKDOS)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
LD HL,(READMEM)
|
LD HL,(READMEM)
|
||||||
LD DE,(CLU_LEN)
|
LD DE,(CLU_LEN)
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
@ -670,9 +670,9 @@ NOINX2 ADD IX,BC
|
|||||||
POP IX
|
POP IX
|
||||||
POP HL
|
POP HL
|
||||||
LD DE,FAT
|
LD DE,FAT
|
||||||
LD BC,#0355
|
LD BC,3*256 + BIOS.DRV_READ
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST #18
|
RST ToBIOS_18
|
||||||
POP HL
|
POP HL
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
@ -277,8 +277,8 @@ F_START:
|
|||||||
RST #30
|
RST #30
|
||||||
;CALL INITDVC ;R05
|
;CALL INITDVC ;R05
|
||||||
;R05
|
;R05
|
||||||
LD C,#00
|
LD C,Dss.DRV.Init
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
LD (LDRIVE),A
|
LD (LDRIVE),A
|
||||||
;R05
|
;R05
|
||||||
|
|
||||||
@ -437,6 +437,14 @@ BUFFER EQU BUFFERSplace.Buffer
|
|||||||
SECBUF EQU BUFFER
|
SECBUF EQU BUFFER
|
||||||
|
|
||||||
CLEAR_ZONE.size EQU _sBuffers
|
CLEAR_ZONE.size EQU _sBuffers
|
||||||
|
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||||
|
DISPLAY "BUFFERSplace.BootSector ",/H,BUFFERSplace.BootSector
|
||||||
|
DISPLAY "BootSector ", /H, BootSector
|
||||||
|
DISPLAY "EXEBUFF ", /H, EXEBUFF
|
||||||
|
DISPLAY "Size ", /H, EXEBUFF-BootSector
|
||||||
|
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||||
;!TEST
|
;!TEST
|
||||||
|
|||||||
43
DSS/DOS5.ASM
43
DSS/DOS5.ASM
@ -155,11 +155,11 @@ DELETE LD DE,MASKARE
|
|||||||
RET C
|
RET C
|
||||||
DELFILE LD A,DIRPAGE
|
DELFILE LD A,DIRPAGE
|
||||||
CALL BANK
|
CALL BANK
|
||||||
PUSH AF
|
;PUSH AF
|
||||||
LD (IX+_sFM.NAME),#E5
|
LD (IX+_sFM.NAME),#E5
|
||||||
LD E,(IX+_sFM.ST_CLUSTER)
|
LD E,(IX+_sFM.ST_CLUSTER)
|
||||||
LD D,(IX+_sFM.ST_CLUSTER+1)
|
LD D,(IX+_sFM.ST_CLUSTER+1)
|
||||||
POP AF
|
;POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,E
|
LD A,E
|
||||||
OR D
|
OR D
|
||||||
@ -656,8 +656,8 @@ CHNDISK:
|
|||||||
;????? R10
|
;????? R10
|
||||||
OPENDSK:
|
OPENDSK:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD C,1
|
LD C,Dss.DRV.Open
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
POP BC
|
POP BC
|
||||||
JP C,.error
|
JP C,.error
|
||||||
LD A,B
|
LD A,B
|
||||||
@ -802,7 +802,7 @@ FINDDIR LD A,DIRPAGE
|
|||||||
ADDSPEC LD E,XL
|
ADDSPEC LD E,XL
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD HL,DIRSPEC+1
|
LD HL,DIRSPEC+1
|
||||||
LD BC,DIRSPEC.DEPTH
|
LD BC,DIRSPEC.DEPTH-1
|
||||||
XOR A
|
XOR A
|
||||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||||
DEC HL
|
DEC HL
|
||||||
@ -879,11 +879,11 @@ LOADDIR:
|
|||||||
CALL BANK
|
CALL BANK
|
||||||
PUSH AF
|
PUSH AF
|
||||||
;!FIXIT ᫨誮¬ ¤®«£®
|
;!FIXIT ᫨誮¬ ¤®«£®
|
||||||
LD HL,#C000
|
; LD HL,#C000
|
||||||
LD DE,#C001
|
; LD DE,#C001
|
||||||
LD BC,#3FFF
|
; LD BC,#3FFF
|
||||||
LD (HL),L
|
; LD (HL),L
|
||||||
LDIR
|
; LDIR
|
||||||
;
|
;
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD (IY+_sFM.DRIVE),A
|
LD (IY+_sFM.DRIVE),A
|
||||||
@ -911,9 +911,9 @@ LROTDIR LD HL,(FatBuffer.DIR_FRH)
|
|||||||
ADD A,B
|
ADD A,B
|
||||||
LD B,A
|
LD B,A
|
||||||
RTD1 LD A,(FatBuffer.DRIVE)
|
RTD1 LD A,(FatBuffer.DRIVE)
|
||||||
LD C,5
|
|
||||||
LD DE,DIR
|
LD DE,DIR
|
||||||
RST #18
|
LD C,Dss.DRV.Read
|
||||||
|
RST ToDSS.DRV
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
AND A
|
AND A
|
||||||
@ -952,9 +952,9 @@ SROTDIR LD HL,(FatBuffer.DIR_FRH)
|
|||||||
ADD A,B
|
ADD A,B
|
||||||
LD B,A
|
LD B,A
|
||||||
RTD1S LD A,(FatBuffer.DRIVE)
|
RTD1S LD A,(FatBuffer.DRIVE)
|
||||||
LD C,6
|
|
||||||
LD DE,DIR
|
LD DE,DIR
|
||||||
RST #18
|
LD C,Dss.DRV.Write
|
||||||
|
RST ToDSS.DRV
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
AND A
|
AND A
|
||||||
@ -1634,7 +1634,7 @@ MKD04 EX DE,HL
|
|||||||
INC DE
|
INC DE
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
LD BC,512-65
|
LD BC,512-65
|
||||||
LDIR
|
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
||||||
POP HL
|
POP HL
|
||||||
CALL NSECTOR
|
CALL NSECTOR
|
||||||
LD A,(BootSector.S_P_C)
|
LD A,(BootSector.S_P_C)
|
||||||
@ -1646,11 +1646,10 @@ MKD12 PUSH AF
|
|||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
LD DE,SECBUF+#C000
|
|
||||||
LD B,1
|
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD C,6
|
LD DE,SECBUF+#C000
|
||||||
RST #18
|
LD BC,1*256 + Dss.DRV.Write
|
||||||
|
RST ToDSS.DRV
|
||||||
;
|
;
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -1659,7 +1658,7 @@ MKD12 PUSH AF
|
|||||||
LD DE,SECBUF+1
|
LD DE,SECBUF+1
|
||||||
LD BC,511
|
LD BC,511
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
LDIR
|
LDIR ;!FIXIT 㦮 «¨ â ª ¬®£® £à®å âì?
|
||||||
POP IX
|
POP IX
|
||||||
POP HL
|
POP HL
|
||||||
INC IX
|
INC IX
|
||||||
@ -1706,9 +1705,9 @@ RMD12 PUSH AF
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
LD DE,SECBUF+#C000
|
LD DE,SECBUF+#C000
|
||||||
LD BC,#0105
|
LD BC,1*256 + Dss.DRV.Read
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
|
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|||||||
@ -177,7 +177,7 @@ BLOK_RD PUSH BC
|
|||||||
LD A,(BootSector.S_P_C) ;SECTORS PER CLUSTER
|
LD A,(BootSector.S_P_C) ;SECTORS PER CLUSTER
|
||||||
LD C,A
|
LD C,A
|
||||||
LD B,0
|
LD B,0
|
||||||
CALL DIV32
|
CALL DIV32 ;!FIXIT § ¬¥¨âì ¢ë§®¢ HLDE/BC HLDE/C
|
||||||
LD B,XH
|
LD B,XH
|
||||||
LD C,XL
|
LD C,XL
|
||||||
PUSH HL ;RESIDUE
|
PUSH HL ;RESIDUE
|
||||||
@ -218,8 +218,8 @@ BLOKRD3 LD A,B ; /
|
|||||||
BLOKRD4 LD DE,(READMEM)
|
BLOKRD4 LD DE,(READMEM)
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD B,C
|
LD B,C
|
||||||
LD C,5
|
LD C,Dss.DRV.Read
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
JP C,BLOKRD0
|
JP C,BLOKRD0
|
||||||
POP BC
|
POP BC
|
||||||
LD HL,(READMEM)
|
LD HL,(READMEM)
|
||||||
@ -256,7 +256,7 @@ BLOKRD7 EX DE,HL
|
|||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD B,C
|
LD B,C
|
||||||
LD C,5
|
LD C,5
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
JP C,BLOKRD0
|
JP C,BLOKRD0
|
||||||
POP BC
|
POP BC
|
||||||
LD HL,(READMEM)
|
LD HL,(READMEM)
|
||||||
@ -345,8 +345,8 @@ BLOKWR3 LD A,B
|
|||||||
BLOKWR4 LD DE,(READMEM)
|
BLOKWR4 LD DE,(READMEM)
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD B,C
|
LD B,C
|
||||||
LD C,6
|
LD C,Dss.DRV.Write
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
JP C,BLOKWR0
|
JP C,BLOKWR0
|
||||||
POP BC
|
POP BC
|
||||||
LD HL,(READMEM)
|
LD HL,(READMEM)
|
||||||
@ -387,8 +387,8 @@ BLOKWR9 POP BC
|
|||||||
LD DE,(READMEM)
|
LD DE,(READMEM)
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD B,C
|
LD B,C
|
||||||
LD C,6
|
LD C,Dss.DRV.Write
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
JP C,BLOKWR0
|
JP C,BLOKWR0
|
||||||
POP BC
|
POP BC
|
||||||
LD HL,(READMEM)
|
LD HL,(READMEM)
|
||||||
@ -625,8 +625,9 @@ WRITE LD (R_POINT),HL
|
|||||||
OR A
|
OR A
|
||||||
RR L
|
RR L
|
||||||
RR D
|
RR D
|
||||||
RR E ;HL:DE FP (in sectors)
|
RR E
|
||||||
; BC FP residue (in bytes)
|
; HL:DE FP (in sectors)
|
||||||
|
; BC FP residue (in bytes)
|
||||||
LD A,B
|
LD A,B
|
||||||
OR C
|
OR C
|
||||||
JP NZ,WOV1
|
JP NZ,WOV1
|
||||||
|
|||||||
@ -71,9 +71,9 @@ SETBOOT:
|
|||||||
LD C,0
|
LD C,0
|
||||||
.loop: PUSH BC
|
.loop: PUSH BC
|
||||||
LD A,C
|
LD A,C
|
||||||
LD BC,#0008
|
|
||||||
LD DE,#55AA
|
LD DE,#55AA
|
||||||
RST #18
|
LD BC,256*0 + Dss.DRV.GenIOCTL
|
||||||
|
RST ToDSS.DRV
|
||||||
POP BC
|
POP BC
|
||||||
JR C,.NoSupport
|
JR C,.NoSupport
|
||||||
EX AF,AF' ;PHISICAL DRIVE NUMBER
|
EX AF,AF' ;PHISICAL DRIVE NUMBER
|
||||||
@ -100,8 +100,8 @@ SETBOOT:
|
|||||||
/*
|
/*
|
||||||
CHNDISK:
|
CHNDISK:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD C,1
|
LD C,Dss.DRV.Open
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
POP BC
|
POP BC
|
||||||
JP C,NDISK11
|
JP C,NDISK11
|
||||||
LD A,B
|
LD A,B
|
||||||
@ -181,30 +181,24 @@ TCOUNT: DW #0000
|
|||||||
|
|
||||||
; !FIXIT çñâ ¥ ¨á¯®«ì§ã¥âáï
|
; !FIXIT çñâ ¥ ¨á¯®«ì§ã¥âáï
|
||||||
TESTDSK LD A,(FatBuffer.DRIVE)
|
TESTDSK LD A,(FatBuffer.DRIVE)
|
||||||
LD C,3
|
LD C,Dss.DRV.MediaCheck
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
OR A
|
OR A
|
||||||
RET Z
|
RET Z
|
||||||
RD_BPB LD C,SLOT3
|
RD_BPB LD C,SLOT3
|
||||||
IN B,(C)
|
IN B,(C)
|
||||||
PUSH BC
|
PUSH BC
|
||||||
|
|
||||||
;!!!!! «ãçè¥ ®áâ ¢¨âì ª ª ¢ ®à¨£¨ «¥, ¯®â®¬ã çâ® ¢ë§®¢ í⮩ äãªæ¨¨
|
|
||||||
; ¬®¦¥â ¢ ¤ «ì¥©è¥¬ ¯® ¤®¡¨âìáï, ¨ ¯ã᪠© ® á ¬ ¤®áâ ñâ ¯¥à¥¬¥ãî DRIVE
|
|
||||||
; ex af,af' ;1451
|
|
||||||
; in a,(SLOT0) ;1452
|
|
||||||
; out (SLOT3),a ;1454
|
|
||||||
; ld de,SECBUF+#C000 ;1456
|
|
||||||
; ex af,af' ;1459
|
|
||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;R08 LD DE,BOOT+#C000
|
;R08
|
||||||
LD DE,SECBUF+#C000 ;R08
|
;LD DE,BOOT+#C000
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD DE,SECBUF+#C000
|
||||||
;!!!!! ------------------------------
|
;R08
|
||||||
|
LD A,(FatBuffer.DRIVE) ;¢ë§®¢ RD_BPB ¬®¦¥â ¢ ¤ «ì¥©è¥¬ ¯® ¤®¡¨âìáï, ¯ã᪠© ® á ¬ ¤®áâ ñâ ¯¥à¥¬¥ãî DRIVE
|
||||||
|
|
||||||
LD C,4
|
LD C,Dss.DRV.GetBPB
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
POP BC
|
POP BC
|
||||||
OUT (C),B
|
OUT (C),B
|
||||||
JP C,RDERR1
|
JP C,RDERR1
|
||||||
@ -226,10 +220,16 @@ RD_BPB LD C,SLOT3
|
|||||||
LD A,(IY+_sBOOT_SEC.ID_FORM)
|
LD A,(IY+_sBOOT_SEC.ID_FORM)
|
||||||
CP #F0
|
CP #F0
|
||||||
JP C,ERR_BPB
|
JP C,ERR_BPB
|
||||||
LD HL,0 ; calc. first sector FAT
|
|
||||||
LD E,(IY+_sBOOT_SEC.RESERVE) ;Reserve sec
|
;!TEST
|
||||||
LD D,(IY+_sBOOT_SEC.RESERVE+1)
|
;LD HL,0 ; calc. first sector FAT
|
||||||
ADD HL,DE
|
;LD E,(IY+_sBOOT_SEC.RESERVE) ;Reserve sec
|
||||||
|
;LD D,(IY+_sBOOT_SEC.RESERVE+1)
|
||||||
|
;ADD HL,DE
|
||||||
|
LD L,(IY+_sBOOT_SEC.RESERVE) ;Reserve sec
|
||||||
|
LD H,(IY+_sBOOT_SEC.RESERVE+1)
|
||||||
|
;
|
||||||
|
|
||||||
; LD E,(IY+#1C) ;Hidden sec
|
; LD E,(IY+#1C) ;Hidden sec
|
||||||
; LD D,(IY+#1D)
|
; LD D,(IY+#1D)
|
||||||
; ADD HL,DE
|
; ADD HL,DE
|
||||||
@ -311,15 +311,15 @@ R_BPBL1
|
|||||||
DJNZ R_BPBL1
|
DJNZ R_BPBL1
|
||||||
FID LD A,(HL)
|
FID LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
CP #20
|
CP ' '
|
||||||
JR Z,FID
|
JR Z,FID
|
||||||
CP "1"
|
CP '1'
|
||||||
JP NZ,ERR_BPB
|
JP NZ,ERR_BPB
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
CP "6" ; FAT16
|
CP '6' ; FAT16
|
||||||
LD HL,#FFFF
|
LD HL,#FFFF
|
||||||
JR Z,BPB_FAT
|
JR Z,BPB_FAT
|
||||||
CP "2" ; FAT12
|
CP '2' ; FAT12
|
||||||
JP NZ,ERR_BPB
|
JP NZ,ERR_BPB
|
||||||
LD HL,#0FFF
|
LD HL,#0FFF
|
||||||
BPB_FAT
|
BPB_FAT
|
||||||
@ -356,7 +356,7 @@ BPB_L1: ; calc. sector per cylinder
|
|||||||
DEC BC
|
DEC BC
|
||||||
JP HDDBIG
|
JP HDDBIG
|
||||||
HDDSMAL:
|
HDDSMAL:
|
||||||
; AND A ;âãâ CF ¯®«î¡ á á¡à®è¥ ¤®«¦¥ ¡ëâì
|
;AND A ;âãâ CF ¯®«î¡ á á¡à®è¥ ¤®«¦¥ ¡ëâì
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
LD BC,0
|
LD BC,0
|
||||||
HDDBIG LD A,(BootSector.S_P_C)
|
HDDBIG LD A,(BootSector.S_P_C)
|
||||||
@ -376,8 +376,8 @@ S4C02 INC HL
|
|||||||
; LD IX,(FAT_FRM)
|
; LD IX,(FAT_FRM)
|
||||||
; LD B,3
|
; LD B,3
|
||||||
; LD A,(DRIVE)
|
; LD A,(DRIVE)
|
||||||
; LD C,5
|
; LD C,Dss.DRV.Read
|
||||||
; RST #18
|
; RST ToDSS.DRV
|
||||||
; JP C,RDERR1
|
; JP C,RDERR1
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD (FATCASH),HL
|
LD (FATCASH),HL
|
||||||
@ -443,7 +443,7 @@ FatBuffer:
|
|||||||
|
|
||||||
;
|
;
|
||||||
DIRSPEC: DB '\'
|
DIRSPEC: DB '\'
|
||||||
BLOCK DIRSPEC.DEPTH,0 ;????? <20>ë«® 255, ã ‘ ©¬ 256
|
BLOCK DIRSPEC.DEPTH-1,0 ;????? <20>ë«® 255, ã ‘ ©¬ 256
|
||||||
;
|
;
|
||||||
|
|
||||||
;R11
|
;R11
|
||||||
|
|||||||
@ -53,7 +53,6 @@ INC_FA2 CALL R_F_FAT
|
|||||||
|
|
||||||
; HL - CLUSTER
|
; HL - CLUSTER
|
||||||
; DE - (CLUSTER)
|
; DE - (CLUSTER)
|
||||||
|
|
||||||
R_F_FAT EX DE,HL
|
R_F_FAT EX DE,HL
|
||||||
LD HL,(MAX_CLU)
|
LD HL,(MAX_CLU)
|
||||||
AND A
|
AND A
|
||||||
@ -229,7 +228,8 @@ W_T_FAT PUSH DE
|
|||||||
LD A,(FatBuffer.FAT_TYP)
|
LD A,(FatBuffer.FAT_TYP)
|
||||||
CP "2"
|
CP "2"
|
||||||
JP Z,W_T_F12
|
JP Z,W_T_F12
|
||||||
W_T_F16 PUSH DE
|
W_T_F16:
|
||||||
|
PUSH DE
|
||||||
LD A,H
|
LD A,H
|
||||||
LD B,A
|
LD B,A
|
||||||
AND #0F
|
AND #0F
|
||||||
@ -327,19 +327,17 @@ RE_FAT PUSH HL
|
|||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
ADD HL,HL ;FAT BLOCK * 16 = SECTOR OF FAT
|
ADD HL,HL ;FAT BLOCK * 16 = SECTOR OF FAT
|
||||||
LD DE,(FatBuffer.FAT_FRM)
|
LD DE,(FatBuffer.FAT_FRM)
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD IX,0
|
LD IX,0
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD HL,0 ;HL:IX - SECTOR FAT FOR READING
|
LD HL,0 ;HL:IX - SECTOR FAT FOR READING
|
||||||
LD DE,FAT ; DE - FAT ADDRESS
|
LD DE,FAT ; DE - FAT ADDRESS
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
; LD B,16
|
LD BC,16*256 + Dss.DRV.Read ;ॣ B: 16 * 512 = 8192 (CASH SIZE)
|
||||||
; LD C,5
|
RST ToDSS.DRV
|
||||||
LD BC,16*256 + 5 ;ॣ B: 16 * 512 = 8192 (CASH SIZE)
|
|
||||||
RST #18
|
|
||||||
POP HL
|
POP HL
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -388,10 +386,10 @@ WALLFAT LD H,B
|
|||||||
LD HL,0 ;HL:IX - SECTOR OF FAT FOR SAVE
|
LD HL,0 ;HL:IX - SECTOR OF FAT FOR SAVE
|
||||||
LD DE,FAT
|
LD DE,FAT
|
||||||
LD B,A
|
LD B,A
|
||||||
LD C,6
|
LD C,Dss.DRV.Write
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
PUSH BC
|
PUSH BC
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
POP BC
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
LD DE,(FatBuffer.FAT2_XX)
|
LD DE,(FatBuffer.FAT2_XX)
|
||||||
@ -402,8 +400,8 @@ WALLFAT LD H,B
|
|||||||
LD DE,FAT
|
LD DE,FAT
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD A,(FatBuffer.DRIVE)
|
LD A,(FatBuffer.DRIVE)
|
||||||
LD C,6
|
LD C,Dss.DRV.Write
|
||||||
RST #18
|
RST ToDSS.DRV
|
||||||
RET
|
RET
|
||||||
;R01
|
;R01
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ RESERVED2 BLOCK 490,0
|
|||||||
;
|
;
|
||||||
|
|
||||||
;File Manipulator (FM)
|
;File Manipulator (FM)
|
||||||
STRUCT _sFM ; 44 bytes
|
STRUCT _sFM ; 44 bytes
|
||||||
.NAME: TEXT 8,{". "," "} ;+00 NAME
|
.NAME: TEXT 8,{". "," "} ;+00 NAME
|
||||||
.EXT: TEXT 3,{" "," "} ;+08 EXT
|
.EXT: TEXT 3,{" "," "} ;+08 EXT
|
||||||
.ATTRIBUT: BYTE #10 ;+11 ATTRIBUT
|
.ATTRIBUT: BYTE #10 ;+11 ATTRIBUT
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 6e9cb7fd969b98df5cc98ec109bab2be59d46208
|
Subproject commit ced877c153d64941d9ab3a1808d21bc559113e4b
|
||||||
Loading…
Reference in New Issue
Block a user