-
Notifications
You must be signed in to change notification settings - Fork 87
/
Copy patheditor.3
198 lines (198 loc) · 4.94 KB
/
editor.3
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
.PAG 'KEYBOARD TABLES'
KEYCOD ;KEYBOARD MODE 'DISPATCH'
.WORD MODE1
.WORD MODE2
.WORD MODE3
.WORD CONTRL ;CONTROL KEYS
;
; COTTACONNA MODE
;
.WORD MODE1 ;PET MODE1
.WORD MODE2 ;PET MODE2
.WORD CCTTA3 ;DUMMY WORD
.WORD CONTRL
;
; EXTENDED KATAKANA MODE
;
.WOR CCTTA2 ;KATAKANA CHARACTERS
.WOR CCTTA3 ;LIMITED GRAPHICS
.WOR CCTTA3 ;DUMMY
.WOR CONTRL
.SKI 5
.PAG 'EDITOR.3'
MODE1
;1,3,5,7,9,+,YEN SIGN,DEL
.BYT $31,$33,$35,$37,$39,$2B,$5C,$14
;LFT.ARROW,W,R,Y,I,P,*,RETURN
.BYT $5F,$57,$52,$59,$49,$50,$2A,$0D
;CTRL,A,D,G,J,L,;,RT CRSR
.BYT $04,$41,$44,$47,$4A,$4C,$3B,$1D
;STOP,L.SHIFT,X,V,N,,,/,CRSR DWN
.BYT $03,1,$58,$56,$4E,$2C,$2F,$11
;SPACE,Z,C,B,M,.,R.SHIFTT,F1
.BYT $20,$5A,$43,$42,$4D,$2E,1,$85
;CO.KEY,S,F,H,K,:,=,F2
.BYT $02,$53,$46,$48,$4B,$3A,$3D,$86
;Q,E,T,U,O,@,EXP,F3
.BYT $51,$45,$54,$55,$4F,$40,$5E,$87
;2,4,6,8,0,-,HOME,F4
.BYT $32,$34,$36,$38,$30,$2D,$13,$88
.BYT $FF ;END OF TABLE NULL
.SKI3
MODE2
;!,%,',),+,YEN,INS
.BYT $21,$23,$25,$27,$29,$DB,$A9,$94
;SHIFTED LFT.ARROW,W,R,Y,I,P,*,RETURN
.BYT $5F,$D7,$D2,$D9,$C9,$D0,$C0,$8D
;CTRL,A,D,G,J,L,;,LF.CRSR
.BYT $04,$C1,$C4,$C7,$CA,$CC,$5D,$9D
;RUN,L.SHIFT,X,V,N,,,/,CRSR DWN
.BYT $83,1,$D8,$D6,$CE,$3C,$3F,$91
;SHIFTED SPACE,Z,C,B,M,.,R.SHIFT,F5
.BYT $A0,$DA,$C3,$C2,$CD,$3E,1,$89
;SHIFTEC CO.KEY ,S,F,H,K,:,=,F6
.BYT $02,$D3,$C6,$C8,$CB,$5B,$3D,$8A
;SHIFTED G,E,T,U,O,@,PI,F7
.BYT $D1,$C5,$D4,$D5,$CF,$BA,$DE,$8B
;",$,&,(,
.BYT $22,$24,$26,$28,$30,$DD,$93,$8C
.BYT $FF ;END OF TABLE NULL
MODE3 ;LEFT WINDOW GRAHPICS
;1,3,5,7,9,+,POUND SIGN,INS
.BYT $21,$23,$25,$27,$29,$A6,$A8,$94
;LFT.ARROW,W,R,Y,I,P,*,RETURN
.BYT $5F,$B3,$B2,$B7,$A2,$AF,$DF,$8D
;CTRL,A,D,G,J,L,;,LF.CRSR
.BYT $04,$B0,$AC,$A5,$B5,$B6,$5D,$9D
; RUN,L.SHIFT,X,V,N,,,/,CRSR.UP
.BYT $83,$01,$BD,$BE,$AA,$3C,$3F,$91
;SPACE,Z,C,B,M,.,R.SHIFT,F2
.BYT $A0,$AD,$BC,$BF,$A7,$3E,$01,$89
;CO.KEY,S,F,H,K,:,=,F4
.BYT $02,$AE,$BB,$B4,$A1,$5B,$3D,$8A
;Q,E,T,U,O,@,PI,F6
.BYT $AB,$B1,$A3,$B8,$B9,$A4,$DE,$8B
;",$,&,(,0,-,HOME,F8
.BYT $22,$24,$26,$28,$30,$DC,$93,$8C
.BYT $FF ;END OF TABLE NULL
CCTTA2 ;WAS CCTTA2 IN JAPANESE VERSION
LOWER
CMP #$0E ;DOES HE WANT LOWER CASE?
BNE UPPER ;BRANCH IF NOT
LDA #2 ;ELSE SET VIC TO POINT TO LOWER CASE
ORA VICREG+5
STA VICREG+5
JMP LOOP2
UPPER
CMP #$8E ;DOES HE WANT UPPER CASE
BNE LOCK ;BRANCH IF NOT
LDA #$FD ;MAKE SURE VIC POINT TO UPPER/PET SET
AND VICREG+5
STA VICREG+5
OUTHRE JMP LOOP2
LOCK
CMP #8 ;DOES HE WANT TO LOCK IN THIS MODE?
BNE UNLOCK ;BRANCH IF NOT
LDA #$80 ;ELSE SET LOCK SWITCH ON
ORA MODE ;DON'T HURT ANYTHING - JUST IN CASE
STA MODE
BMI OUTHRE
UNLOCK
CMP #9 ;DOES HE WANT TO UNLOCK THE KEYBOARD?
BNE OUTHRE ;BRANCH IF NOT
LDA #$7F ;CLEAR THE LOCK SWITCH
AND MODE ;DONT HURT ANYTHING
STA MODE
BPL OUTHRE ;GET OUT
PATCHX
INX ;INDEX TO NEXT LINE
LDA LDTB1,X ;GET HIGH ORDER BYTE OF ADDRESS
ORA #$80 ;MAKE IT A NON-CONTINUATION LINE
STA LDTB1,X ;AND PUT IT BACK
DEX GET BACK TO CURENT LINE
LDA LNMX ;CONTINUE THE BYTES I TOOK OUT
CLC
JMP PATOUT ;AND GO BACK TO THE CODE WE PATCHED
CCTTA3
*=$ED72 ;REMAINDER OF CCTTA3 MUST START HERE
.BYT $04,$FF,$FF,$FF,$FF,$FF,$E2,$9D
;RUN-K24-K31
.BYT $83,$01,$FF,$FF,$FF,$FF,$FF,$91
;K32-K39.F5
.BYT $A0,$FF,$FF,$FF,$FF,$EE,$01,$89
;CO.KEY,K40-K47.F6
.BYT $02,$FF,$FF,$FF,$FF,$E1,$FD,$8A
;K48-K55
.BYT $FF,$FF,$FF,$FF,$FF,$B0,$E0,$8B
;K56-K63
.BYT $F2,$F4,$F6,$FF,$F0,$ED,$93,$8C
.BYT $FF ;END OF TABLE NULL
CONTRL
;BLACK,RED,PURPLE,BLUE,RVS ,NULL,NULL,NULL
.BYT $90,$1C,$9C,$1F,$12,$FF,$FF,$FF
;NULL,NULL,REVERSE,NULL,NULL,NULL,NULL,NULL
.BYT $FF,$FF,$12,$FF,$FF,$FF,$FF,$FF
;FIVE LINES OF NULLS
.BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
;WHITE,CYAN,GREEN,YELLOW,RVS OFF,NULL,NULL,NULL
.BYT $05,$9F,$1E,$9E,$92,$FF,$FF,$FF
.BYT $FF ;END OF TABLE NULL
TVIC
.BYT $05,$19,$16,$2E,$0,$C0,$0,0
.BYT 0,0,0,0,0,0,0,$1B
;
RUNTB .BYT 'LOAD',$D,'RUN',$D
;
LINZ0 = VICSCN
LINZ1 = LINZ0+LLEN
LINZ2 = LINZ1+LLEN
LINZ3 = LINZ2+LLEN
LINZ4 = LINZ3+LLEN
LINZ5 = LINZ4+LLEN
LINZ6 = LINZ5+LLEN
LINZ7 = LINZ6+LLEN
LINZ8 = LINZ7+LLEN
LINZ9 = LINZ8+LLEN
LINZ10 = LINZ9+LLEN
LINZ11 = LINZ10+LLEN
LINZ12 = LINZ11+LLEN
LINZ13 = LINZ12+LLEN
LINZ14 = LINZ13+LLEN
LINZ15 = LINZ14+LLEN
LINZ16 = LINZ15+LLEN
LINZ17 = LINZ16+LLEN
LINZ18 = LINZ17+LLEN
LINZ19 = LINZ18+LLEN
LINZ20 = LINZ19+LLEN
LINZ21 = LINZ20+LLEN
LINZ22 = LINZ21+LLEN
;****** SCREEN LINES LO BYTE TABLE ******
LDTB2
.BYTE <LINZ0
.BYTE <LINZ1
.BYTE <LINZ2
.BYTE <LINZ3
.BYTE <LINZ4
.BYTE <LINZ5
.BYTE <LINZ6
.BYTE <LINZ7
.BYTE <LINZ8
.BYTE <LINZ9
.BYTE <LINZ10
.BYTE <LINZ11
.BYTE <LINZ12
.BYTE <LINZ13
.BYTE <LINZ14
.BYTE <LINZ15
.BYTE <LINZ16
.BYTE <LINZ17
.BYTE <LINZ18
.BYTE <LINZ19
.BYTE <LINZ20
.BYTE <LINZ21
.BYTE <LINZ22
.END