flex_nav/rez2_fnconfig.a80

713 lines
12 KiB
Plaintext
Raw Permalink Blame History

; LAST UPDATE: 24.03.2025 savelij
PALITRA.RESERV EQU PALETTE + 0x34
;[]==========================================================[]
SetupR
SETPORT WINSP.Y_PORT,0xC0
LD HL,SetInvert
PUSH HL
LD HL,PALETTE
LD DE,TempPALETTE
LD BC,0x0040
LDIR
LD A,(SavePanels)
LD (SaveSav+1),A
OR A
LD A,0xFE
JR Z,.L1
INC A
.L1 LD (SaveFlg),A
SUB A
LD (SaveFlag),A
LD A,(AutoActivatePanel)
LD (AutoActivatePanelFlag),A
OR A
LD A,0xFF
JR Z,.L2
DEC A
.L2: LD (ActivateFlg),A
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 96,64,448,142
; W_MAIN 32,32,448,142
W_FILL 4,2,440,10,COLORI.BLACK
W_TEXT 208,3,COLORI.WHITE,"Setup"
W_BORDER 8,18,144,53
W_FILL 10,19,140,51,COLORI.WHITE
W_TEXT 14,21,COLORP.WHITE,"Panel"
W_TEXT 14,29,COLORP.WHITE,"Files"
W_TEXT 14,37,COLORP.WHITE,"Selected files"
W_TEXT 14,45,COLORP.WHITE,"Invert background"
W_TEXT 14,53,COLORP.WHITE,"Invert foreground"
W_TEXT 14,61,COLORP.WHITE,"Invert foreground (select)"
W_TEXT 164,24,COLORP.HIGHGRAY,"R:"
W_BORDER 176,22,164,10
W_ICONLEFTARROW 178,23
W_ICONRIGHTARROW 322,23
W_TEXT 164,40,COLORP.HIGHGRAY,"G:"
W_BORDER 176,38,164,10
W_ICONLEFTARROW 178,39
W_ICONRIGHTARROW 322,39
W_TEXT 164,56,COLORP.HIGHGRAY,"B:"
W_BORDER 176,54,164,10
W_ICONLEFTARROW 178,55
W_ICONRIGHTARROW 322,55
W_BORDER 372,23,64,40
W_HORIZLINE 4,75,440
W_BORDER 16,81,20,11
W_FILL 18,82,16,9,COLORI.WHITE
W_TEXT 20,83,COLORP.WHITE,"\0"
ActivateFlg EQU $-2
W_TEXT 40,84,COLORP.HIGHGRAY,"activate panel in which changed drive"
W_BORDER 16,99,20,11
W_FILL 18,100,16,9,COLORI.WHITE
W_TEXT 20,101,COLORP.WHITE,"\0"
SaveFlg EQU $-2
W_TEXT 40,102,COLORP.HIGHGRAY,"save Information about panels"
W_BUTTON 360,98,72,14
W_TEXT 384,101,COLORP.HIGHGRAY,"Save"
W_HORIZLINE 4,115,440
W_BUTTON 272,120,72,14
W_TEXT 292,123,COLORP.HIGHGRAY,"Cancel"
W_BUTTON 360,120,72,14
W_TEXT 390,123,COLORP.HIGHGRAY,"Ok"
W_END
SUB A
LD (CurElement),A
CALL SetSetupInv
LD IX,BarRed
CALL InitScrollBar
LD IX,BarGreen
CALL InitScrollBar
LD IX,BarBlue
CALL InitScrollBar
CALL InitElement
SetupLoop LD IX,SetupTab
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,SetupLoop
LD A,B
AND 0x3F
JR Z,SetupLoop0
BIT 4,B
JR NZ,SetupLoop
BIT 5,B
JR Z,SetupLoop
LD HL,SetupLoop
PUSH HL
LD A,D
AND 0x7F
CP SC.R
JP Z,InputRED
CP SC.G
JP Z,InputGREEN
CP SC.B
JP Z,InputBLUE
RET
SetupLoop0 LD A,B
AND 0xC0
JR Z,SetupLoop1
LD HL,SetupLoop
PUSH HL
LD A,E
AND 0x5F
CP 'R'
JP Z,DecRED
CP 'G'
JP Z,DecGREEN
CP 'B'
JP Z,DecBLUE
RET
SetupLoop1 LD A,E
RES 5,A
CP 0x1B
JP Z,SetupCancel
CP 0x0D
JP Z,SetupOkey
CP 'C'
JP Z,SetupCancel
CP 'O'
JP Z,SetupOkey
LD HL,SetupLoop
PUSH HL
CP 'S'
JP Z,SaveSetup
CP 'R'
JP Z,IncRED
CP 'G'
JP Z,IncGREEN
CP 'B'
JP Z,IncBLUE
CP 'I'
JP Z,ChSavePan
CP 'A'
JP Z,ChActivatePan
OR A
RET NZ
LD A,D
CP SC.X8
JP Z,BoxUp
CP SC.X2
JP Z,BoxDown
CP SC.X7
JP Z,BoxHome
CP SC.X1
JP Z,BoxEnd
CP SC.X9
JP Z,BoxHome
CP SC.X3
JP Z,BoxEnd
RET
;[]----------------------------------------------------------[]
SaveSetup CALL SetClock
PUSH IY
SPDSS DSSF.CURDISK
POP IY
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH IY
SPDSS DSSF.CURDIR
POP IY
LD HL,FlexDIRECTORY
PUSH IY
SPDSS DSSF.CHDIR
POP IY
PUSH AF
CALL C,DOSError
POP AF
JP C,SetupSaveEx
LD HL,SetupName
PUSH IY
SPDSS DSSF.CREATE,,0
POP IY
PUSH AF
CALL C,DOSError
POP AF
JR C,SetupSaveEx
EX AF,AF'
LD HL,SetupHead
LD DE,WorkBuffer+0x100
LD BC,11
LDIR
LD HL,TempPALETTE
LD BC,0x0040
LDIR
LD A,(SavePanels)
LD (DE),A
INC DE
OR A
JR Z,SvSetup
LD A,(MouseFlag)
LD (DE),A
INC DE
LD HL,LeftPanel
PUSH HL
LDI
LDI
LDI
POP HL
LD BC,PANEL.FILEMASK
ADD HL,BC
SUB A
.L1 LDI
CP (HL)
JR NZ,.L1
LD (DE),A
INC DE
LD HL,RightPanel
PUSH HL
LDI
LDI
LDI
POP HL
LD BC,PANEL.FILEMASK
ADD HL,BC
SUB A
.L2 LDI
CP (HL)
JR NZ,.L2
LD (DE),A
INC DE
SvSetup ld a,(AutoActivatePanelFlag)
ld (de),a
inc de
LD HL,WorkBuffer+0x100
OR A
EX DE,HL
SBC HL,DE
EX DE,HL
EX AF,AF'
PUSH IY
PUSH AF
SPDSS DSSF.WRITE
POP AF
SPDSS DSSF.CLOSE
POP IY
LD A,0x01
LD (SaveFlag),A
SetupSaveEx LD HL,WorkBuffer
PUSH IY
SPDSS DSSF.CHDIR
POP IY
JP SetMouse
SetupHead DEFB 0xAE,"FlexSetup",0
SetupName DZ FILENAME.FN_INI
;--------------------------------------------------------------
SetupCancel
WINDOWCLOSE
SaveSav LD A,0x00
LD (SavePanels),A
JR SetupExit
SetupOkey
WINDOWCLOSE
LD HL,TempPALETTE
LD DE,PALETTE
LD BC,0x0040
PUSH DE
LDIR
POP HL
LD DE,0x1000
SPBIOS BIOSF.PIC_GET_PAL,0xFF,0
LD A,(AutoActivatePanelFlag)
LD (AutoActivatePanel),A
SetupExit LD A,(SaveFlag)
OR A
RET Z
LD IX,LeftPanel
LD HL,LeftPanel + PANEL.CURRPATH
LD DE,FlexDIRECTORY
LD A,(DE)
SetRef1 CP (HL)
JR NZ,SetRef2
INC HL
INC DE
LD A,(DE)
OR A
JR NZ,SetRef1
CP (HL)
CALL Z,RefreshSetup
SetRef2 LD IX,RightPanel
LD HL,RightPanel + PANEL.CURRPATH
LD DE,FlexDIRECTORY
LD A,(DE)
SetRef3 CP (HL)
JR NZ,SetRef4
INC HL
INC DE
LD A,(DE)
OR A
JR NZ,SetRef3
CP (HL)
CALL Z,RefreshSetup
SetRef4 PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
PUSH IY
SPDSS DSSF.CHDIR
POP IY
RET
RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
RET NZ
PUSH IY
PUSH IX
POP IY
PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
PUSH IY
SPDSS DSSF.CHDIR
POP IY
JR C,RefrErr
CALL ReadDIR
CALL PrintDIR
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
RefrErr POP IY
RET
SaveFlag DEFB 0x00
;--------------------------------------------------------------
BoxUp LD A,(CurElement)
DEC A
RET M
JR BoxKeyExt
BoxDown LD A,(CurElement)
INC A
CP 0x06
RET Z
JR BoxKeyExt
BoxHome LD A,(CurElement)
OR A
RET Z
SUB A
JR BoxKeyExt
BoxEnd LD A,(CurElement)
CP 0x05
RET Z
LD A,0x05
JR BoxKeyExt
NewElement LD A,(CurElement)
LD C,A
LD A,E
SUB 0x55
SRL A
SRL A
SRL A
CP C
RET Z
BoxKeyExt PUSH AF
CALL ResSetupInv
POP AF
LD (CurElement),A
CALL SetSetupInv
JP InitElement
;--------------------------------------------------------------
ChSavePan LD HL,SavePanTxt
LD A,(SavePanels)
XOR 0x01
LD (SavePanels),A
XOR 0x01
INC A
NEG
LD (HL),A
LD DE,0x0074
LD BC,0x00A5
LD A,0xF0
CALL PrnTxtLnIFF
JP ResFire
SavePanTxt DEFB 0x00,0x00
;--------------------------------------------------------------
ChActivatePan: LD HL,SavePanTxt
LD A,0
AutoActivatePanelFlag EQU $-1
XOR 0x01
LD (AutoActivatePanelFlag),A
INC A
NEG
LD (HL),A
LD DE,0x0074
LD BC,0x0093
LD A,0xF0
CALL PrnTxtLnIFF
JP ResFire
;--------------------------------------------------------------
DecRED LD HL,PALITRA.RESERV + 2
LD DE,PrintRED
JR DecCOLOR
IncRED LD HL,PALITRA.RESERV + 2
LD DE,PrintRED
JR IncCOLOR
DecGREEN LD HL,PALITRA.RESERV + 1
LD DE,PrintGREEN
JR DecCOLOR
IncGREEN LD HL,PALITRA.RESERV + 1
LD DE,PrintGREEN
JR IncCOLOR
DecBLUE LD HL,PALITRA.RESERV
LD DE,PrintBLUE
JR DecCOLOR
IncBLUE LD HL,PALITRA.RESERV
LD DE,PrintBLUE
JR IncCOLOR
DecCOLOR LD A,(HL)
OR A
RET Z
DEC A
LD (HL),A
JR DecIncCOLOR
IncCOLOR LD A,(HL)
INC A
RET Z
LD (HL),A
DecIncCOLOR LD HL,PrnPALETTE
PUSH HL
PUSH DE
LD HL,ElementColor
LD A,(CurElement)
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
ADD A,A
ADD A,A
LD DE,TempPALETTE
ADD A,E
LD E,A
JR NC,.L2
INC D
.L2 LD HL,PALITRA.RESERV
LDI
LDI
LDI
RET
;--------------------------------------------------------------
InputRED LD HL,PALITRA.RESERV + 2
LD DE,PrintRED
LD BC,0x0058
JR InputColor
InputGREEN LD HL,PALITRA.RESERV + 1
LD DE,PrintGREEN
LD BC,0x0068
JR InputColor
InputBLUE LD HL,PALITRA.RESERV
LD DE,PrintBLUE
LD BC,0x0078
InputColor LD (ColorY),BC
LD BC,DecIncCOLOR
PUSH BC
PUSH HL
PUSH DE
LD DE,ColText
LD A,(HL)
CALL ConvNumTxt8
SUB A
LD (DE),A
LD A,E
SUB LOW (ColText)
LD (ColLen),A
InpAg LD IX,ColorStr
LD HL,EmptyTab
CALL InputLine
POP DE
POP HL
RET C
PUSH HL
PUSH DE
LD DE,ColText
CALL ConvTxtNum16
JR C,InpAg
LD A,H
OR A
JR NZ,InpAg
LD A,L
POP DE
POP HL
LD (HL),A
RET
ColorStr DEFB 0x03,0x00,0x00,0x00
ColLen DEFB 0x00
DEFW 0x01B8
ColorY DEFW 0x0000
DEFW 0x001A
DEFB 0x80
ColText DUPL 0x04,0x00
;--------------------------------------------------------------
CurElement DEFB 0x00
SavePanels DEFB 0x01
ElementColor DB COLORI.PANEL,COLORI.FILES,COLORI.SELECTFILES
DB COLORI.INVERTPAPER,COLORI.INVERTINK,COLORI.INVSELFILES
BarRed DEFW 0x0122 ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0057 ; Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0080 ; Max <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0000 ; ⥪.<2E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E7A5A9> BarLeft
DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E7A5A9> BarRight
DEFW 0x0198 ; <20><><EFBFBD>-<2D><><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><E0A0AD><EFBFBD>
DEFW 0x0FF0 ; <20><><20><><EFBFBD>-<2D><><><E4A0A9><EFBFBD>
CRed DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><> <20><><EFBFBD><E0A0AD><EFBFBD>
BarGreen DEFW 0x0122 ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0067 ; Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0080 ; Max <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0000 ; ⥪.<2E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E7A5A9> BarLeft
DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E7A5A9> BarRight
DEFW 0x0198 ; <20><><EFBFBD>-<2D><><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><E0A0AD><EFBFBD>
DEFW 0x0FF0 ; <20><><20><><EFBFBD>-<2D><><><E4A0A9><EFBFBD>
CGreen DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><> <20><><EFBFBD><E0A0AD><EFBFBD>
BarBlue DEFW 0x0122 ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0077 ; Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0080 ; Max <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0000 ; ⥪.<2E><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E7A5A9> BarLeft
DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E7A5A9> BarRight
DEFW 0x0198 ; <20><><EFBFBD>-<2D><><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><E0A0AD><EFBFBD>
DEFW 0x0FF0 ; <20><><20><><EFBFBD>-<2D><><><E4A0A9><EFBFBD>
CBlue DEFW 0x0000 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><> <20><><EFBFBD><E0A0AD><EFBFBD>
TempPALETTE DUPL 0x40,0
;--------------------------------------------------------------
ResSetupInv LD DE,(COLORP.BLUE + COLORI.WHITE) << 8 | (COLORP.WHITE + COLORI.BLACK) ;0x4FF0
JR SetupInvert
SetSetupInv LD DE,(COLORP.WHITE + COLORI.BLACK) << 8 | (COLORP.BLUE + COLORI.WHITE) ;0xF04F
SetupInvert LD HL,85 ; Y <20><><EFBFBD><E5AEA4><EFBFBD>
; TODO <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, ᤥ<><E1A4A5><EFBFBD><EFBFBD> <20>ਢ離<E0A8A2>
LD A,(CurElement)
OR A
JR Z,SetupI1
LD B,A
PUSH DE
LD DE,8
.L1 ADD HL,DE
DJNZ .L1
POP DE
SetupI1 LD IX,8 << 8 | 70 ; HIGH -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, LOW -> <20><><EFBFBD>
LD C,L
LD B,H ; Y
LD HL,106 ; X
; TODO <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, ᤥ<><E1A4A5><EFBFBD><EFBFBD> <20>ਢ離<E0A8A2>
JP InvertRectan
InitElement LD HL,ElementColor
LD A,(CurElement)
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
ADD A,A
ADD A,A
LD HL,PALETTE
ADD A,L
LD L,A
JR NC,.L2
INC H
.L2 LD DE,PALITRA.RESERV
LDI
LDI
LDI
CALL PrintRED
CALL PrintGREEN
CALL PrintBLUE
JP PrnPALETTE
PrintRED LD DE,WorkBuffer
LD A,(PALITRA.RESERV + 2)
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD (CRed),HL
CALL ConvNumTxt8
LD A,0x04
SUB E
LD B,A
LD A,0x20
.L1 LD (DE),A
INC E
DJNZ .L1
SUB A
InitEl1 LD (DE),A
LD HL,WorkBuffer
LD DE,0x01B8
LD BC,0x0058
LD A,0x80
CALL PrnTxtLnIFF
LD IX,BarRed
JP PrnHScrBar
PrintGREEN LD DE,WorkBuffer
LD A,(PALITRA.RESERV + 1)
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD (CGreen),HL
CALL ConvNumTxt8
LD A,0x04
SUB E
LD B,A
LD A,0x20
.L1 LD (DE),A
INC E
DJNZ .L1
SUB A
InitEl2 LD (DE),A
LD HL,WorkBuffer
LD DE,0x01B8
LD BC,0x0068
LD A,0x80
CALL PrnTxtLnIFF
LD IX,BarGreen
JP PrnHScrBar
PrintBLUE LD DE,WorkBuffer
LD A,(PALITRA.RESERV)
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD (CBlue),HL
CALL ConvNumTxt8
LD A,0x04
SUB E
LD B,A
LD A,0x20
.L1 LD (DE),A
INC E
DJNZ .L1
SUB A
InitEl3 LD (DE),A
LD HL,WorkBuffer
LD DE,0x01B8
LD BC,0x0078
LD A,0x80
CALL PrnTxtLnIFF
LD IX,BarBlue
JP PrnHScrBar
PrnPALETTE LD HL,PALETTE
LD DE,0x1000
SPBIOS BIOSF.PIC_GET_PAL,0xFF,0
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 470,88,60,38,COLORI.RESERVED
W_END
RET