Merge branch 'master' of https://github.com/DoctorWkt/pdp7-unix
This commit is contained in:
+4
-4
@@ -11,7 +11,7 @@ jmp start
|
|||||||
cma
|
cma
|
||||||
tad lastv
|
tad lastv
|
||||||
dac lastv
|
dac lastv
|
||||||
imq
|
lmq
|
||||||
lac sp
|
lac sp
|
||||||
tad d1
|
tad d1
|
||||||
dac sp i
|
dac sp i
|
||||||
@@ -82,10 +82,10 @@ getc: 0
|
|||||||
jmp getc i
|
jmp getc i
|
||||||
|
|
||||||
putc: 0
|
putc: 0
|
||||||
and 0777
|
and o777
|
||||||
sna
|
sna
|
||||||
jmp putc i
|
jmp putc i
|
||||||
imq
|
lmq
|
||||||
lac oflg
|
lac oflg
|
||||||
sza
|
sza
|
||||||
jmp 1f
|
jmp 1f
|
||||||
@@ -132,7 +132,7 @@ flush: 0
|
|||||||
lac obufp
|
lac obufp
|
||||||
dac 1f
|
dac 1f
|
||||||
lac .fout
|
lac .fout
|
||||||
sys write; 1: :.; ..
|
sys write; 1: ..; ..
|
||||||
lac obufp
|
lac obufp
|
||||||
dac cobufp
|
dac cobufp
|
||||||
dzm oflg
|
dzm oflg
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ fetch:
|
|||||||
lmq
|
lmq
|
||||||
and o17777
|
and o17777
|
||||||
dac addr
|
dac addr
|
||||||
ecla lls 4
|
cla; lls 4 " XXX replaced for now: ecla lls 4
|
||||||
tad .+3
|
tad .+3
|
||||||
dac .+1
|
dac .+1
|
||||||
jmp .. i
|
jmp .. i
|
||||||
|
|||||||
+5
-5
@@ -11,7 +11,7 @@ jmp start
|
|||||||
cma
|
cma
|
||||||
tad lastv
|
tad lastv
|
||||||
dac lastv
|
dac lastv
|
||||||
imq
|
lmq
|
||||||
lac sp
|
lac sp
|
||||||
tad d1
|
tad d1
|
||||||
dac sp i
|
dac sp i
|
||||||
@@ -82,10 +82,10 @@ getc: 0
|
|||||||
jmp getc i
|
jmp getc i
|
||||||
|
|
||||||
putc: 0
|
putc: 0
|
||||||
and 0777
|
and o777
|
||||||
sna
|
sna
|
||||||
jmp putc i
|
jmp putc i
|
||||||
imq
|
lmq
|
||||||
lac oflg
|
lac oflg
|
||||||
sza
|
sza
|
||||||
jmp 1f
|
jmp 1f
|
||||||
@@ -115,7 +115,7 @@ stop:
|
|||||||
jms flush
|
jms flush
|
||||||
las
|
las
|
||||||
sma
|
sma
|
||||||
sys save
|
sys exit " XXX replaced for now: sys save
|
||||||
sys exit
|
sys exit
|
||||||
|
|
||||||
flush: 0
|
flush: 0
|
||||||
@@ -132,7 +132,7 @@ flush: 0
|
|||||||
lac obufp
|
lac obufp
|
||||||
dac 1f
|
dac 1f
|
||||||
lac .fout
|
lac .fout
|
||||||
sys write; 1: :.; ..
|
sys write; 1: ..; ..
|
||||||
lac obufp
|
lac obufp
|
||||||
dac cobufp
|
dac cobufp
|
||||||
dzm oflg
|
dzm oflg
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
main $(
|
||||||
|
write('He');
|
||||||
|
write('ll');
|
||||||
|
write('o,');
|
||||||
|
write(' W');
|
||||||
|
write('or');
|
||||||
|
write('ld');
|
||||||
|
write('!*n');
|
||||||
|
$)
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
.main: .+1
|
||||||
|
s 2
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
36965
|
||||||
|
n 3 " etcop call
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
55404
|
||||||
|
n 3 " etcop call
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
56876
|
||||||
|
n 3 " etcop call
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
16471
|
||||||
|
n 3 " etcop call
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
56946
|
||||||
|
n 3 " etcop call
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
55396
|
||||||
|
n 3 " etcop call
|
||||||
|
x .write
|
||||||
|
n 2 " etcop mark
|
||||||
|
n 5 " etcop litrl
|
||||||
|
16906
|
||||||
|
n 3 " etcop call
|
||||||
|
x .flush
|
||||||
|
n 1 " etcop mcall
|
||||||
|
n 7 " etcop retrn
|
||||||
+10
@@ -543,6 +543,16 @@ sub eae {
|
|||||||
$PC++;
|
$PC++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if ( $maskedinstr == 0640600 ) { # lls: long left shift
|
||||||
|
dprintf( "lls AC %06o step %d\n", $AC, $step );
|
||||||
|
foreach my $i ( 1 .. $step ) {
|
||||||
|
my $MQmsb = ( $MQ & SIGN ) ? 1 : 0;
|
||||||
|
$AC = ( ( $AC << 1 ) | $MQmsb ) & MAXINT;
|
||||||
|
$MQ = ( ( $MQ << 1 ) | ( ($LINK) ? 1 : 0 ) ) & MAXINT; # XXX how to handle unsigned?
|
||||||
|
}
|
||||||
|
$PC++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ( $maskedinstr == 0640700 ) { # als: AC left shift
|
if ( $maskedinstr == 0640700 ) { # als: AC left shift
|
||||||
dprintf( "als AC %06o step %d\n", $AC, $step );
|
dprintf( "als AC %06o step %d\n", $AC, $step );
|
||||||
$AC = ( $AC << $step ) & MAXINT;
|
$AC = ( $AC << $step ) & MAXINT;
|
||||||
|
|||||||
Reference in New Issue
Block a user