… | |
… | |
23 | my $VT102 = 1; |
23 | my $VT102 = 1; |
24 | my $VT131 = 0; |
24 | my $VT131 = 0; |
25 | my $AVO = 1; |
25 | my $AVO = 1; |
26 | my $KBD = 1; |
26 | my $KBD = 1; |
27 | |
27 | |
28 | if ($ARGV[0] =~ /^-?-vt100$/) { |
28 | shift, ($VT102 = 0), ($AVO = 0) if $ARGV[0] =~ /^-?-vt100$/; |
29 | shift; $VT102 = 0; $AVO = 0; |
29 | shift, ($VT102 = 0) if $ARGV[0] =~ /^-?-vt100\+avo$/; |
30 | } |
30 | shift if $ARGV[0] =~ /^-?-vt102$/; |
31 | |
31 | shift, ($VT131 = 1) if $ARGV[0] =~ /^-?-vt131$/; |
32 | if ($ARGV[0] =~ /^-?-vt100\+avo$/) { |
|
|
33 | shift; $VT102 = 0; $AVO = 1; |
|
|
34 | } |
|
|
35 | |
|
|
36 | if ($ARGV[0] =~ /^-?-vt102$/) { |
|
|
37 | shift; # default |
|
|
38 | } |
|
|
39 | |
|
|
40 | if ($ARGV[0] =~ /^-?-vt131$/) { |
|
|
41 | shift; $VT131 = 1; |
|
|
42 | } |
|
|
43 | |
32 | |
44 | if ($ARGV[0] =~ /^-/) { |
33 | if ($ARGV[0] =~ /^-/) { |
45 | die <<EOF; |
34 | die <<EOF; |
46 | |
35 | |
47 | VT102, A VT100/101/102/131 SIMULATOR |
36 | VT102, A VT100/101/102/131 SIMULATOR |
… | |
… | |
750 | |
739 | |
751 | $insn .= "$op;\n"; |
740 | $insn .= "$op;\n"; |
752 | } |
741 | } |
753 | |
742 | |
754 | |
743 | |
755 | $insn .= "$pc"; |
744 | $insn .= $pc; |
756 | $insn =~ s/\x00.*$//s; |
745 | $insn =~ s/\x00.*$//s; |
757 | |
746 | |
758 | eval "use integer; sub { $insn }" or die "$insn: $@" |
747 | eval "use integer; sub { $insn }" or die "$insn: $@" |
759 | })->(); |
748 | })->(); |
760 | |
749 | |
… | |
… | |
841 | # vt100 @ 0x0000+0x0800 23-032E2 |
830 | # vt100 @ 0x0000+0x0800 23-032E2 |
842 | # vt100 @ 0x0800+0x0800 23-061E2 |
831 | # vt100 @ 0x0800+0x0800 23-061E2 |
843 | # vt100 @ 0x1000+0x0800 23-033E2 |
832 | # vt100 @ 0x1000+0x0800 23-033E2 |
844 | # vt100 @ 0x1800+0x0800 23-034E2 |
833 | # vt100 @ 0x1800+0x0800 23-034E2 |
845 | # |
834 | # |
846 | # vt102 @ 0x0000+0x8000 23-226E4 |
835 | # vt102 @ 0x0000+0x2000 23-226E4 |
847 | # vt102 @ 0x8000+0x8000 23-225E4 |
836 | # vt102 @ 0x8000+0x2000 23-225E4 |
848 | # |
837 | # |
849 | # vt131 @ 0xa000+0x0800 23-280E2 |
838 | # vt131 @ 0xa000+0x0800 23-280E2 |
850 | # |
839 | # |
851 | |
840 | |
852 | __DATA__ |
841 | __DATA__ |