flex_nav/plugins/help/help.a80

402 lines
6.3 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; 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