annotate level1/cmds/asm.asm @ 814:fd9d07c31d20

Moved files from CMDS
author boisy
date Mon, 13 Jan 2003 13:41:48 +0000
parents 765ff88d3db7
children 5d025106d1ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2 * Asm - 6809/6309 Assembler
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3 *
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
4 * ASM V1.6 - Microware version - 6309 instruction assembly by
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
5 * L. Curtis Boyle
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
6 *
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
7 * Obtained by Boisy Pitre from L. Curits Boyle on 10/12/2002
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
9 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
10 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
11 * Ed. Comments Who YY/MM/DD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
12 * ------------------------------------------------------------------
200
e9ce43cc215e Made major changes to headers for consistency and identification
boisy
parents: 0
diff changeset
13 * 6 Made compliant with 1900-2155 BGP 99/05/11
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 nam Asm
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
16 ttl 6809/6309 Assembler
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 tylg set Prgrm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 atrv set ReEnt+rev
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
24 rev set $02
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
25 edition set $06
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
26
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
27 mod eom,name,tylg,atrv,asm,size
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
29 * u002B Bit flag meanings: (Default=00110101)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
30 LitLine equ %10000000 Literal line to print
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
31 Comment equ %01000000 Comment field present in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
32 Operand equ %00100000 Operand field present in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
33 Command equ %00010000 Mnemonic command present in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
34 Label equ %00001000 Label field present in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
35 NoObjct equ %00000100 No object code to print
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
36 PrintPC equ %00000001 Print PC flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
37 DoNothng equ %00000000 Do nothing (no flags set)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
39 Numop equ 148 # of opcodes in table (including pseudo-ops)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
40
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
41 u0000 rmb 2 Ptr to start of current source line
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 u0002 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 u0003 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44 u0004 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45 u0005 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 u0006 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 u0007 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 u0008 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 u0009 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50 u000A rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 u000B rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 u000C rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 u000D rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 u000E rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 u000F rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56 u0010 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
57 u0012 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
58 u0014 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
59 u0016 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60 u0017 rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
61 u0018 rmb 1 Path number to source file
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 u0019 rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
63 u001A rmb 1 Some output path number
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 u001B rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 u001D rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66 u001E rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
67 u001F rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
68 u0020 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
69 u0021 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 u0022 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 u0023 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 u0024 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 u0025 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 u0026 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 u0027 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76 u0028 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 u0029 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 u002A rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
79 u002B rmb 1 Bit flags
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 u002C rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 u002D rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82 u002E rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
83 u002F rmb 2 Ptr to start of current mnemonic
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
84 u0031 rmb 2 Ptr to next field (or operand start)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85 u0033 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86 u0034 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 u0035 rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
88 u0036 rmb 1 Page height (default=66)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
89 u0037 rmb 1 Page width (default=80)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 u0038 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91 u0039 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92 u003A rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 u003B rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 u003C rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 u003D rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 u003E rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97 u003F rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 u0040 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99 u0041 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
100 u0042 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101 u0043 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 u0044 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
103 u0045 rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
104 u0046 rmb 1 # bytes in current instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
105 u0047 rmb 1 Current instructions flags/index handler byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
106 u0048 rmb 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
107 u0049 rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
108 u004A rmb 1 MSB of 16 bit # (for addresses & offsets)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
109 u004B rmb 1 LSB of 16 bit #
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
110 u004C rmb 1 Flag for DP($ff), Extended($01) or other($00) modes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
111 u004D rmb 1 Indirect mode flag (0=no, >0=Yes)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
112 u004E rmb 1 Indexed mode calc completed flag (0=no)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
113 u004F rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 u0050 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
115 u0051 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
116 u0052 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
117 u0053 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 u0054 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119 u0055 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
120 u0056 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
121 u0057 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122 u0058 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
123 u0059 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
124 u005A rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
125 u005B rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
126 u005C rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
127 u005D rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
128 u005E rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
129 u005F rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
130 u0060 rmb 1
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
131 * The currently assembled instruction goes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
132 u0061 rmb 1 Current instruction's pre-byte (see u0046)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
133 u0062 rmb 1 Current instruction's opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
134 u0063 rmb 1 More bytes as needed by instruction
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
135 u0064 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
136 u0065 rmb 4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
137 u0069 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
138 u006A rmb 3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
139 u006D rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
140 u006F rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
141 u0070 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
142 u0071 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
143 u0072 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
144 u0073 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
145 u0075 rmb 11
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
146 u0080 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
147 u0081 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
148 u0083 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
149 u0085 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
150 u0087 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
151 u0088 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
152 u008A rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
153 u008C rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
154 u008D rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
155 u008E rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
156 u008F rmb 8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
157 u0097 rmb 15
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
158 u00A6 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
159 u00A7 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
160 u00A9 rmb 6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 u00AF rmb 7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 u00B6 rmb 11
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
163 u00C1 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164 u00C2 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165 u00C3 rmb 3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
166 u00C6 rmb 8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
167 u00CE rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
168 u00CF rmb 8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
169 u00D7 rmb 10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
170 u00E1 rmb 7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
171 u00E8 rmb 4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
172 u00EC rmb 12
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
173 u00F8 rmb 3848 Main buffer area
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
174 size equ .
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
175 name equ *
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
176 fcs /Asm/
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177 fcb edition
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
178 asm tfr u,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
179 addd #$01C0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180 std <u0014
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
181 std <u0016
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
182 addd #$0009
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
183 std <u0000 Start of current line in source ($1C9)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
184 addd #$0051
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
185 std <u0002
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
186 addd #$0085
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
187 std <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
188 addd #$0092
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
189 std <u0006
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
190 std <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
191 std <u0008
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
192 addd #$0050
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
193 std <u000A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 addd #$0028
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
195 std <u000E
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
196 adda #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
197 std <u0010
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
198 addd #$0034
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
199 std <u001D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
200 leau -$01,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
201 stu <u0012
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
202 lds <u0014
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
203 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
204 ldb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
205 sta <u0059
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
206 sta <u005B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
207 sta <u005E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
208 sta <u005D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
209 stb <u005C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
210 sta <u0058
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
211 sta <u005A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
212 stb <u005F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
213 sta <u0060
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
214 sta <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
215 sta <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
216 sta <u0019
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
217 stb <u001A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
218 ldb #$FF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
219 stb <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
220 sta <u0057
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
221 ldb #66 Default page height
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
222 stb <u0036
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
223 ldb #80 Default page width
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
224 stb <u0037
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
225 lbsr L1696
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
226 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
227 bmi L0081
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
228 inc <u0057
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
229 L0081 ldx <u0008
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
230 clr ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
231 ldx <u000A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
232 clr ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233 ldx <u0010
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234 L008B clr ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
235 cmpx <u0012
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
236 bls L008B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
237 ldb <u005D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
238 beq L0099
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
239 dec <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
240 bra L00A0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
241 L0099 bsr L00A5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
242 lbsr L1607
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
243 inc <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244 L00A0 bsr L00A5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
245 lbra L159F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
246 L00A5 bsr L00B1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
247 L00A7 lbsr L1537
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
248 bcc L00AD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
249 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
250 L00AD bsr L00D5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
251 bra L00A7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
252 L00B1 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
253 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
254 std <u0028
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
255 std <u0022
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
256 std <u0026
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257 std <u0024
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
258 std <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
259 std <u0042
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
260 stb <u003F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
261 stb <u0055
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
262 stb <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
263 incb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
264 std <u003A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
265 std <u0038
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
266 ldd <u000E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
267 std <u001B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
268 lbsr L1360
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
269 lbsr L141A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
270 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
271 L00D5 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
272 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
273 std <u004A
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
274 std <u0061 Clear prefix opcode & opcode bytes
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
275 std <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
276 sta <u0065
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
277 sta <u0046 Clear # bytes for current instruction
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
278 sta <u002A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
279 sta <u0021
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
280 sta <u004C Default memory addressing mode to indexed
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
281 sta <u002C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
282 sta <u004F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
283 sta <u004E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
284 sta <u004D
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
285 lda #Operand+Command+NoObjct+PrintPC
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
286 sta <u002B Initialize flags
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
287 ldd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
288 std <u0044
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
289 * Parse for label field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
290 ldx <u0000 Get ptr to start of line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
291 lda ,x Get char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
292 cmpa #$0D Blank line?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
293 beq L0136 Yes, go ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
294 cmpa #'* Comment line?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
295 beq L0136 Ditto
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
296 cmpa #$20 Space? (No label field)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
297 beq L0125 Yes, go somewhere else
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
298 * Label field found
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
299 ldb <u002B Set Label Present flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
300 orb #Label
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
301 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
302 lbsr L0368
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
303 bcc L0119
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
304 ldb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
305 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
306 bra L0125
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
307 L0119 tst <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
308 bne L0125
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
309 lbsr L0F4A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
310 bcc L0125
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
311 lbsr L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
312 * Check for mnemonic field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
313 L0125 lbsr L1164 Find start of next field & get first char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
314 cmpa #$0D End of line yet?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
315 bne L0141 No, have ptr to mnemonic field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
316 lda <u002B Get flags
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
317 bita #Label Was a label present?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
318 beq L0136 No, print whole source line as literal comment
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
319 lda #Label+PrintPC Set Label & Print PC flags (label on line by
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
320 bra L0138 itself)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
321
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
322 L0136 lda #LitLine Whole line is comment flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
323 L0138 sta <u002B Save flags
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
324 lda <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
325 bne L018E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
326 lbra L01F2
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
327 * Process mnemonic field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
328 L0141 stx <u002F Save ptr to start of current mnemonic
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
329 L0143 lda ,x+ Get char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
330 cmpa #$0D CR?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
331 beq L0150 Yes, done line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
332 cmpa #$20 Space?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
333 bne L0143 No, continue getting chars
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
334 lbsr L1164 Find start of next field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
335 L0150 stx <u0031 Save ptr to possible operand field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
336 ldx <u002F Pointer to start of current op. in source code
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
337 ldb #Numop # of instructions in main table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
338 leay >L03B8,pc Point to main opcode/pseudo-op table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
339 lbsr L0344 Go point to it's opcode/flag bytes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
340 bcc L0172 Legal opcode, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
341 * Unknown mnemonic
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
342 L015F ldb #$02 Internal error #?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
343 lbsr L02FA Print error message
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
344 ldb #$03 Set # bytes of current instruction to 3???
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
345 stb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
346 lda <u002B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
347 anda #^Operand Shut off operand present flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
348 sta <u002B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
349 ldx <u0031 Get ptr to next field & skip ahead
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
350 bra L01C4
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
351 * Found mnemonic
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
352 * Entry: Y=Ptr to opcode/flag bytes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
353 L0172 lda <u0054 # of nested loop/if constructs???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
354 beq L0195 If none, skip ahead???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
355 ldb $01,y Get flag bytes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
356 andb #%00001111 Only want index handler #
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
357 cmpb #$0D Pseudo op IFxx?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
358 bne L0181 No, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
359 inca Inc nested loop counter?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
360 bra L018C Go save it & continue
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
361 L0181 cmpb #$0E Pseudo Op ELSE/ENDC?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
362 bne L018E No, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
363 deca Dec nested loop counter?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
364 beq L0195 If down to zero, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
365 ldb ,y Get opcode byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
366 bne L018E If ELSE, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
367 L018C sta <u0054 Save updated nested loop counter?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
368 L018E inc <u0039 ???
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
369 bne L0194
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
370 inc <u0038
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
371 L0194 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
372
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
373 * Calculate pre-bytes if needed (or known yet in 6309's case)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
374 L0195 ldd ,y Get opcode/flag bytes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
375 sta <u0062 Save opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
376 stb <u0047 Save flags/index handler nibbles
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
377 lda #$10 Preload $10 prefix
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
378 bitb #$10 Does this opcode require it?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
379 bne L01A7 Yes, go store before normal opcode byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
380 lda #$11 Preload $11 prefix
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
381 bitb #$20 Does this opcode require it?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
382 beq L01AB No prefix needed, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
383 L01A7 sta <u0061 Save prebyte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
384 inc <u0046 Increase byte count of current instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
385
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
386 * Call proper index handler
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
387 L01AB leay >L0780,pc Point to 'opcode type' index
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
388 andb #%00001111 Mask out non-index information
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
389 lslb adjust for 2 bytes per offset entry
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
390 ldd b,y Get offset
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
391 jsr d,y Execute routine
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
392 lda <u002B Operand present flag set?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
393 bita #Operand
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
394 beq L01C4 No, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
395 lda ,x Get next char in source code
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
396 clr ,x+ Clear that char in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
397 cmpa #$0D Was it a CR?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
398 beq L01D3 Yes, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
399 L01C4 lbsr L1164 Find next field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
400 cmpa #$0D End of line?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
401 beq L01D3 Yes, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
402 ldb <u002B Get flags
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
403 beq L01D3 If do nothing, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
404 orb #Comment Set Comment field preseent flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
405 stb <u002B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
406 L01D3 ldb <u005D One of the command line option flags???
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
407 beq L01DB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
408 ldb <u0021
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
409 bne L01F2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
410 L01DB ldd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
411 addb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
412 adca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
413 std <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
414 bra L01F2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
415 L01E5 ldd #$2084
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
416 ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
417 L01EA sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
418 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
419 bne L01EA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
420 L01EF ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
421 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
422
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
423 L01F2 ldb <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
424 beq L01EF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
425 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
426 beq L01EF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
427 bsr L01E5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
428 tst <u0060
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
429 bne L0205
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
430 ldd <u0038
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
431 lbsr L1084
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
432 L0205 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
433 bitb #$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
434 beq L0213
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
435 ldb #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
436 ldy <u0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
437 lbra L02AB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
438 L0213 bitb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
439 beq L0240
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
440 lda #$45
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
441 ldb <u0021
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
442 bne L022F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
443 lda #$44
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
444 ldb <u002C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
445 bne L022F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
446 lda #$57
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
447 ldb <u004F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
448 beq L0236
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
449 inc <u0023
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
450 bne L022F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
451 inc <u0022
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
452 L022F ldb #$06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
453 lbsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
454 sta ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
455 L0236 ldb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
456 lbsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
457 ldd <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
458 lbsr L1057
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
459 L0240 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
460 bitb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
461 beq L0272
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
462 ldb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
463 beq L0272
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
464 ldb #$61
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
465 tfr dp,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
466 tfr d,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
467 ldb ,u+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
468 bne L0256
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
469 L0254 ldb ,u+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
470 L0256 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
471 lbsr L106B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
472 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
473 ldb <u005D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
474 beq L0265
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
475 ldb <u0021
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
476 bne L026E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
477 L0265 lbsr L130D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
478 inc <u0025
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
479 bne L026E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
480 inc <u0024
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
481 L026E dec <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
482 bne L0254
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
483 L0272 ldy <u0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
484 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
485 bitb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
486 beq L0281
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
487 ldb #$18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
488 bsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
489 bsr L02C9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
490 L0281 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
491 bitb #$10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
492 beq L028F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
493 ldb #$21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
494 bsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
495 bsr L02C9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
496 leay $01,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
497 L028F ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
498 bitb #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
499 beq L02A3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
500 ldb #$27
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
501 bsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
502 ldy <u0031
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
503 lbsr L11BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
504 lda #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
505 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
506 L02A3 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
507 bitb #$40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
508 beq L02B7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
509 ldb #$32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
510 L02AB bsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
511 L02AD lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
512 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
513 beq L02B7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
514 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
515 bra L02AD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
516 L02B7 ldb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
517 andb #$BF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
518 cmpb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
519 beq L02C8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
520 lbsr L1370
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
521 inc <u0039
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
522 bne L02C8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
523 inc <u0038
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
524 L02C8 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
525 L02C9 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
526 cmpa #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
527 beq L02C9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
528 L02CF cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
529 beq L02DF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
530 cmpx <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
531 bcc L02D9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
532 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
533 L02D9 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
534 cmpa #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
535 bne L02CF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
536 L02DF leay -$01,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
537 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
538 L02E2 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
539 tst <u0060
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
540 beq L02EC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
541 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
542 bra L02F8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
543 L02EC ldu <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
544 leau b,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
545 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
546 cmpx ,s++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
547 bcc L02F8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
548 tfr u,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
549 L02F8 puls pc,u
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
550
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
551 * Error printing routine
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
552 * Entry: B=Internal error # (table entry #)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
553 L02FA pshs u,y,x,d Preserve regs
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
554 tst <u005C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
555 beq L0325
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
556 leay >L061C,pc Point to '***** Error' string
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
557 ldx <u0004
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
558 lbsr L11BD Go print it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
559 clra Table offset is B-1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
560 decb
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
561 lslb Adjust for 2 byte entries
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
562 leay >L062A,pc Point to some table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
563 ldd d,y Get 2 bytes @ offset D
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
564 leay d,y Point to Y to offset
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
565 lbsr L11BD Go print actual error message
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
566 ldb $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
567 cmpb #$18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
568 bne L0322
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
569 ldy $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
570 bsr L033D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
571 L0322 lbsr L1368
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
572 L0325 inc <u0021
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
573 inc <u0029
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
574 bne L032D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
575 inc <u0028
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
576 L032D puls pc,u,y,x,d Restore regs & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
577 lbsr L01E5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
578 ldb #$18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
579 bsr L02E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
580 ldy <u0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
581 bra L033D
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
582
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
583 L033B sta ,x+ Copy string up until CR & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
584 L033D lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
585 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
586 bne L033B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
587 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
588 * Find opcode match
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
589 * Entry: Y=Table ptr to look in for match
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
590 * X=Ptr to part of source we are currently checking
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
591 * B=# opcodes in current table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
592 * Exit: Carry set if no matching mnemonic found
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
593 * Carry clear & Y is ptr to opcode & flag bytes is match IS found
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
594 L0344 pshs x,b Preserve source code ptr & # opcodes in table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
595 L0346 lda ,y+ Get byte from table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
596 bmi L035E If high bit set, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
597 eora ,x+ ???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
598 anda #$DF Uppercase conversion
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
599 beq L0346 If matches, keep doing until last character
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
600 L0350 lda ,y+ Doesn't match, search for end of current entry
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
601 bpl L0350
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
602 L0354 leay $02,y Skip opcode & flag bytes too
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
603 ldx $01,s Reset source code ptr to start of instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
604 decb Dec # opcodes counter
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
605 bne L0346 Check until all are done
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
606 comb All done, illegal opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
607 puls pc,x,b Exit with error flag set
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
608 * Matches so far, on last byte of text mnemonic
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
609 L035E eora ,x+ ???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
610 anda #$5F Mask to uppercase & get rid of high bit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
611 bne L0354 Doesn't match, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
612 leas $03,s Eat stack
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
613 clrb No error & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
614 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
615
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
616 L0368 lbsr L1164
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
617 bsr L03A0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
618 bcs L03B7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
619 pshs u,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
620 ldu <u0016
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
621 ldb #$08 Max # chars in label?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
622 leax 1,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
623 bra L0393
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
624
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
625 * Copy label into label table (only use most significiant 8 chars)?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
626 L0379 lda ,x+ Get char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
627 bsr L03A0 Check text chars
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
628 bcc L0393 Found one, skip special parsing
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
629 cmpa #'9 Higher than a 9?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
630 bhi L039A Yes, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
631 cmpa #'0 Is it a number?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
632 bhs L0393 Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
633 cmpa #'. Is it a period?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
634 beq L0393 Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
635 cmpa #'$ Is it a dollar sign?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
636 beq L0393 Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
637 cmpa #'_ Is it an underscore?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
638 bne L039A No, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
639 * A=numeric, period, dollar sign or underscore
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
640 L0393 sta ,u+ Store character in label index
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
641 decb Do all 8 chars
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
642 bne L0379
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
643 bra L039C Skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
644 L039A leax -1,x
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
645 L039C clr ,u+ Append a NUL
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
646 puls pc,u,y Restore regs & return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
647
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
648 L03A0 cmpa #'A Uppercase A?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
649 blo L03B5 Lower, return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
650 cmpa #'Z If higher than uppercase Z, check for lower
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
651 bhi L03AD
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
652 L03A8 anda #$5F Force to uppercase (redundant if already upper)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
653 andcc #$FE Clear carry (found text byte) & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
654 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
655 L03AD cmpa #'a If between 'Z' & 'a', we didn't find text char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
656 blo L03B5
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
657 cmpa #'z If found lowercase text, convert to upper
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
658 bls L03A8
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
659 L03B5 orcc #$01 Non-alphabetic, set carry & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
660 L03B7 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
661 * Opcode & Pseudo Opcode Table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
662 * Mnemonic words are high bit terminated
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
663 * First numeric byte is the base opcode (before addressing modes considered)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
664 * 2nd is flags:
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
665 * Least significiant 4 bits = index into handler table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
666 * 0= LBRA & LBSR (non comparitive long branches/no pre-byte)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
667 * 1= Immediate (no register options) ex. ORCC
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
668 * 2= 16 bit register commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
669 * 3= 8 bit register commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
670 * 4= CLR, etc. Inherent (A,B,D,E,F,W all supported)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
671 * 5= 'Fixed' (register not negotiable) inherent commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
672 * 6= LEAx - Indexed only
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
673 * 7= Register to register (TFR,EXG) (now patched for dual size 0 register)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
674 * 8=
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
675 * 9= 16 bit Relative comparitive branches setup flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
676 * A= 8 bit Relative comparitive branches
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
677 * B=
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
678 * C= Pseudo op
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
679 * D= Pseudo op conditionals (IFxx)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
680 * E= Pseudo op (ELSE & ENDC)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
681 * F= UNUSED
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
682 * Most significiant 4 bits
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
683 * %00010000 : $10 prefix byte always needed
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
684 * %00100000 : $11 prefix byte always needed
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
685 * %01000000 : Immediate mode illegal
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
686 * %10000000 : Default to extended mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
687
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
688 L03B8 fcs "ORG"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
689 fcb $00,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
690 fcs "ENDC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
691 fcb $00,$0E
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
692 * Long branches without prebyte
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
693 fcs "LBRA"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
694 fcb $16,$00
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
695 fcs "LBSR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
696 fcb $17,$00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
697 * Immediate with no options for register names
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
698 fcs "ORCC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
699 fcb $1A,$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
700 fcs "ANDCC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
701 fcb $1C,$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
702 fcs "CWAI"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
703 fcb $3C,$01
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
704 fcs "LDMD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
705 fcb $3d,$21
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
706 fcs "BITMD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
707 fcb $3c,$21
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
708 * Register to register commands (need to be here since ADD would match too
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
709 * early)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
710 fcs "ADDR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
711 fcb $30,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
712 fcs "ADCR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
713 fcb $31,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
714 fcs "SUBR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
715 fcb $32,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
716 fcs "SBCR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
717 fcb $33,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
718 fcs "ANDR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
719 fcb $34,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
720 fcs "ORR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
721 fcb $35,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
722 fcs "EORR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
723 fcb $36,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
724 fcs "CMPR"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
725 fcb $37,$17
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
726
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
727 * 16 bit register commands
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
728 fcs "ADDD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
729 fcb $C3,$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
730 fcs "SUBD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
731 fcb $83,$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
732 fcs "LDD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
733 fcb $CC,$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
734 fcs "LDX"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
735 fcb $8E,$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
736 fcs "LDU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
737 fcb $CE,$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
738 fcs "CMPX"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
739 fcb $8C,$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
740 fcs "JSR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
741 fcb $8D,$40+$02 Immediate mode not allowed
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
742 fcs "STD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
743 fcb $CD,$42
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
744 fcs "STX"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
745 fcb $8F,$42
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
746 fcs "STU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
747 fcb $CF,$42
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
748 fcs "CMPU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
749 fcb $83,$22
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
750 fcs "CMPS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
751 fcb $8C,$22
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
752 fcs "CMPD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
753 fcb $83,$12
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
754 fcs "CMPY"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
755 fcb $8C,$12
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
756 fcs "LDY"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
757 fcb $8E,$12
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
758 fcs "LDS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
759 fcb $CE,$12
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
760 fcs "STY"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
761 fcb $8F,$52
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
762 fcs "STS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
763 fcb $CF,$52
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
764 * 6309 additions here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
765 fcs "SUBW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
766 fcb $80,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
767 fcs "CMPW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
768 fcb $81,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
769 fcs "SBCD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
770 fcb $82,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
771 fcs "ANDD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
772 fcb $84,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
773 fcs "BITD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
774 fcb $85,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
775 fcs "LDW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
776 fcb $86,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
777 fcs "STW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
778 fcb $87,$52 Immediate mode illegal
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
779 fcs "EORD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
780 fcb $88,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
781 fcs "ADCD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
782 fcb $89,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
783 fcs "ORD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
784 fcb $8A,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
785 fcs "ADDW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
786 fcb $8B,$12
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
787 fcs "DIVQ"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
788 fcb $8E,$22
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
789 fcs "MULD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
790 fcb $8F,$22
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
791 fcs "STQ"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
792 fcb $CD,$52 Immediate mode illegal
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
793 fcs "LDQ"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
794 fcb $CC,$12 Immediate needs new routine
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
795 * 8 bit register commands (handles A,B,E,F)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
796 fcs "ADD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
797 fcb $8B,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
798 fcs "CMP"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
799 fcb $81,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
800 fcs "SUB"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
801 fcb $80,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
802 fcs "SBC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
803 fcb $82,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
804 fcs "AND"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
805 fcb $84,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
806 fcs "BIT"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
807 fcb $85,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
808 fcs "LD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
809 fcb $86,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
810 fcs "ST"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
811 fcb $87,$43 Immediate mode not allowed
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
812 fcs "EOR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
813 fcb $88,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
814 fcs "ADC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
815 fcb $89,$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
816 fcs "OR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
817 fcb $8A,$03
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
818 fcs "DIVD"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
819 fcb $8D,$23
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
820 * Inherent register commands (now handles A,B,E,F,D & W)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
821 fcs "NEG"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
822 fcb $00,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
823 fcs "COM"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
824 fcb $03,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
825 fcs "LSR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
826 fcb $04,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
827 fcs "ROR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
828 fcb $06,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
829 fcs "ASR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
830 fcb $07,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
831 fcs "LSL"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
832 fcb $08,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
833 fcs "ASL"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
834 fcb $08,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
835 fcs "ROL"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
836 fcb $09,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
837 fcs "DEC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
838 fcb $0A,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
839 fcs "INC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
840 fcb $0C,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
841 fcs "TST"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
842 fcb $0D,$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
843 fcs "JMP"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
844 fcb $0E,$40+$04
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
845 fcs "CLR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
846 fcb $0F,$04
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
847 * "Fixed" inherent commands (no options for register names)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
848 * Single, unique opcode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
849 fcs "RTS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
850 fcb $39,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
851 fcs "MUL"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
852 fcb $3D,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
853 fcs "NOP"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
854 fcb $12,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
855 fcs "SYNC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
856 fcb $13,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
857 fcs "DAA"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
858 fcb $19,$05
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
859 fcs "SEXW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
860 fcb $14,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
861 fcs "SEX"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
862 fcb $1D,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
863 fcs "ABX"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
864 fcb $3A,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
865 fcs "RTI"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
866 fcb $3B,$05
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
867 fcs "SWI2"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
868 fcb $3F,$15
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
869 fcs "SWI3"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
870 fcb $3F,$25
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
871 fcs "SWI"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
872 fcb $3F,$05
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
873 fcs "PSHSW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
874 fcb $38,$15
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
875 fcs "PULSW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
876 fcb $39,$15
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
877 fcs "PSHUW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
878 fcb $3A,$15
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
879 fcs "PULUW"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
880 fcb $3B,$15
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
881 * Load effective address: Indexing mode ONLY
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
882 fcs "LEAX"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
883 fcb $30,$06
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
884 fcs "LEAY"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
885 fcb $31,$06
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
886 fcs "LEAS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
887 fcb $32,$06
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
888 fcs "LEAU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
889 fcb $33,$06
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
890 * Register to register
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
891 fcs "TFR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
892 fcb $1F,$07
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
893 fcs "EXG"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
894 fcb $1E,$07
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
895 fcs "TFM"
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
896 fcb $38,$27 Prebyte of $11
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
897 * Stack push/pull
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
898 fcs "PSHS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
899 fcb $34,$08
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
900 fcs "PULS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
901 fcb $35,$08
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
902 fcs "PSHU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
903 fcb $36,$08
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
904 fcs "PULU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
905 fcb $37,$08
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
906 * Normal long branches (except LBRA & LBSR) - probably sets flag & then
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
907 * carries on through short branch table below
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
908 fcs "LB" for long branches?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
909 fcb $00,$19
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
910
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
911 * Short branches
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
912 L0530 fcs "BSR"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
913 fcb $8D,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
914 fcs "BRA"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
915 fcb $20,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
916 fcs "BRN"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
917 fcb $21,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
918 fcs "BHI"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
919 fcb $22,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
920 fcs "BLS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
921 fcb $23,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
922 fcs "BHS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
923 fcb $24,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
924 fcs "BCC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
925 fcb $24,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
926 fcs "BLO"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
927 fcb $25,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
928 fcs "BCS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
929 fcb $25,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
930 fcs "BNE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
931 fcb $26,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
932 fcs "BEQ"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
933 fcb $27,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
934 fcs "BVC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
935 fcb $28,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
936 fcs "BVS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
937 fcb $29,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
938 fcs "BPL"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
939 fcb $2A,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
940 fcs "BMI"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
941 fcb $2B,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
942 fcs "BGE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
943 fcb $2C,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
944 fcs "BLT"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
945 fcb $2D,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
946 fcs "BGT"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
947 fcb $2E,$0A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
948 fcs "BLE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
949 fcb $2F,$0A
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
950
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
951 * Pseudo ops
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
952 fcs "RMB"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
953 fcb $00,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
954 fcs "FCC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
955 fcb $01,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
956 fcs "FDB"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
957 fcb $02,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
958 fcs "FCS"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
959 fcb $03,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
960 fcs "FCB"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
961 fcb $04,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
962 fcs "EQU"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
963 fcb $05,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
964 fcs "MOD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
965 fcb $06,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
966 fcs "EMOD"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
967 fcb $07,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
968 fcs "SETDP"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
969 fcb $07,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
970 fcs "SET"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
971 fcb $08,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
972 fcs "OS9"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
973 fcb $09,$0B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
974 fcs "END"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
975 fcb $01,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
976 fcs "NAM"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
977 fcb $02,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
978 fcs "OPT"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
979 fcb $03,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
980 fcs "TTL"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
981 fcb $04,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
982 fcs "PAG"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
983 fcb $05,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
984 fcs "SPC"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
985 fcb $06,$0C
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
986 fcs "USE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
987 fcb $08,$0C
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
988 * Conditional assembly switches
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
989 fcs "IFEQ"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
990 fcb $00,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
991 fcs "IFNE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
992 fcb $01,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
993 fcs "IFLT"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
994 fcb $02,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
995 fcs "IFLE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
996 fcb $03,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
997 fcs "IFGE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
998 fcb $04,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
999 fcs "IFGT"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1000 fcb $05,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1001 fcs "IFP1"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1002 fcb $06,$0D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1003 fcs "ELSE"
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1004 fcb $01,$0E
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1005
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1006 L061C fcc '***** Error: '
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1007 fcb $00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1008
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1009 * Pointers to error messages table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1010 L062A fdb L065F-L062A Point to 'bad label'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1011 fdb L0669-L062A Point to 'bad instr'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1012 fdb L0673-L062A Point to 'in number'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1013 fdb L067D-L062A Point to 'div by 0'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1014 fdb L0686-L062A Point to ' '
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1015 fdb L0688-L062A Point to 'expr syntax'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1016 fdb L0694-L062A Point to 'parens'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1017 fdb L069B-L062A Point to 'redefined name'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1018 fdb L06AA-L062A Point to 'undefined name'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1019 fdb L06B9-L062A Point to 'phasing'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1020 fdb L06C1-L062A Point to 'symbol table full'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1021 fdb L06D3-L062A Point to 'address mode'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1022 fdb L06E0-L062A Point to 'out of range'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1023 fdb L06ED-L062A Point to 'result>255'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1024 fdb L06F8-L062A Point to 'reg name'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1025 fdb L0701-L062A Point to 'reg sizes'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1026 fdb L070B-L062A Point to 'input path'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1027 fdb L0716-L062A Point to 'object path'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1028 fdb L0722-L062A Point to 'index reg'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1029 fdb L072C-L062A Point to '] missing'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1030 fdb L0736-L062A Point to 'needs label'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1031 fdb L0742-L062A Point to 'opt list'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1032 fdb L074B-L062A Point to 'const def'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1033 fdb L0755-L062A Point to 'can't open'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1034 fdb L0761-L062A Point to 'label not allowed'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1035 fdb L0773-L062A Point to 'cond nesting'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1036 L065E fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1037 L065F fcc 'bad label'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1038 L0668 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1039 L0669 fcc 'bad instr'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1040 L0672 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1041 L0673 fcc 'in number'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1042 L067C fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1043 L067D fcc 'div by 0'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1044 L0685 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1045 L0686 fcc ' '
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1046 L0687 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1047 L0688 fcc 'expr syntax'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1048 L0693 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1049 L0694 fcc 'parens'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1050 L069A fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1051 L069B fcc 'redefined name'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1052 L06A9 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1053 L06AA fcc 'undefined name'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1054 L06B8 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1055 L06B9 fcc 'phasing'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1056 L06C0 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1057 L06C1 fcc 'symbol table full'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1058 L06D2 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1059 L06D3 fcc 'address mode'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1060 L06DF fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1061 L06E0 fcc 'out of range'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1062 L06EC fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1063 L06ED fcc 'result>255'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1064 L06F7 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1065 L06F8 fcc 'reg name'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1066 L0700 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1067 L0701 fcc 'reg sizes'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1068 L070A fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1069 L070B fcc 'input path'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1070 L0715 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1071 L0716 fcc 'object path'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1072 L0721 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1073 L0722 fcc 'index reg'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1074 L072B fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1075 L072C fcc '] missing'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1076 L0735 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1077 L0736 fcc 'needs label'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1078 L0741 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1079 L0742 fcc 'opt list'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1080 L074A fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1081 L074B fcc 'const def'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1082 L0754 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1083 L0755 fcc /can't open /
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1084 L0760 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1085 L0761 fcc 'label not allowed'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1086 L0772 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1087 L0773 fcc 'cond nesting'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1088 L077F fcb $00
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1089
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1090 * Index by opcode-type jump table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1091 L0780 fdb L079E-L0780 $001E (LBRA/LBSR) (type 0)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1092 fdb L07A5-L0780 $0025 (orcc/andcc/cwai) (type 1)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1093 fdb L07B9-L0780 $0039 type 2
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1094 fdb L07CE-L0780 $004E type 3
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1095 fdb L07F3-L0780 $0073 (CLR,etc.) (type 4)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1096 fdb L0826-L0780 $00A6 type 5
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1097 fdb L082F-L0780 $00AF type 6
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1098 fdb L0846-L0780 $00C6 type 7
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1099 fdb L0884-L0780 $0104 type 8
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1100 fdb L089D-L0780 $011D
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1101 fdb L08BA-L0780 $013A
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1102 fdb L08DC-L0780 $015C
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1103 fdb L08E1-L0780 $0161
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1104 fdb L08F9-L0780 $0179
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1105 fdb L0F29-L0780 $07A9
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1106
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1107 * LBRA/LBSR (type 0)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1108 L079E lda #$03 # bytes require for instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1109 sta <u0046 Save it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1110 lbra L0951
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1111
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1112 * orcc/andcc/cwai 2 byte immediate mode only, forced register name (type 1)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1113 L07A5 lbsr L0932 Go find '# for immediate mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1114 bcc twobyte Found it, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1115 ldb #$0C Error code $C 'address mode'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1116 lbsr L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1117 * Legal 8 bit immediate mode goes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1118 twobyte lda #$01 Force # bytes of instruction to 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1119 sta <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1120 lda <u0047 Get flag/index option byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1121 bita #$20 Pre-byte 11 bit flag on?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1122 beq L07AF No, 2 byte instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1123 inc <u0046 Add 1 to # bytes to compensate for $11
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1124 L07AF lbsr L12F7 Immediate mode parser
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1125 stb <u0063 Store immediate value following opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1126 inc <u0046 Add 1 to # of bytes for immediate value
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1127 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1128
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1129 * ADDD, LDX, STU etc. (type 2) (16 bit register commands) (all modes)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1130 L07B9 inc <u0046 Add 1 to # bytes needed for instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1131 lbsr L0932 Check if immediate mode requested
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1132 lbcs L09C6 No, go check memory-based modes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1133 ldd <u0061 Get prebyte & opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1134 cmpd #$10CC LDQ?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1135 bne norm16bt No, normal immediate mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1136 ldd #$00CD Get immediate mode opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1137 sta <u0062 Save it over old opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1138 lda #$5 # of bytes for LDQ immediate
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1139 clr <u0061 Clear out pre-byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1140 * This is here since 32 bit numeric routines aren't here yet
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1141 ldb #$c Error code for 'addr mode'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1142 lbra L02FA Exit with it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1143
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1144 norm16bt lbsr L12F1 Calculate immediate mode #'s
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1145 std <u0063 Save 16 bit result after opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1146 inc <u0046 Add 2 to # bytes needed for instruction
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1147 inc <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1148 lbra L0941 Make sure immediate mode is legal & exit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1149
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1150 * 8 bit A & B based instructions (ADD, SUB, CMP, etc.) (type $03)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1151 L07CE inc <u0046 Add 1 to # bytes needed for instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1152 ldd <u0061 Get pre-byte & opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1153 cmpd #$118d DIVD instruction?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1154 beq L07E7 Yes, skip register name parser
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1155 lda ,x+ Get next byte from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1156 anda #$5F Force to uppercase
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1157 cmpa #'A Is it an A?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1158 beq L07E7 Yes, go process instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1159 cmpa #'E Is it an E?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1160 beq newreg Yes, process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1161 cmpa #'F Is it an F?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1162 bne notnew No, try B
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1163 * E or F register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1164 newreg pshs a Preserve register name a moment
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1165 lda <u0062 Get base opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1166 cmpa #$82
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1167 blo legalcmd SUB or CMP are ok
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1168 cmpa #$86
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1169 blo illegal3 SBC,AND & BIT are not ok
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1170 cmpa #$88
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1171 blo legalcmd Load & store are ok
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1172 cmpa #$8b
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1173 blo illegal3 EOR, ADC & OR are not ok (ADD falls through ok)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1174 * Legal E/F command, setup
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1175 legalcmd lda #$11 Pre-byte for E/F based commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1176 sta <u0061 Place before opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1177 inc <u0046 Add 1 to # bytes needed for instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1178 puls a Get back register name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1179 cmpa #'F Is it F?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1180 beq L07E1 Yes, add mask for F
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1181 bra L07E7 Go process various modes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1182 notnew cmpa #'B Is it a B?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1183 beq L07E1 Yes, add B mask & process instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1184 bra illegal2 Illegal register name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1185
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1186 * Illegal register (or illegal command for E or F)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1187 illegal3 leas 1,s Eat E/F identifier byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1188 illegal2 leas 2,s Eat JSR return address
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1189 lbra L015F Exit with 'bad instr' error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1190
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1191 * Mask for B or F commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1192 L07E1 ldb #$40 Add offset for B register to base opcode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1193 orb <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1194 stb <u0062
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1195 * Process various modes (Extended, DP, Indexed, Immediate)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1196 L07E7 lbsr L0932 Check for immediate mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1197 lbcs L09C6 Not immediate, try memory modes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1198 lbsr L0941 Is this command allowed immediate mode?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1199 lbra L07AF Go do immediate mode (8 bit)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1200
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1201 * CLR/LSL,etc.
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1202 L07F3 inc <u0046 Inc # bytes in current instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1203 lda <u0062 Get base opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1204 cmpa #$0E Is it JMP?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1205 beq L080B Yes, special case (no inherent)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1206 * Inherent register name commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1207 lda ,x Get next char from source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1208 anda #$5F Uppercase only
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1209 * $xx40 commands here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1210 ldb #$40 Mask to opcode base for 'xxxA'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1211 cmpa #'A Is char an A?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1212 beq L0819 Yes, adjust opcode accordingly
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1213 cmpa #'D Is char a D?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1214 bne notD No, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1215 Legal10 lda #$10 Pre-byte for 'D' commands
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1216 Legal11 sta <u0061 Put it before the opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1217 inc <u0046 Add 1 to # bytes for this instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1218 bra L0819 Go append the main opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1219 notD cmpa #'E Is char an E?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1220 bne notE No, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1221 ChkEF lda <u0062 Get base opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1222 beq illegal NEGE/NEGF not allowed
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1223 cmpa #$03 COMx?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1224 beq goodE Yes, legal
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1225 cmpa #$0A LSR/ROR/ASR/LSL/ASL/ROL?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1226 blo illegal Not allowed
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1227 goodE lda #$11 Rest are allowed, set pre-byte to $11
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1228 bra Legal11
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1229
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1230 * $xx50 commands here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1231 notE ldb #$50 Mask to opcode base for 'xxxB'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1232 cmpa #'B Is char a B?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1233 beq L0819 Yes, adjust opcode accordingly
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1234 cmpa #'W Is char a W?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1235 bne notW No, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1236 lda <u0062 Get base opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1237 beq illegal There is no NEGW?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1238 cmpa #$7 ASRW?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1239 beq illegal Yes, there isn't one
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1240 cmpa #$8 LSL/ASLW?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1241 bne Legal10 Rest are legal, prefix a $10 & append opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1242
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1243 * Illegal instructions go here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1244 illegal leas $02,s Eat JSR return address
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1245 lbra L015F Exit with illegal opcode error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1246 notW cmpa #'F is it an F?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1247 bne L080B Definately not a register, try memory modes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1248 bra ChkEF Go to generic E/F handler
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1249
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1250 L080B lbsr L09C6 Generic indexed/extended/direct handler???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1251 ldb <u0062 Get base opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1252 bitb #%11110000 Any of the 4 bits of high nibble set?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1253 beq L0825 No, return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1254 orb #%01000000 Yes, force bit on & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1255 stb <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1256 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1257 * Mask in adjustment for register inherent
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1258 L0819 orb <u0062 Merge Mask for new inherent mode into opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1259 stb <u0062 Save new opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1260 leax 1,x Bump source code ptr up to next char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1261 ldb #%11011111 Shut off 'operand field in src line' flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1262 andb <u002B And save new flag byte
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1263 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1264 L0825 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1265
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1266 * type 5 - 'fixed' inherent commands (no options for registers, etc.)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1267 L0826 inc <u0046 Add 1 to # bytes this instruction
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1268 ldb <u002B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1269 andb #%11011111 Shut off 'operand present' flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1270 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1271 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1272
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1273 * type 6 - LEA* (indexed mode ONLY)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1274 L082F inc <u0046 Add 1 to # bytes this instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1275 lbsr L09C6 Go set up indexed mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1276 lda <u004E Get indexed mode flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1277 bne L0825 Is indexed mode, everything went fine, exit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1278 ldd #$1212 Otherwise, 2 NOP codes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1279 std <u0062 Save as opcodes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1280 ldb #$02 Force # bytes this instruction to 2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1281 stb <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1282 ldb #$0C 'address mode' error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1283 lbra L02FA
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1284 * type 7 - TFR/EXG & Register to register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1285 L0846 inc <u0046 at least 2 bytes in this instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1286 inc <u0046
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1287 lbsr L1164 Find next text field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1288 lbsr L096B Get 1st register name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1289 bcc L0857 If we found them, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1290 L0852 ldb #$0F If didn't, exit with 'reg name' error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1291 lbra L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1292
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1293 L0857 lda ,x+ Get next char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1294 cmpa #', comma?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1295 bne L0852 No, exit with 'reg name' error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1296 pshs b Preserve first register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1297 lbsr L096B Get 2nd register name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1298 puls a Get back 1st register name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1299 bcs L0852 If can't find 2nd, exit with error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1300 pshs d Preserve both
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1301 anda #%00001000 Keep 8/16 bit size flag on first
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1302 andb #%00001000 Keep 8/16 bit size flag on 2nd
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1303 pshs b Preserve 2nd reg size flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1304 eora ,s+ Check if they are same size
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1305 beq L0879 Yes, continue
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1306 lda #%00001100 '0' register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1307 cmpa ,s Is source register the 0 register?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1308 beq L0879 Yes, destination size doesn't matter
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1309 ldb #$10 Otherwise, 'reg sizes' error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1310 leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1311 lbra L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1312
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1313 L0879 puls a Get back source register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1314 lsla Move into most significiant nibble
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1315 lsla
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1316 lsla
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1317 lsla
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1318 ora ,s+ Merge with destination register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1319 sta <u0063 Save after opcode & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1320 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1321 * type 8 (Stack push/pull)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1322 L0884 ldb #$02 Force # bytes for instruction to 2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1323 stb <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1324 lbsr L1164 Parse to next field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1325 L088B lbsr L096B Get register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1326 bcs L0852 Illegal one, exit with 'register name' error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1327 ora <u0063 Mask in bit for new reg into byte after opcode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1328 sta <u0063
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1329 lda ,x+ Get next char from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1330 cmpa #', Comma?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1331 beq L088B Yes, more register masks to get
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1332 leax -1,x Bump src code ptr back 1 & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1333 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1334 * type 9 (long branches except LBRA/LBSR)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1335 L089D lda #$04 Force # of bytes of instruction to 4
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1336 sta <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1337 leax -$01,x Bump ptr back to start of mnemonic
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1338 ldb #19 # opcodes to check in table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1339 leay >L0530,pc Point to branch opcode tables
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1340 lbsr L0344 Go find & verify it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1341 bcc L08B3 Found it, continue
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1342 leas $02,s Eat stack
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1343 lbra L015F Exit with error
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1344
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1345 L08B3 lda ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1346 sta <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1347 lbra L0951
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1348
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1349 * type 10 (short branches)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1350 L08BA lda #$02 Force # of bytes of instruction to 2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1351 sta <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1352 lbsr L12F1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1353 subd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1354 subd #$0002
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1355 cmpd #$007F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1356 bgt L08D2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1357 cmpd #$FF80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1358 bge L08D9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1359 L08D2 ldb #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1360 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1361 ldb #$FE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1362 L08D9 stb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1363 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1364
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1365 * type $B (Pseudo ops)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1366 L08DC leau <L08FE,pc Point to table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1367 bra L08EF
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1368
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1369 L08E1 ldb <u002B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1370 bitb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1371 beq L08EC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1372 ldb #$19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1373 lbsr L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1374 L08EC leau <L0912,pc Point to table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1375 L08EF lbsr L1164 Hunt down next field in source string
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1376 ldb <u0062
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1377 lslb 2 byte entries
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1378 ldd b,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1379 jmp d,u
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1380
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1381 L08F9 leau <L0924,pc Point to table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1382 bra L08EF
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1383
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1384 * 2 byte jump table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1385
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1386 L08FE fdb L0BA6-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1387 fdb L0C47-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1388 fdb L0CBF-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1389 fdb L0C6B-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1390 fdb L0CAD-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1391 fdb L0C27-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1392 fdb L0D60-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1393 fdb L0D40-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1394 fdb L0C2B-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1395 fdb L0D51-L08FE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1396 * Another 2 byte jump table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1397 L0912 fdb L0DB9-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1398 fdb L0DC1-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1399 fdb L0DD4-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1400 fdb L0E2C-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1401 fdb L0DFD-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1402 fdb L0E03-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1403 fdb L0E09-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1404 fdb L0EB3-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1405 fdb L0EC4-L0912
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1406
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1407 * Another 2 byte jump table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1408 L0924 fdb L0EE3-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1409 fdb L0EE8-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1410 fdb L0EED-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1411 fdb L0EF2-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1412 fdb L0EF7-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1413 fdb L0EFC-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1414 fdb L0F01-L0924
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1415
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1416 L0932 lbsr L1164 Parse for start of next field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1417 cmpa #'# Immediate mode specifier?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1418 bne L093E No, exit with carry set
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1419 leax 1,x Bump source ptr up by 1, clear carry & return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1420 andcc #$FE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1421 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1422
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1423 L093E orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1424 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1425
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1426 * Immediate mode check
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1427 L0941 ldb <u0047 Get current opcode's flag byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1428 bitb #%01000000 Immediate mode legal?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1429 bne L0948 No, do something
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1430 rts Yes, return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1431
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1432 L0948 ldb #$03 Set size of illegal instruction to 3 bytes
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1433 stb <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1434 ldb #$0C Error code $C 'address mode'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1435 lbra L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1436
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1437 L0951 lbsr L12F1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1438 subd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1439 subb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1440 sbca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1441 std <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1442 cmpd #$007F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1443 bgt L096A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1444 cmpd #$FF80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1445 blt L096A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1446 inc <u004F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1447 L096A rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1448
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1449 * Entry: X=ptr to start of reg name from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1450 * Exit: A=Bit mask for PSH/PUL
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1451 * B=Bit mask for EXG/TFR
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1452 L096B leay >L09A2,pc Point to register names
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1453 pshs x Save start of current register we are checking
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1454 ldb #16 # of register names to check
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1455 L0973 lda ,y Get byte from reg. name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1456 beq L098F If NUL (empty entry), skip this entry
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1457 cmpa ,x+ Compare with source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1458 beq L0981 Equal, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1459 adda #$20 Make lowercase
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1460 cmpa -$01,x Compare with source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1461 bne L098F Not equal, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1462 * Found reg name we want
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1463 L0981 lda $01,y Get 2nd char of reg name
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1464 beq L099A NUL, only 1 char, so we match
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1465 cmpa ,x+ 2nd char match too?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1466 beq L099A Yes, found reg
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1467 adda #$20 Convert to lowercase
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1468 cmpa -$01,x Does that match?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1469 beq L099A Yes, found it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1470 * Not the register name we want, try next one
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1471 L098F ldx ,s Get ptr to start of current register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1472 leay $03,y Bump to next one
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1473 decb Dec # registers left to check counter
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1474 bne L0973 Keep doing till done
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1475 orcc #$01 Set carry flag (illegal register name)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1476 puls pc,x Restore X & return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1477 * Found register name we wanted
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1478 L099A decb Adjust B (EXG/TFR mask)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1479 leas $02,s Eat X off the stack
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1480 lda $02,y Get PSH/PUL bit mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1481 andcc #$FE No error & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1482 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1483 * Stack table: 2 bytes for reg. name, 1 byte for bit mask for PSH/PUL
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1484 * Positions (done in reverse from highest to lowest) indicates the bit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1485 * mask for register to register operations (ex. TFR)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1486 L09A2 fcc 'F' %1111
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1487 fcb $00,$00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1488
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1489 fcc 'E' %1110
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1490 fcb $00,$00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1491
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1492 fcb $00,$00,$00 %1101 (2nd zero register won't be used)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1493
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1494 fcc '0' %1100 Zero register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1495 fcb $00,$00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1496
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1497 fcc 'DP' %1011
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1498 fcb $08
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1499
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1500 fcc 'CC' %1010
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1501 fcb $01
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1502
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1503 fcc 'B' %1001
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1504 fcb $00,$04
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1505
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1506 fcc 'A' %1000
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1507 fcb $00,$02
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1508
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1509 fcc 'V' %0111
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1510 fcb $00,00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1511
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1512 fcc 'W' %0110
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1513 fcb $00,$00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1514
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1515 fcc 'PC' %0101
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1516 fcb $80
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1517
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1518 fcc 'S' %0100
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1519 fcb $00,$40
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1520
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1521 fcc 'U' %0011
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1522 fcb $00,$40
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1523
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1524 fcc 'Y' %0010
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1525 fcb $00,$20
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1526
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1527 fcc 'X' %0001
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1528 fcb $00,$10
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1529
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1530 fcc 'D' %0000
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1531 fcb $00,$06 (A & B combined)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1532
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1533 * Generic memory mode addressing handler: Indexed, Extended, Direct Page
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1534 L09C6 lbsr L1164 Parse for next field in source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1535 bsr L0A14 Check for '<' (DP) & '>' (Extended) modes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1536 cmpa #'[ Next char indicate indirect mode?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1537 bne L09D7 No, try next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1538 inc <u004D Set flag for indirect mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1539 leax 1,x Bump src code ptr up by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1540 lda ,x Get next byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1541 bsr L0A14 Check for '<' or '>' & set flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1542 L09D7 cmpa #', Comma?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1543 lbeq L0A64 Yes, skip ahead for ,R/,R auto inc/dec
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1544 * comma is not first char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1545 ldb 1,x No, get next char into B
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1546 cmpb #', Is it a comma? (ie 1st was register name?)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1547 bne L09F1 No, try label/number routine ???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1548 anda #$DF Force to uppercase
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1549 cmpa #'A Is it an A?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1550 beq L0A27 Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1551 cmpa #'B Is it a B?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1552 beq L0A2B Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1553 cmpa #'D Is it a D?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1554 beq L0A2F Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1555 cmpa #'E Is it an E?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1556 beq MaskE
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1557 cmpa #'F Is it an F?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1558 beq MaskF
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1559 cmpa #'W Is it a W?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1560 beq MaskW
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1561 * Not a R0,xx... try for numeric or label
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1562 L09F1 lbsr L12F1 Parse for numeric (returns 16 bit # in D)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1563 bcc L09F8 Found one, preserve it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1564 clra Otherwise, default to 0
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1565 clrb
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1566 L09F8 std <u004A Save 16 bit address
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1567 lda ,x Get char from src code
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1568 cmpa #', Comma?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1569 lbeq L0B18 Yes, skip way ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1570 ldb <u004D Get indirect mode flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1571 bne L0A35 If on, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1572 ldb <u004C Get Extended/DP/Indexed mode flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1573 bmi L0A35 If Extended, go do it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1574 bne L0A53 If Direct Page, go somewhere else
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1575 lda <u004A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1576 cmpa <u003F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1577 beq L0A53
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1578 bra L0A35
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1579
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1580 * Check for '>' or '<' (Extended or Direct Page addressing)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1581 * Set flag @ <u004C to $FF for >, $01 for <
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1582 L0A14 ldb #$FF 16 bit addressing flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1583 cmpa #'> 16 bit addressing?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1584 beq L0A20 Yes, set flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1585 cmpa #'< 8 bit addressing?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1586 bne L0A26 No, return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1587 ldb #$01 8 bit addressing flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1588 L0A20 stb <u004C Save bit size addressing flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1589 leax 1,x Bump source ptr
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1590 lda ,x Get next char & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1591 L0A26 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1592
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1593 * A,R comes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1594 L0A27 ldb #%10000110
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1595 bra L0A31
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1596
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1597 * B,R comes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1598 L0A2B ldb #%10000101
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1599 bra L0A31
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1600
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1601 * D,R comes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1602 L0A2F ldb #%10001011
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1603 bra L0A31
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1604 * E,R comes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1605 MaskE ldb #%10000111
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1606 bra L0A31
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1607 * F,R comes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1608 MaskF ldb #%10001010
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1609 bra L0A31
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1610 * W,R comes here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1611 MaskW ldb #%10001110
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1612 L0A31 leax 1,x Bump src ptr up by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1613 bra L0A97 Skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1614
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1615 * Extended Indirect indexed or Extended modes go here
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1616 L0A35 ldd <u004A Get 16 bit address
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1617 inc <u0046 Add 2 to # bytes for instruction
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1618 inc <u0046
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1619 inc <u004F ???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1620 tst <u004D Indirect mode on?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1621 bne L0A4A Yes, Need to add $9F postbyte first
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1622 std <u0063 Save extended address
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1623 ldb #%00110000 Mask in bit flags for extended mode & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1624 orb <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1625 stb <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1626 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1627
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1628 * Extended indirect (ex. JMP [<$2000])
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1629 L0A4A std <u0064 Store 16 bit address after post-byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1630 ldb #%10011111 Append $9f post-byte for Extended Indirect
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1631 stb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1632 lbra L0AEA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1633
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1634 * Direct page mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1635 L0A53 inc <u0046 Add 1 to # bytes this instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1636 ldb <u004B Get 8 bit # (LSB of D from L12F1)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1637 stb <u0063 Save it as DP address
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1638 ldb <u0062 get opcode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1639 bitb #%11110000 Is it a $0-$F Direct page command?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1640 beq L0A63 Yes, opcode is fine
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1641 orb #%00010000 No, force DP mode bit on in opcode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1642 stb <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1643 L0A63 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1644
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1645 * Comes here if first char is ',' (after parsing '[' if needed)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1646 L0A64 leax 1,x Bump source ptr up by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1647 clr <u004A Clear 16 bit offset address
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1648 clr <u004B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1649 ldd ,x Get 2 chars from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1650 cmpd #$2D2D '--' ?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1651 beq L0A8D Yes, go merge mask for --
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1652 cmpa #'- '-' ?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1653 beq L0A93 Yes, go merge mask for -
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1654 bsr L0AC7 Otherwise, Go find base index register (X,Y,U,S)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1655 lbcs L0B68 Couldn't find one, check for 'PC' offset
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1656 * Found base register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1657 stb <u0063 Save base register bit mask in postbyte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1658 ldd ,x Get next 2 chars from src (after base reg. name)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1659 cmpd #$2B2B '++' ?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1660 beq L0AAB Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1661 cmpa #'+ '+' ?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1662 beq L0AB1 Yes, go process
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1663 lbra L0B22
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1664
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1665 * Mask for double dec. mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1666 L0A8D leax 1,x Bump src ptr up by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1667 ldb #%10000011 Mask for -- mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1668 bra L0A97 Merge into post byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1669 * Mask for single dec. mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1670 L0A93 bsr L0ABD Make sure we aren't indirect-it's illegal
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1671 ldb #%10000010 Mask for - mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1672 L0A97 stb <u0063 Save mask in postbyte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1673 leax 1,x Bump src ptr up 1 byte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1674 bsr L0AC7 Go get base register (X,Y,U,S)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1675 bcc L0AA5 Found it, merge in base register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1676 L0A9F ldb #$13 illegal 'index reg' error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1677 lbsr L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1678 clrb So clear postbyte to 0
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1679 L0AA5 orb <u0063 Merge in mask into postbyte
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1680 stb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1681 bra L0AEA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1682 * Mask for double inc. mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1683 L0AAB ldb #%10000001 Mask for ++ mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1684 leax 1,x Bump up src ptr by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1685 bra L0AB5 Merge into postbyte
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1686 * Mask for single inc. mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1687 L0AB1 bsr L0ABD Make sure we aren't indirect-it's illegal
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1688 ldb #%10000000 Mask for + mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1689
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1690 L0AB5 leax 1,x Bump up src ptr by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1691 orb <u0063 Merge in auto inc. modes
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1692 stb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1693 bra L0AEA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1694
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1695 * Check ,-R or ,R+: only legal in NON-INDIRECT mode
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1696 L0ABD tst <u004D Check indirect mode flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1697 beq L0AC6 Normal, exit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1698 ldb #$0C Indirect ,-R is illegal, exit with error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1699 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1700 L0AC6 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1701
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1702 * Exit: B=bit mask for proper index register (X,Y,U,S)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1703 * carry set=not legal register
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1704 L0AC7 lda ,x+ Get next char from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1705 anda #$5F Force to uppercase
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1706 clrb X register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1707 cmpa #'X X register?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1708 beq L0AE2 Yes, acceptable
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1709 ldb #%00100000 Y register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1710 cmpa #'Y Y register
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1711 beq L0AE2
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1712 ldb #%01000000 U register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1713 cmpa #'U U register?
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1714 beq L0AE2
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1715 ldb #%01100000 S register mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1716 cmpa #'S S register?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1717 bne L0AE5 No, not a 'x,R' or 'R+/++' situation
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1718 L0AE2 andcc #$FE No error & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1719 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1720
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1721 L0AE5 leax -1,x Bump source ptr back
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1722 orcc #$01 Set carry (couldn't find index register) & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1723 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1724 * Part of indexed mode handler
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1725 * This part sets the INDEXED mode bit in the opcode itself, and also sets
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1726 * the INDIRECT bit in the postbyte. Both of these are compatible with the new
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1727 * W modes (with W being the base register), so this routine does not have to
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1728 * be changed.
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1729 L0AEA ldb #%00100000 Mask bit for indexed instruction opcodes
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1730 orb <u0062 Force instruction to indexed mode
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1731 stb <u0062
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1732 inc <u0046 Add 1 to size of instruction
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1733 inc <u004E ???
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1734 tst <u004D Indirect mode active?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1735 beq L0B08 No, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1736 ldb #%00010000 Indirect mode bit mask
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1737 orb <u0063 Mask into Postbyte
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1738 stb <u0063
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1739 lda ,x+ Get next char from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1740 cmpa #'] End of indirect mode?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1741 beq L0B08 Yes, go check for end of line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1742 ldb #$14 '] missing' error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1743 bra L0B14
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1744
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1745 L0B08 lda ,x Get char from source
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1746 cmpa #$20 Space?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1747 beq L0B17 Yes, exit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1748 cmpa #$0D CR?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1749 beq L0B17 Yes, exit
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1750 ldb #$0C 'Address mode' error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1751 L0B14 lbsr L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1752 L0B17 rts No error & return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1753
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1754 L0B18 leax 1,x Bump src ptr up by 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1755 bsr L0AC7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1756 bcs L0B68
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1757 orb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1758 stb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1759 L0B22 ldd <u004A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1760 tst <u004C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1761 bmi L0B5A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1762 bne L0B52
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1763 ldd <u004A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1764 bne L0B32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1765 ldb #$84
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1766 bra L0B62
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1767 L0B32 tst <u004D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1768 bne L0B46
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1769 cmpd #$000F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1770 bgt L0B46
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1771 cmpd #$FFF0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1772 blt L0B46
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1773 andb #$1F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1774 bra L0B62
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1775 L0B46 cmpd #$007F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1776 bgt L0B5A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1777 cmpd #$FF80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1778 blt L0B5A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1779 L0B52 stb <u0064
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1780 inc <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1781 ldb #$88
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1782 bra L0B62
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1783 L0B5A std <u0064
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1784 inc <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1785 inc <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1786 ldb #$89
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1787 L0B62 orb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1788 stb <u0063
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1789 bra L0AEA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1790 L0B68 ldd ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1791 anda #$5F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1792 andb #$5F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1793 cmpd #$5043
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1794 lbne L0A9F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1795 leax $02,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1796 lda ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1797 anda #$5F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1798 cmpa #$52
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1799 bne L0B82
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1800 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1801 L0B82 inc <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1802 ldd <u004A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1803 subd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1804 subb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1805 sbca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1806 subd #$0001
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1807 tst <u004C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1808 bmi L0B9B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1809 beq L0B9B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1810 stb <u0064
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1811 ldb #$8C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1812 bra L0B62
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1813 L0B9B subd #$0001
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1814 inc <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1815 std <u0064
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1816 ldb #$8D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1817 bra L0B62
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1818
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1819 L0BA6 bsr L0BE4
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1820 pshs d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1821 addd <u0026
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1822 std <u0026
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1823 bsr L0BEF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1824 beq L0BB6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1825 lda #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1826 bsr L0BF7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1827 L0BB6 bsr L0BD8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1828 bsr L0BEF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1829 beq L0BBE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1830 bsr L0C0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1831 L0BBE addd ,s++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1832 L0BC0 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1833 lda <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1834 anda #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1835 ora #$31
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1836 sta <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1837 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1838 tst <u005A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1839 beq L0BD3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1840 std <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1841 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1842 L0BD3 std <u0042
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1843 inc <u002C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1844 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1845 L0BD8 tst <u005A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1846 beq L0BDF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1847 ldd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1848 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1849 L0BDF ldd <u0042
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1850 std <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1851 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1852 L0BE4 lbsr L11C2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1853 bcc L0BEE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1854 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1855 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1856 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1857 L0BEE rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1858 L0BEF pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1859 lda <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1860 bita #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1861 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1862 L0BF7 ldu <u002D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1863 ldb u0008,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1864 bmi L0C09
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1865 cmpb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1866 bne L0C07
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1867 cmpa #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1868 beq L0C07
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1869 ora #$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1870 L0C07 sta u0008,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1871 L0C09 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1872 L0C0A tst <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1873 ble L0C24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1874 cmpd u0009,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1875 beq L0C26
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1876 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1877 lda u0008,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1878 bmi L0C22
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1879 cmpa #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1880 beq L0C22
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1881 ldb #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1882 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1883 L0C22 puls b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1884 L0C24 std u0009,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1885 L0C26 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1886 L0C27 lda #$03
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1887 bra L0C2D
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1888 L0C2B lda #$02
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1889 L0C2D bsr L0BEF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1890 bne L0C38
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1891 ldb #$15
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1892 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1893 bra L0C46
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1894 L0C38 bsr L0BF7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1895 bsr L0BE4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1896 ldu <u002D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1897 bsr L0C0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1898 std <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1899 ldb #$39
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1900 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1901 L0C46 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1902 L0C47 lda ,x+
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1903 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1904 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1905 beq L0C64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1906 cmpa #$2F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1907 bhi L0C64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1908 bsr L0C8D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1909 L0C55 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1910 cmpa ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1911 beq L0C69
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1912 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1913 beq L0C64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1914 lbsr L0CEC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1915 bra L0C55
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1916 L0C64 ldb #$17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1917 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1918 L0C69 puls pc,a
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1919 L0C6B lda ,x+
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1920 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1921 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1922 beq L0C64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1923 cmpa #$2F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1924 bhi L0C64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1925 bsr L0C8D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1926 L0C79 ldd ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1927 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1928 beq L0C64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1929 cmpa ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1930 beq L0C69
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1931 cmpb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1932 bne L0C89
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1933 ora #$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1934 L0C89 bsr L0CEC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1935 bra L0C79
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1936 L0C8D pshs x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1937 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1938 L0C91 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1939 lda ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1940 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1941 beq L0CA1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1942 cmpa ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1943 bne L0C91
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1944 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1945 lda ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1946 L0CA1 clr ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1947 stx <u0033
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1948 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1949 bne L0CAB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1950 sta ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1951 L0CAB puls pc,x,a
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1952 L0CAD bsr L0CD5
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1953 L0CAF lbsr L12F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1954 tfr b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1955 bsr L0CEC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1956 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1957 cmpa #$2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1958 beq L0CAF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1959 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1960 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
1961 L0CBF bsr L0CD5
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1962 L0CC1 lbsr L12F1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1963 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1964 bsr L0CEC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1965 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1966 bsr L0CEC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1967 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1968 cmpa #$2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1969 beq L0CC1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1970 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1971 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1972 L0CD5 pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1973 L0CD7 lbsr L12F1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1974 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1975 cmpa #$2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1976 beq L0CD7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1977 clr -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1978 stx <u0033
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1979 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1980 bne L0CEA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1981 sta ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1982 L0CEA puls pc,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1983 L0CEC ldb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1984 cmpb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1985 bcs L0CF4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1986 bsr L0D03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1987 L0CF4 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1988 tfr dp,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1989 ldb #$62
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1990 tfr d,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1991 puls b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1992 sta b,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1993 inc <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1994 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1995 L0D03 pshs x,b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1996 ldb <u002A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1997 bne L0D14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1998 ldx <u0033
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1999 lbsr L01C4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2000 tst <u005B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2001 beq L0D27
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2002 bra L0D30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2003 L0D14 tst <u005B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2004 bne L0D2D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2005 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2006 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2007 clr <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2008 com <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2009 lbsr L01D3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2010 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2011 sta <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2012 L0D27 ldb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2013 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2014 bra L0D34
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2015 L0D2D lbsr L01D3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2016 L0D30 ldb #$05
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2017 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2018 L0D34 ldd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2019 std <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2020 clr <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2021 inc <u002A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2022 clr $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2023 puls pc,x,b,a
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2024 L0D40 ldd <u0051
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2025 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2026 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2027 std <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2028 ldb <u0053
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2029 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2030 lda <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2031 anda #$DF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2032 sta <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2033 bra L0D59
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2034 L0D51 ldd #$103F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2035 std <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2036 lbsr L12F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2037 L0D59 stb <u0064
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2038 ldb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2039 stb <u0046
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2040 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2041 L0D60 clra
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2042 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2043 stb <u0050
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2044 std <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2045 std <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2046 std <u0042
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2047 lbsr L1360
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2048 lbsr L0CD5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2049 ldd #$87CD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2050 bsr L0D93
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2051 bsr L0D90
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2052 bsr L0D8E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2053 bsr L0DA9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2054 bsr L0DA4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2055 bsr L0DA9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2056 bsr L0DA4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2057 lda <u0050
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2058 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2059 bsr L0DA1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2060 lda ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2061 cmpa #$2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2062 bne L0DB8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2063 bsr L0D8E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2064 L0D8E bsr L0DA9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2065 L0D90 lbsr L12F1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2066 L0D93 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2067 tfr a,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2068 bsr L0D9B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2069 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2070 L0D9B tfr b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2071 eorb <u0050
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2072 stb <u0050
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2073 L0DA1 lbra L0CEC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2074 L0DA4 lbsr L12F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2075 bra L0D9B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2076 L0DA9 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2077 cmpa #$2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2078 beq L0DB8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2079 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2080 ldb #$17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2081 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2082 leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2083 L0DB8 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2084 L0DB9 lbsr L0BE4
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2085 std <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2086 lbra L0BC0
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2087 L0DC1 ldb <u002B
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2088 andb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2089 orb #$10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2090 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2091 lbsr L01F2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2092 lbsr L156C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2093 bcc L0DD3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2094 leas $04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2095 L0DD3 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2096 L0DD4 ldb #$27
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2097 ldu <u000A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2098 L0DD8 lbsr L1164
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2099 lda <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2100 bne L0DE3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2101 lda ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2102 bne L0DFC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2103 L0DE3 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2104 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2105 beq L0DF4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2106 sta ,u+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2107 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2108 bne L0DE3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2109 lda #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2110 L0DF0 cmpa ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2111 bne L0DF0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2112 L0DF4 clr ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2113 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2114 ldb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2115 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2116 L0DFC rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2117 L0DFD ldb #$4F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2118 ldu <u0008
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2119 bra L0DD8
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2120 L0E03 lbsr L1408
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2121 L0E06 leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2122 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2123 L0E09 bsr L0E21
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2124 bcc L0E12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2125 ldb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2126 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2127 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2128 L0E12 stb ,-s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2129 beq L0E1D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2130 L0E16 lbsr L149A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2131 dec ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2132 bne L0E16
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2133 L0E1D leas $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2134 bra L0E06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2135 L0E21 lbsr L10B4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2136 bcc L0E2B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2137 lbsr L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2138 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2139 L0E2B rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2140 L0E2C ldb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2141 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2142 lbsr L1164
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2143 L0E33 clr ,-s Clear flag?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2144 lda ,x+ Get char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2145 cmpa #'- Dash?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2146 bne L0E3F No, leave flag clear
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2147 com ,s Set flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2148 lda ,x+ Get next char
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2149 L0E3F leau <L0EA3,pc Point to table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2150 ldb #08 # of entries
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2151 cmpa #'a Is char lowercase?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2152 blo L0E4A No, no conversion needed
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2153 suba #$20 Bump down to uppercase
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2154 L0E4A cmpa ,u++ Same as first 1/2 of table entry?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2155 beq L0E68 Yes, skip ahead
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2156 decb No, decrement # entries left
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2157 bne L0E4A Keep checking all 8
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2158 puls b
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2159 cmpa #'D
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2160 beq L0E88
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2161 cmpa #'W
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2162 beq L0E80
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2163 cmpa #'L
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2164 beq L0E90
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2165 cmpa #'N
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2166 beq L0E9B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2167 L0E63 ldb #$16
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2168 lbra L02FA
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2169 L0E68 ldb -1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2170 tfr dp,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2171 tfr d,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2172 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2173 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2174 sta ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2175 L0E73 lda ,x+
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2176 cmpa #',
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2177 beq L0E33
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2178 cmpa #$20 Space?
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2179 beq L0E2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2180 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2181 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2182 L0E80 bsr L0E21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2183 bcs L0E63
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2184 stb <u0037
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2185 bra L0E73
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2186 L0E88 bsr L0E21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2187 bcs L0E63
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2188 stb <u0036
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2189 bra L0E73
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2190 L0E90 tstb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2191 beq L0E97
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2192 dec <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2193 bra L0E73
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2194 L0E97 inc <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2195 bra L0E73
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2196 L0E9B inc <u0060
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2197 lda #$1F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2198 sta <u0037
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2199 bra L0E97
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2200
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2201 * Table: 2 byte entries
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2202 L0EA3 fcb $43,$5f
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2203 fcb $46,$59
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2204 fcb $4d,$5a
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2205 fcb $47,$5b
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2206 fcb $45,$5c
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2207 fcb $53,$5e
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2208 fcb $49,$5d
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2209 fcb $4f,$58
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2210
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2211 L0EB3 lbsr L12F7
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2212 bcs L0EBA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2213 stb <u003F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2214 L0EBA clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2215 std <u0044
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2216 ldb #$31
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2217 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2218 inc <u002C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2219 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2220 L0EC4 lbsr L1164
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2221 lbsr L15FB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2222 bra L0ECE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2223 L0ECC leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2224 L0ECE ldb -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2225 cmpb #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2226 beq L0ECC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2227 ldu <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2228 ldb <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2229 pshu b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2230 stu <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2231 sta <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2232 ldb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2233 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2234 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2235 L0EE3 bsr L0F0F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2236 bne L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2237 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2238 L0EE8 bsr L0F0F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2239 beq L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2240 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2241 L0EED bsr L0F0F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2242 bge L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2243 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2244 L0EF2 bsr L0F0F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2245 bgt L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2246 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2247 L0EF7 bsr L0F0F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2248 blt L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2249 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2250 L0EFC bsr L0F0F
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2251 ble L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2252 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2253 L0F01 inc <u0055
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2254 ldb #$10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2255 bsr L0F21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2256 lda <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2257 bne L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2258 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2259 L0F0C inc <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2260 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2261 L0F0F inc <u0055
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2262 ldb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2263 bsr L0F21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2264 lbsr L12F1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2265 bcc L0F1C
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2266 puls pc,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2267 L0F1C cmpd #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2268 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2269
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2270 L0F21 tst <u005F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2271 bne L0F26
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2272 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2273 L0F26 stb <u002B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2274 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2275
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2276 L0F29 ldb #$10
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2277 bsr L0F21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2278 lda <u0055
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2279 beq L0F42
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2280 lda <u0062
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2281 bne L0F3B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2282 dec <u0055
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2283 lda <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2284 beq L0F41
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2285 L0F3B lda <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2286 beq L0F0C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2287 dec <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2288 L0F41 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2289 L0F42 ldb #$1A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2290 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2291 clr <u0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2292 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2293 L0F4A pshs u,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2294 bsr L0FC3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2295 stx <u002D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2296 ldb <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2297 bgt L0F7D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2298 bcc L0F63
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2299 lda #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2300 ldu <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2301 lbsr L100B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2302 stx <u002D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2303 bcc L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2304 bra L0F9A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2305 L0F63 cmpa #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2306 bne L0F71
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2307 lda #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2308 ldu <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2309 sta $08,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2310 stu $09,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2311 bra L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2312 L0F71 cmpa #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2313 beq L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2314 ora #$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2315 sta $08,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2316 L0F79 ldb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2317 bra L0F9A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2318 L0F7D bcc L0F83
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2319 L0F7F ldb #$09
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2320 bra L0F9A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2321 L0F83 cmpa #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2322 beq L0F7F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2323 bita #$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2324 bne L0F79
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2325 cmpa #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2326 bne L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2327 ldd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2328 cmpd $09,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2329 beq L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2330 std $09,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2331 ldb #$0A
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2332 L0F9A orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2333 puls pc,u,y,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2334 L0F9E andcc #$FE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2335 puls pc,u,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2336 L0FA2 pshs u,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2337 bsr L0FC3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2338 ldb <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2339 bne L0FBB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2340 bcc L0FB7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2341 lda #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2342 ldu #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2343 bsr L100B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2344 bcs L0F9A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2345 bra L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2346 L0FB7 ldd $09,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2347 bra L0F9E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2348 L0FBB lda $08,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2349 cmpa #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2350 bne L0FB7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2351 bra L0F7F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2352 L0FC3 bsr L0FFA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2353 ldx ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2354 bne L0FCD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2355 leay ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2356 bra L0FF7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2357 L0FCD pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2358 ldy <u0016
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2359 ldb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2360 L0FD4 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2361 beq L0FE5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2362 cmpa ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2363 bne L0FE9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2364 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2365 bne L0FD4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2366 L0FDF puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2367 lda $08,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2368 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2369 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2370 L0FE5 cmpa ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2371 beq L0FDF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2372 L0FE9 puls y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2373 bhi L0FF3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2374 ldx $0B,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2375 bne L0FCD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2376 bra L0FF7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2377 L0FF3 ldx $0D,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2378 bne L0FCD
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2379 L0FF7 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2380 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2381 L0FFA ldx <u0016
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2382 ldb ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2383 ldx <u0010
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2384 subb #$41
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2385 cmpb #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2386 bcs L1008
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2387 subb #$06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2388 L1008 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2389 abx
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2390 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2391 L100B ldx <u001D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2392 pshs x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2393 leax $0F,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2394 cmpx <u0012
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2395 bcs L1023
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2396 ldb #$0B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2397 L1017 clr <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2398 lda #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2399 sta <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2400 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2401 lbra L15E9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2402 L1023 stx <u001D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2403 sty ,--s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2404 bne L1032
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2405 leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2406 bsr L0FFA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2407 leay -$0B,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2408 bra L1040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2409 L1032 ldx <u0016
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2410 L1034 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2411 cmpa ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2412 beq L1034
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2413 puls y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2414 bcs L1040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2415 leay $02,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2416 L1040 ldx $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2417 stx $0B,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2418 ldy <u0016
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2419 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2420 L1049 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2421 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2422 bne L1049
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2423 puls x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2424 sta $08,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2425 stu $09,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2426 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2427 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2428 L1057 bsr L1065
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2429 bra L105D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2430 bsr L106B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2431 L105D pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2432 lda #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2433 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2434 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2435 L1065 exg a,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2436 bsr L106B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2437 tfr a,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2438 L106B pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2439 andb #$F0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2440 lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2441 lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2442 lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2443 lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2444 bsr L1079
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2445 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2446 andb #$0F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2447 L1079 cmpb #$09
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2448 bls L107F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2449 addb #$07
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2450 L107F addb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2451 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2452 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2453 * Take number in D and convert to 5 digit ASCII string (stored at X)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2454 L1084 pshs u,y,b
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2455 leau >L10AA,pc Point to powers of 10 table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2456 ldy #$0005 5 entries (1-10000)
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2457 L108E clr ,s Clear flag
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2458 L1090 subd ,u Repeated subtract
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2459 blo L1098
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2460 inc ,s Set flag to 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2461 bra L1090
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2462 L1098 addd ,u++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2463 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2464 ldb $01,s
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2465 addb #$30 Make into ASCII #
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2466 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2467 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2468 leay -$01,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2469 bne L108E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2470 puls pc,u,y,b
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2471 * Subtraction table for ASCII conversion
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2472 L10AA fdb 10000
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2473 fdb 1000
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2474 fdb 100
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2475 fdb 10
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2476 fdb 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2477 L10B4 lbsr L1164
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2478 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2479 cmpa #$25
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2480 beq L111D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2481 cmpa #$24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2482 beq L10C5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2483 leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2484 bra L10F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2485 L10C5 leas -$04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2486 bsr L1134
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2487 L10C9 bsr L113B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2488 bcc L10DD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2489 cmpb #$61
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2490 bcs L10D3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2491 subb #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2492 L10D3 cmpb #$41
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2493 bcs L114D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2494 cmpb #$46
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2495 bhi L114D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2496 subb #$37
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2497 L10DD stb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2498 ldd $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2499 bita #$F0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2500 bne L1160
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2501 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2502 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2503 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2504 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2505 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2506 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2507 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2508 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2509 addb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2510 adca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2511 std $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2512 inc $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2513 bra L10C9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2514 L10F7 leas -$04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2515 bsr L1134
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2516 L10FB bsr L113B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2517 bcs L114D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2518 stb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2519 ldd $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2520 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2521 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2522 std $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2523 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2524 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2525 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2526 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2527 bcs L1160
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2528 addd $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2529 bcs L1160
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2530 addb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2531 adca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2532 bcs L1160
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2533 std $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2534 inc $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2535 bra L10FB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2536 L111D leas -$04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2537 bsr L1134
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2538 L1121 ldb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2539 subb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2540 bcs L114D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2541 lsrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2542 bne L114D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2543 rol $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2544 rol $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2545 bcs L1160
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2546 inc $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2547 bra L1121
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2548 L1134 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2549 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2550 std $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2551 std $04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2552 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2553 L113B ldb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2554 cmpb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2555 bcs L1145
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2556 cmpb #$39
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2557 bls L1148
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2558 L1145 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2559 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2560 L1148 subb #$30
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2561 andcc #$FE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2562 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2563 L114D leax -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2564 tst $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2565 beq L1159
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2566 ldd $02,s
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2567 andcc #$FE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2568 bra L115D
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2569 L1159 orcc #$04
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2570 L115B orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2571 L115D leas $04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2572 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2573 L1160 andcc #$FB
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2574 bra L115B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2575
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2576 * Find next text field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2577 * Entry: X=Ptr to current location in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2578 * Exit: X=Ptr to start of next field in source line
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2579 * A=First char in new field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2580 L1164 lda ,x+ Get char.
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2581 cmpa #$20 Space?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2582 beq L1164 Yes, eat it
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2583 leax -$01,x Found next field; point to it & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2584 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2585
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2586 L116D pshs x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2587 lda $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2588 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2589 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2590 lda $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2591 ldb $05,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2592 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2593 addb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2594 stb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2595 lda $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2596 ldb $04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2597 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2598 addb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2599 stb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2600 ldd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2601 ldx #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2602 leas $06,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2603 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2604 L118E pshs y,x,b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2605 ldd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2606 bne L1198
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2607 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2608 bra L11B8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2609 L1198 ldd #$0010
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2610 stb $04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2611 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2612 L119E lsl $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2613 rol $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2614 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2615 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2616 subd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2617 bmi L11AC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2618 inc $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2619 bra L11AE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2620 L11AC addd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2621 L11AE dec $04,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2622 bne L119E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2623 tfr d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2624 ldd $02,s
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2625 andcc #$FE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2626 L11B8 leas $06,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2627 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2628 L11BB sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2629 L11BD lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2630 bne L11BB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2631 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2632
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2633 L11C2 pshs u,y Preserve regs
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2634 leau ,s Point U to copy of Y on stack
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2635 bsr L1164 Parse for next field
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2636 bsr L11D0 Check for special chars
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2637 andcc #$FE Error flag off
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2638 puls pc,u,y Restore regs & return
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2639
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2640 L11CE leax 1,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2641 L11D0 bsr L1211
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2642 pshs d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2643 L11D4 lda ,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2644 cmpa #'-
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2645 bne L11E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2646 bsr L120F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2647 nega
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2648 negb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2649 sbca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2650 bra L11E8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2651 L11E2 cmpa #$2B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2652 bne L11EE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2653 bsr L120F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2654 L11E8 addd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2655 std ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2656 bra L11D4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2657 L11EE tsta
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2658 beq L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2659 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2660 beq L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2661 cmpa #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2662 beq L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2663 cmpa #$2C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2664 beq L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2665 cmpa #$29
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2666 beq L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2667 cmpa #$5D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2668 beq L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2669 L1205 ldb #$06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2670 L1207 leas ,u
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2671 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2672 puls pc,u,y
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2673 L120D puls pc,d
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2674 L120F leax 1,x
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2675
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2676 L1211 bsr L123F
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2677 pshs d
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2678
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2679 L1215 lda ,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2680 cmpa #'/
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2681 bne L122A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2682 bsr L123D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2683 pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2684 ldx $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2685 lbsr L118E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2686 bcc L1237
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2687 ldb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2688 bra L1207
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2689 L122A cmpa #'*
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2690 bne L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2691 bsr L123D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2692 pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2693 ldx $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2694 lbsr L116D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2695 L1237 puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2696 std ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2697 bra L1215
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2698 L123D leax $01,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2699
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2700 L123F bsr L126D
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2701 pshs d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2702 L1243 lda ,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2703 cmpa #'& Logical AND?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2704 bne L1251 No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2705 bsr L126B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2706 andb $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2707 anda ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2708 bra L1267
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2709 L1251 cmpa #'! Logical OR?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2710 bne L125D No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2711 bsr L126B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2712 orb $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2713 ora ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2714 bra L1267
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2715 L125D cmpa #'? ???
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2716 bne L120D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2717 bsr L126B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2718 eorb $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2719 eora ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2720 L1267 std ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2721 bra L1243
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2722 L126B leax 1,x Bump src code ptr up by 1
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2723 L126D lda ,x Get char from source code
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2724 cmpa #'^ Is it a NOT?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2725 bne L1279 No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2726 bsr L1284
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2727 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2728 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2729 bra L1283
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2730 L1279 cmpa #'- Is it negative?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2731 bne L1288 No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2732 bsr L1284
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2733 nega
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2734 negb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2735 sbca #$00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2736 L1283 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2737 L1284 leax 1,x
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2738 L1286 lda ,x Get character from source code
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2739 L1288 cmpa #'( Math grouping start symbol?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2740 bne L12A2 No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2741 lbsr L11CE
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2742 pshs d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2743 lda ,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2744 cmpa #') Math grouping end symbol?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2745 puls d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2746 beq L12B6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2747 ldb <u0007
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2748 bra L129D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2749 L129D leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2750 L129F lbra L1207
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2751 L12A2 cmpa #'* Multiply?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2752 bne L12AA No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2753 ldd <u0040
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2754 bra L12B6
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2755 L12AA tst <u005A If some flag is set, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2756 bne L12B9
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2757 cmpa #'. Period?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2758 bne L12B9 No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2759 ldd <u0042
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2760 inc <u002C
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2761 L12B6 leax 1,x Bump src code ptr up & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2762 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2763 L12B9 cmpa #$27 Tilde (') (eorr)?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2764 bne L12C5 No, check next
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2765 ldd ,x++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2766 cmpb #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2767 beq L12D6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2768 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2769 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2770 L12C5 cmpa #'" Quotes?
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2771 bne L12D9 No, check next
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2772 leax 1,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2773 ldd ,x++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2774 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2775 beq L12D6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2776 cmpb #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2777 beq L12D6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2778 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2779 L12D6 lbra L1205
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2780 L12D9 lbsr L10B4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2781 bcc L12EE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2782 beq L12E4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2783 ldb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2784 bra L129F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2785 L12E4 lbsr L0368
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2786 bcs L12D6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2787 lbsr L0FA2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2788 bcs L129F
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2789 L12EE andcc #$FE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2790 rts
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2791 * Called by index mode handler
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2792 L12F1 lbsr L11C2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2793 bcs L1304
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2794 L12F6 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2795 L12F7 lbsr L11C2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2796 bcs L1304
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2797 tsta
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2798 beq L12F6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2799 inca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2800 beq L12F6
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2801 ldb #$0E Result >255 error
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2802 L1304 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2803 ldd #$FFFF
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2804 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2805 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2806 L130D bsr L134D
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2807 pshs x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2808 ldx <u001B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2809 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2810 stx <u001B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2811 cmpx <u0010
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2812 bcs L1321
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2813 bsr L1323
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2814 ldx <u000E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2815 stx <u001B
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2816 L1321 puls pc,x,d
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2817 L1323 pshs y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2818 lda <u0058
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2819 beq L1340
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2820 lda <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2821 beq L1340
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2822 ldd <u001B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2823 subd <u000E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2824 beq L1340
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2825 tfr d,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2826 ldx <u000E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2827 lda <u0019
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2828 beq L1340
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2829 os9 I$Write
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2830 bcs L1342
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2831 L1340 puls pc,y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2832 L1342 os9 F$PErr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2833 ldb #$12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2834 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2835 lbra L15A2
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2836 L134D pshs u,y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2837 leax ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2838 ldy #$0001
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2839 tfr dp,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2840 ldb #$51
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2841 tfr d,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2842 os9 F$CRC
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2843 puls pc,u,y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2844 L1360 ldd #$FFFF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2845 std <u0051
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2846 stb <u0053
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2847 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2848 L1368 lda <u0057
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2849 beq L139A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2850 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2851 bmi L139A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2852 L1370 lda <u0035
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2853 bne L137B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2854 pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2855 lbsr L1408
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2856 puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2857 L137B bsr L138A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2858 lda <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2859 beq L1387
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2860 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2861 bmi L1387
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2862 dec <u0035
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2863 L1387 ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2864 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2865 L138A lda <u0057
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2866 beq L1392
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2867 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2868 bpl L139A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2869 L1392 lda <u005C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2870 beq L1387
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2871 lda <u0021
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2872 beq L1387
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2873 L139A lda <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2874 beq L1387
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2875 pshs y,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2876 bsr L13B8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2877 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2878 ldb <u0037
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2879 ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2880 leax d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2881 bsr L13B8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2882 ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2883 ldy #$0085
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2884 lda <u001A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2885 os9 I$WritLn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2886 puls pc,y,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2887 L13B8 lda #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2888 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2889 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2890 L13BD leas -$06,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2891 pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2892 leax $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2893 os9 F$Time
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2894 puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2895 bcs L13F0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2896 lda $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2897 bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2898 ldb #$2F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2899 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2900 lda $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2901 bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2902 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2903 lda ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2904 * 1900-2155 fix
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2905 * ++START++
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2906 cmpa #100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2907 blo L1900
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2908 suba #100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2909 cmpa #100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2910 blo L2000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2911 L2100 suba #100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2912 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2913 lda #21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2914 bra PrtCty
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2915 L2000 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2916 lda #20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2917 bra PrtCty
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2918 L1900 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2919 lda #19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2920 PrtCty bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2921 puls a
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2922 * ++END++
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2923 bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2924 bsr L13F2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2925 lda $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2926 bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2927 ldb #$3A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2928 stb ,x+
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2929 lda $04,s
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2930 bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2931 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2932 lda $05,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2933 bsr L13F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2934 L13F0 leas $06,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2935 L13F2 lda #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2936 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2937 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2938 L13F7 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2939 ldb #$2F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2940 L13FB incb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2941 suba #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2942 bcc L13FB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2943 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2944 adda #$3A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2945 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2946 puls pc,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2947 L1408 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2948 bmi L1476
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2949 lda <u0059
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2950 beq L1414
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2951 bsr L147D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2952 bra L141A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2953 L1414 ldb <u0035
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2954 addb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2955 bsr L1471
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2956 L141A ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2957 pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2958 ldx <u0002
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2959 stx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2960 ldb <u0036
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2961 subb #$04
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2962 stb <u0035
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2963 lbsr L01E5
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2964 leay <L14A5,pc Point to 'Microware OS-9 Assembler' etc.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2965 lbsr L11BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2966 lbsr L13BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2967 ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2968 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2969 ldb <u0037
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2970 subb #$06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2971 leax d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2972 ldd <u003A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2973 lbsr L1084
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2974 inc <u003B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2975 bne L1447
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2976 inc <u003A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2977 L1447 leax -$08,x
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
2978 leay <L149F,pc Point to 'Page'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2979 lbsr L11BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2980 leax $03,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2981 lbsr L1370
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2982 ldy <u000A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2983 lbsr L11BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2984 bsr L13F2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2985 lda #$2D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2986 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2987 bsr L13F2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2988 ldy <u0008
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2989 lbsr L11BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2990 lbsr L1370
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2991 puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2992 stx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2993 ldb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2994 L1471 bsr L1479
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2995 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2996 bne L1471
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2997 L1476 ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2998 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2999 L1479 lda #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3000 bra L147F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3001 L147D lda #$0C
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3002 L147F pshs y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3003 lda <u003E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3004 beq L1498
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3005 lda <u0057
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3006 beq L1498
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3007 lda <u0056
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3008 bmi L1498
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3009 lda <u001A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3010 tfr s,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3011 ldy #$0001
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3012 os9 I$WritLn
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3013 L1498 puls pc,y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3014 L149A ldx <u0004
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3015 lbra L1370
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3016
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3017 L149F fcc 'Page '
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3018 fcb $00
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3019
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3020 L14A5 fcc 'Microware OS-9 Assembler RS Version 01.00.00 '
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3021 fcb $00
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3022 L14D6 fcc ' error(s)'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3023 fcb $00
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3024 L14E0 fcc ' warning(s)'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3025 fcb $00
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3026 L14EC fcc ' program bytes generated'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3027 fcb $00
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3028 L1505 fcc ' data bytes allocated'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3029 fcb $00
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3030 L151B fcc ' bytes used for symbols'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3031 fcb $00
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3032 L1533 fcc 'ASM:'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3033
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3034 L1537 pshs u,y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3035 lda <u005D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3036 beq L1549
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3037 leax <L1533,pc Point to 'ASM:'
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3038 ldy #$0004 Size of text
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3039 lda <u001A Get output path #
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3040 os9 I$Write Write it out
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3041 L1549 ldx <u0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3042 ldy #$0078
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3043 lda <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3044 L1551 os9 I$ReadLn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3045 bcc L156A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3046 cmpb #$D3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3047 bne L1560
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3048 bsr L156C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3049 bcc L1549
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3050 L155E bra L156A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3051 L1560 os9 F$PErr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3052 ldb #$11
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3053 lbsr L02FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3054 bsr L156C
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3055 L156A puls pc,u,y,x,d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3056 L156C ldu <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3057 L156E cmpu <u0006
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3058 bne L1576
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3059 orcc #$01
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3060 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3061 L1576 lda <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3062 pulu b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3063 stu <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3064 stb <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3065 os9 I$Close
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3066 bcc L1586
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3067 os9 F$PErr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3068 L1586 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3069 L1587 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3070 lda #$24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3071 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3072 ldd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3073 lbsr L1057
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3074 puls b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3075 L1594 lbsr L1084
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3076 tfr u,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3077 lbsr L11BD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3078 lbra L1368
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3079 L159F lbsr L1323
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3080 L15A2 lbsr L149A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3081 ldd <u0028
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3082 leau >L14D6,pc
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3083 bsr L1594
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3084 ldd <u0022
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3085 leau >L14E0,pc
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3086 bsr L1594
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3087 ldd <u0024
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3088 leau >L14EC,pc
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3089 bsr L1587
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3090 ldd <u0026
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3091 leau >L1505,pc
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3092 bsr L1587
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3093 ldd <u001D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3094 subd <u0010
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3095 leau >L151B,pc
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3096 bsr L1587
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3097 lda <u005E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3098 beq L15D5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3099 bsr L1612
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3100 L15D5 lda <u005D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3101 bne L15E9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3102 lda <u0059
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3103 beq L15E2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3104 lbsr L147D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3105 bra L15E9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3106 L15E2 ldb <u0035
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3107 addb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3108 lbsr L1471
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3109 L15E9 ldu <u001F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3110 L15EB cmpu <u0006
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3111 beq L15F7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3112 pulu a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3113 os9 I$Close
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3114 bra L15EB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3115 L15F7 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3116 os9 F$Exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3117 L15FB lda #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3118 os9 I$Open
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3119 ldb #$18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3120 lbcs L1017
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3121 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3122 L1607 lda <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3123 ldu #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3124 tfr u,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3125 os9 I$Seek
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3126 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3127 L1612 ldb <u0037
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3128 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3129 tfr d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3130 ldb #$10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3131 lbsr L118E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3132 stb <u003D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3133 stb <u003C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3134 lbsr L149A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3135 ldu <u0010
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3136 ldb #$1A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3137 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3138 L1629 ldy ,u++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3139 beq L1656
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3140 L162E pshs u,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3141 bra L1644
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3142 L1632 leau ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3143 tfr d,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3144 L1636 ldd $0B,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3145 bne L1632
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3146 bsr L165F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3147 ldy $0D,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3148 sty u000B,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3149 bne L1636
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3150 L1644 ldu ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3151 ldy u000B,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3152 bne L1636
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3153 leay ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3154 bsr L165F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3155 puls u,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3156 ldy $0D,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3157 bne L162E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3158 L1656 dec ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3159 bne L1629
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3160 leas $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3161 lbra L1370
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3162 L165F pshs u,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3163 ldd $09,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3164 lbsr L1057
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3165 lda $08,y Get offset into table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3166 leau <L1691,pc Point to table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3167 lda a,u Get table entry
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3168 ldb #$20 2nd char is a space
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3169 std ,x++ Store both of them
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3170 ldb #$08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3171 L1673 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3172 bne L1679
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3173 lda #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3174 L1679 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3175 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3176 bne L1673
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3177 dec <u003C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3178 beq L1688
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3179 lda #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3180 sta ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3181 bra L168F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3182 L1688 lbsr L1370
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3183 ldb <u003D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3184 stb <u003C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3185 L168F puls pc,u,y
537
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3186
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3187 * Single byte entry table
765ff88d3db7 6309 assembler from Curtis Boyle
boisy
parents: 203
diff changeset
3188 L1691 fcc 'ULSED'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3189 L1696 pshs y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3190 lbsr L15FB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3191 sta <u0018
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3192 L169D lbsr L1164
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3193 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3194 beq L16CF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3195 lbsr L0E33
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3196 lda <u0058
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3197 beq L16CF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3198 lda -$01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3199 anda #$5F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3200 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3201 beq L16C7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3202 ldb ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3203 cmpd #$4F3D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3204 bne L16C7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3205 ldb #$16
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3206 lda <u0019
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3207 bne L16D1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3208 leax $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3209 bsr L16D4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3210 bra L169D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3211 L16C7 lda <u0019
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3212 bne L16CF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3213 ldx ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3214 bsr L16D4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3215 L16CF puls pc,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3216 L16D1 lbra L1017
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3217 L16D4 lda #$06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3218 ldb #$2F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3219 os9 I$Create
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3220 ldb #$18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3221 bcs L16D1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3222 sta <u0019
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3223 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3224 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3225 eom equ *