-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathswapmode.asm
More file actions
113 lines (89 loc) · 1.96 KB
/
Copy pathswapmode.asm
File metadata and controls
113 lines (89 loc) · 1.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
;===============================================================================
; Toggle swap mode on/off and process swapping position of two characters
;===============================================================================
swapcharposns
LDX #$00
showswapmsg
LDA dataswapmode,X
STA messageareaaddr+2,X
INX
CPX #$09
BNE showswapmsg
LDA charmemposlo
STA tempsave1
LDA charmemposhi
STA tempsave2
LDY #$00
swapsavechars
LDA (tempsave1),Y
STA datacharsetsave,Y
INY
BNE swapsavechars
swapmodestart
LDA #<editgridhome
STA workgridposlo
LDA #>editgridhome
STA workgridposhi
LDX #$00
shownextrow
TXA
PHA
JSR draweditrow
PLA
TAX
INX
CPX #$08
BNE shownextrow
SEC
LDA charmemposlo
SBC #$08
STA charmemposlo
LDA charmemposhi
SBC #$00
STA charmemposhi
waitswapkeys
JSR krnl_scnkey
JSR krnl_getin
CMP #$00
BEQ waitswapkeys
CMP keys
BEQ swapmodeoff
CMP keyplus
BEQ swapnextchr
CMP keyminus
BEQ swapprevchr
CMP keyf5
BEQ swapupaline
CMP keyf7
BEQ swapdownaline
JMP waitswapkeys
swapnextchr
JSR selectnextchr
JMP swapmodestart
swapprevchr
JSR selectprevchr
JMP swapmodestart
swapupaline
JSR moveupaline
JMP swapmodestart
swapdownaline
JSR movedownaline
JMP swapmodestart
swapmodeoff
LDY #$00
loopswapchar
LDA (charmemposlo),Y
STA (tempsave1),Y
LDA datacharsetsave,Y
STA (charmemposlo),Y
INY
CPY #$08
BNE loopswapchar
LDX #$00
LDA keyspace
clearswapmsg
STA messageareaaddr+2,X
INX
CPX #$09
BNE clearswapmsg
RTS