flex_nav/plugins/fneditor/fesetup.a80

315 lines
6.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; LAST UPDATE: 24.03.2025 savelij
FECSign: DB "FEC"
HomeKeyFlag: DB 0
IndentFlag: DB 0
BracketsFlag: DB 0
ExitDlgFlag: DB 0
;[]==========================================================[]
ReadEditorIni: ld a,0
.iniReaded EQU $-1
and a
ret nz
inc a
ld (.iniReaded),a
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
GETPORT WINSP.CPU1
PUSH AF
LD A,(JUMPS.FNFUNCT)
SETPORT WINSP.CPU1,,0
LD HL,ADDR.FlexDIRECTORY
PUSH IY
SPDSS DSSF.CHDIR
POP IY
EX AF,AF'
POP AF
SETPORT WINSP.CPU1,,0
EX AF,AF'
JP C,.exit
LD HL,SettingsFileName
PUSH IY
SPDSS DSSF.OPEN,,1
pop iy
jr c,.exit
ld (.file),a
ld hl,LineBuffer
push hl
ld de,LineBuffer+1
ld (hl),0
ld bc,7
ldir
pop hl
ld de,7
PUSH IY
SPDSS DSSF.READ
pop iy
jr c,.close
ld hl,(LineBuffer)
ld de,'EF'
and a
sbc hl,de
jr nz,.close
ld hl,LineBuffer+2
ld a,(hl)
cp 'C'
jr nz,.close
inc hl
ld a,(hl)
ld (THomeString.param),a
inc hl
ld a,(hl)
ld (CalcStartTabs.param),a
inc hl
ld a,(hl)
ld (AutoBrackets),a
inc hl
ld a,(hl)
ld (QuitAsk.param),a
.close: ld a,0
.file EQU $-1
PUSH IY
SPDSS DSSF.CLOSE
pop IY
.exit: LD HL,WorkBuffer
PUSH IY
SPDSS DSSF.CHDIR
POP IY
ret
;[]==========================================================[]
EditorSetup: CALL PutString
CALL FEResCursor
LD A,(QuitAsk.param)
ld (ExitDlgFlag),a
CALL ParamToSymbol
LD (ExitDlgFlg),A
LD A,(THomeString.param)
ld (HomeKeyFlag),a
CALL ParamToSymbol
LD (HomeKeyFlg),A
LD A,(CalcStartTabs.param)
ld (IndentFlag),a
CALL ParamToSymbol
LD (IndentFlg),A
LD A,(AutoBrackets)
ld (BracketsFlag),a
CALL ParamToSymbol
LD (BracketsFlg),A
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 200,80,240,110
W_FILL 4,2,232,10,COLORI.BLACK
W_TEXT 84,3,COLORI.WHITE,"Editor settings"
W_BORDER 16,19,20,11
W_FILL 18,20,16,9,COLORI.WHITE
W_TEXT 20,21,COLORP.WHITE,"\xFF"
ExitDlgFlg: EQU $ - 2
W_TEXT 40,22,COLORP.HIGHGRAY,"Confirmation of closing the editor"
W_BORDER 16,35,20,11
W_FILL 18,36,16,9,COLORI.WHITE
W_TEXT 20,37,COLORP.WHITE,"\xFF"
HomeKeyFlg: EQU $-2
W_TEXT 40,38,COLORP.HIGHGRAY,"find first symbol on Home key"
W_BORDER 16,51,20,11
W_FILL 18,52,16,9,COLORI.WHITE
W_TEXT 20,53,COLORP.WHITE,"\xFF"
IndentFlg: EQU $-2
W_TEXT 40,54,COLORP.HIGHGRAY,"auto Indent"
W_BORDER 16,67,20,11
W_FILL 18,68,16,9,COLORI.WHITE
W_TEXT 20,69,COLORP.WHITE,"\xFF"
BracketsFlg: EQU $-2
W_TEXT 40,70,COLORP.HIGHGRAY,"auto Brackets"
W_HORIZLINE 4,84,232
W_BUTTON 77,90,72,14
W_TEXT 96,93,COLORP.HIGHGRAY,"Cancel"
W_BUTTON 160,90,64,14
W_TEXT 188,93,COLORP.HIGHGRAY,"Ok"
W_END
FESetupLoop: LD IX,FESetupTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,FESetupLoop
LD A,E
RES 5,A
CP 0x1B
JP Z,FESetupCancel
CP 0x0D
JP Z,FESetupOkey
CP 'O'
JP Z,FESetupOkey
ld hl,FESetupLoop
push hl
CP 'B'
JP Z,SetupAutoBracketsInvert
CP 'C'
JP Z,SetupConfirmDlgInvert
CP 'H'
JP Z,SetupHomeKeyInvert
CP 'I'
JP Z,SetupAutoIndentInvert
ret
;A - parameter
;Out - A = A == 0 ? " " : "v"
ParamToSymbol: OR A
LD A,0xFE
RET Z
INC A
RET
CheckTxt: DEFB 0x00,0x00
SetupConfirmDlgInvert:
LD HL,CheckTxt
LD A,(ExitDlgFlag)
XOR 0x01
LD (ExitDlgFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0065
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
SetupHomeKeyInvert:
LD HL,CheckTxt
LD A,(HomeKeyFlag)
XOR 0x01
LD (HomeKeyFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0075
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
SetupAutoIndentInvert:
LD HL,CheckTxt
LD A,(IndentFlag)
XOR 0x01
LD (IndentFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0085
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
SetupAutoBracketsInvert:
LD HL,CheckTxt
LD A,(BracketsFlag)
XOR 0x01
LD (BracketsFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0095
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
FESetupOkey: ld a,(ExitDlgFlag)
LD (QuitAsk.param),a
LD A,(HomeKeyFlag)
LD (THomeString.param),A
ld A,(IndentFlag)
LD (CalcStartTabs.param),A
ld a,(BracketsFlag)
LD (AutoBrackets),a
PUSH IY
SPDSS DSSF.CURDISK ;Write ini-file
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
GETPORT WINSP.CPU1
PUSH AF
LD A,(JUMPS.FNFUNCT)
SETPORT WINSP.CPU1,,0
LD HL,ADDR.FlexDIRECTORY
SPDSS DSSF.CHDIR
EX AF,AF'
POP AF
SETPORT WINSP.CPU1,,0
EX AF,AF'
JP C,.exit
LD HL,SettingsFileName
SPDSS DSSF.CREATE,,0x20
jr c,.exit
ld (.file),a
jr c,.close
ld hl,FECSign
ld de,7
SPDSS DSSF.WRITE
.close: ld a,0
.file EQU $-1
SPDSS DSSF.CLOSE
.exit: LD HL,WorkBuffer
SPDSS DSSF.CHDIR
POP IY
FESetupCancel:
WINDOWCLOSE
RET
;[]==========================================================[]
;<3B><><EFBFBD><><E2A0A1><EFBFBD><EFBFBD>
; +00 2 Xmin
; +02 2 Xmax
; +04 2 Ymin
; +06 2 Ymax
; +08 2 0 - <20><><EFBFBD><EFBFBD><20><>'<27><><EFBFBD>
; <09><><EFBFBD> 0 - <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <09><><EFBFBD> 1 - ࠡ<><E0A0A1><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <09><><EFBFBD> 2 - <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
; <09><><EFBFBD> 3 - <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <09><><EFBFBD> 4 - <09>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><E1AAA0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
; <09> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
; <09><><EFBFBD> 5 - <09>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><E1AAA0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
; <09><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD>
; <09><><EFBFBD> 6 - <09>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><E1AAA0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
; <09><> <20><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
; <09><><EFBFBD> 7 - <09><EFBFBD><EBA7A2><EFBFBD> <09><EFBFBD><E3ADAA><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
; <09><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
; <09><><EFBFBD> 8 - <09><EFBFBD><EBA7A2><EFBFBD> <09><EFBFBD><E3ADAA><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
; <09><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <09><><EFBFBD> 9 - <09><EFBFBD><EBA7A2><EFBFBD> <09><EFBFBD><E3ADAA><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
; <09><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><> <20><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <09><><EFBFBD>15 - <09><><EFBFBD> <20><><EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
; 㡨<><E3A1A8><EFBFBD><EFBFBD>)
; +0A 2 <09><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A1><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>
; +0C 2 <09><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> (<28><><EFBFBD>)
; +0E 2 <09><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A1><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> (<28>ࠢ)
;[]==========================================================[]
FESetupTab: DEFW 0x0114,0x015C,0x00AA,0x00B8,0x0021,0x0000,FESetupCancel,0x0000
DEFW 0x0168,0x01A8,0x00AA,0x00B8,0x0021,0x0000,FESetupOkey,0x0000
DEFW 0x00D8,0x0192,0x0063,0x006D,0x0000,0x0000,SetupConfirmDlgInvert,0x0000
DEFW 0x00D8,0x0186,0x0073,0x007D,0x0000,0x0000,SetupHomeKeyInvert,0x0000
DEFW 0x00D8,0x0129,0x0083,0x008D,0x0000,0x0000,SetupAutoIndentInvert,0x0000
DEFW 0x00D8,0x0132,0x0093,0x009D,0x0000,0x0000,SetupAutoBracketsInvert,0x0000
DEFW 0x0000,0x00C8,0x0000,0x0100,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x01B8,0x0280,0x0000,0x0100,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x0000,0x0280,0x0000,0x0050,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x0000,0x0280,0x00BC,0x0100,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x8000