603 lines
11 KiB
Plaintext
603 lines
11 KiB
Plaintext
|
||
; LAST UPDATE: 27.04.2025 savelij
|
||
|
||
;[]==========================================================[]
|
||
InitVideoMode
|
||
SPDSS DSSF.GETVMOD
|
||
LD C,A ; ⥪ã騩 ०¨¬ íªà
|
||
LD A,(InitFlg)
|
||
OR A
|
||
JR NZ,.L1
|
||
LD A,C
|
||
LD (VMode),A
|
||
LD A,B ; áâà ¨æ íªà
|
||
LD (VScrn),A
|
||
.L1 LD HL,WorkBuffer
|
||
SPBIOS BIOSF.FN_VERSION
|
||
;!TODO ¯à®¢¥àïâì ¯®á«¥¤¨© ¡¨®á
|
||
AND A
|
||
LD HL,-0x101;ACEX.Config_ID.Sp2000
|
||
SBC HL,BC
|
||
JR Z,.L2
|
||
SPBIOS BIOSF.RST_CONF_CUSTOM,,-3
|
||
.L2:
|
||
;????? âãâ áâ àë© ¢ à¨ â ¢ë¤ ç¨ FN_VERSION ¯à®¢¥àï¥âáï. <20>®¤ã¬ âì.
|
||
; LD A,%0000'1101 ; ã¦ë¥ ¡¨âë ¤«ï ¯®àâ All_Mode
|
||
; AND L
|
||
; SUB %0000'1101
|
||
; JR Z,InitVM1
|
||
; IN A,(SCREEN_SWITCH)
|
||
; PUSH AF
|
||
; LD C,BIOS.RST_CONF.SP97_2
|
||
; RST ToBIOS
|
||
; SUB A
|
||
; OUT (BorderColor),A
|
||
; POP AF
|
||
; OUT (SCREEN_SWITCH),A
|
||
InitVM1
|
||
SPDSS DSSF.SETVMOD,0,SETVMOD.GRF640X256
|
||
SUB A
|
||
CALL ClearScreen
|
||
InitPAL LD HL,PALETTE
|
||
LD DE,0x1000
|
||
SPBIOS BIOSF.PIC_SET_PAL,0xFF,0
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
ResVideoMode LD B,0x00
|
||
VScrn EQU $-1
|
||
LD A,0x00
|
||
VMode EQU $-1
|
||
PUSH IY
|
||
SPDSS DSSF.SETVMOD
|
||
POP IY
|
||
RET
|
||
|
||
;[]==========================================================[]
|
||
InitDrivers SUB A
|
||
LD (CMOSFlag),A
|
||
LD L,A
|
||
LD H,A
|
||
LD (TestCoords.PrvTabl),HL
|
||
LD (TestCoords.PrMousX),HL
|
||
LD (TestCoords.PrMousY),HL
|
||
SPDSS DSSF.GETMEM,7
|
||
JR NC,InitDrv
|
||
CALL ResVideoMode
|
||
LD HL,NoEnMemory
|
||
SPDSS DSSF.PCHARS
|
||
LD A,(RAMPAGES.FNPAGESID)
|
||
SPDSS DSSF.FREEMEM
|
||
SPDSS DSSF.EXIT,0x1E
|
||
|
||
NoEnMemory DZ "Not enough memory to run program.\r\n"
|
||
|
||
InitDrv LD (RAMPAGES.BufferID),A
|
||
LD HL,RAMPAGES.FLX
|
||
SPBIOS BIOSF.GETMEMBLKPAGES
|
||
.skip:
|
||
SPDSS DSSF.CURDISK
|
||
JR C,.skip
|
||
LD A,C
|
||
CP 12
|
||
JR C,.L1
|
||
LD A,11
|
||
.L1 LD (NUM_DEVICES),A
|
||
SPDSS DSSF.GETTIME
|
||
JR C,.L3
|
||
LD A,D
|
||
CP 32
|
||
CCF
|
||
JR C,.L3
|
||
LD A,E
|
||
CP 13
|
||
CCF
|
||
JR C,.L3
|
||
LD A,H
|
||
CP 24
|
||
CCF
|
||
JR C,.L3
|
||
LD A,L
|
||
CP 60
|
||
CCF
|
||
.L3 LD A,0x00
|
||
JR C,.L2
|
||
INC A
|
||
.L2 LD (CMOSFlag),A
|
||
LD A,0x00
|
||
InitFlg EQU $-1
|
||
OR A
|
||
CALL Z,FirstInit
|
||
CALL SETUP_DISKS
|
||
SPMOUSE MOUSEF.INIT
|
||
LD A,(MouseFlag)
|
||
OR A
|
||
LD C,MOUSEF.SHOW
|
||
JR NZ,.L1
|
||
LD C,MOUSEF.HIDE
|
||
.L1
|
||
SPMOUSE
|
||
;!TEST enable shared interrupts
|
||
;Check BIOS version
|
||
SPBIOS BIOSF.DRV_VERSION
|
||
AND A
|
||
LD HL,2 << 8 + 54 ;!HARDCODE (¬¨¨¬ «ì ï ¢¥àá¨ï)-1 ¤«ï ªâ¨¢ 樨 ¯à¥àë¢ ¨©
|
||
SBC HL,DE
|
||
RET NC ; ¢ë室, ¥á«¨ ¢¥àá¨ï ¨¦¥ 2.55
|
||
LD BC,WINSP.CPU2
|
||
IN B,(C)
|
||
SETPORT WINSP.CPU2,0xFE
|
||
LD A,0xAA
|
||
LD (0x0127 + CPU2),A;(SYS_PAGE.INT_ID - #4000),A ;!HARDCODE SYS_PAGE.INT_ID - #4000
|
||
OUT (C),B
|
||
RET
|
||
|
||
FirstInit
|
||
SPDSS DSSF.BOOTDSK,0
|
||
ADD A,'A'
|
||
LD (ShellFile),a ; fndosln.z80
|
||
SPDSS DSSF.CURDISK
|
||
LD HL,LeftPanel + PANEL.CURRPATH
|
||
PUSH HL
|
||
ADD A,'A'
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),':'
|
||
INC HL
|
||
SPDSS DSSF.CURDIR
|
||
POP HL
|
||
LD DE,RightPanel + PANEL.CURRPATH
|
||
LD BC,0x0100
|
||
LDIR
|
||
GETPORT WINSP.CPU1
|
||
PUSH AF
|
||
LD A,(RAMPAGES.FNFUNCT)
|
||
SETPORT WINSP.CPU1,,0
|
||
LD HL,FlexDIRECTORY
|
||
SPDSS DSSF.APPINFO,1
|
||
JP C,.L5
|
||
LD HL,FlexDIRECTORY
|
||
SPDSS DSSF.CHDIR
|
||
JP C,.L5
|
||
LD HL,SetupName
|
||
SPDSS DSSF.OPEN,,1
|
||
JR C,.L5
|
||
PUSH AF
|
||
LD HL,WorkBuffer
|
||
push hl
|
||
push hl
|
||
ld (hl),0
|
||
pop de
|
||
ld bc,0x00ff
|
||
inc de
|
||
ldir
|
||
pop hl
|
||
LD DE,0x0100
|
||
SPDSS DSSF.READ
|
||
POP AF
|
||
SPDSS DSSF.CLOSE
|
||
LD HL,WorkBuffer
|
||
LD DE,SetupHead
|
||
LD B,11
|
||
.L3 LD A,(DE)
|
||
CP (HL)
|
||
JR NZ,.L5
|
||
INC HL
|
||
INC DE
|
||
DJNZ .L3
|
||
LD DE,PALETTE
|
||
LD BC,0x0040
|
||
LDIR
|
||
LD A,(HL)
|
||
INC HL
|
||
OR A
|
||
JR Z,.L4
|
||
LD A,(HL)
|
||
INC HL
|
||
AND 0x01
|
||
LD (MouseFlag),A
|
||
LD DE,LeftPanel
|
||
PUSH DE
|
||
LDI
|
||
LDI
|
||
LDI
|
||
POP DE
|
||
EX DE,HL
|
||
LD BC,PANEL.FILEMASK
|
||
ADD HL,BC
|
||
EX DE,HL
|
||
SUB A
|
||
.L1 LDI
|
||
CP (HL)
|
||
JR NZ,.L1
|
||
LD (DE),A
|
||
INC HL
|
||
LD DE,RightPanel
|
||
PUSH DE
|
||
LDI
|
||
LDI
|
||
LDI
|
||
POP DE
|
||
EX DE,HL
|
||
LD BC,PANEL.FILEMASK
|
||
ADD HL,BC
|
||
EX DE,HL
|
||
SUB A
|
||
.L2 LDI
|
||
CP (HL)
|
||
JR NZ,.L2
|
||
LD (DE),A
|
||
.L4 inc hl
|
||
ld a,(hl) ;¯ à ¬¥âà - ¢â® ᬥ ¯ ¥«¨ ¯à¨ ᬥ¥ ¤¨áª ¥©
|
||
ld (AutoActivatePanel),a
|
||
inc hl
|
||
CALL InitPAL
|
||
.L5 POP AF
|
||
SETPORT WINSP.CPU1,,0
|
||
LD DE,InitExtention
|
||
LD A,(RAMPAGES.FNHELP)
|
||
LD C,WINSP.CPU1
|
||
CALL Resident
|
||
LD HL,LeftPanel + PANEL.CURRPATH
|
||
SPDSS DSSF.CHDIR
|
||
LD A,0x01
|
||
LD (InitFlg),A
|
||
RET
|
||
|
||
; ®¡®¢«¥¨¥ ¢ â ¡«¨æ¥ ¢ë¡®à ¤¨áª®¢ ¯ ¥«¨
|
||
SETUP_DISKS LD HL,BgDISKl ; ¤¨áª¨ «¥¢®© ¯ ¥«¨
|
||
LD DE,BgDISKr ; ¤¨áª¨ ¯à ¢®© ¯ ¥«¨
|
||
LD BC,FORMTABL.SIZE * 2
|
||
LD A,(NUM_DEVICES)
|
||
.L1 ADD HL,BC
|
||
INC HL
|
||
RES FORMTABL.B_ENDTABL,(HL)
|
||
DEC HL
|
||
EX DE,HL
|
||
ADD HL,BC
|
||
INC HL
|
||
RES FORMTABL.B_ENDTABL,(HL)
|
||
DEC HL
|
||
EX DE,HL
|
||
DEC A
|
||
JR NZ,.L1
|
||
INC HL
|
||
SET FORMTABL.B_ENDTABL,(HL)
|
||
EX DE,HL
|
||
INC HL
|
||
SET FORMTABL.B_ENDTABL,(HL)
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
ResDrivers
|
||
SPMOUSE MOUSEF.HIDE
|
||
LD A,(RAMPAGES.BufferID)
|
||
SPDSS DSSF.FREEMEM
|
||
;!TEST disable shared interrupts
|
||
LD BC,WINSP.CPU2
|
||
IN B,(C)
|
||
SETPORT WINSP.CPU2,PAGE.SYSTEM;0xFE
|
||
XOR A
|
||
LD (0x0127 + CPU2),A ;!HARDCODE SYS_PAGE.INT_ID
|
||
OUT (C),B
|
||
RET
|
||
|
||
;[]==========================================================[]
|
||
InitScreen
|
||
MAKEWINDOW WINSUBOBJ.NOSTORE
|
||
W_MAIN 0,0,640,256
|
||
W_FILL 4,2,632,10,COLORI.BLACK
|
||
W_TEXT 16,3,COLORI.WHITE,"Flex Navigator v\{FLEX_VERS.NAVIGATOR}"
|
||
W_HORIZLINE 0,13,640
|
||
W_TEXT 16,17,COLORP.HIGHGRAY,"File Select Options View Config About"
|
||
W_HORIZLINE 0,27,640
|
||
W_VERTICLINE 318,30,12
|
||
W_HORIZLINE 0,43,640
|
||
W_HORIZLINE 0,211,640
|
||
W_VERTICLINE 318,214,10
|
||
W_HORIZLINE 0,225,640
|
||
W_BORDER 252,228,384,12
|
||
W_FILL 254,229,380,10,COLORI.PANEL
|
||
W_HORIZLINE 0,241,640
|
||
W_BUTTON 0,242,80,14
|
||
W_TEXT 22,245,COLORP.HIGHGRAY,"F1 Help"
|
||
W_BUTTON 80,242,80,14
|
||
W_TEXT 100,245,COLORP.HIGHGRAY,"F3 View"
|
||
W_BUTTON 160,242,80,14
|
||
W_TEXT 182,245,COLORP.HIGHGRAY,"F4 Edit"
|
||
W_BUTTON 240,242,80,14
|
||
W_TEXT 260,245,COLORP.HIGHGRAY,"F5 Copy"
|
||
W_BUTTON 320,242,80,14
|
||
W_TEXT 334,245,COLORP.HIGHGRAY,"F6 Rename"
|
||
W_BUTTON 400,242,80,14
|
||
W_TEXT 414,245,COLORP.HIGHGRAY,"F7 MakeDir"
|
||
W_BUTTON 480,242,80,14
|
||
W_TEXT 496,245,COLORP.HIGHGRAY,"F8 Delete"
|
||
W_BUTTON 560,242,80,14
|
||
W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
|
||
W_END
|
||
LD A,(CMOSFlag)
|
||
OR A
|
||
RET Z
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
W_BORDER 500,15,136,12
|
||
W_END
|
||
LD HL,0x01FC
|
||
LD DE,0x0012
|
||
LD B,0x80
|
||
EXX
|
||
LD HL,0x022E
|
||
LD DE,0x0012
|
||
LD B,0x80
|
||
EXX
|
||
LD A,0x02
|
||
JP SetCMOSPrint
|
||
|
||
;[]==========================================================[]
|
||
InitPanels LD (InitPanFlg),A
|
||
LD HL,LeftPanel+PANEL.VIEWFLAG
|
||
LD A,(RightPanel+PANEL.VIEWFLAG)
|
||
OR (HL)
|
||
AND 0x02
|
||
JR NZ,InitPanTree
|
||
LD IY,LeftPanel
|
||
CALL InitPanelE
|
||
LD IY,RightPanel
|
||
CALL InitPanelE
|
||
JR InitPanExit
|
||
|
||
InitPanTree LD IY,LeftPanel
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
JR NZ,.L1
|
||
LD IY,RightPanel
|
||
.L1 CALL InitPanelE
|
||
InitPanExit LD HL,LeftPanel
|
||
LD DE,PANEL.CURRPATH
|
||
BIT 7,(HL)
|
||
JR NZ,.L2
|
||
LD HL,RightPanel
|
||
.L2 PUSH HL
|
||
ADD HL,DE
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
RET
|
||
|
||
InitPanel SUB A
|
||
InitPanel1 LD (InitPanFlg),A
|
||
InitPanelE LD A,(InitPanFlg)
|
||
BIT 0,A
|
||
CALL Z,SetClock
|
||
CALL PrintDisks
|
||
CALL PrintPath
|
||
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
|
||
CALL NZ,PrintDOSPath
|
||
LD A,(IY+PANEL.VIEWFLAG)
|
||
AND VIEWFLAG.MASK
|
||
JP NZ,InitPPanel
|
||
LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD (PanelN1),HL
|
||
INC HL
|
||
INC HL
|
||
LD (PanelN2),HL
|
||
LD (PanelN6),HL
|
||
LD (PanelN3),HL
|
||
LD (Nbut1),HL
|
||
LD (Nfile),HL
|
||
LD DE,0x0010
|
||
ADD HL,DE
|
||
LD (PanelN4),HL
|
||
LD (Nbut1+2),HL
|
||
LD (Nbar1),HL
|
||
LD (IY+PANEL.BARXL),L
|
||
LD (IY+PANEL.BARXH),H
|
||
LD (IY+PANEL.BARYL),0xC9
|
||
LD (IY+PANEL.BARYH),0x00
|
||
LD DE,0x0114
|
||
ADD HL,DE
|
||
LD (PanelN5),HL
|
||
LD (Nbar2+2),HL
|
||
LD (Nbut2),HL
|
||
LD (IY+PANEL.BARMLL),E
|
||
LD (IY+PANEL.BARMLH),D
|
||
LD DE,0x0010
|
||
ADD HL,DE
|
||
LD (Nbut2+2),HL
|
||
LD (Nfile+2),HL
|
||
LD (IY+PANEL.FPL),0x33
|
||
LD (IY+PANEL.FPH),0x00
|
||
; Šà âª ï ¯ ¥«ì
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
PanelN1 EQU $+1
|
||
W_BORDER 0,59,312,151
|
||
PanelN2 EQU $+1
|
||
W_FILL 0,60,308,149,COLORI.PANEL
|
||
PanelN3 EQU $+1
|
||
W_ICONLEFTARROW 0,201
|
||
PanelN4 EQU $+1
|
||
W_FILL 0,201,276,8,COLORI.HIGHGRAY
|
||
PanelN5 EQU $+1
|
||
W_ICONRIGHTARROW 0,201
|
||
PanelN6 EQU $+1
|
||
W_FILL 0,213,310,12,COLORI.HIGHGRAY
|
||
W_END
|
||
|
||
LD HL,NormMouse
|
||
LD DE,PanelPlaceL
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
JR Z,.L1
|
||
LD DE,PanelPlaceR
|
||
.L1 PUSH DE
|
||
LD BC,0x0050
|
||
LDIR
|
||
POP HL
|
||
LD C,0x32
|
||
ADD HL,BC
|
||
LD (IY+PANEL.BARLFL),L
|
||
LD (IY+PANEL.BARLFH),H
|
||
LD C,0x0E
|
||
ADD HL,BC
|
||
LD (IY+PANEL.BARRTL),L
|
||
LD (IY+PANEL.BARRTH),H
|
||
JP InitPanEx
|
||
|
||
NormMouse
|
||
Nfile DEFW 0, 0, 63,199,%0000000000000000,0,NewFile,RESIDENT.MarkFile
|
||
Nbut1 DEFW 0, 0,201,209,%0000000000000011,0,ScrollDown,0
|
||
Nbut2 DEFW 0, 0,201,209,%0000000000000011,0,ScrollUp,0
|
||
Nbar1 DEFW 0, 0,201,209,%0000000000000000,0,PageUp,0
|
||
Nbar2 DEFW 0, 0,201,209,%0000000000000000,0,PageDown,0
|
||
|
||
; <20>®¤à®¡ ï ¯ ¥«ì ¨ ¯ ¥«ì á ¤¥à¥¢®¬
|
||
InitPPanel LD L,(IY+PANEL.XL)
|
||
LD H,(IY+PANEL.XH)
|
||
LD (PanelP1),HL
|
||
INC HL
|
||
INC HL
|
||
LD (PanelP2),HL
|
||
LD (PanelP6),HL
|
||
LD (Pfile),HL
|
||
LD DE,0x0124
|
||
ADD HL,DE
|
||
LD (PanelP3),HL
|
||
LD (PanelP4),HL
|
||
LD (PanelP5),HL
|
||
LD (Pbut1),HL
|
||
LD (Pbut2),HL
|
||
LD (Pbar1),HL
|
||
LD (Pbar2),HL
|
||
LD (Pfile+2),HL
|
||
LD (IY+PANEL.BARXL),L
|
||
LD (IY+PANEL.BARXH),H
|
||
LD DE,0x0010
|
||
ADD HL,DE
|
||
LD (Pbut1+2),HL
|
||
LD (Pbut2+2),HL
|
||
LD (Pbar1+2),HL
|
||
LD (Pbar2+2),HL
|
||
LD (IY+PANEL.BARYL),0x44
|
||
LD (IY+PANEL.BARYH),0x00
|
||
LD (IY+PANEL.BARMLL),0x85
|
||
LD (IY+PANEL.BARMLH),0x00
|
||
LD (IY+PANEL.FPL),0x12
|
||
LD (IY+PANEL.FPH),0x00
|
||
MAKEWINDOW WINSUBOBJ.WOBIND
|
||
PanelP1 EQU $+1
|
||
W_BORDER 0,59,312,151
|
||
PanelP2 EQU $+1
|
||
W_FILL 0,60,308,149,COLORI.PANEL
|
||
PanelP3 EQU $+1
|
||
W_ICONUPARROW 0,60
|
||
PanelP4 EQU $+1
|
||
W_FILL 0,68,16,133,COLORI.HIGHGRAY
|
||
PanelP5 EQU $+1
|
||
W_ICONDOWNARROW 0,201
|
||
PanelP6 EQU $+1
|
||
W_FILL 0,213,310,12,COLORI.HIGHGRAY
|
||
W_END
|
||
|
||
LD HL,PodrMouse
|
||
LD DE,PanelPlaceL
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
JR Z,.L1
|
||
LD DE,PanelPlaceR
|
||
.L1 PUSH DE
|
||
LD BC,0x0050
|
||
LDIR
|
||
POP HL
|
||
LD BC,0x0036
|
||
ADD HL,BC
|
||
LD (IY+PANEL.BARLFL),L
|
||
LD (IY+PANEL.BARLFH),H
|
||
LD BC,0x000E
|
||
ADD HL,BC
|
||
LD (IY+PANEL.BARRTL),L
|
||
LD (IY+PANEL.BARRTH),H
|
||
JP InitPanEx
|
||
|
||
PodrMouse
|
||
Pfile DW 0, 0, 63,207,%0000000000000000,0,NewFile,RESIDENT.MarkFile
|
||
Pbut1 DW 0, 0, 60, 68,%0000000000000011,0,ScrollDown,0
|
||
Pbut2 DW 0, 0,201,209,%0000000000000011,0,ScrollUp,0
|
||
Pbar1 DW 0, 0, 68, 0,%0000000000000000,0,PageUp,0
|
||
Pbar2 DW 0, 0, 0,209,%0000000000000000,0,PageDown,0
|
||
|
||
InitPanEx LD A,(InitPanFlg)
|
||
BIT 0,A
|
||
JR NZ,.L2
|
||
PUSH IY
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
SPDSS DSSF.CHDIR
|
||
POP IY
|
||
JR NC,.L1
|
||
CALL DOSError
|
||
PUSH IY
|
||
SPDSS DSSF.CURDISK
|
||
POP IY
|
||
PUSH IY
|
||
POP HL
|
||
LD DE,PANEL.CURRPATH
|
||
ADD HL,DE
|
||
ADD A,'A'
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),':'
|
||
INC HL
|
||
PUSH IY
|
||
SPDSS DSSF.CURDIR
|
||
POP IY
|
||
JP InitPanel
|
||
|
||
.L1 CALL ReadDIR
|
||
LD A,(InitPanFlg)
|
||
BIT 1,A
|
||
CALL NZ,FindPrevFile
|
||
.L2 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,(InitPanFlg)
|
||
BIT 0,A
|
||
RET NZ
|
||
LD HL,LeftPanel+PANEL.VIEWFLAG
|
||
LD A,(RightPanel+PANEL.VIEWFLAG)
|
||
OR (HL)
|
||
AND 0x02
|
||
RRCA
|
||
LD (TreeFlag),A
|
||
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
|
||
RET Z
|
||
PUSH IY
|
||
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
|
||
LD IY,RightPanel
|
||
LD HL,LeftPanel + PANEL.CURRPATH
|
||
LD DE,RightPanel + PANEL.CURRPATH
|
||
JR Z,.L3
|
||
LD IY,LeftPanel
|
||
LD HL,RightPanel + PANEL.CURRPATH
|
||
LD DE,LeftPanel + PANEL.CURRPATH
|
||
.L3 SUB A
|
||
.L4 LDI
|
||
CP (HL)
|
||
JR NZ,.L4
|
||
LD (DE),A
|
||
CALL InitPanelE
|
||
POP IY
|
||
RET
|
||
|
||
InitPanFlg DEFB 0x00
|