Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1186 | savelij | 1 | cpu 78310 |
2 | page 0 |
||
3 | |||
4 | include "reg78310.inc" |
||
5 | |||
6 | saddr equ 0ff02h |
||
7 | saddr2 equ 0fe80h |
||
8 | sfr equ cric00 |
||
9 | psw equ pswl |
||
10 | |||
11 | mov c,#55h |
||
12 | mov r7,#0aah |
||
13 | |||
14 | mov a,r0 |
||
15 | mov a,c |
||
16 | mov h,c |
||
17 | mov h,r4 |
||
18 | mov r7,r5 |
||
19 | |||
20 | mov a,[de+] |
||
21 | mov a,[hl+] |
||
22 | mov a,[de-] |
||
23 | mov a,[hl-] |
||
24 | mov a,[de] |
||
25 | mov a,[hl] |
||
26 | mov a,[vp] |
||
27 | mov a,[up] |
||
28 | mov a,[rp6+] |
||
29 | mov a,[rp7+] |
||
30 | mov a,[rp6-] |
||
31 | mov a,[rp7-] |
||
32 | mov a,[rp6] |
||
33 | mov a,[rp7] |
||
34 | mov a,[rp4] |
||
35 | mov a,[rp5] |
||
36 | mov a,[de+a] |
||
37 | mov a,[hl+a] |
||
38 | mov a,[de+b] |
||
39 | mov a,[hl+b] |
||
40 | mov a,[vp+de] |
||
41 | mov a,[vp+hl] |
||
42 | mov a,[de+17] |
||
43 | mov a,[sp-2] |
||
44 | mov a,[hl+55h+2] |
||
45 | mov a,[up-7] |
||
46 | mov a,[vp+13] |
||
47 | mov a,1234h[de] |
||
48 | mov a,2345h[a] |
||
49 | mov a,3456h[hl] |
||
50 | mov a,4567h[b] |
||
51 | mov r1,1234h |
||
52 | mov r1,saddr2 |
||
53 | mov r1,pswl |
||
54 | mov a,pswh |
||
55 | mov a,[saddr] |
||
56 | mov saddr,#57h |
||
57 | mov saddr,r1 |
||
58 | mov saddr,saddr2 |
||
59 | mov pswl,#55h |
||
60 | mov pswh,a |
||
61 | mov [hl],a |
||
62 | mov 1234[hl],a |
||
63 | mov 1234h,r1 |
||
64 | mov [saddr],a |
||
65 | |||
66 | ; note you do not need to explicitly use MOVW, as long as the operand |
||
67 | ; size can be deduced from the arguments |
||
68 | |||
69 | mov ax,#1 |
||
70 | movw rp0,#1 |
||
71 | movw saddr,#9876h |
||
72 | movw psw,#0ffeeh |
||
73 | mov bc,hl |
||
74 | movw bc,hl |
||
75 | mov rp6,rp7 |
||
76 | movw rp6,rp7 |
||
77 | mov ax,saddr |
||
78 | movw ax,saddr |
||
79 | mov saddr,rp0 |
||
80 | movw saddr,rp0 |
||
81 | movw saddr,saddr+2 |
||
82 | mov ax,psw |
||
83 | movw ax,psw |
||
84 | mov psw,ax |
||
85 | movw psw,ax |
||
86 | |||
87 | xch a,c |
||
88 | xch r3,r1 |
||
89 | xch b,c |
||
90 | xch b,h |
||
91 | xch r6,r2 |
||
92 | xch a,[de] |
||
93 | xch a,saddr |
||
94 | xch a,pswh |
||
95 | xch a,[saddr] |
||
96 | xch saddr,a |
||
97 | xch saddr,saddr2 |
||
98 | xch pswh,a |
||
99 | xch [de],a |
||
100 | xch [saddr],a |
||
101 | |||
102 | ; again, xchw only needed if op size unknown |
||
103 | |||
104 | xch ax,hl |
||
105 | xchw ax,hl |
||
106 | xch rp0,saddr |
||
107 | xchw rp0,saddr |
||
108 | xch rp0,psw |
||
109 | xchw rp0,psw |
||
110 | xch saddr,rp0 |
||
111 | xchw saddr,rp0 |
||
112 | xchw saddr,saddr2 |
||
113 | xch psw,rp0 |
||
114 | xchw psw,rp0 |
||
115 | |||
116 | irp op,add,sub,addc,subc,and,or,xor,cmp |
||
117 | op a,#67h |
||
118 | op saddr,#99 |
||
119 | op pswl,#'a' |
||
120 | op h,c |
||
121 | op c,b |
||
122 | op r1,saddr2 |
||
123 | op r1,pswh |
||
124 | op saddr2,saddr |
||
125 | op a,[de+5] |
||
126 | op 10[hl],a |
||
127 | |||
128 | endm |
||
129 | |||
130 | irp op,add,sub,cmp |
||
131 | op ax,#1234h |
||
132 | op hl,bc |
||
133 | op ax,saddr |
||
134 | op ax,psw |
||
135 | |||
136 | endm |
||
137 | |||
138 | irp opw,addw,subw,cmpw |
||
139 | opw ax,#1234h |
||
140 | opw saddr,#1234h |
||
141 | opw psw,#55aah |
||
142 | opw hl,bc |
||
143 | opw ax,saddr |
||
144 | opw ax,psw |
||
145 | opw saddr2,saddr2 |
||
146 | |||
147 | endm |
||
148 | |||
149 | mulu c |
||
150 | mulu r1 |
||
151 | divu x |
||
152 | divu r3 |
||
153 | mulu ax |
||
154 | muluw ax |
||
155 | divu hl |
||
156 | divux hl |
||
157 | |||
158 | inc c |
||
159 | inc saddr |
||
160 | dec b |
||
161 | dec saddr |
||
162 | inc vp |
||
163 | incw vp |
||
164 | incw saddr |
||
165 | dec hl |
||
166 | decw hl |
||
167 | decw saddr |
||
168 | |||
169 | ror c,1 |
||
170 | rol b,2 |
||
171 | rorc c,3 |
||
172 | rolc b,4 |
||
173 | shr c,5 |
||
174 | shl b,6 |
||
175 | shr ax,7 |
||
176 | shrw ax,7 |
||
177 | shl hl,1 |
||
178 | shlw hl,1 |
||
179 | |||
180 | rol4 [de] |
||
181 | ror4 [ax] |
||
182 | adj4 |
||
183 | |||
184 | mov1 cy,saddr.2 |
||
185 | mov1 cy,sfr.4 |
||
186 | mov1 cy,a.1 |
||
187 | mov1 cy,x.5 |
||
188 | mov1 cy,pswh.3 |
||
189 | mov1 cy,pswl.6 |
||
190 | mov1 saddr.2,cy |
||
191 | mov1 sfr.4,cy |
||
192 | mov1 a.1,cy |
||
193 | mov1 x.5,cy |
||
194 | mov1 pswh.3,cy |
||
195 | mov1 pswl.6,cy |
||
196 | |||
197 | irp op1,and1,or1 |
||
198 | op1 cy,saddr.2 |
||
199 | op1 cy,/saddr.2 |
||
200 | op1 cy,sfr.4 |
||
201 | op1 cy,/sfr.4 |
||
202 | op1 cy,a.1 |
||
203 | op1 cy,/a.1 |
||
204 | op1 cy,x.5 |
||
205 | op1 cy,/x.5 |
||
206 | op1 cy,pswh.3 |
||
207 | op1 cy,/pswh.3 |
||
208 | op1 cy,pswl.6 |
||
209 | op1 cy,/pswl.6 |
||
210 | |||
211 | endm |
||
212 | |||
213 | xor1 cy,saddr.2 |
||
214 | xor1 cy,sfr.4 |
||
215 | xor1 cy,a.1 |
||
216 | xor1 cy,x.5 |
||
217 | xor1 cy,pswh.3 |
||
218 | xor1 cy,pswl.6 |
||
219 | |||
220 | irp op1,set1,clr1,not1 |
||
221 | op1 cy |
||
222 | op1 saddr.2 |
||
223 | op1 sfr.4 |
||
224 | op1 a.1 |
||
225 | op1 x.5 |
||
226 | op1 pswh.3 |
||
227 | op1 pswl.6 |
||
228 | |||
229 | endm |
||
230 | |||
231 | call 6666h |
||
232 | call de |
||
233 | call [de] |
||
234 | callf 900h |
||
235 | callt [42h] |
||
236 | brk |
||
237 | ret |
||
238 | reti |
||
239 | |||
240 | push rp0,rp2,rp4 |
||
241 | push psw |
||
242 | pushu ax,hl |
||
243 | pop rp0,rp2,rp4 |
||
244 | pop psw |
||
245 | popu ax,hl |
||
246 | |||
247 | mov sp,#8000h |
||
248 | movw sp,#8000h |
||
249 | mov sp,ax |
||
250 | movw sp,ax |
||
251 | mov ax,sp |
||
252 | movw ax,sp |
||
253 | inc sp |
||
254 | incw sp |
||
255 | dec sp |
||
256 | decw sp |
||
257 | |||
258 | br !pc+10 |
||
259 | br 8000h |
||
260 | br bc |
||
261 | br [hl] |
||
262 | br pc+10 |
||
263 | br pc-150 |
||
264 | |||
265 | irp op,bc,bl,bnc,bnl,bz,be,bnz,bne,bv,bpe,bnv,bpo,bn,bp |
||
266 | op pc+5 |
||
267 | endm |
||
268 | irp op,bgt,bge,blt,ble,bh,bnh |
||
269 | op pc+5 |
||
270 | endm |
||
271 | |||
272 | bt saddr.1,pc+5 |
||
273 | bt sfr.2,pc+5 |
||
274 | bt a.3,pc+5 |
||
275 | bt x.4,pc+5 |
||
276 | bt pswh.5,pc+5 |
||
277 | bt pswl.6,pc+5 |
||
278 | |||
279 | bf saddr.1,pc+5 |
||
280 | bf sfr.2,pc+5 |
||
281 | bf a.3,pc+5 |
||
282 | bf x.4,pc+5 |
||
283 | bf pswh.5,pc+5 |
||
284 | bf pswl.6,pc+5 |
||
285 | |||
286 | btclr saddr.1,pc+5 |
||
287 | btclr sfr.2,pc+5 |
||
288 | btclr a.3,pc+5 |
||
289 | btclr x.4,pc+5 |
||
290 | btclr pswh.5,pc+5 |
||
291 | btclr pswl.6,pc+5 |
||
292 | |||
293 | bfset saddr.1,pc+5 |
||
294 | bfset sfr.2,pc+5 |
||
295 | bfset a.3,pc+5 |
||
296 | bfset x.4,pc+5 |
||
297 | bfset pswh.5,pc+5 |
||
298 | bfset pswl.6,pc+5 |
||
299 | |||
300 | dbnz b,pc+5 |
||
301 | dbnz c,pc+5 |
||
302 | dbnz saddr,pc+5 |
||
303 | |||
304 | brkcs rb4 |
||
305 | retcs 8001h |
||
306 | |||
307 | irp instr,movm,xchm,cmpme,cmpmne,cmpmc,cmpmnc |
||
308 | instr [de+],a |
||
309 | instr [de-],a |
||
310 | endm |
||
311 | |||
312 | irp instr,movbk,xchbk,cmpbke,cmpbke,cmpbkne,cmpbkc,cmpbknc |
||
313 | instr [de+],[hl+] |
||
314 | instr [de-],[hl-] |
||
315 | endm |
||
316 | |||
317 | mov stbc,#34h |
||
318 | mov wdm,#0cbh |
||
319 | |||
320 | swrs |
||
321 | sel rb5 |
||
322 | sel rb7,alt |
||
323 | nop |
||
324 | ei |
||
325 | di |
||
326 | |||
327 | ; ---------------------------------------------------------------------- |
||
328 | ; alternative register bank: A/X and B/C map to R4..R7 instead of R0..R3 |
||
329 | |||
330 | assume rss:1 |
||
331 | |||
332 | mov a,[de+] ; just like with RSS=0 |
||
333 | mov a,c ; codes in R6 instead of R2 |
||
334 | mov r5,1234h ; R5 is A with RSS=1 |
||
335 | |||
336 | mov ax,#1 ; codes in RP2 instead of RP0 |
||
337 | mov rp2,saddr ; only allowed with A which is RP2 |
||
338 | |||
339 | ;----------------------------------------------------- |
||
340 | ; standard Intel/MASM-style pseudo instructions |
||
341 | |||
342 | include "../t_dx/t_dn.inc" |
||
343 | include "../t_dx/t_db.inc" |
||
344 | include "../t_dx/t_dw.inc" |
||
345 | include "../t_dx/t_dd.inc" |
||
346 | include "../t_dx/t_dq.inc" |
||
347 | include "../t_dx/t_dt.inc" |
||
348 | include "../t_dx/t_do.inc" |