'0E' => 'CLI',
'0F' => 'SEI',
'19' => 'DAA',
+ '1B' => 'ABA',
'30' => 'TSX',
'31' => 'INS',
'32' => 'PULA',
'37' => 'PSHB',
'3C' => 'PSHX',
'38' => 'PULX',
+ '3A' => 'ABX',
'3B' => 'RTI',
'3E' => 'WAI',
'43' => 'COMA',
# '10' => 'SBA',
+my %twobytefirst = ( '18' => '1' );
+
+my %twobytesecond = ( '18 38' => 'PULY',
+ '18 3A' => 'ABY',
+ '18 3C' => 'PSHY');
+
LINE: while (<>) {
# if blank line, print blank line
return;
}
- # FIXME: parse instruction
- #if (defined($transtable{$instruction})) {
- # print "\t$transtable{$instruction}";
-# if (defined($comment)) { print "; $comment"; }
-# print "\n";
-# return;
-# }
-
-# chomp;
-# $l = length;
-# if ($l == 42) {
-# print "$_\n";
-# next;
-# } elsif ($l != 33) {
-# print "$_\n";
-# next;
-# } else {
-#
-# $addr = substr($_,0,4);
-# $inst = substr($_,27,3);
-# $val = substr($_,31,2);
-#
-# #print "$val\n";
-# $daddr = (hex $addr) + 2 + convert($val);
-#
-#
-# if (defined $commands{$inst}) {
-# print "$_\t\t;";
-# printf "%4X", $daddr;
-# #print " $addr $inst $val\n";
-# print "\n";
-# }
-# }
-
+ if (defined $twobytefirst{$instruction}) {
+ $thing = substr($line,5,5);
+ if (defined $twobytesecond{$thing}) {
+ print "\t" . $twobytesecond{$thing};
+ $line =~ /$twobytesecond{$thing}(.*)$/i;
+ print "$1\n";
+ return;
+ }
+ }
+
if ($line =~ /^([A-F0-9]{4}) ((([A-F0-9]{2}) )*[A-F0-9]{2})/) {
@_=split(' ',$2);
print "\tFCB\t\$".join(', $',@_)."\n";