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" |