mirror of
https://github.com/DoctorWkt/pdp7-unix.git
synced 2026-01-26 12:12:37 +00:00
Fixed up the llss instruction in a7out.
This commit is contained in:
@@ -52,6 +52,7 @@ directory node (dnode) format
|
||||
d.i i-number of file
|
||||
d.name four words, space padded
|
||||
d.uniq i.uniq value of file
|
||||
two unused words, so 8 words/entry, 8 entries/block
|
||||
```
|
||||
|
||||
i numbers
|
||||
|
||||
@@ -437,7 +437,7 @@ sub opr {
|
||||
$skip = 1
|
||||
if ( ( $i == 017 )
|
||||
&& ( $LINK == 0 )
|
||||
&& ( $AC != 0 )
|
||||
&& ( $AC < SIGN )
|
||||
&& ( $AC != 0 ) ); # szl & sna & spa
|
||||
|
||||
# Clear operations
|
||||
@@ -558,6 +558,8 @@ sub eae {
|
||||
return;
|
||||
}
|
||||
if ( $maskedinstr == 0660600 ) { # llss: long left shift, signed
|
||||
# Set the link to be the AC sign bit
|
||||
$LINK= ($AC & SIGN) ? LINKMASK : 0;
|
||||
dprintf( "llss AC %06o step %d\n", $AC, $step );
|
||||
foreach my $i ( 1 .. $step ) {
|
||||
my $MQmsb = ( $MQ & SIGN ) ? 1 : 0;
|
||||
@@ -572,7 +574,7 @@ sub eae {
|
||||
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?
|
||||
$MQ = ( ( $MQ << 1 ) | ( ($LINK) ? 1 : 0 ) ) & MAXINT;
|
||||
}
|
||||
$PC++;
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user