PDP10: Fixed last digit error in CVTBDT instruction as discussed in #347
This commit is contained in:
parent
afad8ad374
commit
d68c021d1f
1 changed files with 7 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
|||
/* pdp10_xtnd.c: PDP-10 extended instruction simulator
|
||||
|
||||
Copyright (c) 1993-2008, Robert M Supnik
|
||||
Copyright (c) 1993-2016, Robert M Supnik
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
|
@ -23,6 +23,7 @@
|
|||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from Robert M Supnik.
|
||||
|
||||
05-Nov-16 RMS Fixed last digit error in CVTBDT (Pascal Parent)
|
||||
12-May-01 RMS Fixed compiler warning in xlate
|
||||
|
||||
Instructions handled in this module:
|
||||
|
@ -301,12 +302,12 @@ switch (xop) { /* case on opcode */
|
|||
rs[0] = rs[0] - pwrs10[i][0] - (rs[1] < pwrs10[i][1]);
|
||||
rs[1] = (rs[1] - pwrs10[i][1]) & MMASK;
|
||||
}
|
||||
if (xop == XT_CVTBDO)
|
||||
if (xop == XT_CVTBDO) /* offset? */
|
||||
digit = (digit + xoff) & DMASK;
|
||||
else {
|
||||
f1 = Read (e1 + (int32) digit, MM_OPND);
|
||||
if ((i == 1) && (AC(p3) & XT_LFLG))
|
||||
f1 = f1 >> 18;
|
||||
else { /* translate */
|
||||
f1 = Read (e1 + (int32) digit, MM_OPND);/* get xlation */
|
||||
if ((i == 1) && (AC(p3) & XT_MFLG)) /* last digit, minus? */
|
||||
f1 = f1 >> 18; /* use left */
|
||||
digit = f1 & RMASK;
|
||||
}
|
||||
incstorebp (digit, p4, pflgs); /* store digit */
|
||||
|
|
Loading…
Add table
Reference in a new issue