-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.L68
More file actions
2885 lines (2881 loc) · 190 KB
/
Copy pathMain.L68
File metadata and controls
2885 lines (2881 loc) · 190 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
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
00001000 Starting Address
Assembler used: EASy68K Editor/Assembler v5.16.01
Created On: 3/16/2019 11:32:57 PM
00000000 1
00000000 2 *--------------------------------------------------------------------------
00000000 3 * Title : Disassembler (Some Assembly Required)
00000000 4 * Written by : Cody Stuck, Ardalan Ahanchi, Natallia Ustsiamchuk
00000000 5 * Date :
00000000 6 *
00000000 7 * Description: This code contains a method for you to use
00000000 8 * with your Disassembler project IO, and a short demo of
00000000 9 * how to call this method in the body of the "START" code.
00000000 10 *
00000000 11 * Hints and Tips:
00000000 12 * -Follow the code commenting convention here for file & method headers
00000000 13 * -Don't rename this file name (Main.X68)
00000000 14 * -Don't r g the start address ($1000)
00000000 15 * -Don't rename or edit the IO method I've provided you with here
00000000 16 * -Don't rename the config.cfg file or change the file format:
00000000 17 * <Long_StartAddress>\CR\LF
00000000 18 * <Long_En ress>\CR\LF<EOF>
00000000 19 *---------------------------------------------------------------------------
00001000 20 ORG $1000 *Don't change this; see hints and tips above
00001000 21 *---------------------------------------------------------------------------
00001000 22 START:
00001000 23
00001000 24 *********************************************************************************
00001000 25 ********************************* I/O Section ***********************************
00001000 26 *********************************************************************************
00001000 27
00001000 28 readConfigFile
00001000 43F9 00002273 29 LEA inputFile,A1 *Load the file to read
00001006 303C 0033 30 MOVE #51,D0 *Open the file
0000100A 4E4F 31 TRAP #15
0000100C 32
0000100C 243C 00002287 33 MOVE.L #filesize, D2 *attemp to read 80 bytes
00001012 43F9 00003900 34 LEA addressbuff, A1
00001018 7035 35 MOVE.L #53, D0 *Reading a file
0000101A 4E4F 36 TRAP #15 *Gets content
0000101C 37
0000101C 7E00 38 MOVE.L #0, D7 *Read the starting address into A6.
0000101E 4EB9 00002122 39 JSR AsciiToHex
00001024 2C47 40 MOVE.L D7, A6
00001026 41
00001026 0C59 0D0A 42 CMPI.W #$0D0A, (A1)+ *Check for newline.
0000102A 6600 0092 43 BNE invalidConfig
0000102E 44
0000102E 7E00 45 MOVE.L #0, D7 *Read ending address into A4.
00001030 4EB9 00002122 46 JSR AsciiToHex
00001036 2847 47 MOVE.L D7, A4
00001038 48
00001038 49 mainloop
00001038 BCCC 50 CMPA A4,A6
0000103A 6E00 0086 51 BGT endmainloop
0000103E 52
0000103E 1C3C 0000 53 MOVE.B #0,D6 *reset bad flag
00001042 3A7C 4000 54 MOVEA #printbuff,A5 *reset printbuff
00001046 55
00001046 280E 56 MOVE.L A6, D4 *print address
00001048 1AFC 0024 57 MOVE.B #'$', (A5)+
0000104C 163C 0000 58 MOVE.B #0, D3
00001050 59
00001050 60 printAddressLoop
00001050 B63C 0008 61 CMP.B #8, D3 *Check if we've read 8 nibbles.
00001054 6700 001A 62 BEQ printAddressLoop_done
00001058 E99C 63 ROL.L #4, D4 *Rotate, get the first nibble and store in D4.
0000105A 1A04 64 MOVE.B D4, D5
0000105C CA39 0000258B 65 AND.B firstNibble, D5
00001062 4EB9 00002100 66 JSR hexToAscii *Get the ASCII value.
00001068 1AC5 67 MOVE.B D5, (A5)+ *Add the new ASCII byte to the output.
0000106A 5203 68 ADD.B #1, D3 *Increase the counter.
0000106C 4EF8 1050 69 JMP printAddressLoop
00001070 70
00001070 71 printAddressLoop_done
00001070 1AFC 0020 72 MOVE.B #' ', (A5)+
00001074 73
00001074 4EB9 000010C6 74 JSR identifyOPCODE
0000107A 75
0000107A BC3C 0001 76 CMP.B #1,D6
0000107E 6700 0014 77 BEQ badbuff
00001082 78
00001082 1ABC 0000 79 MOVE.B #0,(A5)
00001086 327C 4000 80 MOVEA #printbuff,A1
0000108A 4EB9 0000216A 81 JSR TrapTask13
00001090 82
00001090 4EF8 1038 83 JMP mainloop
00001094 84
00001094 85 badbuff
00001094 3A7C 4000 86 MOVEA #printbuff,A5 *reset printbuff
00001098 87
00001098 1AFC 0020 88 MOVE.B #' ',(A5)+
0000109C 1AFC 0044 89 MOVE.B #'D',(A5)+
000010A0 1AFC 0041 90 MOVE.B #'A',(A5)+
000010A4 1AFC 0054 91 MOVE.B #'T',(A5)+
000010A8 1AFC 0041 92 MOVE.B #'A',(A5)+
000010AC 93 *add data to print buffer here
000010AC 1ABC 0000 94 MOVE.B #0,(A5)
000010B0 95
000010B0 327C 4000 96 MOVEA #printbuff,A1
000010B4 4EB9 0000216A 97 JSR TrapTask13
000010BA 98
000010BA 4EF8 1038 99 JMP mainloop
000010BE 100
000010BE 101 invalidConfig
000010BE FFFF FFFF 102 SIMHALT
000010C2 103
000010C2 104 endmainloop
000010C2 FFFF FFFF 105 SIMHALT
000010C6 106
000010C6 107 *********************************************************************************
000010C6 108 ******************************* OP Code Section *********************************
000010C6 109 *********************************************************************************
000010C6 110
000010C6 111
000010C6 112 *********************************************************************************
000010C6 113 * Method Name: identifyOPCODE
000010C6 114 * Description: Attempts to decode an opcode by first examining the first nibble,
000010C6 115 * then branching off to identify opcode
000010C6 116 *
000010C6 117 * Preconditions: A6 should contain the pointer to the opcode.
000010C6 118 * A5 Should contain the pointer to the next space in good buffer.
000010C6 119 * D6 should contain the good/bad flag.
000010C6 120 *
000010C6 121 * Postconditions: A5 will contain the pointer to the next space in the good buffer
000010C6 122 * D6 will contain the good/bad flag
000010C6 123 * D7 will contain mode and register bits
000010C6 124 *
000010C6 125 * MODIFIES: D3
000010C6 126 *********************************************************************************
000010C6 127 identifyOPCODE:
000010C6 128
000010C6 129 *****IDENTIFY FIRST NIBBLE*****
000010C6 3616 130 MOVE.W (A6),D3 *move opcode to D3
000010C8 131
000010C8 B679 0000250C 132 CMP.W RTS,D3 *check if the OP is rts
000010CE 6700 03FE 133 BEQ dRTS
000010D2 134
000010D2 B679 0000257E 135 CMP.W RESET,D3 *check if the OP is RESET
000010D8 6700 0706 136 BEQ dRESET
000010DC 137
000010DC B679 00002510 138 CMP.W NOP,D3 *check if the OP is NOP
000010E2 6700 0406 139 BEQ dNOP
000010E6 140
000010E6 C679 00002592 141 AND.W isolateNibbleMask,D3 *isolate nibble by clearing the rest of the bits
000010EC 142
000010EC 143 * check the first nibble and jump to the proper jumptable for that prefix
000010EC B679 000024F2 144 CMP.W chk0000,D3 *0000
000010F2 6700 0080 145 BEQ ident0000
000010F6 B679 000024F4 146 CMP.W chk0100,D3 *0100
000010FC 6700 00C6 147 BEQ ident0100
00001100 B679 000024F6 148 CMP.W chk0101,D3 *0101
00001106 6700 010C 149 BEQ ident0101
0000110A B679 000024F8 150 CMP.W chk0110,D3 *0110
00001110 6700 011C 151 BEQ ident0110
00001114 B679 000024FA 152 CMP.W chk1000,D3 *1000
0000111A 6700 0174 153 BEQ ident1000
0000111E B679 000024FC 154 CMP.W chk1001,D3 *1001
00001124 6700 018A 155 BEQ ident1001
00001128 B679 000024FE 156 CMP.W chk1011,D3 *1011
0000112E 6700 018E 157 BEQ ident1011
00001132 B679 00002500 158 CMP.W chk1100,D3 *1100
00001138 6700 01A4 159 BEQ ident1100
0000113C B679 00002502 160 CMP.W chk1101,D3 *1101
00001142 6700 01B4 161 BEQ ident1101
00001146 B679 00002504 162 CMP.W chk0001,D3 *MOVE_A.B
0000114C 6700 01CA 163 BEQ identMOVE_A
00001150 B679 00002506 164 CMP.W chk0011,D3 *MOVE_A.W
00001156 6700 01C0 165 BEQ identMOVE_A
0000115A B679 00002508 166 CMP.W chk0010,D3 *MOVE_A.L
00001160 6700 01B6 167 BEQ identMOVE_A
00001164 B679 0000250A 168 CMP.W chk1110,D3 *SHIFT/ROTATE OP
0000116A 6700 01C4 169 BEQ identREGMEM
0000116E 4EF9 000017D0 170 JMP ddata *data
00001174 171
00001174 172
00001174 173 *****IDENTIFY OPCODE FROM NIBBLE*****
00001174 174
00001174 175 ident0000 * is this ORI/CMPI/BCLR
00001174 3616 176 MOVE.W (A6),D3 *move the full opcode back into D3
00001176 177
00001176 178 * ORI?
00001176 C679 00002516 179 AND.W ORIISO,D3 *clear irrelevant bits
0000117C B679 00002518 180 CMP.W ORICHK,D3 *compare to identity
00001182 6700 0382 181 BEQ dORI *match?
00001186 3616 182 MOVE (A6),D3 *move the full opcode back into D3
00001188 183
00001188 184 * CMPI?
00001188 C679 0000251A 185 AND.W CMPIISO,D3 *clear irrelevant bits
0000118E B679 0000251C 186 CMP.W CMPICHK,D3 *compare to identity
00001194 6700 0392 187 BEQ dCMPI *match?
00001198 3616 188 MOVE.W (A6),D3 *move the full opcode back into D3
0000119A 189
0000119A 190 * BCLR_SA?
0000119A C679 0000251E 191 AND.W BCLR_SA_ISO,D3 *clear irrelevant bits
000011A0 B679 00002520 192 CMP.W BCLR_SA_CHK,D3 *compare to identity
000011A6 6700 03A6 193 BEQ dBCLR_SA *match?
000011AA 3616 194 MOVE.W (A6),D3 *move the full opcode back into D3
000011AC 195
000011AC 196 * BCLR_D?
000011AC C679 00002522 197 AND.W BCLR_D_ISO,D3 *clear irrelevant bits
000011B2 B679 00002524 198 CMP.W BCLR_D_CHK,D3 *compare to identity
000011B8 6700 03B4 199 BEQ dBCLR_D *match?
000011BC 3616 200 MOVE.W (A6),D3 *move the full opcode back into D3
000011BE 201
000011BE 4EF9 000017D0 202 JMP ddata *could not identify
000011C4 203
000011C4 204 ident0100 * is this NEG/RTS/JSR/MOVEM/LEA
000011C4 3616 205 MOVE.W (A6),D3 *move the full opcode back into D3
000011C6 206
000011C6 207 *RTS has already been checked
000011C6 208
000011C6 209 * NEG?
000011C6 C679 00002548 210 AND.W NEGISO,D3 *clear irrelevant bits
000011CC B679 0000254A 211 CMP.W NEGCHK,D3 *compare to identity
000011D2 6700 03BA 212 BEQ dNEG *match?
000011D6 3616 213 MOVE.W (A6),D3 *move the full opcode back into D3
000011D8 214
000011D8 215 * JSR?
000011D8 C679 0000254C 216 AND.W JSRISO,D3 *clear irrelevant bits
000011DE B679 0000254E 217 CMP.W JSRCHK,D3 *compare to identity
000011E4 6700 03CA 218 BEQ dJSR *match?
000011E8 3616 219 MOVE.W (A6),D3 *move the full opcode back into D3
000011EA 220
000011EA 221 * MOVEM?
000011EA C679 00002550 222 AND.W MOVEMISO,D3 *clear irrelevant bits
000011F0 B679 00002552 223 CMP.W MOVEMCHK,D3 *compare to identity
000011F6 6700 03D4 224 BEQ dMOVEM *match?
000011FA 3616 225 MOVE.W (A6),D3 *move the full opcode back into D3
000011FC 226
000011FC 227 * LEA?
000011FC C679 00002554 228 AND.W LEAISO,D3 *clear irrelevant bits
00001202 B679 00002556 229 CMP.W LEACHK,D3 *compare to identity
00001208 6700 03EC 230 BEQ dLEA *match?
0000120C 3616 231 MOVE.W (A6),D3 *move the full opcode back into D3
0000120E 232
0000120E 4EF9 000017D0 233 JMP ddata *could not identify
00001214 234
00001214 235 ident0101 * is this SUBQ
00001214 3616 236 MOVE.W (A6),D3 *move the full opcode back into D3
00001216 237
00001216 238 * SUBQ?
00001216 C679 00002526 239 AND.W SUBQISO,D3 *clear irrelevant bits
0000121C B679 00002528 240 CMP.W SUBQCHK,D3 *compare to identity
00001222 6700 03EE 241 BEQ dSUBQ *match?
00001226 3616 242 MOVE.W (A6),D3 *move the full opcode back into D3
00001228 243
00001228 4EF9 000017D0 244 JMP ddata *could not identify
0000122E 245
0000122E 246 ident0110 * is this BRA/BCS/BGE/BLT/BVC
0000122E 3616 247 MOVE.W (A6),D3 *move the full opcode back into D3
00001230 248
00001230 249 * BRA?
00001230 C679 0000252E 250 AND.W BCCISO,D3 *clear irrelevant bits
00001236 B679 00002530 251 CMP.W BRACHK,D3 *compare to identity
0000123C 6700 03FA 252 BEQ dBRA *match?
00001240 3616 253 MOVE.W (A6),D3 *move the full opcode back into D3
00001242 254
00001242 255 * BCS?
00001242 C679 0000252E 256 AND.W BCCISO,D3 *clear irrelevant bits
00001248 B679 00002532 257 CMP.W BCSCHK,D3 *compare to identity
0000124E 6700 0404 258 BEQ dBCS *match?
00001252 3616 259 MOVE.W (A6),D3 *move the full opcode back into D3
00001254 260
00001254 261 * BGE?
00001254 C679 0000252E 262 AND.W BCCISO,D3 *clear irrelevant bits
0000125A B679 00002534 263 CMP.W BGECHK,D3 *compare to identity
00001260 6700 040E 264 BEQ dBGE *match?
00001264 3616 265 MOVE.W (A6),D3 *move the full opcode back into D3
00001266 266
00001266 267 * BLT?
00001266 C679 0000252E 268 AND.W BCCISO,D3 *clear irrelevant bits
0000126C B679 00002536 269 CMP.W BLTCHK,D3 *compare to identity
00001272 6700 0418 270 BEQ dBLT *match?
00001276 3616 271 MOVE.W (A6),D3 *move the full opcode back into D3
00001278 272
00001278 273 * BVC?
00001278 C679 0000252E 274 AND.W BCCISO,D3 *clear irrelevant bits
0000127E B679 00002538 275 CMP.W BVCCHK,D3 *compare to identity
00001284 6700 0422 276 BEQ dBVC *match?
00001288 3616 277 MOVE.W (A6),D3 *move the full opcode back into D3
0000128A 278
0000128A 4EF9 000017D0 279 JMP ddata *could not identify
00001290 280
00001290 281 ident1000 * is this DIVS/OR
00001290 3616 282 MOVE.W (A6),D3 *move the full opcode back into D3
00001292 283
00001292 284 * DIVS?
00001292 C679 0000253E 285 AND.W DIVSISO,D3 *clear irrelevant bits
00001298 B679 00002540 286 CMP.W DIVSCHK,D3 *compare to identity
0000129E 6700 0424 287 BEQ dDIVS *match?
000012A2 3616 288 MOVE.W (A6),D3 *move the full opcode back into D3
000012A4 289
000012A4 290 * assume OR
000012A4 4EF9 000016E4 291 JMP dOR
000012AA 292
000012AA 4EF9 000017D0 293 JMP ddata *could not identify
000012B0 294
000012B0 295 ident1001 * is this SUB
000012B0 3616 296 MOVE.W (A6),D3 *move the full opcode back into D3
000012B2 297
000012B2 298 * assume SUB
000012B2 4EF9 00001702 299 JMP dSUB
000012B8 300
000012B8 4EF9 000017D0 301 JMP ddata *could not identify
000012BE 302
000012BE 303 ident1011 * is this EOR/CMP
000012BE 3616 304 MOVE.W (A6),D3 *move the full opcode back into D3
000012C0 305
000012C0 306 * EOR?
000012C0 C679 0000252A 307 AND.W EORISO,D3 *clear irrelevant bits
000012C6 B679 0000252C 308 CMP.W EORCHK,D3 *compare to identity
000012CC 6700 0456 309 BEQ dEOR *match?
000012D0 3616 310 MOVE.W (A6),D3 *move the full opcode back into D3
000012D2 311
000012D2 312 * assume CMP
000012D2 4EF9 00001746 313 JMP dCMP
000012D8 314
000012D8 4EF9 000017D0 315 JMP ddata
000012DE 316
000012DE 317 ident1100 * is this MULS
000012DE 3616 318 MOVE.W (A6),D3 *move the full opcode back into D3
000012E0 319
000012E0 320 * MULS?
000012E0 C679 0000253A 321 AND.W MULSISO,D3 *clear irrelevant bits
000012E6 B679 0000253C 322 CMP.W MULSCHK,D3 *compare to identity
000012EC 6700 047A 323 BEQ dMULS *match?
000012F0 3616 324 MOVE.W (A6),D3 *move the full opcode back into D3
000012F2 325
000012F2 4EF9 000017D0 326 JMP ddata *could not identify
000012F8 327
000012F8 328 ident1101 * is this ADD/ADDA
000012F8 3616 329 MOVE.W (A6),D3 *move the full opcode back into D3
000012FA 330
000012FA C679 00002542 331 AND.W ADDAISO,D3 *clear irrelevant bits
00001300 B679 00002544 332 CMP.W ADDACHK,D3 *compare to identity
00001306 6700 04A2 333 BEQ dADDA *match?
0000130A 3616 334 MOVE.W (A6),D3 *move the full opcode back into D3
0000130C 335
0000130C 336 * assume ADD
0000130C 4EF9 00001788 337 JMP dADD
00001312 338
00001312 4EF9 000017D0 339 JMP ddata
00001318 340
00001318 341 identMOVE_A *is this MOVE/MOVEA
00001318 3616 342 MOVE.W (A6),D3
0000131A 343
0000131A 344 * MOVEA?
0000131A C679 00002512 345 AND.W MOVEAISO,D3 *clear irrelevant bits
00001320 B679 00002514 346 CMP.W MOVEACHK,D3 *compare to identity
00001326 6700 0156 347 BEQ dMOVEA
0000132A 348
0000132A 349 * ASSUME MOVE
0000132A 4EF9 000014A8 350 JMP dMOVE
00001330 351
00001330 352 identREGMEM *is this a register or memory shift/rotate
00001330 3616 353 MOVE.W (A6),D3
00001332 354
00001332 355 * mem?
00001332 C679 0000256A 356 AND.W SHIFTROTMEMCHK,D3 *clear irrelevant bits
00001338 B679 0000256A 357 CMP.W SHIFTROTMEMCHK,D3 *compare to identity
0000133E 6700 0008 358 BEQ identSHIFTROTMEM
00001342 359
00001342 360 * ASSUME REG
00001342 4EF9 00001380 361 JMP identSHIFTROTREG
00001348 362
00001348 363 identSHIFTROTMEM
00001348 3616 364 MOVE.W (A6),D3
0000134A 365
0000134A 366 *ASD?
0000134A C679 0000256C 367 AND.W MEMSHIFTORROTISO,D3
00001350 B679 00002570 368 CMP.W MEMASDCHK,D3
00001356 6700 0060 369 BEQ dMEM_ASD
0000135A 370
0000135A 371 *LSD?
0000135A C679 0000256C 372 AND.W MEMSHIFTORROTISO,D3
00001360 B679 00002572 373 CMP.W MEMLSDCHK,D3
00001366 6700 006E 374 BEQ dMEM_LSD
0000136A 375
0000136A 376 *ROD?
0000136A C679 0000256C 377 AND.W MEMSHIFTORROTISO,D3
00001370 B679 00002574 378 CMP.W MEMRODCHK,D3
00001376 6700 007C 379 BEQ dMEM_ROD
0000137A 380
0000137A 4EF9 000017D0 381 JMP ddata
00001380 382
00001380 383 identSHIFTROTREG
00001380 3616 384 MOVE.W (A6),D3
00001382 385
00001382 386 *ASD?
00001382 C679 0000256E 387 AND.W REGSHIFTORROTISO,D3
00001388 B679 00002576 388 CMP.W REGASDCHK,D3
0000138E 6700 0082 389 BEQ dREG_ASD
00001392 390
00001392 391 *LSD?
00001392 C679 0000256E 392 AND.W REGSHIFTORROTISO,D3
00001398 B679 00002578 393 CMP.W REGLSDCHK,D3
0000139E 6700 0096 394 BEQ dREG_LSD
000013A2 395
000013A2 396 *ROD?
000013A2 C679 0000256E 397 AND.W REGSHIFTORROTISO,D3
000013A8 B679 0000257A 398 CMP.W REGRODCHK,D3
000013AE 6700 00AA 399 BEQ dREG_ROD
000013B2 400
000013B2 4EF9 000017D0 401 JMP ddata
000013B8 402
000013B8 403 *****OPCODE IDENTIFIED*****
000013B8 404
000013B8 405 dMEM_ASD *this is mem ASD
000013B8 406
000013B8 407 *add to buffer
000013B8 1AFC 0020 408 MOVE.B #' ',(A5)+
000013BC 1AFC 0041 409 MOVE.B #'A',(A5)+
000013C0 1AFC 0053 410 MOVE.B #'S',(A5)+
000013C4 411
000013C4 4EB9 0000183C 412 JSR identDIRECTION
000013CA 413
000013CA 4EB9 00001A5C 414 JSR EApi_Xn
000013D0 415
000013D0 4EF9 00001804 416 JMP endIdent
000013D6 417
000013D6 418 dMEM_LSD *this is mem LSD
000013D6 419
000013D6 420 *add to buffer
000013D6 1AFC 0020 421 MOVE.B #' ',(A5)+
000013DA 1AFC 004C 422 MOVE.B #'L',(A5)+
000013DE 1AFC 0053 423 MOVE.B #'S',(A5)+
000013E2 424
000013E2 4EB9 0000183C 425 JSR identDIRECTION
000013E8 426
000013E8 4EB9 00001A5C 427 JSR EApi_Xn
000013EE 428
000013EE 4EF9 00001804 429 JMP endIdent
000013F4 430
000013F4 431 dMEM_ROD *this is mem ROD
000013F4 432
000013F4 433 *add to buffer
000013F4 1AFC 0020 434 MOVE.B #' ',(A5)+
000013F8 1AFC 0052 435 MOVE.B #'R',(A5)+
000013FC 1AFC 004F 436 MOVE.B #'O',(A5)+
00001400 437
00001400 4EB9 0000183C 438 JSR identDIRECTION
00001406 439
00001406 4EB9 00001A5C 440 JSR EApi_Xn
0000140C 441
0000140C 4EF9 00001804 442 JMP endIdent
00001412 443
00001412 444 dREG_ASD *this is reg ASD
00001412 445
00001412 446 *add to buffer
00001412 1AFC 0020 447 MOVE.B #' ',(A5)+
00001416 1AFC 0041 448 MOVE.B #'A',(A5)+
0000141A 1AFC 0053 449 MOVE.B #'S',(A5)+
0000141E 450
0000141E 4EB9 0000183C 451 JSR identDIRECTION
00001424 4EB9 000018C6 452 JSR identifyOPSIZE *identify size of operation and add to buffer
0000142A 453
0000142A 4EB9 00001A70 454 JSR EApi_Data_Dn
00001430 455
00001430 4EF9 00001804 456 JMP endIdent
00001436 457
00001436 458 dREG_LSD *this is reg LSD
00001436 459
00001436 460 *add to buffer
00001436 1AFC 0020 461 MOVE.B #' ',(A5)+
0000143A 1AFC 004C 462 MOVE.B #'L',(A5)+
0000143E 1AFC 0053 463 MOVE.B #'S',(A5)+
00001442 464
00001442 4EB9 0000183C 465 JSR identDIRECTION
00001448 4EB9 000018C6 466 JSR identifyOPSIZE *identify size of operation and add to buffer
0000144E 467
0000144E 4EB9 00001A70 468 JSR EApi_Data_Dn
00001454 469
00001454 4EF9 00001804 470 JMP endIdent
0000145A 471
0000145A 472 dREG_ROD *this is reg ROD
0000145A 473
0000145A 474 *add to buffer
0000145A 1AFC 0020 475 MOVE.B #' ',(A5)+
0000145E 1AFC 0052 476 MOVE.B #'R',(A5)+
00001462 1AFC 004F 477 MOVE.B #'O',(A5)+
00001466 478
00001466 4EB9 0000183C 479 JSR identDIRECTION
0000146C 4EB9 000018C6 480 JSR identifyOPSIZE *identify size of operation and add to buffer
00001472 481
00001472 4EB9 00001A70 482 JSR EApi_Data_Dn
00001478 483
00001478 4EF9 00001804 484 JMP endIdent
0000147E 485
0000147E 486 dMOVEA *this is MOVEA
0000147E 487
0000147E 488 *add to buffer
0000147E 1AFC 0020 489 MOVE.B #' ',(A5)+
00001482 1AFC 004D 490 MOVE.B #'M',(A5)+
00001486 1AFC 004F 491 MOVE.B #'O',(A5)+
0000148A 1AFC 0056 492 MOVE.B #'V',(A5)+
0000148E 1AFC 0045 493 MOVE.B #'E',(A5)+
00001492 1AFC 0041 494 MOVE.B #'A',(A5)+
00001496 495
00001496 4EB9 00001926 496 JSR identifyMOVE_ASIZE
0000149C 497
0000149C 4EB9 000019B2 498 JSR EApi_An_Xn *Decode and Print EA.
000014A2 499
000014A2 4EF9 00001804 500 JMP endIdent
000014A8 501
000014A8 502 dMOVE *this is MOVE
000014A8 503
000014A8 504 *add to buffer
000014A8 1AFC 0020 505 MOVE.B #' ',(A5)+
000014AC 1AFC 004D 506 MOVE.B #'M',(A5)+
000014B0 1AFC 004F 507 MOVE.B #'O',(A5)+
000014B4 1AFC 0056 508 MOVE.B #'V',(A5)+
000014B8 1AFC 0045 509 MOVE.B #'E',(A5)+
000014BC 510
000014BC 4EB9 00001926 511 JSR identifyMOVE_ASIZE
000014C2 512
000014C2 4EB9 00001A2A 513 JSR EApi_Xn_Xn *Decode and Print EA.
000014C8 514
000014C8 4EF9 00001804 515 JMP endIdent
000014CE 516
000014CE 517 dRTS *this is RTS
000014CE 518
000014CE 519 *add to buffer
000014CE 1AFC 0020 520 MOVE.B #' ',(A5)+
000014D2 1AFC 0052 521 MOVE.B #'R',(A5)+
000014D6 1AFC 0054 522 MOVE.B #'T',(A5)+
000014DA 1AFC 0053 523 MOVE.B #'S',(A5)+
000014DE 524
000014DE 4EB9 00001B3A 525 JSR increaseOpPtr
000014E4 526
000014E4 4EF9 00001804 527 JMP endIdent
000014EA 528
000014EA 529 dNOP *this is NOP
000014EA 530
000014EA 531 *add to buffer
000014EA 1AFC 0020 532 MOVE.B #' ',(A5)+
000014EE 1AFC 004E 533 MOVE.B #'N',(A5)+
000014F2 1AFC 004F 534 MOVE.B #'O',(A5)+
000014F6 1AFC 0050 535 MOVE.B #'P',(A5)+
000014FA 536
000014FA 4EB9 00001B3A 537 JSR increaseOpPtr
00001500 538
00001500 4EF9 00001804 539 JMP endIdent
00001506 540
00001506 541 dORI *this is ORI
00001506 542
00001506 543 *add to buffer
00001506 1AFC 0020 544 MOVE.B #' ',(A5)+
0000150A 1AFC 004F 545 MOVE.B #'O',(A5)+
0000150E 1AFC 0052 546 MOVE.B #'R',(A5)+
00001512 1AFC 0049 547 MOVE.B #'I',(A5)+
00001516 548
00001516 4EB9 000018C6 549 JSR identifyOPSIZE *identify size of operation and add to buffer
0000151C 550
0000151C 4EB9 00001986 551 JSR EApi_Imd_Xn *Decode and Print EA.
00001522 552
00001522 4EF9 00001804 553 JMP endIdent
00001528 554
00001528 555 dCMPI *this is CMPI
00001528 556
00001528 557 *add to buffer
00001528 1AFC 0020 558 MOVE.B #' ',(A5)+
0000152C 1AFC 0043 559 MOVE.B #'C',(A5)+
00001530 1AFC 004D 560 MOVE.B #'M',(A5)+
00001534 1AFC 0050 561 MOVE.B #'P',(A5)+
00001538 1AFC 0049 562 MOVE.B #'I',(A5)+
0000153C 563
0000153C 4EB9 000018C6 564 JSR identifyOPSIZE *identify size of operation and add to buffer
00001542 565
00001542 4EB9 00001986 566 JSR EApi_Imd_Xn *Decode and Print EA.
00001548 567
00001548 4EF9 00001804 568 JMP endIdent
0000154E 569
0000154E 570 dBCLR_SA *this is BCLR_SA
0000154E 571
0000154E 572 *add to buffer
0000154E 1AFC 0020 573 MOVE.B #' ',(A5)+
00001552 1AFC 0042 574 MOVE.B #'B',(A5)+
00001556 1AFC 0043 575 MOVE.B #'C',(A5)+
0000155A 1AFC 004C 576 MOVE.B #'L',(A5)+
0000155E 1AFC 0052 577 MOVE.B #'R',(A5)+
00001562 578
00001562 4EB9 00001AFC 579 JSR EApi_Bclr_SA
00001568 580
00001568 4EF9 00001804 581 JMP endIdent
0000156E 582
0000156E 583 dBCLR_D *this is BCLR_D
0000156E 584
0000156E 585 *add to buffer
0000156E 1AFC 0020 586 MOVE.B #' ',(A5)+
00001572 1AFC 0042 587 MOVE.B #'B',(A5)+
00001576 1AFC 0043 588 MOVE.B #'C',(A5)+
0000157A 1AFC 004C 589 MOVE.B #'L',(A5)+
0000157E 1AFC 0052 590 MOVE.B #'R',(A5)+
00001582 591
00001582 4EB9 000019D8 592 JSR EApi_Dn_Xn
00001588 593
00001588 4EF9 00001804 594 JMP endIdent
0000158E 595
0000158E 596 dNEG *this is NEG
0000158E 597
0000158E 598 *add to buffer
0000158E 1AFC 0020 599 MOVE.B #' ',(A5)+
00001592 1AFC 004E 600 MOVE.B #'N',(A5)+
00001596 1AFC 0045 601 MOVE.B #'E',(A5)+
0000159A 1AFC 0047 602 MOVE.B #'G',(A5)+
0000159E 603
0000159E 4EB9 000018C6 604 JSR identifyOPSIZE *identify size of operation and add to buffer
000015A4 605
000015A4 4EB9 00001A5C 606 JSR EApi_Xn *Decode and Print EA.
000015AA 607
000015AA 4EF9 00001804 608 JMP endIdent
000015B0 609
000015B0 610 dJSR *this is JSR
000015B0 611
000015B0 612 *add to buffer
000015B0 1AFC 0020 613 MOVE.B #' ',(A5)+
000015B4 1AFC 004A 614 MOVE.B #'J',(A5)+
000015B8 1AFC 0053 615 MOVE.B #'S',(A5)+
000015BC 1AFC 0052 616 MOVE.B #'R',(A5)+
000015C0 617
000015C0 4EB9 00001A5C 618 JSR EApi_Xn *Decode and Print EA.
000015C6 619
000015C6 4EF9 00001804 620 JMP endIdent
000015CC 621
000015CC 622 dMOVEM *this is MOVEM
000015CC 623
000015CC 624 *add to buffer
000015CC 1AFC 0020 625 MOVE.B #' ',(A5)+
000015D0 1AFC 004D 626 MOVE.B #'M',(A5)+
000015D4 1AFC 004F 627 MOVE.B #'O',(A5)+
000015D8 1AFC 0056 628 MOVE.B #'V',(A5)+
000015DC 1AFC 0045 629 MOVE.B #'E',(A5)+
000015E0 1AFC 004D 630 MOVE.B #'M',(A5)+
000015E4 631
000015E4 632 *find and append size
000015E4 4EB9 00001806 633 JSR identMOVEMSIZE
000015EA 634
000015EA 4EB9 00001ADC 635 JSR EApi_Movem *Decode and Print Movem.
000015F0 636
000015F0 4EF9 00001804 637 JMP endIdent
000015F6 638
000015F6 639 dLEA *this is LEA
000015F6 640
000015F6 641 *add to buffer
000015F6 1AFC 0020 642 MOVE.B #' ',(A5)+
000015FA 1AFC 004C 643 MOVE.B #'L',(A5)+
000015FE 1AFC 0045 644 MOVE.B #'E',(A5)+
00001602 1AFC 0041 645 MOVE.B #'A',(A5)+
00001606 646
00001606 4EB9 000019B2 647 JSR EApi_An_Xn *Decode and Print EA.
0000160C 648
0000160C 4EF9 00001804 649 JMP endIdent
00001612 650
00001612 651 dSUBQ *this is SUBQ
00001612 652
00001612 653 *add to buffer
00001612 1AFC 0020 654 MOVE.B #' ',(A5)+
00001616 1AFC 0053 655 MOVE.B #'S',(A5)+
0000161A 1AFC 0055 656 MOVE.B #'U',(A5)+
0000161E 1AFC 0042 657 MOVE.B #'B',(A5)+
00001622 1AFC 0051 658 MOVE.B #'Q',(A5)+
00001626 659
00001626 4EB9 000018C6 660 JSR identifyOPSIZE *identify size of operation and add to buffer
0000162C 661
0000162C 4EB9 00001A9C 662 JSR EApi_Data_Xn *Decode and Print EA.
00001632 663
00001632 4EF9 00001804 664 JMP endIdent
00001638 665
00001638 666 dBRA *this is BRA
00001638 667
00001638 668 *add to buffer
00001638 1AFC 0020 669 MOVE.B #' ',(A5)+
0000163C 1AFC 0042 670 MOVE.B #'B',(A5)+
00001640 1AFC 0052 671 MOVE.B #'R',(A5)+
00001644 1AFC 0041 672 MOVE.B #'A',(A5)+
00001648 673
00001648 4EB9 00001AC8 674 JSR EApi_Displacement
0000164E 675
0000164E 4EF9 00001804 676 JMP endIdent
00001654 677
00001654 678 dBCS *this is BCS
00001654 679
00001654 680 *add to buffer
00001654 1AFC 0020 681 MOVE.B #' ',(A5)+
00001658 1AFC 0042 682 MOVE.B #'B',(A5)+
0000165C 1AFC 0043 683 MOVE.B #'C',(A5)+
00001660 1AFC 0053 684 MOVE.B #'S',(A5)+
00001664 685
00001664 4EB9 00001AC8 686 JSR EApi_Displacement
0000166A 687
0000166A 4EF9 00001804 688 JMP endIdent
00001670 689
00001670 690 dBGE *this is BGE
00001670 691
00001670 692 *add to buffer
00001670 1AFC 0020 693 MOVE.B #' ',(A5)+
00001674 1AFC 0042 694 MOVE.B #'B',(A5)+
00001678 1AFC 0047 695 MOVE.B #'G',(A5)+
0000167C 1AFC 0045 696 MOVE.B #'E',(A5)+
00001680 697
00001680 4EB9 00001AC8 698 JSR EApi_Displacement
00001686 699
00001686 4EF9 00001804 700 JMP endIdent
0000168C 701
0000168C 702 dBLT *this is BTL
0000168C 703
0000168C 704 *add to buffer
0000168C 1AFC 0020 705 MOVE.B #' ',(A5)+
00001690 1AFC 0042 706 MOVE.B #'B',(A5)+
00001694 1AFC 0054 707 MOVE.B #'T',(A5)+
00001698 1AFC 004C 708 MOVE.B #'L',(A5)+
0000169C 709
0000169C 4EB9 00001AC8 710 JSR EApi_Displacement
000016A2 711
000016A2 4EF9 00001804 712 JMP endIdent
000016A8 713
000016A8 714 dBVC *this is BVC
000016A8 715
000016A8 716 *add to buffer
000016A8 1AFC 0020 717 MOVE.B #' ',(A5)+
000016AC 1AFC 0042 718 MOVE.B #'B',(A5)+
000016B0 1AFC 0056 719 MOVE.B #'V',(A5)+
000016B4 1AFC 0043 720 MOVE.B #'C',(A5)+
000016B8 721
000016B8 4EB9 00001AC8 722 JSR EApi_Displacement
000016BE 723
000016BE 4EF9 00001804 724 JMP endIdent
000016C4 725
000016C4 726 dDIVS *this is DIVS
000016C4 727
000016C4 728 *add to buffer
000016C4 1AFC 0020 729 MOVE.B #' ',(A5)+
000016C8 1AFC 0044 730 MOVE.B #'D',(A5)+
000016CC 1AFC 0049 731 MOVE.B #'I',(A5)+
000016D0 1AFC 0056 732 MOVE.B #'V',(A5)+
000016D4 1AFC 0053 733 MOVE.B #'S',(A5)+
000016D8 734
000016D8 4EB9 000019D8 735 JSR EApi_Dn_Xn *Decode and Print EA.
000016DE 736
000016DE 4EF9 00001804 737 JMP endIdent
000016E4 738
000016E4 739 dOR *this is OR
000016E4 740
000016E4 741 *add to buffer
000016E4 1AFC 0020 742 MOVE.B #' ',(A5)+
000016E8 1AFC 004F 743 MOVE.B #'O',(A5)+
000016EC 1AFC 0052 744 MOVE.B #'R',(A5)+
000016F0 745
000016F0 4EB9 000018C6 746 JSR identifyOPSIZE *identify size of operation and add to buffer
000016F6 747
000016F6 4EB9 000019D8 748 JSR EApi_Dn_Xn *Decode and Print EA.
000016FC 749
000016FC 4EF9 00001804 750 JMP endIdent
00001702 751
00001702 752 dSUB *this is SUB
00001702 753
00001702 754 *add to buffer
00001702 1AFC 0020 755 MOVE.B #' ',(A5)+
00001706 1AFC 0053 756 MOVE.B #'S',(A5)+
0000170A 1AFC 0055 757 MOVE.B #'U',(A5)+
0000170E 1AFC 0042 758 MOVE.B #'B',(A5)+
00001712 759
00001712 4EB9 000018C6 760 JSR identifyOPSIZE *identify size of operation and add to buffer
00001718 761
00001718 4EB9 000019D8 762 JSR EApi_Dn_Xn *Decode and Print EA.
0000171E 763
0000171E 4EF9 00001804 764 JMP endIdent
00001724 765
00001724 766 dEOR *this is EOR
00001724 767
00001724 768 *add to buffer
00001724 1AFC 0020 769 MOVE.B #' ',(A5)+
00001728 1AFC 0045 770 MOVE.B #'E',(A5)+
0000172C 1AFC 004F 771 MOVE.B #'O',(A5)+
00001730 1AFC 0052 772 MOVE.B #'R',(A5)+
00001734 773
00001734 4EB9 000018C6 774 JSR identifyOPSIZE *identify size of operation and add to buffer
0000173A 775
0000173A 4EB9 000019FE 776 JSR EApi_Xn_Dn *Decode and Print EA.
00001740 777
00001740 4EF9 00001804 778 JMP endIdent
00001746 779
00001746 780 dCMP *this is CMP
00001746 781
00001746 782 *add to buffer
00001746 1AFC 0020 783 MOVE.B #' ',(A5)+
0000174A 1AFC 0043 784 MOVE.B #'C',(A5)+
0000174E 1AFC 004D 785 MOVE.B #'M',(A5)+
00001752 1AFC 0050 786 MOVE.B #'P',(A5)+
00001756 787
00001756 4EB9 000018C6 788 JSR identifyOPSIZE *identify size of operation and add to buffer
0000175C 789
0000175C 4EB9 000019D8 790 JSR EApi_Dn_Xn *Decode and Print EA.
00001762 791
00001762 4EF9 00001804 792 JMP endIdent
00001768 793
00001768 794 dMULS *this is MULS
00001768 795
00001768 796 *add to buffer
00001768 1AFC 0020 797 MOVE.B #' ',(A5)+
0000176C 1AFC 004D 798 MOVE.B #'M',(A5)+
00001770 1AFC 0055 799 MOVE.B #'U',(A5)+
00001774 1AFC 004C 800 MOVE.B #'L',(A5)+
00001778 1AFC 0053 801 MOVE.B #'S',(A5)+
0000177C 802
0000177C 4EB9 000019D8 803 JSR EApi_Dn_Xn *Decode and Print EA.
00001782 804
00001782 4EF9 00001804 805 JMP endIdent
00001788 806
00001788 807 dADD *this is ADD
00001788 808
00001788 809 *add to buffer
00001788 1AFC 0020 810 MOVE.B #' ',(A5)+
0000178C 1AFC 0041 811 MOVE.B #'A',(A5)+
00001790 1AFC 0044 812 MOVE.B #'D',(A5)+
00001794 1AFC 0044 813 MOVE.B #'D',(A5)+
00001798 814
00001798 4EB9 000018C6 815 JSR identifyOPSIZE *identify size of operation and add to buffer
0000179E 816
0000179E 4EB9 000019D8 817 JSR EApi_Dn_Xn *Decode and Print EA.
000017A4 818
000017A4 4EF9 00001804 819 JMP endIdent
000017AA 820
000017AA 821 dADDA *this is ADDA
000017AA 822
000017AA 823 *add to buffer
000017AA 1AFC 0020 824 MOVE.B #' ',(A5)+
000017AE 1AFC 0041 825 MOVE.B #'A',(A5)+
000017B2 1AFC 0044 826 MOVE.B #'D',(A5)+
000017B6 1AFC 0044 827 MOVE.B #'D',(A5)+
000017BA 1AFC 0041 828 MOVE.B #'A',(A5)+
000017BE 829
000017BE 4EB9 0000186A 830 JSR identADDAsize
000017C4 831
000017C4 4EB9 000019B2 832 JSR EApi_An_Xn *Decode and Print EA.
000017CA 833
000017CA 4EF9 00001804 834 JMP endIdent
000017D0 835
000017D0 836 ddata *this must be data
000017D0 837
000017D0 838 *print DATA here maybe?
000017D0 1C3C 0001 839 MOVE.B #1,D6 *set bad flag
000017D4 840
000017D4 4EB9 00001B3A 841 JSR increaseOpPtr
000017DA 842
000017DA 4EF9 00001804 843 JMP endIdent
000017E0 844
000017E0 845 dRESET *this is RESET
000017E0 846
000017E0 847 *add to buffer
000017E0 1AFC 0020 848 MOVE.B #' ',(A5)+
000017E4 1AFC 0052 849 MOVE.B #'R',(A5)+
000017E8 1AFC 0045 850 MOVE.B #'E',(A5)+
000017EC 1AFC 0053 851 MOVE.B #'S',(A5)+
000017F0 1AFC 0045 852 MOVE.B #'E',(A5)+
000017F4 1AFC 0054 853 MOVE.B #'T',(A5)+
000017F8 854
000017F8 4EB9 00001B3A 855 JSR increaseOpPtr
000017FE 856
000017FE 4EF9 00001804 857 JMP endIdent
00001804 858
00001804 859 endIdent
00001804 4E75 860 RTS
00001806 861 *********************************************************************************
00001806 862 * Method Name: identMOVEMSIZE
00001806 863 * Description: adds the size of the MOVEM operation to the buffer
00001806 864 *
00001806 865 * Preconditions: A5 Should contain the pointer to the next space in good buffer.
00001806 866 * A6 should contain the pointer to the opcode
00001806 867 *
00001806 868 * Postconditions: A5 will contain the pointer to the next space in the good buffer
00001806 869 * the size of the operation will be appended to the buffer
00001806 870 *
00001806 871 * MODIFIES: D3
00001806 872 *********************************************************************************
00001806 873 identMOVEMSIZE:
00001806 3616 874 MOVE (A6),D3 *move the full opcode back into D3
00001808 C679 00002558 875 AND.W MOVEMSIZECHK,D3
0000180E B679 00002558 876 CMP.W MOVEMSIZECHK,D3
00001814 6700 0016 877 BEQ dMOVEML
00001818 4EF9 0000181E 878 JMP dMOVEMW
0000181E 879
0000181E 880 dMOVEMW
0000181E 881 *add to buffer
0000181E 1AFC 002E 882 MOVE.B #'.',(A5)+
00001822 1AFC 0057 883 MOVE.B #'W',(A5)+
00001826 884
00001826 4EF9 0000183A 885 JMP endidentMOVEMSIZE
0000182C 886
0000182C 887 dMOVEML
0000182C 888 *add to buffer
0000182C 1AFC 002E 889 MOVE.B #'.',(A5)+
00001830 1AFC 004C 890 MOVE.B #'L',(A5)+
00001834 891
00001834 4EF9 0000183A 892 JMP endidentMOVEMSIZE
0000183A 893
0000183A 894 endidentMOVEMSIZE
0000183A 895
0000183A 4E75 896 RTS
0000183C 897 *********************************************************************************
0000183C 898 * Method Name: identDIRECTION
0000183C 899 * Description: adds the direction of the shift/rotation to the buffer
0000183C 900 *
0000183C 901 * Preconditions: A5 Should contain the pointer to the next space in good buffer.
0000183C 902 * A6 should contain the pointer to the opcode
0000183C 903 *
0000183C 904 * Postconditions: A5 will contain the pointer to the next space in the good buffer
0000183C 905 * the size of the operation will be appended to the buffer
0000183C 906 *
0000183C 907 * MODIFIES: D3
0000183C 908 *********************************************************************************
0000183C 909 identDIRECTION:
0000183C 3616 910 MOVE (A6),D3 *move the full opcode back into D3
0000183E C679 0000257C 911 AND.W DIRECTIONCHK,D3
00001844 B679 0000257C 912 CMP.W DIRECTIONCHK,D3
0000184A 6700 0012 913 BEQ dirLEFT
0000184E 4EF9 00001854 914 JMP dirRIGHT
00001854 915
00001854 916 dirRIGHT
00001854 917 *add to buffer
00001854 1AFC 0052 918 MOVE.B #'R',(A5)+
00001858 919
00001858 4EF9 00001868 920 JMP endidentDIRECTION
0000185E 921
0000185E 922 dirLEFT
0000185E 923 *add to buffer
0000185E 1AFC 004C 924 MOVE.B #'L',(A5)+
00001862 925
00001862 4EF9 00001868 926 JMP endidentDIRECTION
00001868 927
00001868 928 endidentDIRECTION
00001868 929
00001868 4E75 930 RTS
0000186A 931 *********************************************************************************
0000186A 932 * Method Name: identADDAsize
0000186A 933 * Description: adds the size of the ADDA op to the buffer
0000186A 934 *
0000186A 935 * Preconditions: A5 Should contain the pointer to the next space in good buffer.
0000186A 936 * A6 should contain the pointer to the opcode
0000186A 937 *
0000186A 938 * Postconditions: A5 will contain the pointer to the next space in the good buffer
0000186A 939 * the size of the operation will be appended to the buffer
0000186A 940 *
0000186A 941 * MODIFIES: D3
0000186A 942 * D5
0000186A 943 ************************************************,*********************************
0000186A 944 identADDAsize:
0000186A 3616 945 MOVE (A6),D3 *move the full opcode back into D3
0000186C C679 00002546 946 AND.W ADDASIZECHK,D3
00001872 B679 00002546 947 CMP.W ADDASIZECHK,D3
00001878 6700 0014 948 BEQ ADDAL
0000187C 4EF9 00001882 949 JMP ADDAW
00001882 950 ADDAW
00001882 4EB9 000018AA 951 JSR addWbuff
00001888 4EF9 0000189A 952 JMP endidentADDAsize
0000188E 953
0000188E 954 ADDAL
0000188E 4EB9 000018B8 955 JSR addLbuff
00001894 4EF9 0000189A 956 JMP endidentADDAsize
0000189A 957
0000189A 958 endidentADDAsize
0000189A 959
0000189A 4E75 960 RTS
0000189C 961
0000189C 962 *********************************************************************************
0000189C 963 * Method Name: addBbuff
0000189C 964 * Description: adds B to buff
0000189C 965 *
0000189C 966 * Preconditions: A5 Should contain the pointer to the next space in good buffer.
0000189C 967 *
0000189C 968 * Postconditions: A5 will contain the pointer to the next space in the good buffer
0000189C 969 * .B will be added to the buffer
0000189C 970 * D5 will contain the number of bytes that were last identified.
0000189C 971 *
0000189C 972 * MODIFIES: A5
0000189C 973 * D5
0000189C 974 *********************************************************************************
0000189C 975 addBbuff:
0000189C 976 *add to buffer
0000189C 1AFC 002E 977 MOVE.B #'.',(A5)+
000018A0 1AFC 0042 978 MOVE.B #'B',(A5)+
000018A4 979
000018A4 980 *Set the D5 to the number of bytes.
000018A4 1A3C 0001 981 MOVE.B #1, D5
000018A8 982
000018A8 4E75 983 RTS
000018AA 984
000018AA 985 *********************************************************************************
000018AA 986 * Method Name: addWbuff
000018AA 987 * Description: adds W to buff
000018AA 988 *
000018AA 989 * Preconditions: A5 Should contain the pointer to the next space in good buffer.
000018AA 990 *
000018AA 991 * Postconditions: A5 will contain the pointer to the next space in the good buffer
000018AA 992 * .B will be added to the buffer
000018AA 993 * D5 will contain the number of bytes that were last identified.
000018AA 994 *
000018AA 995 * MODIFIES: A5
000018AA 996 * D5