mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 09:21:46 +03:00
263 lines
3.3 KiB
Plaintext
263 lines
3.3 KiB
Plaintext
|
|
RETTR PUSH BC
|
|
LD DE,DIR
|
|
LD HL,0
|
|
LD IX,#0010
|
|
LD BC,#0105
|
|
LD A,(DRIVE)
|
|
RST #18
|
|
POP BC
|
|
JR C,CDAGAA
|
|
LD HL,DIR
|
|
LD A,(HL)
|
|
INC HL
|
|
CP #01
|
|
JR NZ,UNKCD
|
|
LD A,(HL)
|
|
INC HL
|
|
CP "C"
|
|
JR NZ,UNKCD
|
|
LD A,(HL)
|
|
INC HL
|
|
CP "D"
|
|
JR NZ,UNKCD
|
|
LD HL,DIR+#009E
|
|
LD DE,ROOTDIR
|
|
LDI
|
|
LDI
|
|
LDI
|
|
LDI
|
|
LD HL,DIR+#00A6
|
|
LD DE,ROOTLEN
|
|
LDI
|
|
LDI
|
|
LDI
|
|
LDI
|
|
POP AF
|
|
OUT (PAGE3),A
|
|
LD HL,0
|
|
LD (FATCASH),HL
|
|
XOR A
|
|
RET
|
|
|
|
LOADDIR XOR A
|
|
LD HL,0
|
|
LD IX,0
|
|
LD B,0
|
|
CALL MOVE_FP
|
|
LD A,DIRPAGE
|
|
CALL BANK
|
|
PUSH AF
|
|
LD B,3
|
|
LOADFFF PUSH BC
|
|
LD HL,#C000
|
|
LD DE,#C001
|
|
LD BC,#3FFF
|
|
LD (HL),L
|
|
LDIR
|
|
LD A,(DRIVE)
|
|
LD (IY+FDRV),A
|
|
; LD C,(IY+LEN1)
|
|
LD C,(IY+LEN2)
|
|
LD B,(IY+LEN3)
|
|
LD E,(IY+LEN4)
|
|
LD D,0
|
|
SRL D
|
|
RR E
|
|
RR B
|
|
RR C
|
|
SRL D
|
|
RR E
|
|
RR B
|
|
RR C
|
|
SRL D
|
|
RR E
|
|
RR B
|
|
RR C
|
|
LD E,(IY+CLU1)
|
|
LD D,(IY+CLU2)
|
|
LD L,(IY+CLU3)
|
|
LD H,(IY+CLU4)
|
|
LD HX,D
|
|
LD LX,E
|
|
LD B,C
|
|
LD A,B
|
|
OR A
|
|
JR Z,ERRLEND
|
|
CP #08
|
|
JR C,NORLEND
|
|
LD B,8
|
|
NORLEND LD A,(DRIVE)
|
|
LD C,5
|
|
LD DE,DIR
|
|
RST #18
|
|
POP BC
|
|
JR NC,LOADMMM
|
|
DEC B
|
|
JP NZ,LOADFFF
|
|
POP AF
|
|
OUT (PAGE3),A
|
|
SCF
|
|
LD A,20
|
|
RET
|
|
|
|
ERRLEND POP BC
|
|
POP AF
|
|
OUT (PAGE3),A
|
|
SCF
|
|
LD A,20
|
|
RET
|
|
|
|
LOADMMM POP AF
|
|
OUT (PAGE3),A
|
|
CALL CORRDIR
|
|
AND A
|
|
RET
|
|
|
|
CORRDIR LD A,DIRPAGE
|
|
CALL BANK
|
|
PUSH AF
|
|
LD HL,DIR
|
|
LD DE,DIR
|
|
CORRL1 PUSH DE
|
|
LD C,(HL)
|
|
LD B,0
|
|
LD DE,ENTRYBF
|
|
LDIR
|
|
POP DE
|
|
PUSH HL
|
|
LD HL,FCDFLEN
|
|
LD C,(HL)
|
|
LD B,0
|
|
ADD HL,BC
|
|
INC HL
|
|
LD (HL),0
|
|
SBC HL,BC
|
|
PUSH DE
|
|
CALL MASK
|
|
POP HL
|
|
LD BC,11
|
|
ADD HL,BC
|
|
LD A,(FCDFLAG)
|
|
AND 2
|
|
LD A,#00 ;ATTRIBUT FILE
|
|
JR Z,CORRL0
|
|
LD A,#10 ;ATTRIBUT DIRECTORY
|
|
CORRL0 LD (HL),A
|
|
INC HL
|
|
XOR A
|
|
LD B,8
|
|
FILLCDN LD (HL),A
|
|
INC HL
|
|
DJNZ FILLCDN
|
|
LD A,(FCDSEC+2)
|
|
LD (HL),A
|
|
INC HL
|
|
LD A,(FCDSEC+3)
|
|
LD (HL),A
|
|
INC HL
|
|
LD DE,#0000 ;TIME
|
|
LD (HL),E
|
|
INC HL
|
|
LD (HL),D
|
|
INC HL
|
|
LD DE,#0000 ;DATE
|
|
LD (HL),E
|
|
INC HL
|
|
LD (HL),D
|
|
INC HL
|
|
LD DE,(FCDSEC)
|
|
LD (HL),E
|
|
INC HL
|
|
LD (HL),D
|
|
INC HL
|
|
EX DE,HL
|
|
LD HL,FCDLEN
|
|
LDI
|
|
LDI
|
|
LDI
|
|
LDI
|
|
POP HL
|
|
BIT 7,H
|
|
JR Z,CORRL2
|
|
LD A,(HL)
|
|
OR A
|
|
JP NZ,CORRL1
|
|
LD L,0
|
|
INC H
|
|
JR Z,CORRL2
|
|
LD A,(HL)
|
|
OR A
|
|
JP NZ,CORRL1
|
|
CORRL2 XOR A
|
|
LD (DE),A
|
|
LD DE,(ROOTDIR+0)
|
|
LD L,(IY+CLU1)
|
|
LD H,(IY+CLU2)
|
|
AND A
|
|
SBC HL,DE
|
|
JR NZ,CORRL6
|
|
LD DE,(ROOTDIR+2)
|
|
LD L,(IY+CLU3)
|
|
LD H,(IY+CLU4)
|
|
AND A
|
|
SBC HL,DE
|
|
JR NZ,CORRL6
|
|
LD HL,DIR
|
|
LD A,(HL)
|
|
CP " "
|
|
JR NZ,CORRL4
|
|
LD (HL),#E5
|
|
LD BC,#0020
|
|
ADD HL,BC
|
|
LD A,(HL)
|
|
CP " "
|
|
JR NZ,CORRL4
|
|
LD (HL),#E5
|
|
JR CORRL4
|
|
CORRL6 LD HL,DIR
|
|
LD A,(HL)
|
|
CP " "
|
|
JR NZ,CORRL4
|
|
LD (HL),"."
|
|
LD BC,#0020
|
|
ADD HL,BC
|
|
LD A,(HL)
|
|
CP " "
|
|
JR NZ,CORRL4
|
|
LD (HL),"."
|
|
INC HL
|
|
LD (HL),"."
|
|
CORRL4 POP AF
|
|
OUT (PAGE3),A
|
|
AND A
|
|
RET
|
|
|
|
ENTRYBF
|
|
DEFB #00 ;Entry lenght
|
|
DEFB #00 ;XAR in LBN
|
|
FCDSEC DEFW #00,#00 ;Start sector (Intel)
|
|
DEFW #00,#00 ;Start sector (Motorola)
|
|
FCDLEN DEFW #00,#00 ;Lenght file (Intel)
|
|
DEFW #00,#00 ;Lenght file (Motorola)
|
|
FCDYEAR DEFB #00 ;Year
|
|
FCDMOUN DEFB #00 ;Mount
|
|
FCDDAY DEFB #00 ;Day
|
|
FCDHOUR DEFB #00 ;Hour
|
|
FCDMIN DEFB #00 ;Minute
|
|
FCDSECN DEFB #00 ;Second
|
|
DEFB #00 ;Reserve
|
|
FCDFLAG DEFB #00 ;Flag
|
|
DEFB #00 ;Interlive size
|
|
DEFB #00 ;Interlive skip factor
|
|
DEFW #0000 ;Volume Set Sequence (Intel)
|
|
DEFW #0000 ;Volume Set Sequence (Motorola)
|
|
FCDFLEN DEFB #00
|
|
DEFSA EQU $-ENTRYBF
|
|
FCDNAME DEFS #100-DEFSA
|
|
|
|
ROOTDIR DEFW 0,0
|
|
ROOTLEN DEFW 0,0
|
|
|
|
|