-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOP Subroutine.L68
More file actions
972 lines (968 loc) · 51.6 KB
/
OP Subroutine.L68
File metadata and controls
972 lines (968 loc) · 51.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
00001000 Starting Address
Assembler used: EASy68K Editor/Assembler v5.16.01
Created On: 12/2/2021 8:20:52 PM
00000000 1 *-----------------------------------------------------------
00000000 2 * Title :
00000000 3 * Written by :
00000000 4 * Date :
00000000 5 * Description:
00000000 6 *-----------------------------------------------------------
00000000 =0000000D 7 CR EQU $0D
00000000 =0000000A 8 LF EQU $0A
00000000 =0000001A 9 START_ADDR EQU $01A
00001000 10 ORG $1000
00001000 11 START: ; first instruction of program
00001000 12 *-------Code for Output------
00001000 43F9 00001798 13 LEA INPUT_MSG, A1
00001006 103C 000E 14 MOVE.B #14,D0
0000100A 4E4F 15 TRAP #15 *Displays message
0000100C 16
0000100C 17 *-------Code for Intput------
0000100C 2279 000017AE 18 MOVEA.L INPUT,A1
00001012 103C 0002 19 MOVE.B #2,D0
00001016 4E4F 20 TRAP #15
00001018 21
00001018 247C 0000001A 22 MOVEA.L #START_ADDR,A2
0000101E 1401 23 MOVE.B D1,D2
00001020 24 *Convert user input from str to hex
00001020 25 LOOP_CONV
00001020 B43C 0000 26 CMP.B #0,D2
00001024 6700 0026 27 BEQ CONV_DONE
00001028 28
00001028 1619 29 MOVE.B (A1)+,D3 *Move curr byte (8 bits) to D3
0000102A 5302 30 SUB.B #1,D2 *decrement counter
0000102C 31
0000102C B63C 0039 32 CMP.B #$39,D3
00001030 6F00 0012 33 BLE CONV_NUM
00001034 34
00001034 B63C 0041 35 CMP.B #$41,D3
00001038 6C00 0002 36 BGE CONV_LETTER
0000103C 37
0000103C 38 CONV_LETTER
0000103C 0403 0037 39 SUB.B #$37,D3
00001040 14C3 40 MOVE.B D3,(A2)+ *Store converted bits in A2
00001042 60DC 41 BRA LOOP_CONV
00001044 42
00001044 43 CONV_NUM
00001044 0403 0030 44 SUB.B #$30,D3
00001048 14C3 45 MOVE.B D3,(A2)+
0000104A 60D4 46 BRA LOOP_CONV
0000104C 47
0000104C 48 CONV_DONE
0000104C 247C 0000001A 49 MOVEA.L #START_ADDR,A2
00001052 4202 50 CLR.B D2
00001054 143C 0004 51 MOVE.B #4,D2
00001058 52 CONCAT_BITS
00001058 B43C 0000 53 CMP.B #0,D2
0000105C 6700 0010 54 BEQ START_OP
00001060 55
00001060 56 *Concatenate bits
00001060 181A 57 MOVE.B (A2)+,D4
00001062 E98C 58 LSL.L #4,D4 *(Source 1) Shift 4 bits
00001064 59
00001064 D81A 60 ADD.B (A2)+,D4 *(Source 1) Add next hex digit
00001066 61
00001066 E18B 62 LSL.L #8,D3 *clear 8 bits
00001068 D604 63 ADD.B D4,D3 *concat
0000106A 64
0000106A 5302 65 SUB.B #1,D2 *decrement counter
0000106C 60EA 66 BRA CONCAT_BITS
0000106E 67
0000106E 68
0000106E 69 * OP CODE SUBROUTINE
0000106E 70 START_OP
0000106E 71
0000106E 72 NOP
0000106E 383C 4E71 73 MOVE.W #$4E71,D4
00001072 B644 74 CMP.W D4,D3
00001074 6600 0012 75 BNE RTS
00001078 76 *Print instruction to output
00001078 43F9 000017D4 77 LEA PRNT_NOP,A1
0000107E 103C 000E 78 MOVE.B #14,D0
00001082 4E4F 79 TRAP #15
00001084 FFFF FFFF 80 SIMHALT
00001088 81 *RTS *Return to I/O subroutine to find next instruction
00001088 82 RTS
00001088 383C 4E75 83 MOVE.W #$4E75,D4
0000108C B644 84 CMP.W D4,D3
0000108E 6600 0012 85 BNE FIND_OP
00001092 86 *Print instruction
00001092 43F9 000017D8 87 LEA PRNT_RTS,A1
00001098 103C 000E 88 MOVE.B #14,D0
0000109C 4E4F 89 TRAP #15
0000109E FFFF FFFF 90 SIMHALT
000010A2 91 *RTS
000010A2 92
000010A2 93 FIND_OP *determine op code based on first 2 bits
000010A2 1C3C 000E 94 MOVE.B #14,D6
000010A6 3803 95 MOVE.W D3,D4
000010A8 EC6C 96 LSR.W D6,D4
000010AA 97
000010AA B83C 0000 98 CMP.B #%00,D4 *MOVE,MOVEA
000010AE 6700 001A 99 BEQ OP_00
000010B2 100
000010B2 B83C 0001 101 CMP.B #%01,D4 *MOVEQ, MOVEM, ADDQ, LEA, NOT, BGT/BLE/BEQ, JSR, BRA
000010B6 6700 0078 102 BEQ OP_01
000010BA 103
000010BA B83C 0002 104 CMP.B #%10,D4 *OR,SUB
000010BE 6700 02B6 105 BEQ OP_10
000010C2 106
000010C2 B83C 0003 107 CMP.B #%11,D4 *ADD,AND,LSL,LSR,ROL,ROR,ASL,ASR
000010C6 6700 0380 108 BEQ OP_11
000010CA 109
000010CA 110 OP_00 *Determine if MOVE or MOVEA op code
000010CA 111 *Isolate bits 6,7,8
000010CA 3803 112 MOVE.W D3,D4
000010CC EF4C 113 LSL.W #7,D4 *Remove first 7 bits
000010CE 1C3C 000D 114 MOVE.B #13,D6
000010D2 EC6C 115 LSR.W D6,D4 *Remove last 6 bits
000010D4 B87C 0001 116 CMP.W #%001,D4
000010D8 6700 0012 117 BEQ IS_MOVEA
000010DC 118 IS_MOVE
000010DC 119 *Print MOVE
000010DC 43F9 000017DC 120 LEA PRNT_MOVE,A1
000010E2 103C 000E 121 MOVE.B #14,D0
000010E6 4E4F 122 TRAP #15
000010E8 123
000010E8 6000 000E 124 BRA MOVE_SIZE
000010EC 125
000010EC 126 IS_MOVEA
000010EC 127 *Print MOVEA
000010EC 43F9 000017E1 128 LEA PRNT_MOVEA,A1
000010F2 103C 000E 129 MOVE.B #14,D0
000010F6 4E4F 130 TRAP #15
000010F8 131 MOVE_SIZE
000010F8 3803 132 MOVE.W D3,D4
000010FA 1C3C 000E 133 MOVE.B #14,D6
000010FE E54C 134 LSL.W #2,D4 *Remove first 2 bits
00001100 EC6C 135 LSR.W D6,D4 *Remove last 12 bits to find size code
00001102 136
00001102 B83C 0001 137 CMP.B #%01,D4
00001106 6700 0016 138 BEQ MOVE_B
0000110A 139
0000110A B83C 0003 140 CMP.B #%11,D4
0000110E 6700 0014 141 BEQ MOVE_W
00001112 142
00001112 B83C 0002 143 CMP.B #%10,D4
00001116 6700 0012 144 BEQ MOVE_L
0000111A 6000 066C 145 BRA INVALID_OP
0000111E 146 MOVE_B
0000111E 147 *Print .B (byte)
0000111E 4EB9 00001758 148 JSR PRINT_B
00001124 149 *Proceed to EA Subroutine
00001124 150 MOVE_W
00001124 151 *Print .W (word)
00001124 4EB9 00001768 152 JSR PRINT_W
0000112A 153 *Proceed to EA Subroutine
0000112A 154 MOVE_L
0000112A 155 *Print .L (long)
0000112A 4EB9 00001778 156 JSR PRINT_L
00001130 157
00001130 158 *Proceed to EA Subroutine
00001130 159
00001130 160 OP_01 *MOVEQ, MOVEM, ADDQ, LEA, NOT, BGT/BLE/BEQ, JSR, BRA
00001130 3803 161 MOVE.W D3,D4
00001132 1C3C 000C 162 MOVE.B #12,D6
00001136 EC6C 163 LSR.W D6,D4 *get first 4 bits
00001138 164
00001138 B83C 0007 165 CMP.B #%0111,D4 *MOVEQ
0000113C 6700 001A 166 BEQ OP_0111
00001140 B83C 0004 167 CMP.B #%0100,D4 *MOVEM, LEA, NOT, JSR
00001144 6700 0042 168 BEQ OP_0100
00001148 B83C 0005 169 CMP.B #%0101,D4 *ADDQ
0000114C 6700 0124 170 BEQ OP_0101
00001150 B83C 0006 171 CMP.B #%0110,D4 *Bcc, BRA
00001154 6700 0190 172 BEQ OP_0110
00001158 173
00001158 174 OP_0111 *MOVEQ
00001158 175 *Check bit 8 to validate
00001158 2803 176 MOVE.L D3,D4
0000115A EF4C 177 LSL.W #7,D4
0000115C 1C3C 000F 178 MOVE.B #15,D6
00001160 EC6C 179 LSR.W D6,D4
00001162 B83C 0000 180 CMP.B #%0,D4
00001166 6600 0620 181 BNE INVALID_OP
0000116A 182
0000116A 183 *Print MOVEQ
0000116A 43F9 000017ED 184 LEA PRNT_MOVEQ,A1
00001170 103C 000E 185 MOVE.B #14,D0
00001174 4E4F 186 TRAP #15
00001176 187
00001176 2803 188 MOVE.L D3,D4
00001178 E14C 189 LSL.W #8,D4
0000117A E04C 190 LSR.W #8,D4
0000117C 191 *Print data
0000117C 2204 192 MOVE.L D4,D1
0000117E 103C 0003 193 MOVE.B #3,D0
00001182 4E4F 194 TRAP #15
00001184 FFFF FFFF 195 SIMHALT
00001188 196 *Proceed to EA Subroutine
00001188 197
00001188 198 OP_0100 *MOVEM, LEA, NOT, JSR
00001188 2803 199 MOVE.L D3,D4
0000118A 1C3C 000B 200 MOVE.B #11,D6
0000118E EC6C 201 LSR.W D6,D4
00001190 B83C 0009 202 CMP.B #%01001,D4 *MOVEM or JSR
00001194 6700 0074 203 BEQ OP_01001
00001198 204
00001198 205 *Check if LEA
00001198 2803 206 MOVE.L D3,D4
0000119A EF4C 207 LSL.W #7,D4
0000119C 1C3C 000D 208 MOVE.B #13,D6
000011A0 EC6C 209 LSR.W D6,D4
000011A2 B83C 0007 210 CMP.B #%111,D4 *Check bits 8,7,6
000011A6 6600 0012 211 BNE IS_NOT
000011AA 212
000011AA 43F9 0000180E 213 LEA PRNT_LEA,A1
000011B0 103C 000E 214 MOVE.B #14,D0
000011B4 4E4F 215 TRAP #15
000011B6 FFFF FFFF 216 SIMHALT
000011BA 217 *Proceed to EA Subroutine
000011BA 218 IS_NOT
000011BA 2803 219 MOVE.L D3,D4
000011BC E04C 220 LSR.W #8,D4
000011BE B87C 0046 221 CMP.W #%01000110,D4
000011C2 6600 05C4 222 BNE INVALID_OP
000011C6 223
000011C6 43F9 00001807 224 LEA PRNT_NOT,A1
000011CC 103C 000E 225 MOVE.B #14,D0
000011D0 4E4F 226 TRAP #15
000011D2 227
000011D2 2803 228 MOVE.L D3,D4
000011D4 E14C 229 LSL.W #8,D4
000011D6 1C3C 000E 230 MOVE.B #14,D6
000011DA EC6C 231 LSR.W D6,D4
000011DC B83C 0000 232 CMP.B #%00,D4
000011E0 6700 0016 233 BEQ NOT_B
000011E4 B83C 0001 234 CMP.B #%01,D4
000011E8 6700 0014 235 BEQ NOT_W
000011EC B83C 0002 236 CMP.B #%10,D4
000011F0 6700 0012 237 BEQ NOT_L
000011F4 238
000011F4 6000 0592 239 BRA INVALID_OP
000011F8 240 NOT_B
000011F8 4EB9 00001758 241 JSR PRINT_B
000011FE 242 *Proceed to EA Subroutine
000011FE 243 NOT_W
000011FE 4EB9 00001768 244 JSR PRINT_W
00001204 245 *Proceed to EA Subroutine
00001204 246 NOT_L
00001204 4EB9 00001778 247 JSR PRINT_L
0000120A 248 *Proceed to EA Subroutine
0000120A 249 OP_01001
0000120A 2803 250 MOVE.L D3,D4
0000120C EC4C 251 LSR.W #6,D4
0000120E B87C 013A 252 CMP.W #%0100111010,D4 *Check if JSR
00001212 6600 0012 253 BNE IS_MOVEM
00001216 43F9 000017F3 254 LEA PRNT_JSR,A1
0000121C 103C 000E 255 MOVE.B #14,D0
00001220 4E4F 256 TRAP #15
00001222 FFFF FFFF 257 SIMHALT
00001226 258 *Proceed to EA Subroutine
00001226 259 IS_MOVEM
00001226 260 *Check bits 9,8,7 to validate
00001226 2803 261 MOVE.L D3,D4
00001228 ED4C 262 LSL.W #6,D4
0000122A 1C3C 000D 263 MOVE.B #13,D6
0000122E EC6C 264 LSR.W D6,D4
00001230 B83C 0001 265 CMP.B #%001,D4
00001234 6600 0552 266 BNE INVALID_OP
00001238 267
00001238 43F9 000017E7 268 LEA PRNT_MOVEM,A1
0000123E 103C 000E 269 MOVE.B #14,D0
00001242 4E4F 270 TRAP #15
00001244 271
00001244 2803 272 MOVE.L D3,D4
00001246 1C3C 0009 273 MOVE.B #9,D6
0000124A ED6C 274 LSL.W D6,D4
0000124C 1C3C 000F 275 MOVE.B #15,D6
00001250 EC6C 276 LSR.W D6,D4
00001252 277
00001252 B83C 0000 278 CMP.B #0,D4
00001256 6700 000E 279 BEQ MOVEM_W
0000125A B83C 0001 280 CMP.B #1,D4
0000125E 6700 000C 281 BEQ MOVEM_L
00001262 6000 0524 282 BRA INVALID_OP
00001266 283 MOVEM_W
00001266 4EB9 00001768 284 JSR PRINT_W
0000126C 285 *Proceed to EA Subroutine
0000126C 286 MOVEM_L
0000126C 4EB9 00001778 287 JSR PRINT_L
00001272 288 *Proceed to EA Subroutine
00001272 289 OP_0101 *ADDQ
00001272 290 *Check bit 8 to validate
00001272 2803 291 MOVE.L D3,D4
00001274 EF4C 292 LSL.W #7,D4
00001276 1C3C 000F 293 MOVE.B #15,D6
0000127A EC6C 294 LSR.W D6,D4
0000127C B83C 0000 295 CMP.B #%0,D4
00001280 6600 0506 296 BNE INVALID_OP
00001284 297
00001284 298 *Print ADDQ
00001284 43F9 00001812 299 LEA PRNT_ADDQ,A1
0000128A 103C 000E 300 MOVE.B #14,D0
0000128E 4E4F 301 TRAP #15
00001290 302
00001290 2803 303 MOVE.L D3,D4
00001292 E14C 304 LSL.W #8,D4 *Remove first 8 bits
00001294 1C3C 000E 305 MOVE.B #14,D6
00001298 EC6C 306 LSR.W D6,D4 *and last 6 bits to get size
0000129A 307
0000129A B83C 0000 308 CMP.B #%00,D4
0000129E 6700 0012 309 BEQ ADDQ_B
000012A2 B83C 0001 310 CMP.B #%01,D4
000012A6 6700 0014 311 BEQ ADDQ_W
000012AA B83C 0002 312 CMP.B #%10,D4
000012AE 6700 0016 313 BEQ ADDQ_L
000012B2 314
000012B2 315 ADDQ_B
000012B2 316 *Print .B
000012B2 4EB9 00001758 317 JSR PRINT_B
000012B8 6000 0016 318 BRA ADDQ_DATA
000012BC 319
000012BC 320 ADDQ_W
000012BC 321 *Print .W
000012BC 4EB9 00001768 322 JSR PRINT_W
000012C2 6000 000C 323 BRA ADDQ_DATA
000012C6 324
000012C6 325 ADDQ_L
000012C6 326 *Print .L
000012C6 4EB9 00001778 327 JSR PRINT_L
000012CC 6000 0002 328 BRA ADDQ_DATA
000012D0 329 ADDQ_DATA
000012D0 2803 330 MOVE.L D3,D4
000012D2 E94C 331 LSL.W #4,D4 *Remove first 4 bits
000012D4 1C3C 000D 332 MOVE.B #13,D6
000012D8 EC6C 333 LSR.W D6,D4
000012DA 334
000012DA 335 *Print data
000012DA 3204 336 MOVE.W D4,D1
000012DC 103C 0003 337 MOVE.B #3,D0
000012E0 4E4F 338 TRAP #15
000012E2 FFFF FFFF 339 SIMHALT
000012E6 340
000012E6 341 *Proceed to EA Subroutine
000012E6 342 OP_0110
000012E6 2803 343 MOVE.L D3,D4
000012E8 1C3C 000C 344 MOVE.B #12,D6
000012EC E94C 345 LSL.W #4,D4
000012EE EC6C 346 LSR.W D6,D4
000012F0 347
000012F0 B87C 0000 348 CMP.W #%0000,D4
000012F4 6700 001E 349 BEQ IS_BRA
000012F8 350
000012F8 B87C 000E 351 CMP.W #%1110,D4
000012FC 6700 0026 352 BEQ IS_BGT
00001300 353
00001300 B87C 000F 354 CMP.W #%1111,D4
00001304 6700 002E 355 BEQ IS_BLE
00001308 356
00001308 B87C 0007 357 CMP.W #%0111,D4
0000130C 6700 0036 358 BEQ IS_BEQ
00001310 359
00001310 6000 0476 360 BRA INVALID_OP
00001314 361 IS_BRA
00001314 43F9 00001803 362 LEA PRNT_BRA,A1
0000131A 103C 000E 363 MOVE.B #14,D0
0000131E 4E4F 364 TRAP #15
00001320 FFFF FFFF 365 SIMHALT
00001324 366
00001324 367 IS_BGT
00001324 43F9 000017F7 368 LEA PRNT_BGT,A1
0000132A 103C 000E 369 MOVE.B #14,D0
0000132E 4E4F 370 TRAP #15
00001330 FFFF FFFF 371 SIMHALT
00001334 372 IS_BLE
00001334 43F9 000017FB 373 LEA PRNT_BLE,A1
0000133A 103C 000E 374 MOVE.B #14,D0
0000133E 4E4F 375 TRAP #15
00001340 FFFF FFFF 376 SIMHALT
00001344 377 IS_BEQ
00001344 43F9 000017FF 378 LEA PRNT_BEQ,A1
0000134A 103C 000E 379 MOVE.B #14,D0
0000134E 4E4F 380 TRAP #15
00001350 FFFF FFFF 381 SIMHALT
00001354 382
00001354 383 DISP *8 bit displacement field
00001354 2803 384 MOVE.L D3,D4
00001356 E14C 385 LSL.W #8,D4
00001358 E04C 386 LSR.W #8,D4 *Holds displacement value
0000135A 387
0000135A B87C 0000 388 CMP.W #$00,D4
0000135E 6700 000E 389 BEQ DISP_16
00001362 B87C 00FF 390 CMP.W #$FF,D4
00001366 6700 000A 391 BEQ DISP_32
0000136A 392
0000136A 3A48 393 MOVEA.W A0,A5
0000136C 3C0D 394 MOVE.W A5,D6 *Holds next instruction address
0000136E 395
0000136E 396 DISP_16
0000136E 397
0000136E FFFF FFFF 398 SIMHALT
00001372 399 DISP_32
00001372 400
00001372 FFFF FFFF 401 SIMHALT
00001376 402 OP_10 *OR,SUB
00001376 2803 403 MOVE.L D3,D4
00001378 E54C 404 LSL.W #2,D4
0000137A 1C3C 000E 405 MOVE.B #14,D6
0000137E EC6C 406 LSR.W D6,D4
00001380 B83C 0000 407 CMP.B #%00,D4 *Check bits 13 and 12
00001384 6700 000E 408 BEQ IS_OR
00001388 409
00001388 B83C 0001 410 CMP.B #%01,D4
0000138C 6700 0062 411 BEQ IS_SUB
00001390 412
00001390 6000 03F6 413 BRA INVALID_OP
00001394 414 IS_OR
00001394 43F9 0000180B 415 LEA PRNT_OR,A1
0000139A 103C 000E 416 MOVE.B #14,D0
0000139E 4E4F 417 TRAP #15
000013A0 418
000013A0 2803 419 MOVE.L D3,D4
000013A2 EF4C 420 LSL.W #7,D4
000013A4 1C3C 000D 421 MOVE.B #13,D6
000013A8 EC6C 422 LSR.W D6,D4
000013AA 423
000013AA B83C 0000 424 CMP.B #%000,D4
000013AE 6700 002E 425 BEQ OR_B
000013B2 B83C 0001 426 CMP.B #%001,D4
000013B6 6700 002C 427 BEQ OR_W
000013BA B83C 0002 428 CMP.B #%010,D4
000013BE 6700 002A 429 BEQ OR_L
000013C2 430
000013C2 B83C 0004 431 CMP.B #%100,D4
000013C6 6700 0016 432 BEQ OR_B
000013CA B83C 0005 433 CMP.B #%101,D4
000013CE 6700 0014 434 BEQ OR_W
000013D2 B83C 0006 435 CMP.B #%110,D4
000013D6 6700 0012 436 BEQ OR_L
000013DA 437
000013DA 6000 03AC 438 BRA INVALID_OP
000013DE 439
000013DE 440 OR_B
000013DE 4EB9 00001758 441 JSR PRINT_B
000013E4 442 *Proceed to EA Subroutine
000013E4 443 OR_W
000013E4 4EB9 00001768 444 JSR PRINT_W
000013EA 445 *Proceed to EA Subroutine
000013EA 446 OR_L
000013EA 4EB9 00001778 447 JSR PRINT_L
000013F0 448 *Proceed to EA Subroutine
000013F0 449 IS_SUB
000013F0 43F9 00001824 450 LEA PRNT_SUB,A1
000013F6 103C 000E 451 MOVE.B #14,D0
000013FA 4E4F 452 TRAP #15
000013FC 453
000013FC 2803 454 MOVE.L D3,D4
000013FE EF4C 455 LSL.W #7,D4
00001400 1C3C 000D 456 MOVE.B #13,D6
00001404 EC6C 457 LSR.W D6,D4
00001406 458
00001406 B83C 0000 459 CMP.B #%000,D4
0000140A 6700 002A 460 BEQ SUB_B
0000140E B83C 0001 461 CMP.B #%001,D4
00001412 6700 0028 462 BEQ SUB_W
00001416 B83C 0002 463 CMP.B #%010,D4
0000141A 6700 0026 464 BEQ SUB_L
0000141E 465
0000141E B83C 0004 466 CMP.B #%100,D4
00001422 6700 0012 467 BEQ SUB_B
00001426 B83C 0005 468 CMP.B #%101,D4
0000142A 6700 0010 469 BEQ SUB_W
0000142E B83C 0006 470 CMP.B #%110,D4
00001432 6700 000E 471 BEQ SUB_L
00001436 472 SUB_B
00001436 4EB9 00001758 473 JSR PRINT_B
0000143C 474 *Proceed to EA Subroutine
0000143C 475 SUB_W
0000143C 4EB9 00001768 476 JSR PRINT_W
00001442 477 *Proceed to EA Subroutine
00001442 478 SUB_L
00001442 4EB9 00001778 479 JSR PRINT_L
00001448 480 *Proceed to EA Subroutine
00001448 481 OP_11
00001448 2803 482 MOVE.L D3,D4
0000144A 1C3C 000C 483 MOVE.B #12,D6
0000144E EC6C 484 LSR.W D6,D4
00001450 485
00001450 B83C 000C 486 CMP.B #%1100,D4 *AND
00001454 6700 0016 487 BEQ OP_1100
00001458 488
00001458 B83C 000D 489 CMP.B #%1101,D4 *ADD,ADDA
0000145C 6700 006A 490 BEQ OP_1101
00001460 491
00001460 B83C 000E 492 CMP.B #%1110,D4 *LSL/LSR,ASL/ASR,ROL/ROR
00001464 6700 00FE 493 BEQ OP_1110
00001468 494
00001468 6000 031E 495 BRA INVALID_OP
0000146C 496 OP_1100 *AND
0000146C 43F9 00001820 497 LEA PRNT_AND,A1
00001472 103C 000E 498 MOVE.B #14,D0
00001476 4E4F 499 TRAP #15
00001478 500
00001478 2803 501 MOVE.L D3,D4
0000147A EF4C 502 LSL.W #7,D4
0000147C 1C3C 000D 503 MOVE.B #13,D6
00001480 EC6C 504 LSR.W D6,D4 *Get Opmode
00001482 505 *< ea > Dn -> Dn
00001482 B83C 0000 506 CMP.B #%000,D4
00001486 6700 002E 507 BEQ AND_B
0000148A B83C 0001 508 CMP.B #%001,D4
0000148E 6700 002C 509 BEQ AND_W
00001492 B83C 0002 510 CMP.B #%010,D4
00001496 6700 002A 511 BEQ AND_L
0000149A 512 *Dn < ea > -> < ea >
0000149A B83C 0004 513 CMP.B #%100,D4
0000149E 6700 0016 514 BEQ AND_B
000014A2 B83C 0005 515 CMP.B #%101,D4
000014A6 6700 0014 516 BEQ AND_W
000014AA B83C 0006 517 CMP.B #%110,D4
000014AE 6700 0012 518 BEQ AND_L
000014B2 519
000014B2 6000 02D4 520 BRA INVALID_OP
000014B6 521 AND_B
000014B6 4EB9 00001758 522 JSR PRINT_B
000014BC 523 *Proceed to EA Subroutine
000014BC 524 AND_W
000014BC 4EB9 00001768 525 JSR PRINT_W
000014C2 526 *Proceed to EA Subroutine
000014C2 527 AND_L
000014C2 4EB9 00001778 528 JSR PRINT_L
000014C8 529 *Proceed to EA Subroutine
000014C8 530
000014C8 531 OP_1101 *ADD,ADDA
000014C8 2803 532 MOVE.L D3,D4
000014CA EF4C 533 LSL.W #7,D4
000014CC 1C3C 000D 534 MOVE.B #13,D6
000014D0 EC6C 535 LSR.W D6,D4 *Get Opmode
000014D2 536
000014D2 537 *ADD Opmodes
000014D2 B83C 0000 538 CMP.B #%000,D4
000014D6 6700 005A 539 BEQ ADD_B
000014DA B83C 0001 540 CMP.B #%001,D4
000014DE 6700 005C 541 BEQ ADD_W
000014E2 B83C 0002 542 CMP.B #%010,D4
000014E6 6700 005E 543 BEQ ADD_L
000014EA 544
000014EA B83C 0004 545 CMP.B #%100,D4
000014EE 6700 0042 546 BEQ ADD_B
000014F2 B83C 0005 547 CMP.B #%101,D4
000014F6 6700 0044 548 BEQ ADD_W
000014FA B83C 0006 549 CMP.B #%110,D4
000014FE 6700 0046 550 BEQ ADD_L
00001502 551 *ADDA Opmodes
00001502 B83C 0003 552 CMP.B #%011,D4
00001506 6700 0048 553 BEQ ADDA_W
0000150A B83C 0007 554 CMP.B #%111,D4
0000150E 6700 004A 555 BEQ ADDA_L
00001512 556
00001512 6000 0274 557 BRA INVALID_OP
00001516 558 IS_ADD
00001516 43F9 00001817 559 LEA PRNT_ADD,A1
0000151C 103C 000E 560 MOVE.B #14,D0
00001520 4E4F 561 TRAP #15
00001522 4E75 562 RTS
00001524 563 IS_ADDA
00001524 43F9 0000181B 564 LEA PRNT_ADDA,A1
0000152A 103C 000E 565 MOVE.B #14,D0
0000152E 4E4F 566 TRAP #15
00001530 4E75 567 RTS
00001532 568 ADD_B
00001532 4EB8 1516 569 JSR IS_ADD
00001536 4EB9 00001758 570 JSR PRINT_B
0000153C 571 *Proceed to EA Subroutine
0000153C 572 ADD_W
0000153C 4EB8 1516 573 JSR IS_ADD
00001540 4EB9 00001768 574 JSR PRINT_W
00001546 575 *Proceed to EA Subroutine
00001546 576 ADD_L
00001546 4EB8 1516 577 JSR IS_ADD
0000154A 4EB9 00001778 578 JSR PRINT_L
00001550 579 *Proceed to EA Subroutine
00001550 580
00001550 581 ADDA_W
00001550 4EB8 1524 582 JSR IS_ADDA
00001554 4EB9 00001768 583 JSR PRINT_W
0000155A 584 *Proceed to EA Subroutine
0000155A 585 ADDA_L
0000155A 4EB8 1524 586 JSR IS_ADDA
0000155E 4EB9 00001778 587 JSR PRINT_L
00001564 588 *Proceed to EA Subroutine
00001564 589
00001564 590 OP_1110 *LSL/LSR,ASL/ASR,ROL/ROR
00001564 591
00001564 592 *Memory Shift Check bits 6,7
00001564 2803 593 MOVE.L D3,D4
00001566 E14C 594 LSL.W #8,D4
00001568 7C0E 595 MOVE.L #14,D6
0000156A EC6C 596 LSR.W D6,D4
0000156C 597
0000156C B83C 0003 598 CMP.B #%11,D4
00001570 6600 0024 599 BNE REG
00001574 600 *Memory Shift check bits 11,10,9
00001574 2803 601 MOVE.L D3,D4
00001576 E94C 602 LSL.W #4,D4
00001578 1C3C 000D 603 MOVE.B #13,D6
0000157C EC6C 604 LSR.W D6,D4
0000157E 605
0000157E B83C 0000 606 CMP.B #%000,D4 *ASL/ASR
00001582 6700 0060 607 BEQ A_MEM
00001586 B83C 0001 608 CMP.B #%001,D4 *LSL,LSR
0000158A 6700 00C8 609 BEQ L_MEM
0000158E B83C 0003 610 CMP.B #%011,D4 *ROL/ROR
00001592 6700 0130 611 BEQ R_MEM
00001596 612
00001596 613 *Register Shift check bits 4,3
00001596 2803 614 REG MOVE.L D3,D4
00001598 1C3C 000B 615 MOVE.B #11,D6
0000159C ED6C 616 LSL.W D6,D4
0000159E 1C3C 0011 617 MOVE.B #17,D6
000015A2 EC6C 618 LSR.W D6,D4
000015A4 619
000015A4 B83C 0000 620 CMP.B #%00,D4 *ASL/ASR
000015A8 6700 0016 621 BEQ A_REG
000015AC B83C 0001 622 CMP.B #%01,D4 *LSL/LSR
000015B0 6700 007E 623 BEQ L_REG
000015B4 B83C 0003 624 CMP.B #%11,D4 *ROL/ROR
000015B8 6700 00E6 625 BEQ R_REG
000015BC 626
000015BC 627
000015BC 6000 01CA 628 BRA INVALID_OP
000015C0 629
000015C0 630 *Check bit 8 to determine L/R shift
000015C0 631 A_REG
000015C0 4EB9 0000172A 632 JSR RGHT_LFT
000015C6 4286 633 CLR.L D6
000015C8 1C3C 0001 634 MOVE.B #01,D6
000015CC B83C 0000 635 CMP.B #%0,D4
000015D0 6700 0032 636 BEQ IS_ASR
000015D4 B83C 0001 637 CMP.B #%1,D4
000015D8 6700 0040 638 BEQ IS_ASL
000015DC 639
000015DC 6000 01AA 640 BRA INVALID_OP
000015E0 641 A_SIZE
000015E0 6000 0154 642 BRA GET_SHFT_SIZE
000015E4 643
000015E4 644 A_MEM
000015E4 4EB9 0000172A 645 JSR RGHT_LFT
000015EA 4286 646 CLR.L D6
000015EC 1C3C 0002 647 MOVE.B #02,D6
000015F0 B83C 0000 648 CMP.B #%0,D4
000015F4 6700 000E 649 BEQ IS_ASR
000015F8 B83C 0001 650 CMP.B #%1,D4
000015FC 6700 001C 651 BEQ IS_ASL
00001600 652 *Proceed to EA Subroutine
00001600 FFFF FFFF 653 SIMHALT
00001604 654 IS_ASR
00001604 43F9 0000182C 655 LEA PRNT_ASR,A1
0000160A 103C 000E 656 MOVE.B #14,D0
0000160E 4E4F 657 TRAP #15
00001610 BC3C 0001 658 CMP.B #01,D6
00001614 67CA 659 BEQ A_SIZE
00001616 FFFF FFFF 660 SIMHALT
0000161A 661 IS_ASL
0000161A 43F9 00001828 662 LEA PRNT_ASL,A1
00001620 103C 000E 663 MOVE.B #14,D0
00001624 4E4F 664 TRAP #15
00001626 BC3C 0001 665 CMP.B #01,D6
0000162A 67B4 666 BEQ A_SIZE
0000162C FFFF FFFF 667 SIMHALT
00001630 668
00001630 669 L_REG
00001630 4EB9 0000172A 670 JSR RGHT_LFT
00001636 4286 671 CLR.L D6
00001638 1C3C 0001 672 MOVE.B #01,D6
0000163C B83C 0000 673 CMP.B #%0,D4
00001640 6700 0032 674 BEQ IS_LSR
00001644 B83C 0001 675 CMP.B #%1,D4
00001648 6700 0040 676 BEQ IS_LSL
0000164C 677
0000164C 6000 013A 678 BRA INVALID_OP
00001650 679 L_SIZE
00001650 6000 00E4 680 BRA GET_SHFT_SIZE
00001654 681
00001654 682 L_MEM
00001654 4EB9 0000172A 683 JSR RGHT_LFT
0000165A 4286 684 CLR.L D6
0000165C 1C3C 0002 685 MOVE.B #02,D6
00001660 B83C 0000 686 CMP.B #%0,D4
00001664 6700 000E 687 BEQ IS_LSR
00001668 B83C 0001 688 CMP.B #%1,D4
0000166C 6700 001C 689 BEQ IS_LSL
00001670 690 *Proceed to EA Subroutine
00001670 FFFF FFFF 691 SIMHALT
00001674 692 IS_LSR
00001674 43F9 00001834 693 LEA PRNT_LSR,A1
0000167A 103C 000E 694 MOVE.B #14,D0
0000167E 4E4F 695 TRAP #15
00001680 BC3C 0001 696 CMP.B #01,D6
00001684 67CA 697 BEQ L_SIZE
00001686 FFFF FFFF 698 SIMHALT
0000168A 699 IS_LSL
0000168A 43F9 00001830 700 LEA PRNT_LSL,A1
00001690 103C 000E 701 MOVE.B #14,D0
00001694 4E4F 702 TRAP #15
00001696 BC3C 0001 703 CMP.B #01,D6
0000169A 67B4 704 BEQ L_SIZE
0000169C FFFF FFFF 705 SIMHALT
000016A0 706 R_REG
000016A0 4EB9 0000172A 707 JSR RGHT_LFT
000016A6 4286 708 CLR.L D6
000016A8 1C3C 0001 709 MOVE.B #01,D6
000016AC B83C 0000 710 CMP.B #%0,D4
000016B0 6700 0032 711 BEQ IS_ROR
000016B4 B83C 0001 712 CMP.B #%1,D4
000016B8 6700 0040 713 BEQ IS_ROL
000016BC 714
000016BC 6000 00CA 715 BRA INVALID_OP
000016C0 716 R_SIZE
000016C0 6000 0074 717 BRA GET_SHFT_SIZE
000016C4 718
000016C4 719 R_MEM
000016C4 4EB9 0000172A 720 JSR RGHT_LFT
000016CA 4286 721 CLR.L D6
000016CC 1C3C 0002 722 MOVE.B #02,D6
000016D0 B83C 0000 723 CMP.B #%0,D4
000016D4 6700 000E 724 BEQ IS_ROR
000016D8 B83C 0001 725 CMP.B #%1,D4
000016DC 6700 001C 726 BEQ IS_ROL
000016E0 727 *Proceed to EA Subroutine
000016E0 FFFF FFFF 728 SIMHALT
000016E4 729 IS_ROR
000016E4 43F9 0000183C 730 LEA PRNT_ROR,A1
000016EA 103C 000E 731 MOVE.B #14,D0
000016EE 4E4F 732 TRAP #15
000016F0 BC3C 0001 733 CMP.B #01,D6
000016F4 67CA 734 BEQ R_SIZE
000016F6 FFFF FFFF 735 SIMHALT
000016FA 736 IS_ROL
000016FA 43F9 00001838 737 LEA PRNT_ROL,A1
00001700 103C 000E 738 MOVE.B #14,D0
00001704 4E4F 739 TRAP #15
00001706 BC3C 0001 740 CMP.B #01,D6
0000170A 67B4 741 BEQ R_SIZE
0000170C FFFF FFFF 742 SIMHALT
00001710 743
00001710 744 GET_IR
00001710 2803 745 MOVE.L D3,D4
00001712 1C3C 000A 746 MOVE.B #10,D6
00001716 ED6C 747 LSL.W D6,D4
00001718 1C3C 000F 748 MOVE.B #15,D6
0000171C EC6C 749 LSR.W D6,D4
0000171E 750
0000171E 3204 751 MOVE.W D4,D1
00001720 103C 0003 752 MOVE.B #3,D0
00001724 4E4F 753 TRAP #15
00001726 FFFF FFFF 754 SIMHALT
0000172A 755
0000172A 756 RGHT_LFT *0 = RIGHT 1 = LEFT
0000172A 757 *Determine if right/left shift
0000172A 2803 758 MOVE.L D3,D4
0000172C 1C3C 000F 759 MOVE.B #15,D6
00001730 EF4C 760 LSL.W #7,D4
00001732 EC6C 761 LSR.W D6,D4
00001734 4E75 762 RTS
00001736 763
00001736 764 GET_SHFT_SIZE
00001736 2803 765 MOVE.L D3,D4
00001738 E14C 766 LSL.W #8,D4
0000173A 1C3C 000E 767 MOVE.B #14,D6
0000173E EC6C 768 LSR.W D6,D4
00001740 769
00001740 B83C 0000 770 CMP.B #%00,D4 *B
00001744 6700 0012 771 BEQ PRINT_B
00001748 B83C 0001 772 CMP.B #%01,D4 *W
0000174C 6700 001A 773 BEQ PRINT_W
00001750 B83C 0002 774 CMP.B #%10,D4 *L
00001754 6700 0022 775 BEQ PRINT_L
00001758 776
00001758 777 *Proceed to EA Subroutine
00001758 778
00001758 779 PRINT_B
00001758 43F9 000017C8 780 LEA PRNT_B,A1
0000175E 103C 000E 781 MOVE.B #14,D0
00001762 4E4F 782 TRAP #15
00001764 FFFF FFFF 783 SIMHALT
00001768 784 PRINT_W
00001768 43F9 000017CC 785 LEA PRNT_W,A1
0000176E 103C 000E 786 MOVE.B #14,D0
00001772 4E4F 787 TRAP #15
00001774 FFFF FFFF 788 SIMHALT
00001778 789 PRINT_L
00001778 43F9 000017D0 790 LEA PRNT_L,A1
0000177E 103C 000E 791 MOVE.B #14,D0
00001782 4E4F 792 TRAP #15
00001784 FFFF FFFF 793 SIMHALT
00001788 794 INVALID_OP
00001788 43F9 000017B2 795 LEA INVALID_MSG,A1
0000178E 103C 000E 796 MOVE.B #14,D0
00001792 4E4F 797 TRAP #15
00001794 798
00001794 FFFF FFFF 799 SIMHALT ; halt simulator
00001798 800
00001798 801 * Put variables and constants here
00001798= 45 6E 74 65 72 20 ... 802 INPUT_MSG DC.B 'Enter machine code: ',0
000017AE 803 INPUT DS.L 1
000017B2= 49 6E 76 61 6C 69 ... 804 INVALID_MSG DC.B 'Invalid Instruction',CR,LF,0
000017C8 805
000017C8= 2E 42 20 00 806 PRNT_B DC.B '.B ',0
000017CC= 2E 57 20 00 807 PRNT_W DC.B '.W ',0
000017D0= 2E 4C 20 00 808 PRNT_L DC.B '.L ',0
000017D4 809
000017D4= 4E 4F 50 00 810 PRNT_NOP DC.B 'NOP',0
000017D8= 52 54 53 00 811 PRNT_RTS DC.B 'RTS',0
000017DC= 4D 4F 56 45 00 812 PRNT_MOVE DC.B 'MOVE',0
000017E1= 4D 4F 56 45 41 00 813 PRNT_MOVEA DC.B 'MOVEA',0
000017E7= 4D 4F 56 45 4D 00 814 PRNT_MOVEM DC.B 'MOVEM',0
000017ED= 4D 4F 56 45 51 00 815 PRNT_MOVEQ DC.B 'MOVEQ',0
000017F3= 4A 53 52 00 816 PRNT_JSR DC.B 'JSR',0
000017F7= 42 47 54 00 817 PRNT_BGT DC.B 'BGT',0
000017FB= 42 4C 45 00 818 PRNT_BLE DC.B 'BLE',0
000017FF= 42 45 51 00 819 PRNT_BEQ DC.B 'BEQ',0
00001803= 42 52 41 00 820 PRNT_BRA DC.B 'BRA',0
00001807= 4E 4F 54 00 821 PRNT_NOT DC.B 'NOT',0
0000180B= 4F 52 00 822 PRNT_OR DC.B 'OR',0
0000180E= 4C 45 41 00 823 PRNT_LEA DC.B 'LEA',0
00001812= 41 44 44 51 00 824 PRNT_ADDQ DC.B 'ADDQ',0
00001817= 41 44 44 00 825 PRNT_ADD DC.B 'ADD',0
0000181B= 41 44 44 41 00 826 PRNT_ADDA DC.B 'ADDA',0
00001820= 41 4E 44 00 827 PRNT_AND DC.B 'AND',0
00001824= 53 55 42 00 828 PRNT_SUB DC.B 'SUB',0
00001828= 41 53 4C 00 829 PRNT_ASL DC.B 'ASL',0
0000182C= 41 53 52 00 830 PRNT_ASR DC.B 'ASR',0
00001830= 4C 53 4C 00 831 PRNT_LSL DC.B 'LSL',0
00001834= 4C 53 52 00 832 PRNT_LSR DC.B 'LSR',0
00001838= 52 4F 4C 00 833 PRNT_ROL DC.B 'ROL',0
0000183C= 52 4F 52 00 834 PRNT_ROR DC.B 'ROR',0
00001840 835
00001840 836 *D3 = original instruction
00001840 837 *D4 = copy of instruction
00001840 838 *D6 = num of bits to shift
00001840 839 END START ; last line of source
No errors detected
No warnings generated
SYMBOL TABLE INFORMATION
Symbol-name Value
-------------------------
ADDA_L 155A
ADDA_W 1550
ADDQ_B 12B2
ADDQ_DATA 12D0
ADDQ_L 12C6
ADDQ_W 12BC
ADD_B 1532
ADD_L 1546
ADD_W 153C
AND_B 14B6
AND_L 14C2
AND_W 14BC
A_MEM 15E4
A_REG 15C0
A_SIZE 15E0
CONCAT_BITS 1058
CONV_DONE 104C
CONV_LETTER 103C
CONV_NUM 1044
CR D
DISP 1354
DISP_16 136E
DISP_32 1372
FIND_OP 10A2
GET_IR 1710
GET_SHFT_SIZE 1736
INPUT 17AE
INPUT_MSG 1798
INVALID_MSG 17B2
INVALID_OP 1788
IS_ADD 1516
IS_ADDA 1524
IS_ASL 161A
IS_ASR 1604
IS_BEQ 1344
IS_BGT 1324
IS_BLE 1334
IS_BRA 1314
IS_LSL 168A
IS_LSR 1674
IS_MOVE 10DC
IS_MOVEA 10EC
IS_MOVEM 1226
IS_NOT 11BA
IS_OR 1394
IS_ROL 16FA
IS_ROR 16E4
IS_SUB 13F0
LF A
LOOP_CONV 1020
L_MEM 1654
L_REG 1630
L_SIZE 1650
MOVEM_L 126C
MOVEM_W 1266
MOVE_B 111E
MOVE_L 112A
MOVE_SIZE 10F8
MOVE_W 1124
NOP 106E
NOT_B 11F8
NOT_L 1204
NOT_W 11FE
OP_00 10CA
OP_01 1130
OP_0100 1188
OP_01001 120A
OP_0101 1272
OP_0110 12E6
OP_0111 1158
OP_10 1376
OP_11 1448
OP_1100 146C
OP_1101 14C8
OP_1110 1564
OR_B 13DE
OR_L 13EA
OR_W 13E4
PRINT_B 1758
PRINT_L 1778
PRINT_W 1768
PRNT_ADD 1817
PRNT_ADDA 181B
PRNT_ADDQ 1812
PRNT_AND 1820
PRNT_ASL 1828
PRNT_ASR 182C
PRNT_B 17C8
PRNT_BEQ 17FF
PRNT_BGT 17F7
PRNT_BLE 17FB
PRNT_BRA 1803
PRNT_JSR 17F3
PRNT_L 17D0
PRNT_LEA 180E
PRNT_LSL 1830
PRNT_LSR 1834
PRNT_MOVE 17DC
PRNT_MOVEA 17E1
PRNT_MOVEM 17E7
PRNT_MOVEQ 17ED
PRNT_NOP 17D4
PRNT_NOT 1807
PRNT_OR 180B
PRNT_ROL 1838
PRNT_ROR 183C
PRNT_RTS 17D8
PRNT_SUB 1824
PRNT_W 17CC
REG 1596
RGHT_LFT 172A
RTS 1088
R_MEM 16C4
R_REG 16A0
R_SIZE 16C0
START 1000
START_ADDR 1A
START_OP 106E
SUB_B 1436
SUB_L 1442
SUB_W 143C