Subversion Repositories pentevo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1186 savelij 1
        cpu     ibm5100
2
        page    0
3
 
4
dest    reg     r5
5
mask    equ     r12
6
src     reg     r9
7
ptr     equ     r13
8
 
9
dev1    port    x'a'
10
dev2    port    b'1110'
11
 
12
var1    equ     x'aa'
13
var2    equ     x'ac'
14
 
15
        ; basic jump instructions
16
 
17
        jle     dest,mask
18
        jlo     dest,mask
19
        jeq     dest,mask
20
        jno     r1
21
        jall    dest,mask
22
        jallm   dest,mask
23
        jnom    dest,mask
24
        jham    dest,mask
25
        jhi     dest,mask
26
        jhe     dest,mask
27
        jhl     dest,mask
28
        jsb     r1
29
        jsn     r5,r12
30
        jsnm    dest,mask
31
        jsm     dest,mask
32
        jhsnm   dest,mask
33
 
34
        ; basic arithmetic
35
 
36
        mvm2    dest, src
37
        mvm1    dest, src
38
        mvp1    dest, src
39
        mvp2    dest, src
40
        move    dest, src
41
        and     dest, src
42
        or      dest, src
43
        orb     dest, src
44
        xor     dest, src
45
        add     dest, src
46
        sub     dest, src
47
        adds1   dest, src
48
        adds2   dest, src
49
        htl     dest, src
50
        lth     dest, src
51
        getr    dev1, dest
52
        geta    dev2, dest
53
 
54
        ; basic shift & rotate
55
 
56
        shftr   dest
57
        rotr    dest
58
        srr3    dest
59
        srr4    dest
60
 
61
        ; direct load/store
62
 
63
        ldhd    dest,var1
64
        expect  1351
65
        ldhd    dest,var1+1
66
        endexpect
67
        sthd    src,var2
68
        expect  1351
69
        sthd    src,var2-1
70
        endexpect
71
 
72
        ; indirect load/store
73
 
74
        ldhi    dest,ptr
75
        ldhi    dest,ptr,0
76
        ldhi    dest,ptr,1
77
        ldhi    dest,ptr,2
78
        ldhi    dest,ptr,3
79
        ldhi    dest,ptr,4
80
        expect  1320
81
        ldhi    dest,ptr,5
82
        endexpect
83
        ldhi    dest,ptr,-1
84
        ldhi    dest,ptr,-2
85
        ldhi    dest,ptr,-3
86
        ldhi    dest,ptr,-4
87
        expect  1315
88
        ldhi    dest,ptr,-5
89
        endexpect
90
 
91
        sthi    dest,ptr
92
        sthi    dest,ptr,0
93
        sthi    dest,ptr,1
94
        sthi    dest,ptr,2
95
        sthi    dest,ptr,3
96
        sthi    dest,ptr,4
97
        expect  1320
98
        sthi    dest,ptr,5
99
        endexpect
100
        sthi    dest,ptr,-1
101
        sthi    dest,ptr,-2
102
        sthi    dest,ptr,-3
103
        sthi    dest,ptr,-4
104
        expect  1315
105
        sthi    dest,ptr,-5
106
        endexpect
107
 
108
        ldbi    dest,ptr
109
        ldbi    dest,ptr,0
110
        ldbi    dest,ptr,1
111
        ldbi    dest,ptr,2
112
        ldbi    dest,ptr,3
113
        ldbi    dest,ptr,4
114
        expect  1320
115
        ldbi    dest,ptr,5
116
        endexpect
117
        ldbi    dest,ptr,-1
118
        ldbi    dest,ptr,-2
119
        ldbi    dest,ptr,-3
120
        ldbi    dest,ptr,-4
121
        expect  1315
122
        ldbi    dest,ptr,-5
123
        endexpect
124
 
125
        stbi    dest,ptr
126
        stbi    dest,ptr,0
127
        stbi    dest,ptr,1
128
        stbi    dest,ptr,2
129
        stbi    dest,ptr,3
130
        stbi    dest,ptr,4
131
        expect  1320
132
        stbi    dest,ptr,5
133
        endexpect
134
        stbi    dest,ptr,-1
135
        stbi    dest,ptr,-2
136
        stbi    dest,ptr,-3
137
        stbi    dest,ptr,-4
138
        expect  1315
139
        stbi    dest,ptr,-5
140
        endexpect
141
 
142
        ; immediate argument
143
 
144
        emit    dest,#x'aa'
145
        emit    dest,x'aa'
146
        clri    dest,#x'aa'
147
        clri    dest,x'aa'
148
        seti    dest,#x'aa'
149
        seti    dest,x'aa'
150
 
151
        addi    dest,#x'aa'
152
        addi    dest,x'aa'
153
        addi    dest,#1
154
        addi    dest,1
155
        addi    dest,#256
156
        addi    dest,256
157
        expect  1315
158
        addi    dest,#0
159
        endexpect
160
        expect  1320
161
        addi    dest,#257
162
        endexpect
163
 
164
        subi    dest,#x'aa'
165
        subi    dest,x'aa'
166
        subi    dest,#1
167
        subi    dest,1
168
        subi    dest,#256
169
        subi    dest,256
170
        expect  1315
171
        subi    dest,#0
172
        endexpect
173
        expect  1320
174
        subi    dest,#257
175
        endexpect
176
 
177
        ; I/O
178
 
179
        ctl     dev2,#x'cf'
180
        ctl     dev2,b'11001111'
181
 
182
        putb    dev2,ptr
183
        putb    dev2,ptr,0
184
        putb    dev2,ptr,1
185
        putb    dev2,ptr,2
186
        putb    dev2,ptr,3
187
        putb    dev2,ptr,4
188
        expect  1320
189
        putb    dev2,ptr,5
190
        endexpect
191
        putb    dev2,ptr,-1
192
        putb    dev2,ptr,-2
193
        putb    dev2,ptr,-3
194
        putb    dev2,ptr,-4
195
        expect  1315
196
        putb    dev2,ptr,-5
197
        endexpect
198
 
199
        getb    dev1,ptr
200
        getb    dev1,ptr,0
201
        getb    dev1,ptr,1
202
        getb    dev1,ptr,2
203
        getb    dev1,ptr,3
204
        getb    dev1,ptr,4
205
        expect  1320
206
        getb    dev1,ptr,5
207
        endexpect
208
        getb    dev1,ptr,-1
209
        getb    dev1,ptr,-2
210
        getb    dev1,ptr,-3
211
        getb    dev1,ptr,-4
212
        expect  1315
213
        getb    dev1,ptr,-5
214
        endexpect
215
 
216
        ; the same instructions in alphabetical order
217
 
218
        add     r13,r14         ; 0DE8
219
        addi    r13,x'55'       ; AD54 (!)
220
        adds1   r13,r14         ; 0DEA
221
        adds2   r13,r14         ; 0DEB
222
        and     r13,r14         ; 0DE5
223
        clri    r13,x'55'       ; 9D55
224
        ctl     13,#x'55'       ; 1D55
225
        emit    r13,#x'55'      ; 8D55
226
        geta    13,r14          ; 0DEF
227
        getb    13,r14          ; EDE8
228
        getr    13,r14          ; 0DEE
229
        getrb   13,r14          ; EDEF (not listed in IBM document)
230
        htl     r13,r14         ; 0DEC
231
        jall    r13,r14         ; CDE4
232
        jallm   r13,r14         ; CDE5
233
        jeq     r13,r14         ; CDE2
234
        jham    r13,r14         ; CDE7
235
        jhe     r13,r14         ; CDE9
236
        jhi     r13,r14         ; CDE8
237
        jhl     r13,r14         ; CDEA
238
        jhsnm   r13,r14         ; CDEF
239
        jle     r13,r14         ; CDE0
240
        jlo     r13,r14         ; CDE1
241
        jno     r13             ; CD03
242
        jnom    r13,r14         ; CDE6
243
        jsb     r13             ; CD0B
244
        jsm     r13,r14         ; CDEE
245
        jsn     r13,r14         ; CDEC
246
        jsnm    r13,r14         ; CDED
247
        ldbi    r13,r14         ; 6DE8
248
        ldhd    r13,x'aa'       ; 2D55
249
        ldhi    r13,r14         ; DDE8
250
        lth     r13,r14         ; 0DED
251
        move    r13,r14         ; 0DE4
252
        mvm1    r13,r14         ; 0DE1
253
        mvm2    r13,r14         ; 0DE0
254
        mvp1    r13,r14         ; 0DE2
255
        mvp2    r13,r14         ; 0DE3
256
        or      r13,r14         ; 0DE6
257
        orb     r13,r14         ; 0DE6
258
        putb    13,r14          ; 4DE8
259
        rotr    r13             ; E0DD
260
        seti    r13,x'55'       ; BD55
261
        shftr   r13             ; E0DC
262
        stbi    r13,r14         ; 7DE8
263
        sthd    r13,x'aa'       ; 3D55
264
        sthi    r13,r14         ; 5DE8
265
        sub     r13,r14         ; 0DE9
266
        subi    r13,x'55'       ; FD54 (!)
267
        xor     r13,r14         ; 0DE7
268
 
269
;-----------------------------------------------------
270
; standard Intel/MASM-style pseudo instructions
271
 
272
        include "../t_dx/t_dn.inc"
273
        include "../t_dx/t_db.inc"
274
        include "../t_dx/t_dw.inc"
275
        include "../t_dx/t_dd.inc"
276
        include "../t_dx/t_dq.inc"
277
        include "../t_dx/t_dt.inc"
278
        include "../t_dx/t_do.inc"