1240 lines
19 KiB
Plaintext
1240 lines
19 KiB
Plaintext
|
||
; LAST UPDATE: 27.04.2025 savelij
|
||
|
||
;[]----------------------------------------------------------[]
|
||
PrintDisks LD L,(IY + PANEL.XL)
|
||
LD H,(IY + PANEL.XH)
|
||
INC HL
|
||
INC HL
|
||
LD (.DiskX1),HL
|
||
LD DE,0x0004
|
||
ADD HL,DE
|
||
LD (.DiskX2),HL
|
||
LD DE,0x0006
|
||
ADD HL,DE
|
||
LD (.NameX),HL
|
||
LD A,'A'
|
||
LD (.DISK),A
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
SUB 'A'
|
||
LD C,A
|
||
LD A,(NUM_DEVICES)
|
||
LD B,A
|
||
.L1 LD A,C
|
||
OR A
|
||
LD DE,(COLORP.BLACK + COLORI.BLACKGRAY) << 8 | (COLORP.BLACKGRAY + COLORI.YELLOW)
|
||
JR Z,.L2
|
||
LD DE,(COLORP.BLACK + COLORI.HIGHGRAY) << 8 | (COLORP.HIGHGRAY + COLORI.BLACK)
|
||
.L2 LD A,D
|
||
LD (.ColRect),A
|
||
LD A,E
|
||
LD (.ColName),A
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_BUTTON 0,30,28,12
|
||
.DiskX1 EQU $ - 8
|
||
.LnDiskX EQU $ - 4
|
||
W_FILL 0,32,20,8,COLORI.BLACK
|
||
.DiskX2 EQU $ - 9
|
||
.ColRect EQU $ - 1
|
||
W_TEXT 0,32,COLORI.BLACK," "
|
||
.NameX EQU $ - 7
|
||
.ColName EQU $ - 3
|
||
.DISK EQU $ - 2
|
||
W_END
|
||
LD HL,(.DiskX1)
|
||
LD DE,(.LnDiskX)
|
||
ADD HL,DE
|
||
LD (.DiskX1),HL
|
||
LD HL,(.DiskX2)
|
||
ADD HL,DE
|
||
LD (.DiskX2),HL
|
||
LD HL,(.NameX)
|
||
ADD HL,DE
|
||
LD (.NameX),HL
|
||
LD HL,.DISK
|
||
INC (HL)
|
||
DEC C
|
||
DJNZ .L1
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
PrintPath BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
|
||
LD A,COLORP.BLACK + COLORI.BLACK
|
||
LD C,COLORP.BLACK + COLORI.WHITE
|
||
JR NZ,.L1
|
||
LD A,COLORP.BLACK + COLORI.BLACKGRAY
|
||
LD C,COLORP.BLACKGRAY + COLORI.WHITE
|
||
.L1 LD (.HeadCol),A
|
||
LD A,C
|
||
LD (.PathCol),A
|
||
LD L,(IY + PANEL.XL)
|
||
LD H,(IY + PANEL.XH)
|
||
LD (.PanelHX),HL
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_FILL 0,46,310,12,COLORI.BLACK
|
||
.PanelHX EQU $ - 9
|
||
.HeadCol EQU $ - 1
|
||
W_END
|
||
|
||
PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
PUSH HL
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L2 LDI
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L3
|
||
LD (DE),A
|
||
INC DE
|
||
.L3 POP HL
|
||
SUB A
|
||
LD (DE),A
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,.PrPath1
|
||
LD BC,0x000D
|
||
SBC HL,BC
|
||
BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
|
||
JR NZ,.L4
|
||
LD HL,NORMmask
|
||
.L4 LDIR
|
||
.PrPath1 LD IX,300
|
||
LD HL,(.PanelHX)
|
||
LD DE,WorkBuffer
|
||
LD BC,0x0006
|
||
ADD HL,BC
|
||
EX DE,HL
|
||
LD C,0x30
|
||
LD A,0x00
|
||
.PathCol EQU $-1
|
||
JP PrnRangPathL
|
||
|
||
;[]----------------------------------------------------------[]
|
||
PrintDOSPath PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L2
|
||
LD (DE),A
|
||
INC DE
|
||
.L2 LD A,'>'
|
||
LD (DE),A
|
||
INC DE
|
||
SUB A
|
||
LD (DE),A
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_FILL 4,231,246,8,COLORI.HIGHGRAY
|
||
W_END
|
||
|
||
LD IX,246
|
||
LD HL,WorkBuffer
|
||
LD DE,250
|
||
LD BC,231
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
JP PrnRangPathR
|
||
|
||
;[]----------------------------------------------------------[]
|
||
PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JP NZ,PrnTreeInfo ;Tree
|
||
LD A,(IY + PANEL.MFL)
|
||
OR (IY + PANEL.MFH)
|
||
JP NZ,PrnSelInfo
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU1,,0
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL ; *10
|
||
ADD HL,DE ; *18
|
||
SET 6,H ; | 0x4000
|
||
LD DE,WorkBuffer
|
||
LD BC,FileHDR.SIZE
|
||
CALL MoveBytes
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer + FileHDR.SIZE;0x18
|
||
LD B,38
|
||
LD A,' '
|
||
.L2 LD (HL),A
|
||
INC HL
|
||
DJNZ .L2
|
||
LD (HL),0x00
|
||
LD IX,WorkBuffer
|
||
LD HL,WorkBuffer+1
|
||
LD A,(HL)
|
||
OR A
|
||
JR Z,PrntFI
|
||
LD DE,WorkBuffer + FileHDR.SIZE;0x18
|
||
LD B,0x08
|
||
.EFI0 LD A,(HL)
|
||
CP ' '
|
||
JR Z,.EFI1
|
||
INC HL
|
||
LD (DE),A
|
||
INC DE
|
||
DJNZ .EFI0
|
||
.EFI1 LD A,B
|
||
OR A
|
||
JR Z,.L3
|
||
.L4 INC HL
|
||
DJNZ .L4
|
||
.L3 LD B,0x03
|
||
INC HL
|
||
LD A,(HL)
|
||
CP ' '
|
||
JR NZ,.EFI3
|
||
.EFI2 LD A,(HL)
|
||
INC HL
|
||
LD (DE),A
|
||
INC DE
|
||
DJNZ .EFI2
|
||
.EFI3 LD A,B
|
||
OR A
|
||
JR Z,.EndFI
|
||
LD A,'.'
|
||
LD (DE),A
|
||
INC DE
|
||
.EFI4 LD A,(HL)
|
||
INC HL
|
||
LD (DE),A
|
||
INC DE
|
||
DJNZ .EFI4
|
||
.EndFI LD DE,WorkBuffer + FileHDR.SIZE + FileHDR.Zero;0x18 + 0x0D
|
||
CALL GetFileLen
|
||
LD DE,WorkBuffer + FileHDR.SIZE + FileHDR.SIZE;0x18+0x18
|
||
CALL GetData
|
||
INC DE
|
||
CALL GetTime
|
||
PrntFI LD HL,WorkBuffer + FileHDR.SIZE;0x18
|
||
LD E,(IY+PANEL.XL)
|
||
LD D,(IY+PANEL.XH)
|
||
INC DE
|
||
INC DE
|
||
INC DE
|
||
INC DE
|
||
LD BC,215
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
JP PrnTxtLnNorm
|
||
|
||
GetFileLen BIT DIR.B_Dir,(IX + FileHDR.Attr)
|
||
JP NZ,PDirectory
|
||
RES DIR.B_Device,(IX + FileHDR.Attr)
|
||
LD HL,GetLenExit
|
||
LD (ChooseStringFormat.address),HL
|
||
LD L,(IX + FileHDR.SizeBytes)
|
||
LD H,(IX + FileHDR.SizeBytes + 1)
|
||
EXX
|
||
LD L,(IX + FileHDR.SizeBytes + 2)
|
||
LD H,(IX + FileHDR.SizeBytes + 3)
|
||
EXX
|
||
JP ConvNumTxt32_Shared
|
||
|
||
GetLenExit CP 0x30
|
||
JR Z,.L1
|
||
SET DIR.B_Device,(IX + FileHDR.Attr)
|
||
.L1 BIT DIR.B_Device,(IX + FileHDR.Attr)
|
||
JR NZ,.L2
|
||
LD A,0x20
|
||
.L2 LD (DE),A
|
||
INC DE
|
||
RET
|
||
|
||
PDirectory LD HL,DirText
|
||
LD BC,0x000A
|
||
LDIR
|
||
RET
|
||
|
||
DirText DEFB " <DIR> "
|
||
|
||
; <20><><EFBFBD><EFBFBD>
|
||
GetData EX DE,HL
|
||
LD A,(IX + FileHDR.Date)
|
||
CALL Get8Bit
|
||
LD (HL),'.'
|
||
INC HL
|
||
LD A,(IX + FileHDR.Month)
|
||
CALL Get8Bit
|
||
LD (HL),'.'
|
||
INC HL
|
||
LD A,(IX + FileHDR.Year) ;<3B><><EFBFBD>
|
||
CALL Get8Bit
|
||
EX DE,HL
|
||
RET
|
||
|
||
; <20>६<EFBFBD>
|
||
GetTime EX DE,HL
|
||
LD A,(IX + FileHDR.Hours) ;<3B><><EFBFBD><EFBFBD>
|
||
CALL Get8Bit
|
||
LD (HL),':'
|
||
INC HL
|
||
LD A,(IX + FileHDR.Minutes)
|
||
CALL Get8Bit
|
||
EX DE,HL
|
||
RET
|
||
|
||
Get8Bit LD B,'0' - 1
|
||
.L1 INC B
|
||
SUB 10
|
||
JR NC,.L1
|
||
ADD A,10
|
||
LD (HL),B
|
||
INC HL
|
||
ADD A,'0'
|
||
LD (HL),A
|
||
INC HL
|
||
RET
|
||
|
||
PrnTreeInfo
|
||
IF TREE_REZID
|
||
CALL RESIDENT.MakeTreePath
|
||
ELSE
|
||
CALL MakeTreePathR
|
||
ENDIF
|
||
EX DE,HL
|
||
PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
INC HL
|
||
INC HL
|
||
EX DE,HL
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD (DE),A
|
||
CALL PrintPath
|
||
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
JP NZ,PrintDOSPath
|
||
RET
|
||
|
||
PrnSelInfo LD L,(IY+PANEL.MBL1)
|
||
LD H,(IY+PANEL.MBH1)
|
||
LD C,(IY+PANEL.MBL2)
|
||
LD B,(IY+PANEL.MBH2)
|
||
LD A,(IY+PANEL.MBL3) ; [ ] FAT32
|
||
LD DE,WorkBuffer
|
||
CALL ConvNumTxt40 ; [ ] fat32
|
||
LD HL,CrSizeT
|
||
LD BC,0x000A
|
||
LDIR
|
||
LD L,(IY+PANEL.MFL)
|
||
LD H,(IY+PANEL.MFH)
|
||
CALL ConvNumTxt16
|
||
LD HL,CrSelT
|
||
LD BC,0x000F
|
||
LDIR
|
||
LD A,E
|
||
LD DE,WorkBuffer+0x100
|
||
LD C,A
|
||
SUB 38
|
||
NEG
|
||
SRL A
|
||
LD B,A
|
||
JR Z,.PrSelI1
|
||
LD A,0x20
|
||
.L1 LD (DE),A
|
||
INC E
|
||
DJNZ .L1
|
||
.PrSelI1 LD HL,WorkBuffer
|
||
LDIR
|
||
LD A,38
|
||
SUB E
|
||
JR Z,.PrSelI2
|
||
LD B,A
|
||
LD A,0x20
|
||
.L2 LD (DE),A
|
||
INC E
|
||
DJNZ .L2
|
||
.PrSelI2 SUB A
|
||
LD (DE),A
|
||
LD HL,WorkBuffer+0x100
|
||
LD E,(IY+PANEL.XL)
|
||
LD D,(IY+PANEL.XH)
|
||
INC DE
|
||
INC DE
|
||
INC DE
|
||
INC DE
|
||
LD BC,215
|
||
LD A,COLORP.HIGHGRAY + COLORI.BLACK
|
||
JP PrnTxtLnNorm
|
||
|
||
CrSizeT DEFB " bytes in "
|
||
CrSelT DEFB " selected files"
|
||
|
||
;[]----------------------------------------------------------[]
|
||
PrintDIR LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
JR NZ,PrnDIRECT
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
INC HL
|
||
INC HL
|
||
LD (.ClrDIR1),HL
|
||
LD HL,308
|
||
LD DE,141
|
||
LD A,(IY+PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
JR Z,.L1
|
||
LD HL,292
|
||
LD DE,149
|
||
.L1 LD (.H),HL
|
||
LD (.V),DE
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_FILL 0,60,0,0,COLORI.PANEL
|
||
.ClrDIR1 EQU $ - 9
|
||
.H EQU $ - 5
|
||
.V EQU $ - 3
|
||
W_END
|
||
RET
|
||
|
||
PrnDIRECT BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
|
||
JP NZ,PrintFULL
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JP NZ,PrintTREE
|
||
; <20><><EFBFBD>⪨<EFBFBD> ᯨ᮪
|
||
PUSH IY
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU1,,0
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL ; *10
|
||
ADD HL,DE ; *18
|
||
SET 6,H ; | 0x4000
|
||
LD DE,WorkBuffer
|
||
LD BC,0x33 * FileHDR.SIZE;0x18
|
||
CALL MoveBytes
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
GETPORT WINSP.Y_PORT ; <20><><EFBFBD>࠭塞 Y <20><><EFBFBD><EFBFBD>
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD HL,WorkBuffer
|
||
PUSH HL
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD HL,PositTABLeft
|
||
JR Z,.L2
|
||
LD HL,PositTABRight
|
||
.L2 LD B,0x33
|
||
.PrnDIR1 LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
INC HL
|
||
LD C,(HL)
|
||
INC HL
|
||
EX (SP),HL
|
||
PUSH HL
|
||
PUSH BC
|
||
LD B,0x0C
|
||
CALL PrintName
|
||
POP BC
|
||
POP HL
|
||
LD DE,0x0019
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
JR Z,PrnDIR2
|
||
EX (SP),HL
|
||
DJNZ .PrnDIR1
|
||
JR PrnDIRe
|
||
|
||
PrnDIR2 DEC B
|
||
JR Z,PrnDIRe
|
||
LD HL,EmptyFile
|
||
EX (SP),HL
|
||
PrnDIR3 LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
INC HL
|
||
LD C,(HL)
|
||
INC HL
|
||
EX (SP),HL
|
||
PUSH HL
|
||
PUSH BC
|
||
LD B,0x0C
|
||
CALL PrintName
|
||
POP BC
|
||
POP HL
|
||
EX (SP),HL
|
||
DJNZ PrnDIR3
|
||
PrnDIRe POP HL
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
RET
|
||
|
||
EmptyFile DB 0x00," ",0x01," ",0x00
|
||
|
||
; <20><><EFBFBD><EFBFBD><E0AEA1><EFBFBD> ᯨ᮪
|
||
PrintFULL PUSH IY
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU1,,0
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL ; *10
|
||
ADD HL,DE ; *18
|
||
SET 6,H ; | 0x4000
|
||
LD DE,WorkBuffer
|
||
LD BC,0x12 * FileHDR.SIZE;0x18
|
||
CALL MoveBytes
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
GETPORT WINSP.Y_PORT ; <20><><EFBFBD>࠭塞 Y <20><><EFBFBD><EFBFBD>
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD HL,WorkBuffer
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD DE,8
|
||
JR Z,.L2
|
||
LD DE,328
|
||
.L2 LD BC,0x123F
|
||
.PrnDIRp PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
PUSH HL
|
||
LD DE,WorkBuffer+0x200
|
||
LD BC,0x000D
|
||
LDIR
|
||
LD A,0x01
|
||
LD (DE),A
|
||
INC DE
|
||
POP IX
|
||
BIT DIR.B_Dir,(IX + FileHDR.Attr)
|
||
CALL NZ,PutDIRTxt
|
||
CALL Z,GetFileLen
|
||
LD A,0x01
|
||
LD (DE),A
|
||
INC DE
|
||
CALL GetData
|
||
LD A,0x01
|
||
LD (DE),A
|
||
INC DE
|
||
CALL GetTime
|
||
POP BC
|
||
POP DE
|
||
POP HL
|
||
PUSH DE
|
||
PUSH BC
|
||
PUSH HL
|
||
LD HL,WorkBuffer+0x200
|
||
LD B,0x26
|
||
CALL PrintName
|
||
POP HL
|
||
LD BC,0x0019
|
||
ADD HL,BC
|
||
POP BC
|
||
LD A,C
|
||
ADD A,0x08
|
||
LD C,A
|
||
POP DE
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
JR Z,.PrnDIRp2
|
||
DJNZ .PrnDIRp
|
||
JR .PrnDIRpE
|
||
|
||
.PrnDIRp2 DEC B
|
||
JR Z,.PrnDIRpE
|
||
LD HL,EmptyFile1
|
||
.PrnDIRp3 PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
LD B,0x26
|
||
CALL PrintName
|
||
POP BC
|
||
LD A,C
|
||
ADD A,0x08
|
||
LD C,A
|
||
POP DE
|
||
POP HL
|
||
DJNZ .PrnDIRp3
|
||
.PrnDIRpE POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
RET
|
||
|
||
PutDIRTxt EX AF,AF'
|
||
LD HL,DIRt1
|
||
LD A,(IX + FileHDR.Name)
|
||
CP '.'
|
||
JR Z,.L1
|
||
LD HL,DIRt2
|
||
.L1 LD BC,0x000A
|
||
LDIR
|
||
EX AF,AF'
|
||
RET
|
||
|
||
DIRt1 DEFB 0x20,0x10,"UP--DIR",0x11
|
||
DIRt2 DEFB 0x20,0x10,"SUB-DIR",0x11
|
||
|
||
EmptyFile1 DEFB 0x00," "
|
||
DEFB 0x01," "
|
||
DEFB 0x01," "
|
||
DEFB 0x01," "
|
||
DEFB 0x01," "
|
||
|
||
; <20><>ॢ<EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD>
|
||
PrintTREE
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer
|
||
LD B,0x18
|
||
LD A,0x80
|
||
PUSH HL
|
||
.L2 LD (HL),A
|
||
INC L
|
||
DJNZ .L2
|
||
POP DE
|
||
LD HL,0x4000
|
||
LD C,(IY+PANEL.FFL)
|
||
LD B,(IY+PANEL.FFH)
|
||
LD A,B
|
||
OR C
|
||
JR Z,.PrDIRb2
|
||
.PrDIRb1 PUSH BC
|
||
LD A,(HL)
|
||
AND 0x7F
|
||
LD E,A
|
||
LD A,(HL)
|
||
LD (DE),A
|
||
LD BC,0x0010
|
||
ADD HL,BC
|
||
POP BC
|
||
DEC BC
|
||
LD A,B
|
||
OR C
|
||
JR NZ,.PrDIRb1
|
||
.PrDIRb2 LD DE,WorkBuffer+0x100
|
||
LD BC,0x12*0x10
|
||
CALL MoveBytes
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
GETPORT WINSP.Y_PORT ; <20><><EFBFBD>࠭塞 Y <20><><EFBFBD><EFBFBD>
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD HL,WorkBuffer+0x100
|
||
LD DE,10
|
||
JR Z,.L3
|
||
LD DE,330
|
||
.L3 LD BC,0x123F
|
||
.PrnDIRt PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
LD DE,WorkBuffer+0x300
|
||
CALL MakeTreeLine
|
||
POP BC
|
||
POP DE
|
||
POP HL
|
||
PUSH DE
|
||
PUSH BC
|
||
PUSH HL
|
||
LD HL,WorkBuffer+0x300
|
||
LD B,0x24
|
||
PUSH IY
|
||
CALL PrintName
|
||
POP IY
|
||
POP HL
|
||
LD BC,0x000F
|
||
ADD HL,BC
|
||
POP BC
|
||
LD A,C
|
||
ADD A,0x08
|
||
LD C,A
|
||
POP DE
|
||
LD A,(HL)
|
||
INC HL
|
||
INC A
|
||
JR Z,.PrnDIRt2
|
||
DEC B
|
||
JP NZ,.PrnDIRt
|
||
JR .PrnDIRtE
|
||
|
||
.PrnDIRt2 DEC B
|
||
JR Z,.PrnDIRtE
|
||
LD HL,EmptyFile2
|
||
PUSH IY
|
||
.PrnDIRt3 PUSH HL
|
||
PUSH DE
|
||
PUSH BC
|
||
LD B,0x24
|
||
CALL PrintName
|
||
POP BC
|
||
LD A,C
|
||
ADD A,0x08
|
||
LD C,A
|
||
POP DE
|
||
POP HL
|
||
DJNZ .PrnDIRt3
|
||
POP IY
|
||
.PrnDIRtE POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
RET
|
||
|
||
MakeTreeLine SUB A
|
||
LD (DE),A
|
||
INC E
|
||
LD C,(HL)
|
||
INC HL
|
||
LD A,(HL)
|
||
INC HL
|
||
LD IXL,A
|
||
LD A,' '
|
||
LD (DE),A
|
||
INC E
|
||
INC C
|
||
DEC C ; r.C=0 "\"
|
||
JR Z,.MTreeL2
|
||
PUSH HL
|
||
LD A,C
|
||
AND 0x7F
|
||
LD B,A
|
||
LD HL,WorkBuffer
|
||
PUSH HL
|
||
LD L,A
|
||
LD (HL),C
|
||
POP HL
|
||
DEC B
|
||
JR Z,.MTreeL1
|
||
.MTreeL0 INC HL
|
||
BIT 7,(HL)
|
||
LD A,0xB3
|
||
JR Z,.L1
|
||
LD A,' '
|
||
.L1 LD (DE),A
|
||
INC E
|
||
BIT VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,.L2
|
||
LD A,' '
|
||
LD (DE),A
|
||
INC E
|
||
.L2 DJNZ .MTreeL0
|
||
.MTreeL1 BIT 7,C
|
||
LD A,0xC3
|
||
JR Z,.L3
|
||
LD A,0xC0
|
||
.L3 LD (DE),A
|
||
INC E
|
||
BIT VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,.L4
|
||
LD A,0xC4
|
||
LD (DE),A
|
||
INC E
|
||
.L4 POP HL
|
||
.MTreeL2 LD A,IXL
|
||
BIT 1,A
|
||
JR Z,.MTreeL3
|
||
BIT VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,.L5
|
||
DEC E
|
||
.L5 LD A,0xDD
|
||
LD (DE),A
|
||
INC E
|
||
LD A,IXL
|
||
.MTreeL3 BIT 0,A
|
||
LD A,0x02
|
||
JR NZ,.L6
|
||
INC A
|
||
.L6 LD (DE),A
|
||
INC E
|
||
SUB A
|
||
.L7 LDI
|
||
CP (HL)
|
||
JR NZ,.L7
|
||
LD A,0x03
|
||
LD (DE),A
|
||
INC E
|
||
LD A,IXL
|
||
BIT 1,A
|
||
JR Z,.MTreeL5
|
||
LD A,0xDE
|
||
LD (DE),A
|
||
INC E
|
||
.MTreeL5 LD A,0x28
|
||
SUB E
|
||
JR Z,.MTreeL6
|
||
JR C,.MTreeL6
|
||
LD B,A
|
||
LD A,0x20
|
||
.L8 LD (DE),A
|
||
INC E
|
||
DJNZ .L8
|
||
.MTreeL6 LD A,IXL
|
||
BIT 0,A
|
||
RET Z
|
||
LD E,0x26
|
||
LD A,0x02
|
||
LD (DE),A
|
||
INC E
|
||
LD A,0x11
|
||
LD (DE),A
|
||
RET
|
||
|
||
EmptyFile2 DEFB 0x00
|
||
DB 0x24 DUP ' '
|
||
|
||
InsPrnColor LD HL,PrnINKd1 ; INK <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD DE,PrnPAPd1 ; PAPER <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
PUSH BC
|
||
LD A,B
|
||
PUSH AF
|
||
AND 0x0F ; INK
|
||
LD C,A
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
OR C
|
||
CPL
|
||
LD B,0x08
|
||
.L1 LD (HL),A
|
||
INC HL
|
||
DJNZ .L1
|
||
LD B,A
|
||
POP AF
|
||
AND 0xF0 ; PAPER
|
||
LD C,A
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
OR C
|
||
XOR B ; XOR <20> INK
|
||
LD B,0x08
|
||
.L2 LD (DE),A
|
||
INC DE
|
||
DJNZ .L2
|
||
POP BC
|
||
LD HL,PrnINKd2 ; INK <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD DE,PrnPAPd2 ; PAPER <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD A,C
|
||
PUSH AF
|
||
AND 0x0F ; INK
|
||
LD C,A
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
OR C
|
||
CPL
|
||
LD B,0x08
|
||
.L3 LD (HL),A
|
||
INC HL
|
||
DJNZ .L3
|
||
LD B,A
|
||
POP AF
|
||
AND 0xF0 ; PAPER
|
||
LD C,A
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
OR C
|
||
XOR B ; XOR <20> INK
|
||
LD B,0x08
|
||
.L4 LD (DE),A
|
||
INC DE
|
||
DJNZ .L4
|
||
RET
|
||
|
||
PrnINKd1 DB 8 DUP 0
|
||
PrnPAPd1 DB 8 DUP 0
|
||
PrnINKd2 DB 8 DUP 0
|
||
PrnPAPd2 DB 8 DUP 0
|
||
|
||
PrintName LD IYL,C ; Y <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD>
|
||
LD A,(HL)
|
||
INC HL
|
||
PUSH DE
|
||
EXX
|
||
LD HL,PrnPAPd1 ; INK <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD DE,PrnINKd1 ; PAPER <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
OR A
|
||
JR Z,.L1
|
||
LD HL,PrnPAPd2 ; INK <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD DE,PrnINKd2 ; PAPER <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
.L1 POP BC
|
||
SRL B
|
||
RR C
|
||
SET 6,B
|
||
EXX
|
||
DI
|
||
GETPORT WINSP.CPU0
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFONT)
|
||
SETPORT WINSP.CPU0,,0
|
||
LD A,B
|
||
LD C,L ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
||
LD B,H
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD H,0x08
|
||
ACCEL ACCELCMD.OFF
|
||
.L2 EX AF,AF'
|
||
LD A,(BC)
|
||
INC BC
|
||
CP 0x03
|
||
JR NZ,.L3
|
||
EXX
|
||
LD HL,PrnPAPd1 ; INK <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD DE,PrnINKd1 ; PAPER <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
EXX
|
||
JR .L5
|
||
|
||
.L3 CP 0x02
|
||
JR NZ,.L4
|
||
EXX
|
||
LD HL,PrnPAPd2 ; INK <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
LD DE,PrnINKd2 ; PAPER <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
EXX
|
||
.L5 LD A,(BC)
|
||
INC BC
|
||
.L4 PUSH BC
|
||
CP 0x01
|
||
LD B,0x04
|
||
JR NZ,.L6
|
||
LD B,0x02
|
||
LD A,0x20
|
||
.L6 LD L,A
|
||
LD H,HIGH (IFFFONT_RAW)-0xC0
|
||
LD E,(HL)
|
||
INC H
|
||
LD A,(HL)
|
||
ADD A,HIGH (IFFFONT_RAW)-0xC0
|
||
LD D,A
|
||
LD HL,0x0008
|
||
EX DE,HL
|
||
.L7
|
||
ACCEL ACCELCMD.COPY
|
||
LD A,(HL)
|
||
ACCEL ACCELCMD.OFF
|
||
EXX
|
||
LD A,IYL
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.COPY
|
||
OR (HL)
|
||
EX DE,HL
|
||
XOR (HL)
|
||
ACCEL ACCELCMD.COPY_VERT
|
||
LD (BC),A
|
||
ACCEL ACCELCMD.OFF
|
||
EX DE,HL
|
||
INC BC
|
||
EXX
|
||
ADD HL,DE
|
||
DJNZ .L7
|
||
POP BC
|
||
EX AF,AF'
|
||
DEC A
|
||
JR NZ,.L2
|
||
POP AF
|
||
SETPORT WINSP.CPU0,,0
|
||
EI
|
||
RET
|
||
|
||
PositTABLeft
|
||
.COUNT := 63
|
||
REPT 17
|
||
DW 10
|
||
DB .COUNT
|
||
.COUNT := .COUNT + 8
|
||
ENDM
|
||
.COUNT := 63
|
||
REPT 17
|
||
DW 114
|
||
DB .COUNT
|
||
.COUNT := .COUNT + 8
|
||
ENDM
|
||
.COUNT := 63
|
||
REPT 17
|
||
DW 218
|
||
DB .COUNT
|
||
.COUNT := .COUNT + 8
|
||
ENDM
|
||
|
||
PositTABRight
|
||
.COUNT := 63
|
||
REPT 17
|
||
DW 330
|
||
DB .COUNT
|
||
.COUNT := .COUNT + 8
|
||
ENDM
|
||
.COUNT := 63
|
||
REPT 17
|
||
DW 434
|
||
DB .COUNT
|
||
.COUNT := .COUNT + 8
|
||
ENDM
|
||
.COUNT := 63
|
||
REPT 17
|
||
DW 538
|
||
DB .COUNT
|
||
.COUNT := .COUNT + 8
|
||
ENDM
|
||
|
||
;[]----------------------------------------------------------[]
|
||
SetInvert BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
RET Z
|
||
LD HL,(COLORP.PANEL + COLORI.FILES) << 8 | (COLORP.PANEL + COLORI.SELECTFILES)
|
||
LD BC,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES)
|
||
JR PrnInvert
|
||
|
||
ResInvert BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
|
||
RET Z
|
||
LD HL,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES)
|
||
LD BC,(COLORP.PANEL + COLORI.FILES) << 8 | (COLORP.PANEL + COLORI.SELECTFILES)
|
||
PrnInvert LD A,(IY + PANEL.EFL)
|
||
OR (IY + PANEL.EFH)
|
||
RET Z
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JP NZ,PrnTreeInv
|
||
PUSH HL
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU1,,0
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL ; *10
|
||
ADD HL,DE ; *18
|
||
SET 6,H ; | 0xC000
|
||
LD E,(HL)
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
POP HL
|
||
LD A,E
|
||
OR A
|
||
LD E,B
|
||
LD D,H
|
||
JR Z,.L2
|
||
LD E,C
|
||
LD D,L
|
||
.L2 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG)
|
||
JR NZ,PrnInvertP
|
||
LD L,(IY + PANEL.CFL)
|
||
LD H,(IY + PANEL.CFH)
|
||
LD C,L
|
||
LD B,H
|
||
ADD HL,HL
|
||
ADD HL,BC
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD BC,PositTABLeft
|
||
JR Z,.L3
|
||
LD BC,PositTABRight
|
||
.L3 ADD HL,BC
|
||
PUSH DE
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
INC HL
|
||
LD C,(HL)
|
||
LD B,0x00
|
||
EX DE,HL
|
||
POP DE
|
||
LD IX,8 << 8 + 48
|
||
DEC HL
|
||
DEC HL
|
||
JP InvertRectan
|
||
|
||
PrnInvertP LD L,(IY + PANEL.CFL)
|
||
LD H,(IY + PANEL.CFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
LD BC,0x003F
|
||
ADD HL,BC
|
||
LD C,L
|
||
LD B,0x00
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD HL,6
|
||
JR Z,.L1
|
||
LD HL,326
|
||
.L1 LD IX,8 << 8 + 146
|
||
JP InvertRectan
|
||
|
||
PrnTreeInv PUSH HL
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L1
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L1
|
||
SETPORT WINSP.CPU1,,0
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
LD E,(IY + PANEL.CFL)
|
||
LD D,(IY + PANEL.CFH)
|
||
ADD HL,DE
|
||
ADD HL,HL ; *2
|
||
ADD HL,HL ; *4
|
||
ADD HL,HL ; *8
|
||
ADD HL,HL ; *10
|
||
SET 6,H ; | 0x4000
|
||
LD A,(HL)
|
||
EX AF,AF'
|
||
INC HL
|
||
LD A,(HL)
|
||
LD IXH,A
|
||
LD IXL,0xFF
|
||
.L2 INC IXL
|
||
INC HL
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,.L2
|
||
LD A,IXL
|
||
ADD A,A
|
||
ADD A,A
|
||
LD IXL,A
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
POP HL
|
||
LD A,IXH
|
||
OR A
|
||
LD E,B
|
||
LD D,H
|
||
JR Z,.L3
|
||
LD E,C
|
||
LD D,L
|
||
.L3 LD L,(IY+PANEL.CFL)
|
||
LD H,(IY+PANEL.CFH)
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
LD BC,0x003F
|
||
ADD HL,BC
|
||
LD C,L
|
||
LD B,0x00
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD HL,0x0012
|
||
JR Z,.L4
|
||
LD HL,0x0152
|
||
.L4 BIT VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
JR Z,.PrTreeI
|
||
EX AF,AF'
|
||
OR A
|
||
JR Z,.PrTreeI1
|
||
EX AF,AF'
|
||
LD A,IXH
|
||
OR A
|
||
JR Z,.PrTreeI
|
||
PUSH BC
|
||
LD C,0x08
|
||
ADD HL,BC
|
||
POP BC
|
||
.PrTreeI EX AF,AF'
|
||
.PrTreeI1 PUSH BC
|
||
AND 0x7F
|
||
LD C,A
|
||
SLA C
|
||
RL B
|
||
SLA C
|
||
RL B
|
||
SLA C
|
||
RL B
|
||
ADD HL,BC
|
||
BIT VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,.L5
|
||
ADD HL,BC
|
||
.L5 POP BC
|
||
LD IXH,0x08
|
||
JP InvertRectan
|