2085 lines
33 KiB
Plaintext
2085 lines
33 KiB
Plaintext
|
||
; LAST UPDATE: 24.06.2025 savelij
|
||
|
||
;[]===========================================================[]
|
||
CursUp LD A,(IY + PANEL.EFL)
|
||
OR (IY + PANEL.EFH)
|
||
RET Z
|
||
LD L,(IY + PANEL.CFL)
|
||
LD H,(IY + PANEL.CFH)
|
||
LD A,H
|
||
OR L
|
||
JR NZ,CursUp1
|
||
LD A,(IY + PANEL.FFL)
|
||
OR (IY + PANEL.FFH)
|
||
RET Z
|
||
JR ScrlDn1
|
||
|
||
CursUp1 DEC HL
|
||
PUSH HL
|
||
CALL ResInvert
|
||
POP HL
|
||
LD (IY + PANEL.CFL),L
|
||
LD (IY + PANEL.CFH),H
|
||
CALL SetInvert
|
||
JP PrnFileInfo
|
||
|
||
ScrollDown: LD A,(IY + PANEL.EFL)
|
||
OR (IY + PANEL.EFH)
|
||
RET Z
|
||
LD A,(IY + PANEL.FFL)
|
||
OR (IY + PANEL.FFH)
|
||
RET Z
|
||
ScrlDn1 BIT VIEWFLAG.B_FULL,(IY + PANEL.VIEWFLAG)
|
||
JP NZ,ScrlDnP
|
||
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
|
||
JP NZ,ScrlDnT
|
||
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.EFL)
|
||
LD H,(IY + PANEL.EFH)
|
||
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 - ¤à¥á ç « áâà ¨æë
|
||
PUSH HL
|
||
POP IX
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
DEC HL
|
||
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.Attr
|
||
PUSH HL
|
||
LDIR
|
||
POP HL
|
||
LD DE,0x18*0x11
|
||
ADD HL,DE
|
||
LD E,IXL
|
||
LD D,IXH
|
||
OR A
|
||
SBC HL,DE
|
||
ADD HL,DE
|
||
JR C,.L2
|
||
EX DE,HL
|
||
.L2 LD DE,WorkBuffer+0x10
|
||
LD C,0x0E
|
||
PUSH HL
|
||
LDIR
|
||
POP HL
|
||
LD DE,0x18*0x11
|
||
ADD HL,DE
|
||
LD E,IXL
|
||
LD D,IXH
|
||
OR A
|
||
SBC HL,DE
|
||
ADD HL,DE
|
||
JR C,.L3
|
||
EX DE,HL
|
||
.L3 LD DE,WorkBuffer+0x20
|
||
LD C,0x0E
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
CALL ResInvert
|
||
PUSH IY
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD L,(IY + PANEL.XL)
|
||
LD H,(IY + PANEL.XH)
|
||
LD DE,6
|
||
ADD HL,DE
|
||
LD DE,63 << 8 | 71
|
||
LD BC,128 << 8 | 46
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x01
|
||
LD BC,12 << 8 | 63
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
PUSH DE
|
||
CALL NZ,PrintName
|
||
POP HL
|
||
LD DE,104
|
||
ADD HL,DE
|
||
LD DE,63 << 8 | 71
|
||
LD BC,128 << 8 | 46
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x11
|
||
LD BC,12 << 8 | 63
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
PUSH DE
|
||
CALL NZ,PrintName
|
||
POP HL
|
||
LD DE,0x0068
|
||
ADD HL,DE
|
||
LD DE,63 << 8 | 71
|
||
LD BC,128 << 8 | 46
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x21
|
||
LD BC,12 << 8 | 63
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
CALL NZ,PrintName
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
LD L,(IY + PANEL.FFL)
|
||
LD H,(IY + PANEL.FFH)
|
||
DEC HL
|
||
LD (IY + PANEL.FFL),L
|
||
LD (IY + PANEL.FFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
JP PrnHScrBar
|
||
|
||
ScrlDnP
|
||
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)
|
||
DEC HL
|
||
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
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD IX,WorkBuffer
|
||
LD HL,WorkBuffer
|
||
LD DE,WorkBuffer+0x200
|
||
LD BC,0x000D
|
||
LDIR
|
||
LD A,0x01
|
||
LD (DE),A
|
||
INC DE
|
||
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
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
CALL ResInvert
|
||
PUSH IY
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD DE,4
|
||
ADD HL,DE
|
||
LD DE,63 << 8 | 71
|
||
LD BC,136 << 8 + 144
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x200
|
||
LD BC,38 << 8 + 63
|
||
CALL PrintName
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
DEC HL
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
JP PrnVScrBar
|
||
|
||
ScrlDnT
|
||
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)
|
||
DEC BC
|
||
LD A,B
|
||
OR C
|
||
JR Z,ScrDdn2
|
||
ScrDdn1 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,ScrDdn1
|
||
ScrDdn2 LD DE,WorkBuffer+0x100
|
||
LD BC,0x0010
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer+0x100
|
||
LD DE,WorkBuffer+0x200
|
||
CALL MakeTreeLine
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
CALL ResInvert
|
||
PUSH IY
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD DE,6
|
||
ADD HL,DE
|
||
LD DE,63 << 8 | 71
|
||
LD BC,136 << 8 | 144
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x200
|
||
LD BC,36 << 8 | 63
|
||
CALL PrintName
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
DEC HL
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
JP PrnVScrBar
|
||
|
||
;[]===========================================================[]
|
||
CursDown LD C,(IY+PANEL.EFL)
|
||
LD B,(IY+PANEL.EFH)
|
||
LD A,B
|
||
OR C
|
||
RET Z
|
||
LD L,(IY+PANEL.CFL)
|
||
LD H,(IY+PANEL.CFH)
|
||
INC HL
|
||
PUSH HL
|
||
LD E,(IY+PANEL.FFL)
|
||
LD D,(IY+PANEL.FFH)
|
||
ADD HL,DE
|
||
OR A
|
||
SBC HL,BC
|
||
POP HL
|
||
RET NC
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
OR A
|
||
SBC HL,DE
|
||
JR NC,ScrlUp1
|
||
ADD HL,DE
|
||
PUSH HL
|
||
CALL ResInvert
|
||
POP HL
|
||
LD (IY+PANEL.CFL),L
|
||
LD (IY+PANEL.CFH),H
|
||
CALL SetInvert
|
||
JP PrnFileInfo
|
||
|
||
ScrollUp: LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
ADD HL,DE
|
||
LD E,(IY+PANEL.EFL)
|
||
LD D,(IY+PANEL.EFH)
|
||
OR A
|
||
SBC HL,DE
|
||
RET NC
|
||
ScrlUp1 BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
|
||
JP NZ,ScrlUpP
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JP NZ,ScrlUpT
|
||
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 DE,0x0011
|
||
ADD HL,DE
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL
|
||
ADD HL,DE
|
||
SET 6,H
|
||
LD DE,WorkBuffer
|
||
LD BC,0x000E
|
||
PUSH HL
|
||
LDIR
|
||
POP HL
|
||
LD DE,0x18*0x11
|
||
ADD HL,DE
|
||
LD DE,WorkBuffer+0x10
|
||
LD C,0x0E
|
||
PUSH HL
|
||
LDIR
|
||
POP HL
|
||
LD DE,0x18*0x11
|
||
ADD HL,DE
|
||
LD DE,WorkBuffer+0x20
|
||
LD C,0x0E
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
CALL ResInvert
|
||
PUSH IY
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD DE,6
|
||
ADD HL,DE
|
||
LD DE,71 << 8 | 63
|
||
LD BC,128 << 8 | 46
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x01
|
||
LD BC,12 << 8 | 191
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
PUSH DE
|
||
CALL NZ,PrintName
|
||
POP HL
|
||
LD DE,0x0068
|
||
ADD HL,DE
|
||
LD D,0x3F+0x08
|
||
LD E,0x3F
|
||
LD BC,0x802E
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x11
|
||
LD BC,12 << 8 | 191
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
PUSH DE
|
||
CALL NZ,PrintName
|
||
POP HL
|
||
LD DE,104
|
||
ADD HL,DE
|
||
LD DE,71 << 8 | 63
|
||
LD BC,128 << 8 | 46
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x21
|
||
LD BC,12 << 8 | 191
|
||
LD A,(HL)
|
||
DEC HL
|
||
OR A
|
||
CALL NZ,PrintName
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
INC HL
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
JP PrnHScrBar
|
||
|
||
ScrlUpP
|
||
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 DE,0x0012
|
||
ADD HL,DE
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
LD E,L
|
||
LD D,H
|
||
ADD HL,HL
|
||
ADD HL,DE
|
||
SET 6,H
|
||
LD DE,WorkBuffer
|
||
LD BC,0x0018
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD IX,WorkBuffer
|
||
LD HL,WorkBuffer
|
||
LD DE,WorkBuffer+0x200
|
||
LD BC,0x000D
|
||
LDIR
|
||
LD A,0x01
|
||
LD (DE),A
|
||
INC DE
|
||
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
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
CALL ResInvert
|
||
PUSH IY
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD DE,4
|
||
ADD HL,DE
|
||
LD DE,71 << 8 | 63
|
||
LD BC,136 << 8 | 144
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x200
|
||
LD BC,38 << 8 | 199
|
||
CALL PrintName
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
INC HL
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
JP PrnVScrBar
|
||
|
||
ScrlUpT
|
||
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 L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
LD BC,0x0012
|
||
ADD HL,BC
|
||
LD C,L
|
||
LD B,H
|
||
LD HL,0x4000
|
||
ScrDup1 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,ScrDup1
|
||
LD DE,WorkBuffer+0x100
|
||
LD BC,0x0010
|
||
LDIR
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer+0x100
|
||
LD DE,WorkBuffer+0x200
|
||
CALL MakeTreeLine
|
||
LD B,COLORP.PANEL + COLORI.FILES
|
||
LD C,COLORP.PANEL + COLORI.SELECTFILES
|
||
CALL InsPrnColor
|
||
CALL ResInvert
|
||
PUSH IY
|
||
GETPORT WINSP.Y_PORT ; ‘®åà 塞 Y ¯®àâ
|
||
LD C,A
|
||
GETPORT WINSP.CPU1
|
||
LD B,A
|
||
PUSH BC
|
||
SETPORT WINSP.CPU1,0x50
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD DE,6
|
||
ADD HL,DE
|
||
LD DE,71 << 8 | 63
|
||
LD BC,136 << 8 | 144
|
||
PUSH HL
|
||
CALL ScrollDIRDownUp
|
||
POP DE
|
||
LD HL,WorkBuffer+0x200
|
||
LD BC,36 << 8 | 199
|
||
CALL PrintName
|
||
POP BC
|
||
LD A,B
|
||
SETPORT WINSP.CPU1,,0
|
||
LD A,C
|
||
SETPORT WINSP.Y_PORT,,0
|
||
POP IY
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
INC HL
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
JP PrnVScrBar
|
||
|
||
; <20> ¢å®¤:
|
||
; HL - X ¯®§¨æ¨ï
|
||
; D - Y ®âªã¤
|
||
; … - Y ªã¤
|
||
; B - ¢ëá®â
|
||
; C - è¨à¨
|
||
ScrollDIRDownUp:
|
||
SRL H
|
||
RR L
|
||
SET 6,H
|
||
LD A,B
|
||
LD (.ScrlLen),A
|
||
DI
|
||
LD B,C
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD A,0x00
|
||
.ScrlLen EQU $-1
|
||
ACCEL ACCELCMD.OFF
|
||
.ScRect1 LD A,D
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.COPY_VERT
|
||
LD A,(HL)
|
||
ACCEL ACCELCMD.OFF
|
||
LD A,E
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.COPY_VERT
|
||
LD (HL),A
|
||
ACCEL ACCELCMD.OFF
|
||
INC HL
|
||
DJNZ .ScRect1
|
||
EI
|
||
RET
|
||
|
||
;[]===========================================================[]
|
||
CursLeft BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET NZ
|
||
LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
LD L,(IY+PANEL.CFL)
|
||
LD H,(IY+PANEL.CFH)
|
||
LD A,H
|
||
OR L
|
||
JP Z,PageUp
|
||
LD DE,0x0011
|
||
SBC HL,DE
|
||
JR NC,CursLRex
|
||
LD HL,0x0000
|
||
JR CursLRex
|
||
|
||
CursRight BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET NZ
|
||
LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
LD L,(IY+PANEL.CFL)
|
||
LD H,(IY+PANEL.CFH)
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
DEC DE
|
||
OR A
|
||
PUSH HL
|
||
SBC HL,DE
|
||
POP HL
|
||
JP Z,PageDown
|
||
LD DE,0x0011
|
||
ADD HL,DE
|
||
BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,.L1
|
||
LD DE,0x0032
|
||
.L1 EX DE,HL
|
||
SBC HL,DE
|
||
JR NC,CursRg1
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
DEC DE
|
||
CursRg1 EX DE,HL
|
||
PUSH HL
|
||
LD E,(IY+PANEL.FFL)
|
||
LD D,(IY+PANEL.FFH)
|
||
ADD HL,DE
|
||
LD C,(IY+PANEL.EFL)
|
||
LD B,(IY+PANEL.EFH)
|
||
OR A
|
||
SBC HL,BC
|
||
POP HL
|
||
JR C,CursLRex
|
||
LD L,C
|
||
LD H,B
|
||
OR A
|
||
SBC HL,DE
|
||
DEC HL
|
||
PUSH HL
|
||
LD E,(IY+PANEL.CFL)
|
||
LD D,(IY+PANEL.CFH)
|
||
OR A
|
||
SBC HL,DE
|
||
POP HL
|
||
RET Z
|
||
CursLRex PUSH HL
|
||
CALL ResInvert
|
||
POP HL
|
||
LD (IY+PANEL.CFL),L
|
||
LD (IY+PANEL.CFH),H
|
||
CALL SetInvert
|
||
JP PrnFileInfo
|
||
|
||
;[]===========================================================[]
|
||
PageUp LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
LD A,H
|
||
OR L
|
||
JP Z,Home
|
||
PUSH HL
|
||
CALL ResInvert
|
||
POP HL
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
OR A
|
||
SBC HL,DE
|
||
JR NC,.L1
|
||
LD HL,0x0000
|
||
.L1 LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
JR PageUDex
|
||
|
||
PageDown LD C,(IY+PANEL.EFL)
|
||
LD B,(IY+PANEL.EFH)
|
||
LD A,B
|
||
OR C
|
||
RET Z
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
ADD HL,DE
|
||
OR A
|
||
SBC HL,BC
|
||
JP NC,End
|
||
PUSH HL
|
||
PUSH BC
|
||
CALL ResInvert
|
||
POP BC
|
||
POP HL
|
||
ADD HL,BC
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
LD E,(IY+PANEL.CFL)
|
||
LD D,(IY+PANEL.CFH)
|
||
ADD HL,DE
|
||
OR A
|
||
SBC HL,BC
|
||
JR C,PageUDex
|
||
LD L,C
|
||
LD H,B
|
||
LD E,(IY+PANEL.FFL)
|
||
LD D,(IY+PANEL.FFH)
|
||
OR A
|
||
SBC HL,DE
|
||
DEC HL
|
||
LD (IY+PANEL.CFL),L
|
||
LD (IY+PANEL.CFH),H
|
||
PageUDex CALL PrintDIR
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
LD A,(IY+PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
LD B,0x07
|
||
PgUDext PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ PgUDext
|
||
RET
|
||
|
||
;[]===========================================================[]
|
||
Home LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
LD A,(IY+PANEL.FFL)
|
||
OR (IY+PANEL.FFH)
|
||
JR NZ,Home1
|
||
LD A,(IY+PANEL.CFL)
|
||
OR (IY+PANEL.CFH)
|
||
RET Z
|
||
CALL ResInvert
|
||
SUB A
|
||
LD (IY+PANEL.CFL),A
|
||
LD (IY+PANEL.CFH),A
|
||
CALL SetInvert
|
||
JP PrnFileInfo
|
||
|
||
Home1 CALL ResInvert
|
||
SUB A
|
||
LD (IY+PANEL.FFL),A
|
||
LD (IY+PANEL.FFH),A
|
||
LD (IY+PANEL.CFL),A
|
||
LD (IY+PANEL.CFH),A
|
||
JR PageUDex
|
||
|
||
End LD C,(IY+PANEL.EFL)
|
||
LD B,(IY+PANEL.EFH)
|
||
LD A,B
|
||
OR C
|
||
RET Z
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
LD E,(IY+PANEL.CFL)
|
||
LD D,(IY+PANEL.CFH)
|
||
ADD HL,DE
|
||
INC HL
|
||
OR A
|
||
SBC HL,BC
|
||
RET Z
|
||
PUSH BC
|
||
CALL ResInvert
|
||
POP BC
|
||
LD L,(IY+PANEL.FFL)
|
||
LD H,(IY+PANEL.FFH)
|
||
BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
|
||
LD E,(IY+PANEL.FPL)
|
||
LD D,(IY+PANEL.FPH)
|
||
ADD HL,DE
|
||
INC HL
|
||
OR A
|
||
SBC HL,BC
|
||
JR Z,End1
|
||
JR C,End1
|
||
LD L,(IY+PANEL.EFL)
|
||
LD H,(IY+PANEL.EFH)
|
||
LD E,(IY+PANEL.FFL)
|
||
LD D,(IY+PANEL.FFH)
|
||
OR A
|
||
SBC HL,DE
|
||
DEC HL
|
||
LD (IY+PANEL.CFL),L
|
||
LD (IY+PANEL.CFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
RET
|
||
End1 LD L,C
|
||
LD H,B
|
||
OR A
|
||
SBC HL,DE
|
||
LD (IY+PANEL.FFL),L
|
||
LD (IY+PANEL.FFH),H
|
||
BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
|
||
LD L,(IY+PANEL.FPL)
|
||
LD H,(IY+PANEL.FPH)
|
||
DEC HL
|
||
LD (IY+PANEL.CFL),L
|
||
LD (IY+PANEL.CFH),H
|
||
JP PageUDex
|
||
|
||
;[]==========================================================[]
|
||
NewFile LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
LD A,(IY+PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
LD A,0x00
|
||
JR NZ,NewFile1
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD BC,0x0068
|
||
JR Z,.L1
|
||
LD BC,0x01A8
|
||
.L1 OR A
|
||
SBC HL,BC
|
||
JR C,NewFile1
|
||
ADD HL,BC
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD BC,0x0070
|
||
JR Z,.L2
|
||
LD BC,0x01B0
|
||
.L2 SBC HL,BC
|
||
RET C
|
||
ADD HL,BC
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD BC,0x00D0
|
||
JR Z,.L3
|
||
LD BC,0x0210
|
||
.L3 SBC HL,BC
|
||
LD A,0x11
|
||
JR C,NewFile1
|
||
ADD HL,BC
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD BC,0x00D8
|
||
JR Z,.L4
|
||
LD BC,0x0218
|
||
.L4 SBC HL,BC
|
||
RET C
|
||
ADD HL,BC
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD BC,0x0138
|
||
JR Z,.L5
|
||
LD BC,0x0278
|
||
.L5 SBC HL,BC
|
||
RET NC
|
||
LD A,0x22
|
||
NewFile1 LD HL,0x003F
|
||
OR A
|
||
EX DE,HL
|
||
SBC HL,DE
|
||
SRL H
|
||
RR L
|
||
SRL H
|
||
RR L
|
||
SRL H
|
||
RR L
|
||
LD C,A
|
||
LD B,0x00
|
||
ADD HL,BC
|
||
LD C,(IY+PANEL.CFL)
|
||
LD B,(IY+PANEL.CFH)
|
||
OR A
|
||
SBC HL,BC
|
||
JP Z,OpenFile
|
||
ADD HL,BC
|
||
LD E,(IY+PANEL.FFL)
|
||
LD D,(IY+PANEL.FFH)
|
||
ADD HL,DE
|
||
LD C,(IY+PANEL.EFL)
|
||
LD B,(IY+PANEL.EFH)
|
||
OR A
|
||
SBC HL,BC
|
||
RET NC
|
||
ADD HL,BC
|
||
OR A
|
||
SBC HL,DE
|
||
PUSH HL
|
||
CALL ResInvert
|
||
POP HL
|
||
LD (IY+PANEL.CFL),L
|
||
LD (IY+PANEL.CFH),H
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
JP ResFire
|
||
|
||
;[]==========================================================[]
|
||
OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
IF TREE_REZID
|
||
JP NZ,RESIDENT.TestTreeBeg
|
||
ELSE
|
||
JP NZ,TestTreeR.TestTreeBeg
|
||
ENDIF
|
||
LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
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.Attr
|
||
PUSH HL
|
||
ADD HL,BC
|
||
LDI
|
||
POP HL
|
||
INC HL
|
||
CALL MakeDOSname
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer
|
||
BIT 4,(HL)
|
||
INC HL
|
||
JP Z,RunEXEfile
|
||
LD A,(HL)
|
||
CP '.'
|
||
JR NZ,OpenF2
|
||
PUSH HL
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
SUB A
|
||
.L2 INC HL
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
LD A,0x5C
|
||
DEC HL
|
||
CP (HL)
|
||
JR Z,OpenF1
|
||
.L3 DEC HL
|
||
CP (HL)
|
||
JR NZ,.L3
|
||
INC HL
|
||
SUB A
|
||
LD DE,PrevDIR
|
||
.L4 LDI
|
||
CP (HL)
|
||
JR NZ,.L4
|
||
LD (DE),A
|
||
LD A,'.'
|
||
OpenF1 POP HL
|
||
OpenF2 PUSH AF
|
||
PUSH HL
|
||
CALL ResInvert
|
||
POP HL
|
||
CALL SetClock
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
CALL C,DOSError
|
||
CALL ReadDIR
|
||
PUSH IY
|
||
PUSH IY
|
||
SPDSS DSSF.CURDISK
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
ADD A,'A'
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),':'
|
||
INC HL
|
||
SPDSS DSSF.CURDIR
|
||
POP IY
|
||
CALL PrintPath
|
||
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
CALL NZ,PrintDOSPath
|
||
POP AF
|
||
CP '.'
|
||
CALL Z,FindPrevDIR
|
||
CALL PrintDIR
|
||
CALL SetInvert
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL InitScrollBar
|
||
LD A,(IY+PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
PUSH AF
|
||
CALL Z,PrnHScrBar
|
||
POP AF
|
||
CALL NZ,PrnVScrBar
|
||
CALL SetMouse
|
||
LD A,(TreeFlag)
|
||
OR A
|
||
JP Z,ResFire
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD IY,LeftPanel
|
||
LD HL,RightPanel
|
||
JR NZ,.L5
|
||
LD IY,RightPanel
|
||
LD HL,LeftPanel
|
||
.L5 LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
IF TREE_REZID
|
||
CALL RESIDENT.FindTreeDIR
|
||
ELSE
|
||
CALL FindTreeDIRR
|
||
ENDIF
|
||
CALL PrintDIR
|
||
CALL PrnFileInfo
|
||
PUSH IY
|
||
POP IX
|
||
LD DE,PANEL.BARXL
|
||
ADD IX,DE
|
||
CALL PrnVScrBar
|
||
POP IY
|
||
RET
|
||
|
||
;[]==========================================================[]
|
||
ChPanel CALL ResInvert
|
||
LD A,(LeftPanel)
|
||
XOR 0x80
|
||
LD (LeftPanel),A
|
||
LD A,(RightPanel)
|
||
XOR 0x80
|
||
LD (RightPanel),A
|
||
CALL PrintPath
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JR Z,ChPan1
|
||
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
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
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
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
SET 6,H
|
||
INC HL
|
||
SET 1,(HL)
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
CALL PrintDIR
|
||
ChPan1 LD IY,LeftPanel
|
||
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
JR NZ,.L1
|
||
LD IY,RightPanel
|
||
.L1 CALL PrintPath
|
||
CALL PrintDOSPath
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JR Z,ChPan2
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L2
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L2
|
||
SETPORT WINSP.CPU1,,0
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
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
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
ADD HL,HL
|
||
SET 6,H
|
||
INC HL
|
||
RES 1,(HL)
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
CALL PrintDIR
|
||
ChPan2 CALL SetInvert
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
RET NC
|
||
CALL DOSError
|
||
JP BegDIRECTORY
|
||
|
||
;[]==========================================================[]
|
||
ChangeDriveL LD IX,LeftPanel
|
||
JR ChangeDrive
|
||
|
||
ChangeDriveR LD IX,RightPanel
|
||
ChangeDrive PUSH IY
|
||
PUSH IX
|
||
POP IY
|
||
LD C,(IY+PANEL.XL)
|
||
LD B,(IY+PANEL.XH)
|
||
INC BC
|
||
INC BC
|
||
OR A
|
||
SBC HL,BC
|
||
LD BC,0x001C
|
||
LD A,0xFF
|
||
.L1 INC A
|
||
SBC HL,BC
|
||
JR NC,.L1
|
||
ADD A,'A'
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
LD (HL),D
|
||
LD HL,NewDrive
|
||
LD (HL),A
|
||
CALL NewDIRECTORY
|
||
LD A,(AutoActivatePanel)
|
||
AND A
|
||
JR NZ,loc_C82E
|
||
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
POP IY
|
||
JP Z,ChPanel ; RET NZ
|
||
RET
|
||
|
||
loc_C82E BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
POP IY
|
||
RET NZ
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
RET NC
|
||
CALL DOSError
|
||
JP BegDIRECTORY
|
||
|
||
NewDrive DZ " :\\"
|
||
|
||
;[]==========================================================[]
|
||
ReplacePanels LD IX,LeftPanel
|
||
SET PANELFLAG.B_SIDE,(IX+PANEL.PANELFLAG)
|
||
LD L,(IX+PANEL.XL)
|
||
LD H,(IX+PANEL.XH)
|
||
LD IX,RightPanel
|
||
RES PANELFLAG.B_SIDE,(IX+PANEL.PANELFLAG)
|
||
LD E,(IX+PANEL.XL)
|
||
LD D,(IX+PANEL.XH)
|
||
LD (IX+PANEL.XL),L
|
||
LD (IX+PANEL.XH),H
|
||
LD IX,LeftPanel
|
||
LD (IX+PANEL.XL),E
|
||
LD (IX+PANEL.XH),D
|
||
LD HL,RAMPAGES.LEFTPANEL
|
||
LD DE,RAMPAGES.RIGHTPANEL
|
||
LD A,(DE)
|
||
LDI
|
||
DEC HL
|
||
LD (HL),A
|
||
LD HL,LeftPanel
|
||
LD DE,RightPanel
|
||
LD BC,PANEL.CURRPATH + 0x100
|
||
ReplPan LD A,(DE)
|
||
LDI
|
||
DEC HL
|
||
LD (HL),A
|
||
INC HL
|
||
JP PE,ReplPan
|
||
LD A,0x01
|
||
JP InitPanels
|
||
|
||
;[]==========================================================[]
|
||
ShowDOSscreen CALL ResVideoMode
|
||
ShowDSlp
|
||
SPDSS DSSF.SCANKEY
|
||
JR NZ,ShowDSexit
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
OR A
|
||
JR Z,ShowDSlp
|
||
ShowDSexit
|
||
SPDSS DSSF.SETVMOD,0,SETVMOD.GRF640X256
|
||
JP ResFire
|
||
|
||
;[]==========================================================[]
|
||
RunEXEfile: LD IX,fn_ext
|
||
LD DE,PrevFile
|
||
PUSH DE
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD (DE),A
|
||
POP DE
|
||
LD L,E
|
||
LD H,D
|
||
.L2 INC HL
|
||
LD A,(HL)
|
||
AND A
|
||
SCF
|
||
RET Z
|
||
CP '.'
|
||
JR NZ,.L2
|
||
INC HL
|
||
LD A,(HL)
|
||
INC HL
|
||
RES 5,A
|
||
cp 'B'
|
||
jp z,RunBATfile
|
||
CP 'F'
|
||
JP Z,RunFLXfile
|
||
CP 'E'
|
||
JP NZ,TestEXT
|
||
LD A,(HL)
|
||
INC HL
|
||
RES 5,A
|
||
CP 'X'
|
||
JP NZ,TestEXT
|
||
LD A,(HL)
|
||
RES 5,A
|
||
CP 'E'
|
||
JP NZ,TestEXT
|
||
RunFile: PUSH DE
|
||
CALL ResDrivers
|
||
SUB A
|
||
CALL ClearScreen
|
||
CALL ResVideoMode
|
||
POP HL
|
||
SPDSS DSSF.EXEC,0
|
||
PUSH AF
|
||
SETPORT BORDER,0
|
||
;!FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®® ¨«¨ ¥â SAFE_PORTY
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
CALL InitVideoMode
|
||
CALL InitDrivers
|
||
CALL InitScreen
|
||
CALL ClearDOSline
|
||
LD A,0x02
|
||
CALL InitPanels
|
||
POP AF
|
||
JP C,DOSError
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
RunBATfile: LD A,(HL)
|
||
INC HL
|
||
RES 5,A
|
||
CP 'A'
|
||
JP NZ,TestEXT
|
||
LD A,(HL)
|
||
RES 5,A
|
||
CP 'T'
|
||
JP NZ,TestEXT
|
||
PUSH DE
|
||
ld hl,ShellFile
|
||
ld de,WorkBuffer
|
||
call CopyString
|
||
bit PANELFLAG.B_SIDE,(iy+PANEL.PANELFLAG)
|
||
ld hl,RightPanel + PANEL.CURRPATH
|
||
jr nz,.next
|
||
ld hl,LeftPanel + PANEL.CURRPATH
|
||
.next: call ConcatString
|
||
dec de
|
||
ex hl,de
|
||
ld a,'\\'
|
||
cp (hl)
|
||
jr z,.skipSlash
|
||
inc hl
|
||
ld (hl),a
|
||
.skipSlash: inc hl
|
||
ex hl,de
|
||
pop hl
|
||
call CopyString
|
||
ld de,WorkBuffer
|
||
jr RunFile
|
||
|
||
;[]----------------------------------------------------------[]
|
||
; § ¯ã᪠FLX ¯« £¨ ¨§ ¯ ¥«¨ ¯® ENTER
|
||
RunFLXfile LD A,(HL)
|
||
INC HL
|
||
RES 5,A
|
||
CP 'L'
|
||
JP NZ,TestEXT
|
||
LD A,(HL)
|
||
RES 5,A
|
||
CP 'X'
|
||
JP NZ,TestEXT
|
||
EX DE,HL
|
||
LD DE,WorkBuffer
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD (DE),A
|
||
CALL RunFLX
|
||
JP C,DOSError
|
||
RET
|
||
|
||
;[]-----------------------------------------------------------[]
|
||
TestEXT: PUSH IX
|
||
LD IXL,E
|
||
LD IXH,D
|
||
EX DE,HL
|
||
LD A,'.'
|
||
.L1 INC HL
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
INC HL
|
||
EX DE,HL
|
||
POP HL
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNHELP)
|
||
SETPORT WINSP.CPU1,,0
|
||
TestEXT1: LD C,(HL)
|
||
INC HL
|
||
LD B,(HL)
|
||
INC HL
|
||
LD A,B
|
||
OR C
|
||
JR Z,TestEND
|
||
PUSH DE
|
||
EX DE,HL
|
||
LD A,(DE)
|
||
INC DE
|
||
CP '?'
|
||
JR Z,.L1
|
||
CP (HL)
|
||
JR NZ,TestEXTn
|
||
.L1 INC HL
|
||
LD A,(DE)
|
||
INC DE
|
||
CP '?'
|
||
JR Z,.L2
|
||
CP (HL)
|
||
JR NZ,TestEXTn
|
||
.L2 INC HL
|
||
LD A,(DE)
|
||
INC DE
|
||
CP '?'
|
||
JR Z,TestEXTn
|
||
CP (HL)
|
||
TestEXTn: EX DE,HL
|
||
POP DE
|
||
JR Z,TestEXTok
|
||
LD L,C
|
||
LD H,B
|
||
JR TestEXT1
|
||
|
||
TestEND: POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
SCF
|
||
RET
|
||
|
||
TestEXTok: LD DE,WorkBuffer
|
||
LD C,0x00
|
||
TstEXT0: LD A,C
|
||
LDI
|
||
LD C,A
|
||
LD A,(HL)
|
||
OR A
|
||
JR Z,TstEXT2
|
||
CP ' '
|
||
JR Z,TstEXT1
|
||
CP '.'
|
||
JR NZ,TstEXT0
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
LD A,(HL)
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
CP ' '
|
||
JR Z,TstEXT1
|
||
RES 5,A
|
||
CP 'F'
|
||
JR NZ,.L1
|
||
SET 0,C
|
||
.L1 LD A,(HL)
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
CP ' '
|
||
JR Z,TstEXT1
|
||
RES 5,A
|
||
CP 'L'
|
||
JR NZ,.L2
|
||
SET 1,C
|
||
.L2 LD A,(HL)
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
CP ' '
|
||
JR Z,TstEXT1
|
||
RES 5,A
|
||
CP 'X'
|
||
JR NZ,TstEXT1
|
||
SET 2,C
|
||
TstEXT1: LD A,(HL)
|
||
CP '!'
|
||
JR NZ,TstEX11
|
||
INC HL
|
||
LD A,(HL)
|
||
CP '.'
|
||
JP Z,EName
|
||
CP ':'
|
||
JP Z,EDrive
|
||
CP '\\'
|
||
JP Z,EPath
|
||
DEC HL
|
||
TstEX11: LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
OR A
|
||
JR NZ,TstEXT1
|
||
TstEXT2: LD (DE),A
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer
|
||
LD A,C
|
||
CP 0x07
|
||
JP Z,RunFLX
|
||
LD DE,WorkBuffer+0x100
|
||
PUSH IY
|
||
SPDSS DSSF.F_FIRST,1,0x37
|
||
POP IY
|
||
JP C,RestoreDIR
|
||
CALL ResDrivers
|
||
SUB A
|
||
CALL ClearScreen
|
||
CALL ResVideoMode
|
||
LD HL,WorkBuffer
|
||
SPDSS DSSF.EXEC,0
|
||
PUSH AF
|
||
SETPORT BORDER,0
|
||
; !FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®® ¨«¨ ¥â SAFE_PORTY
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
CALL InitVideoMode
|
||
CALL InitDrivers
|
||
CALL InitScreen
|
||
CALL ClearDOSline
|
||
LD A,0x02
|
||
CALL InitPanels
|
||
POP AF
|
||
CALL C,DOSError
|
||
OR A
|
||
RET
|
||
|
||
RestoreDIR: PUSH AF
|
||
PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
PUSH IY
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
POP AF
|
||
RET
|
||
|
||
EName: INC HL
|
||
LD A,(HL)
|
||
DEC HL
|
||
CP '!'
|
||
JR NZ,TstEX11
|
||
INC HL
|
||
PUSH HL
|
||
PUSH BC
|
||
LD HL,PrevFile
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
POP BC
|
||
POP HL
|
||
INC HL
|
||
JP TstEXT1
|
||
EDrive: LD A,(IY+PANEL.CURRPATH)
|
||
LD (DE),A
|
||
INC DE
|
||
LD A,':'
|
||
LD (DE),A
|
||
INC DE
|
||
INC HL
|
||
JP TstEXT1
|
||
|
||
EPath: PUSH HL
|
||
PUSH BC
|
||
PUSH IY
|
||
POP HL
|
||
LD BC,PANEL.CURRPATH
|
||
ADD HL,BC
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
DEC HL
|
||
LD A,'\\'
|
||
CP (HL)
|
||
JR Z,.L2
|
||
LD (DE),A
|
||
INC DE
|
||
.L2 POP BC
|
||
POP HL
|
||
INC HL
|
||
JP TstEXT1
|
||
|
||
; § ¯ã᪠FLX ä ©«
|
||
RunFLX: LD HL,RestoreDIR
|
||
PUSH HL
|
||
LD HL,WorkBuffer
|
||
LD A,0x21
|
||
.L1 INC HL
|
||
CP (HL)
|
||
JR C,.L1
|
||
SUB A
|
||
LD (HL),A
|
||
INC HL
|
||
PUSH HL
|
||
LD HL,WorkBuffer
|
||
PUSH IY
|
||
SPDSS DSSF.OPEN,,1
|
||
POP IY
|
||
POP HL
|
||
RET C
|
||
LD (.FLXHandle),A
|
||
PUSH HL
|
||
LD IX,0x0000
|
||
LD HL,0x0000
|
||
PUSH IY
|
||
SPDSS DSSF.MOVE_FP,2
|
||
POP IY
|
||
LD A,IXH
|
||
AND 0xC0
|
||
OR H
|
||
OR L
|
||
POP HL
|
||
SCF
|
||
LD A,0x1E
|
||
RET NZ
|
||
PUSH IY
|
||
PUSH HL
|
||
; !FIXIT ¯à®¢¥à¨âì ¤«ï í⮣® ®® ¨«¨ ¥â SAFE_PORTY
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
LD IX,0x0000
|
||
LD HL,0x0000
|
||
LD A,(.FLXHandle)
|
||
SPDSS DSSF.MOVE_FP,0
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FLX)
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer + 0x0100
|
||
LD DE,0x0010
|
||
LD A,(.FLXHandle)
|
||
PUSH HL
|
||
SPDSS DSSF.READ
|
||
POP HL
|
||
JR C,.L2
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 'F'
|
||
SCF
|
||
LD A,0x10
|
||
JR NZ,.L2
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 'L'
|
||
SCF
|
||
LD A,0x10
|
||
JR NZ,.L2
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 'X'
|
||
SCF
|
||
LD A,0x10
|
||
JR NZ,.L2
|
||
LD L,0x08
|
||
LD E,(HL)
|
||
INC HL
|
||
LD D,(HL)
|
||
INC HL
|
||
LD C,(HL)
|
||
INC HL
|
||
LD B,(HL)
|
||
INC HL
|
||
LD (.FLXexec),BC
|
||
LD A,(HL)
|
||
INC HL
|
||
LD (.FLXmode),A
|
||
RES 7,D
|
||
SET 6,D
|
||
LD HL,0x8000
|
||
OR A
|
||
SBC HL,DE
|
||
EX DE,HL
|
||
LD A,(.FLXHandle)
|
||
SPDSS DSSF.READ
|
||
.L2: EX AF,AF'
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
EX AF,AF'
|
||
PUSH AF
|
||
LD A,(.FLXHandle)
|
||
SPDSS DSSF.CLOSE
|
||
POP AF
|
||
POP HL
|
||
POP IY
|
||
RET C
|
||
LD DE,0x0000
|
||
.FLXexec EQU $-2
|
||
SET 7,D
|
||
SET 6,D
|
||
LD A,(RAMPAGES.FLX)
|
||
LD C,WINSP.CPU3
|
||
PUSH IY
|
||
CALL Resident
|
||
POP IY
|
||
CCF
|
||
RET NC
|
||
LD A,0x00
|
||
.FLXmode: EQU $-1
|
||
OR A
|
||
RET Z
|
||
INC SP
|
||
INC SP
|
||
SETPORT BORDER,0
|
||
; !FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®® ¨«¨ ¥â SAFE_PORTY
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
CALL InitScreen
|
||
CALL ClearDOSline
|
||
LD A,0x02
|
||
CALL InitPanels
|
||
OR A
|
||
RET
|
||
|
||
.FLXHandle: DEFB 0x00
|
||
|
||
;[]===========================================================[]
|
||
Help: LD DE,HelpR
|
||
LD A,(RAMPAGES.FNHELP)
|
||
LD C,WINSP.CPU1
|
||
JP Resident
|
||
|
||
;[]----------------------------------------------------------[]
|
||
ViewFileSH: BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET NZ
|
||
LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 200,81,240,62
|
||
W_FILL 4,2,232,10,COLORI.BLACK
|
||
W_TEXT 108,3,COLORI.WHITE,"View"
|
||
W_BUTTON 40,42,72,14
|
||
W_TEXT 68,45,COLORP.HIGHGRAY,"Ok"
|
||
W_BUTTON 128,42,72,14
|
||
W_TEXT 148,45,COLORP.HIGHGRAY,"Cancel"
|
||
W_TEXT 12,25,COLORP.HIGHGRAY,"View the file:"
|
||
W_BORDER 86,22,134,12
|
||
W_FILL 88,23,130,10,COLORI.WHITE
|
||
W_END
|
||
LD IX,ViewStr
|
||
LD HL,ViewEditTab
|
||
CALL InputLine
|
||
WINDOWCLOSE
|
||
RET C
|
||
LD A,(ViewLen)
|
||
OR A
|
||
RET Z
|
||
LD HL,ViewName
|
||
LD DE,PrevFile
|
||
LD B,A
|
||
ViewSH1: LD A,(HL)
|
||
IF CORR_FILENAME
|
||
CALL CorrBigChar
|
||
ENDIF
|
||
LD (HL),A
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ ViewSH1
|
||
SUB A
|
||
LD (DE),A
|
||
POP HL
|
||
CALL SetInvert
|
||
JP View
|
||
|
||
ViewStr: DEFB 0x0C,0x00,0x00,0x00
|
||
ViewLen: DEFB 0x00
|
||
DEFW 0x0122,0x006A
|
||
DEFW 0x0068
|
||
DEFB 0xF0
|
||
ViewName: DB 0x0D DUP 0x00
|
||
|
||
;-------------------------------------------
|
||
ViewFile: SUB A
|
||
JR StViewFile.L1
|
||
|
||
;-------------------------------------------
|
||
StViewFile: LD A,0x01
|
||
.L1 LD (VFlag+1),A
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET NZ
|
||
LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L2 ;!FIXIT
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L2
|
||
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.Attr
|
||
PUSH HL
|
||
ADD HL,BC
|
||
LDI
|
||
POP HL
|
||
INC HL
|
||
CALL MakeDOSname
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer
|
||
BIT 4,(HL)
|
||
RET NZ
|
||
INC HL
|
||
LD DE,PrevFile
|
||
SUB A
|
||
.L3 LDI
|
||
CP (HL)
|
||
JR NZ,.L3
|
||
LD (DE),A
|
||
VFlag: LD A,0x00
|
||
OR A
|
||
JR NZ,View1
|
||
View: LD IX,fnview_ext
|
||
LD DE,PrevFile
|
||
CALL TestEXT
|
||
RET NC
|
||
View1: CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
PUSH IY
|
||
LD HL,PrevFile
|
||
LD DE,0xC000
|
||
LD A,(RAMPAGES.FNVIEW)
|
||
LD C,WINSP.CPU3
|
||
CALL Resident
|
||
POP IY
|
||
RET C
|
||
SETPORT BORDER,0
|
||
; !FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®® ¨«¨ ¥â SAFE_PORTY
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
CALL InitScreen
|
||
CALL ClearDOSline
|
||
LD A,0x02
|
||
CALL InitPanels
|
||
POP HL
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
EditFileSH: BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET NZ
|
||
CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 200,81,240,62
|
||
W_FILL 4,2,232,10,COLORI.BLACK
|
||
W_TEXT 110,3,COLORI.WHITE,"Edit"
|
||
W_BUTTON 40,42,72,14
|
||
W_TEXT 68,45,COLORP.HIGHGRAY,"Ok"
|
||
W_BUTTON 128,42,72,14
|
||
W_TEXT 148,45,COLORP.HIGHGRAY,"Cancel"
|
||
W_TEXT 12,25,COLORP.HIGHGRAY,"Edit the file:"
|
||
W_BORDER 86,22,134,12
|
||
W_FILL 88,23,130,10,COLORI.WHITE
|
||
W_END
|
||
LD IX,EditStr
|
||
LD HL,ViewEditTab
|
||
CALL InputLine
|
||
WINDOWCLOSE
|
||
RET C
|
||
LD A,(EditLen)
|
||
OR A
|
||
RET Z
|
||
LD HL,EditName
|
||
LD DE,PrevFile
|
||
LD B,A
|
||
EditSH1: LD A,(HL)
|
||
IF CORR_FILENAME
|
||
CALL CorrBigChar
|
||
ENDIF
|
||
LD (HL),A
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ EditSH1
|
||
SUB A
|
||
LD (DE),A
|
||
POP HL
|
||
CALL SetInvert
|
||
JP Edit
|
||
|
||
EditStr: DEFB 0x0C,0x00,0x00,0x00
|
||
EditLen: DEFB 0x00
|
||
DEFW 0x0122,0x006A
|
||
DEFW 0x0068
|
||
DEFB 0xF0
|
||
EditName: DB 0x0D DUP 0x00
|
||
|
||
;-------------------------------------------
|
||
EditFile: SUB A
|
||
JR StEditFile.L1
|
||
|
||
;-------------------------------------------
|
||
StEditFile: LD A,0x01
|
||
.L1 LD (EFlag),A
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET NZ
|
||
LD A,(IY+PANEL.EFL)
|
||
OR (IY+PANEL.EFH)
|
||
RET Z
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD A,(RAMPAGES.LEFTPANEL)
|
||
JR Z,.L2 ;!FIXIT
|
||
LD A,(RAMPAGES.RIGHTPANEL)
|
||
.L2
|
||
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.Attr
|
||
PUSH HL
|
||
ADD HL,BC
|
||
LDI
|
||
POP HL
|
||
INC HL
|
||
CALL MakeDOSname
|
||
POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,WorkBuffer
|
||
BIT 4,(HL)
|
||
RET NZ
|
||
INC HL
|
||
LD DE,PrevFile
|
||
SUB A
|
||
.L3 LDI
|
||
CP (HL)
|
||
JR NZ,.L3
|
||
LD (DE),A
|
||
LD A,0x00
|
||
EFlag: EQU $-1
|
||
OR A
|
||
JR NZ,Edit1
|
||
Edit: LD IX,fnedit_ext
|
||
LD DE,PrevFile
|
||
CALL TestEXT
|
||
RET NC
|
||
Edit1: CALL ResInvert
|
||
LD HL,SetInvert
|
||
PUSH HL
|
||
PUSH IY
|
||
LD HL,PrevFile
|
||
LD DE,CPU3
|
||
LD A,(RAMPAGES.FNEDIT)
|
||
LD C,WINSP.CPU3
|
||
CALL Resident
|
||
POP IY
|
||
RET C
|
||
SETPORT BORDER,0
|
||
; !FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®® ¨«¨ ¥â SAFE_PORTY
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
CALL InitScreen
|
||
CALL ClearDOSline
|
||
LD A,0x02
|
||
CALL InitPanels
|
||
POP HL
|
||
RET
|