Repository navigation
Expand file tree
/
Copy pathmovecursor.asm
More file actions
233 lines (190 loc) · 3.96 KB
/
Copy pathmovecursor.asm
File metadata and controls
233 lines (190 loc) · 3.96 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
;===============================================================================
; Move editing grid cursor routines
;===============================================================================
;
; Command handler : set editing grid cursor to home position
;
homecursor
LDA #<editgridhome
STA editgridposlo
LDA #>editgridhome
STA editgridposhi
RTS
;
; Utility function : move editing grid cursor up
;
movecrsrup
LDX #$00
LDA (editgridposlo,X)
STA tempcharsave
loop9
LDA editgridposlo ; confirm not trying to move up if cursor on top line
dataidx7
CMP #<editgridhome
BNE jmp14
LDA editgridposhi
CMP #>editgridhome
BNE jmp14
LDA #<editgridhome
STA dataidx7+1
LDA #$00
STA cursormoved
RTS
jmp14
INC dataidx7+1
INX
CPX #$08
BNE loop9
LDA tempcharsave
LDX #$00
STA (editgridposlo,X)
SEC
LDA editgridposlo
SBC #$28
STA editgridposlo
LDA editgridposhi
SBC #$00
STA editgridposhi
LDA #<editgridhome
STA dataidx7+1
LDA #$01
STA cursormoved
RTS
;
; Utility function : move editing grid cursor down
;
movecrsrdown
LDX #$00
LDA (editgridposlo,X)
STA tempcharsave
loop10
LDA editgridposlo
dataidx8
CMP #$41
BNE jmp15
LDA editgridposhi
CMP #$05
BNE jmp15
LDA #$41
STA dataidx8+1
LDA #$00
STA cursormoved
RTS
jmp15
INC dataidx8+1
INX
CPX #$08
BNE loop10
LDA tempcharsave
LDX #$00
STA (editgridposlo,X)
CLC
LDA editgridposlo
ADC #$28
STA editgridposlo
LDA editgridposhi
ADC #$00
STA editgridposhi
LDX #$11
LDA #$41
STA dataidx8+1
LDA #$01
STA cursormoved
RTS
;
; Utility function : move editing grid cursor left
;
movecrsrleft
LDX #$00
LDA (editgridposlo,X)
STA tempcharsave
loop11
LDA editgridposlo
dataidx13
CMP #<editgridhome
BNE jmp16
LDA editgridposhi
dataidx14
CMP #>editgridhome
BNE jmp16
LDA #<editgridhome
STA dataidx13+1
LDA #>editgridhome
STA dataidx14+1
LDA #$00
STA cursormoved
RTS
jmp16
CLC
LDA dataidx13+1
ADC #$28
STA dataidx13+1
LDA dataidx14+1
ADC #$00
STA dataidx14+1
INX
CPX #$08
BNE loop11
LDA tempcharsave
LDX #$00
STA (editgridposlo,X)
DEC editgridposlo
BNE jmp17
DEC editgridposhi
jmp17
LDX #$9D
LDA #$01
STA cursormoved
LDA #<editgridhome
STA dataidx13+1
LDA #>editgridhome
STA dataidx14+1
RTS
;
; Utility function : move editing grid cursor right
;
movecrsrright
LDX #$00
LDA (editgridposlo,X)
STA tempcharsave
loop12
LDA editgridposlo
dataidx15
CMP #<editgridhome+$7
BNE jmp18
LDA editgridposhi
dataidx16
CMP #>editgridhome
BNE jmp18
LDA #<editgridhome+$7
STA dataidx15+1
LDA #>editgridhome
STA dataidx16+1
LDA #$00
STA cursormoved
RTS
jmp18
CLC
LDA dataidx15+1
ADC #$28
STA dataidx15+1
LDA dataidx16+1
ADC #$00
STA dataidx16+1
INX
CPX #$08
BNE loop12
LDA tempcharsave
LDX #$00
STA (editgridposlo,X)
INC editgridposlo
BNE jmp19
INC editgridposhi
jmp19
LDA #$01
STA cursormoved
LDA #<editgridhome+$7
STA dataidx15+1
LDA #>editgridhome
STA dataidx16+1
RTS