402 lines
6.3 KiB
Plaintext
402 lines
6.3 KiB
Plaintext
|
||
; LAST UPDATE: 23.04.2025 savelij
|
||
|
||
;[]==========================================================[]
|
||
HelpR LD A,0x01
|
||
LD (JUMPS.CMOSPrint),A
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
MAKEWINDOW WINSUBOBJ.STORE
|
||
W_MAIN 64,16,512,224
|
||
W_FILL 4,2,504,10,COLORI.BLACK
|
||
W_TEXT 248,3,COLORI.WHITE,"Help"
|
||
W_BUTTON 220,206,72,14
|
||
W_TEXT 250,209,COLORP.HIGHGRAY,"Ok"
|
||
W_BORDER 8,16,496,187
|
||
W_FILL 10,17,476,185,COLORI.WHITE
|
||
W_ICONUPARROW 486,17
|
||
W_ICONDOWNARROW 486,194
|
||
W_END
|
||
CALL InitHelpTxt
|
||
CALL PrnHelpPg
|
||
CALL JUMPS.ResFire
|
||
HelpLoop LD IX,HelpTab
|
||
CALL JUMPS.TestCoords
|
||
SPDSS DSSF.SCANKEY
|
||
JR Z,HelpLoop
|
||
LD A,B
|
||
OR A
|
||
JR NZ,HelpLoop
|
||
LD A,E ; …-ASCII ª®¤
|
||
CP 0x1B ; Esc
|
||
JP Z,HelpExit
|
||
CP 0x0D ; Enter
|
||
JP Z,HelpExit
|
||
RES 5,A
|
||
CP 'O'
|
||
JP Z,HelpExit
|
||
OR A
|
||
JR NZ,HelpLoop ; †¤¥¬ äãªæ¨®.ª« ¢¨è¨
|
||
LD HL,HelpLoop
|
||
PUSH HL
|
||
LD A,D
|
||
CP SC.X8 ; ‘â५ª ¢¢¥àå
|
||
JP Z,HLineUp
|
||
CP SC.X2 ; ‘â५ª ¢¨§
|
||
JP Z,HLineDown
|
||
CP SC.X9 ; PageUp
|
||
JP Z,HPageUp
|
||
CP SC.X3 ; PageDown
|
||
JP Z,HPageDown
|
||
CP SC.X7 ; Home
|
||
JP Z,HHome
|
||
CP SC.X1 ; End
|
||
JP Z,HEnd
|
||
RET
|
||
|
||
HelpExit
|
||
WINDOWCLOSE
|
||
SUB A
|
||
LD (JUMPS.CMOSPrint),A
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
InitHelpTxt LD HL,HelpText
|
||
LD (PageShift),HL
|
||
LD HL,0x0000
|
||
LD (CHLine),HL
|
||
LD HL,HelpText
|
||
LD DE,0x0000
|
||
InHelp1 LD BC,0x1000
|
||
SUB A
|
||
CPIR
|
||
INC DE
|
||
LD A,(HL)
|
||
INC A
|
||
JR NZ,InHelp1
|
||
DEC DE
|
||
LD (EHLines),DE
|
||
LD IX,HelpVBar
|
||
JP JUMPS.InitScrollBar
|
||
|
||
PageShift DW 0
|
||
NextShift DW 0
|
||
HelpVBar DW 550 ; X ¯®§¨æ¨ï áªà®«¡ à
|
||
DW 41 ; Y ¯®§¨æ¨ï áªà®«¡ à
|
||
DW 169 ; Max ¤«¨ áªà®«¡ à
|
||
DW 0 ; ⥪.¤«¨ áªà®«¡ à
|
||
DW HBarUp ; €¤à¥á ï祩ª¨ BarLeft
|
||
DW HBarDn ; €¤à¥á ï祩ª¨ BarRight
|
||
DW 23 ; Š®«-¢® áâப áâà ¨æ¥
|
||
EHLines DW 0 ; ޡ饥 ª®«-¢® áâப
|
||
CHLine DW 0 ; <20>¥à¢ ï áâப áâà ¨æ¥
|
||
|
||
;[]----------------------------------------------------------[]
|
||
PrnHelpPg LD HL,(PageShift)
|
||
LD B,34
|
||
PrnHPg1 PUSH BC
|
||
CALL ClearHRect
|
||
LD DE,80
|
||
LD C,B
|
||
LD B,D
|
||
LD A,(HL)
|
||
INC A
|
||
LD A,240
|
||
CALL NZ,JUMPS.PrnTxtLnIFF
|
||
POP BC
|
||
LD A,B
|
||
ADD A,8
|
||
LD B,A
|
||
CP 218
|
||
JR NZ,PrnHPg1
|
||
LD (NextShift),HL
|
||
LD IX,HelpVBar
|
||
JP JUMPS.PrnVScrBar
|
||
|
||
ClearHRect PUSH HL
|
||
PUSH BC
|
||
GETPORT WINSP_CPU
|
||
PUSH AF
|
||
DI
|
||
SETPORT WINSP_CPU,0x50
|
||
LD HL,WINSP_ADR + 40
|
||
LD IXL,B
|
||
LD D,COLORP.WHITE + COLORI.WHITE
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD A,0xE8
|
||
ACCEL ACCELCMD.OFF
|
||
LD B,0x08
|
||
ClHRect LD A,IXL
|
||
SETPORT WINSP.Y_PORT,,0
|
||
ACCEL ACCELCMD.FILL
|
||
LD (HL),D
|
||
ACCEL ACCELCMD.OFF
|
||
INC IXL
|
||
DJNZ ClHRect
|
||
POP AF
|
||
SETPORT WINSP_CPU,,0
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
EI
|
||
POP BC
|
||
POP HL
|
||
RET
|
||
|
||
;[]----------------------------------------------------------[]
|
||
HHome LD HL,(PageShift)
|
||
LD DE,HelpText
|
||
OR A
|
||
SBC HL,DE
|
||
RET Z
|
||
LD (PageShift),DE
|
||
LD HL,0x0000
|
||
LD (CHLine),HL
|
||
JP PrnHelpPg
|
||
|
||
HEnd LD HL,(NextShift)
|
||
LD A,(HL)
|
||
INC A
|
||
RET Z
|
||
LD HL,HelpTextEnd
|
||
DEC HL
|
||
DEC HL
|
||
PUSH HL
|
||
LD DE,HelpText
|
||
OR A
|
||
SBC HL,DE
|
||
LD C,L
|
||
LD B,H
|
||
POP HL
|
||
LD DE,(EHLines)
|
||
DEC HL
|
||
LD A,0x17
|
||
.L1 EX AF,AF'
|
||
SUB A
|
||
DEC DE
|
||
CPDR
|
||
JP PO,.L2
|
||
EX AF,AF'
|
||
DEC A
|
||
JR NZ,.L1
|
||
INC HL
|
||
.L2 INC HL
|
||
LD (PageShift),HL
|
||
INC DE
|
||
LD (CHLine),DE
|
||
JP PrnHelpPg
|
||
|
||
HLineUp LD HL,(PageShift)
|
||
LD DE,HelpText
|
||
OR A
|
||
SBC HL,DE
|
||
RET Z
|
||
LD C,L
|
||
LD B,H
|
||
ADD HL,DE
|
||
DEC HL
|
||
SUB A
|
||
CPD
|
||
JP PO,HLnUp0
|
||
CPDR
|
||
INC HL
|
||
HLnUp0 INC HL
|
||
LD (PageShift),HL
|
||
LD DE,HelpTextEnd
|
||
DEC DE
|
||
EX DE,HL
|
||
OR A
|
||
SBC HL,DE
|
||
EX DE,HL
|
||
LD C,E
|
||
LD B,D
|
||
LD A,0x17
|
||
HLnUp1 EX AF,AF'
|
||
SUB A
|
||
CPIR
|
||
JP PO,HLnUp2
|
||
EX AF,AF'
|
||
DEC A
|
||
JR NZ,HLnUp1
|
||
HLnUp2 LD (NextShift),HL
|
||
LD HL,(CHLine)
|
||
DEC HL
|
||
LD (CHLine),HL
|
||
LD DE,0x222A
|
||
CALL ScrHELPDnUp
|
||
LD B,34
|
||
CALL ClearHRect
|
||
LD HL,(PageShift)
|
||
LD DE,80
|
||
LD C,B
|
||
LD B,D
|
||
LD A,(HL)
|
||
INC A
|
||
LD A,240
|
||
CALL NZ,JUMPS.PrnTxtLnIFF
|
||
LD IX,HelpVBar
|
||
JP JUMPS.PrnVScrBar
|
||
|
||
HLineDown LD HL,(NextShift)
|
||
LD A,(HL)
|
||
INC A
|
||
RET Z
|
||
PUSH HL
|
||
LD DE,HelpTextEnd
|
||
EX DE,HL
|
||
OR A
|
||
SBC HL,DE
|
||
EX DE,HL
|
||
LD C,E
|
||
LD B,D
|
||
SUB A
|
||
CPIR
|
||
LD (NextShift),HL
|
||
LD HL,(PageShift)
|
||
LD DE,HelpTextEnd
|
||
EX DE,HL
|
||
OR A
|
||
SBC HL,DE
|
||
EX DE,HL
|
||
LD C,E
|
||
LD B,D
|
||
SUB A
|
||
CPIR
|
||
LD (PageShift),HL
|
||
LD HL,(CHLine)
|
||
INC HL
|
||
LD (CHLine),HL
|
||
LD DE,0x2A22
|
||
CALL ScrHELPDnUp
|
||
POP HL
|
||
LD B,210
|
||
CALL ClearHRect
|
||
LD DE,80
|
||
LD C,B
|
||
LD B,D
|
||
LD A,(HL)
|
||
INC A
|
||
LD A,240
|
||
CALL NZ,JUMPS.PrnTxtLnIFF
|
||
LD IX,HelpVBar
|
||
JP JUMPS.PrnVScrBar
|
||
|
||
;<3B> ¢å®¤:
|
||
; D - Y ®âªã¤
|
||
; … - Y ªã¤
|
||
ScrHELPDnUp
|
||
GETPORT WINSP_CPU
|
||
PUSH AF
|
||
DI
|
||
SETPORT WINSP_CPU,0x50
|
||
LD HL,WINSP_ADR + 40
|
||
LD B,0xE8
|
||
ACCEL ACCELCMD.SET_BUFFER
|
||
LD A,0xB0
|
||
ACCEL ACCELCMD.OFF
|
||
ScHelp1 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 ScHelp1
|
||
POP AF
|
||
SETPORT WINSP_CPU,,0
|
||
SETPORT WINSP.Y_PORT,0xC0
|
||
EI
|
||
RET
|
||
|
||
HPageUpM CALL HPageUp
|
||
RET C
|
||
LD B,0x0A
|
||
HUpM1 PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ HUpM1
|
||
HUpM2 CALL HPageUp
|
||
RET C
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
RET Z
|
||
JR HUpM2
|
||
|
||
HPageUp LD HL,(PageShift)
|
||
LD DE,HelpText
|
||
OR A
|
||
SBC HL,DE
|
||
SCF
|
||
RET Z
|
||
LD C,L
|
||
LD B,H
|
||
ADD HL,DE
|
||
LD DE,(CHLine)
|
||
DEC HL
|
||
LD A,0x18
|
||
.L1 EX AF,AF'
|
||
SUB A
|
||
DEC DE
|
||
CPDR
|
||
JP PO,.L2
|
||
EX AF,AF'
|
||
DEC A
|
||
JR NZ,.L1
|
||
INC DE
|
||
INC HL
|
||
.L2 INC HL
|
||
LD (PageShift),HL
|
||
LD (CHLine),DE
|
||
CALL PrnHelpPg
|
||
OR A
|
||
RET
|
||
|
||
HPageDownM CALL HPageDown
|
||
RET C
|
||
LD B,0x0A
|
||
HDnM1 PUSH BC
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
POP BC
|
||
BIT 0,A
|
||
RET Z
|
||
HALT
|
||
DJNZ HDnM1
|
||
HDnM2 CALL HPageDown
|
||
RET C
|
||
SPMOUSE MOUSEF.READ_STATE
|
||
BIT 0,A
|
||
RET Z
|
||
JR HDnM2
|
||
|
||
HPageDown LD HL,(NextShift)
|
||
LD A,(HL)
|
||
INC A
|
||
SCF
|
||
RET Z
|
||
LD (PageShift),HL
|
||
LD HL,(CHLine)
|
||
LD DE,0x0017
|
||
ADD HL,DE
|
||
LD (CHLine),HL
|
||
CALL PrnHelpPg
|
||
OR A
|
||
RET
|
||
|
||
;[]==========================================================[]
|
||
HelpTab DW 550,566, 33, 41,%0000000000000011,0,HLineUp,0
|
||
DW 550,566,210,218,%0000000000000011,0,HLineDown,0
|
||
DW 550,566, 41, 0,%0000000000000000,0,HPageUpM,0
|
||
HBarUp EQU $ - 10
|
||
DW 550,566, 0,210,%0000000000000000,0,HPageDownM,0
|
||
HBarDn EQU $ - 12
|
||
DW 284,356,222,236,%0000000000100001,0,HelpExit,0
|
||
DW 0, 64, 0,256,%0000000000100000,0,HelpExit,0
|
||
DW 576,640, 0,256,%0000000000100000,0,HelpExit,0
|
||
DW 0,640, 0, 16,%0000000000100000,0,HelpExit,0
|
||
DW 0,640,240,256,%0000000000100000,0,HelpExit,0
|
||
DW 0x8000
|