-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWave_HelpEditor.s
More file actions
133 lines (124 loc) · 1.76 KB
/
Wave_HelpEditor.s
File metadata and controls
133 lines (124 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
;Wave_HelpEditor.s
HelpHardKeys
.byt 28 ;UP heUp
.byt 44 ;DOWN heDown
.byt 128+28 ;CTRL+UP hePageUp
.byt 128+44 ;CTRL+DOWN hePageDown
.byt 39 ;RETURN heChange
.byt 33 ;ESC heQuit
HelpKeyVectorLo
.byt <heUp
.byt <heDown
.byt <hePageUp
.byt <hePageDown
.byt <heChange
.byt <heQuit
HelpKeyVectorHi
.byt >heUp
.byt >heDown
.byt >hePageUp
.byt >hePageDown
.byt >heChange
.byt >heQuit
heUp
lda HelpCursorY
.(
beq skip1
dec HelpCursorY
skip1 rts
.)
heDown lda HelpPage
asl
asl
sta hpTemp01
asl
sec
adc hpTemp01
adc HelpPage
adc HelpCursorY
ldx PreviousEditorID
cmp EditorUltimateKey,x
.(
beq skip1
bcs skip2
skip1 lda HelpCursorY
cmp #12
bcs skip2
inc HelpCursorY
skip2 rts
.)
hePageUp
lda HelpPage
.(
beq skip1
dec HelpPage
jsr ClearPatternArea
jsr HelpPlot
skip1 rts
.)
hePageDown ;Around 50 keys max which is 4 pages
lda HelpPage
clc
adc #1
asl
asl
sta hpTemp01
asl
adc hpTemp01
adc HelpPage
ldx PreviousEditorID
cmp EditorUltimateKey,x
.(
; beq skip1
bcs skip2
skip1 inc HelpPage
jsr ClearPatternArea
jsr HelpPlot
ldy #00
sty HelpCursorY
skip2 rts
.)
heChange
lda HelpPage
asl
asl
sta hpTemp01
asl
adc hpTemp01
adc HelpPage
adc HelpCursorY
sta hpTemp01
ldx #91
jsr DisplayPrompt_Message
jsr FlushInputBuffer
jsr WaitOnKey
;Does this key already exist?
ldx PreviousEditorID
ldy EditorHardKeyCodeTableLo,x
sty hkey
ldy EditorHardKeyCodeTableHi,x
sty hkey+1
ldy EditorUltimateKey,x
.(
loop1 cmp (hkey),y
bne skip1
ldx #92
cpy hpTemp01
bne skip2
skip1 dey
bpl loop1
;Change the key
ldy hpTemp01
sta (hkey),y
jsr ClearPatternArea
jsr HelpPlot
ldx #93
skip2 jmp DisplayPrompt_Message
.)
heQuit
jsr RestorePatternArea
jsr RestorePatternLegend
jsr PatternPlot
lda PreviousEditorID
sta EditorID
rts