315 lines
6.5 KiB
Plaintext
315 lines
6.5 KiB
Plaintext
|
||
; 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
|