Subversion Repositories pentevo

Rev

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"