mirror of
https://github.com/PDP-10/its.git
synced 2026-02-18 13:37:10 +00:00
Update PDP-10 info file with KS10 information.
This commit is contained in:
@@ -58,10 +58,10 @@ PDP-10 Node: Intro, Up: Top, Previous: Top, Next: Memory
|
||||
|
||||
Introduction to PDP-10 Assembly Language Programming
|
||||
|
||||
The PDP-10 is a general purpose stored program computer. There are four
|
||||
The PDP-10 is a general purpose stored program computer. There are five
|
||||
different processors (computers) in the PDP-10 family (the PDP-6, the KA10,
|
||||
the KI10 and the KL10). This file discusses primarily the KA-10 version,
|
||||
which is what most of the ITS systems are.
|
||||
the KI10, the KL10, and the KS10). This file discusses primarily the KA-10
|
||||
version, which is what most of the ITS systems are.
|
||||
|
||||
There are three principal aspects of assembly language programming:
|
||||
the machine instructions, the assembler, and the operating system.
|
||||
@@ -835,16 +835,16 @@ DIVB C(AC) <- C(AC AC+1) / C(E); C(AC+1) <- remainder;
|
||||
|
||||
PDP-10 Node: KL-Only, Previous: Fixed Point, Up: Top, Next: Floating Point
|
||||
|
||||
This node describes some instructions that only KL-10's have. This
|
||||
means that the only ITS machine which has them is MC. You should
|
||||
probably not use them even if you expect to run on MC, so that your
|
||||
program can be moved.
|
||||
This node describes some instructions that only KL-10s and KS10s
|
||||
have. Before the arrival of the KS10, the only ITS machine which had
|
||||
them was MC. You should probably not use them even if you expect to
|
||||
run on MC or a KS10, so that your program can be moved.
|
||||
|
||||
Double word Move instructions (KI10 and KL10)
|
||||
Double word Move instructions (KI10, KL10, and KS10)
|
||||
|
||||
There are four double word move instructions. These are suitable for
|
||||
manipulating KI10 and KL10 double precision floating point numbers,
|
||||
and for KL10 double precision integers.
|
||||
manipulating KI10, KL10, and KS10 double precision floating point
|
||||
numbers, and for KL10/KS10 double precision integers.
|
||||
|
||||
DMOVE C(AC AC+1) <- C(E E+1)
|
||||
DMOVEM C(E E+1) <- C(AC AC+1)
|
||||
@@ -857,7 +857,7 @@ precision floating point numbers!
|
||||
If a program is written that may be have to be run on a KA10, the use
|
||||
of all double word instructions should be avoided.
|
||||
|
||||
Double Precision Integer Arithmetic (KL10 only)
|
||||
Double Precision Integer Arithmetic (KL10 and KS10 only)
|
||||
|
||||
There are four instructions for double precision integer arithmetic.
|
||||
None of these instructions have any modifier: they all operate on
|
||||
@@ -911,16 +911,16 @@ word with a zero fraction and non-zero exponent can produce extreme
|
||||
loss of precision if used as an operand in a floating point addition
|
||||
or subtraction.
|
||||
|
||||
In KI10 (and KL10) double precision floating point, a second word is
|
||||
In KI10, KL10, and KS10 double precision floating point, a second word is
|
||||
included which contains in bits 1:35 an additional 35 fraction bits.
|
||||
The additional fraction bits do not significantly affect the range of
|
||||
representable numbers, rather they extend the precision.
|
||||
|
||||
The KA10 lacks double precision floating point hardware, however
|
||||
there are several instructions by which software may implement double
|
||||
The KA10 lacks double precision floating point hardware, however there
|
||||
are several instructions by which software may implement double
|
||||
precision. These instructions are DFN, UFA, FADL, FSBL, FMPL, and
|
||||
FDVL. Users of the KL10 are strongly advised to avoid using these
|
||||
intructions.
|
||||
FDVL. Users of the KL10 and KS10 are strongly advised to avoid using
|
||||
these intructions.
|
||||
|
||||
In the PDP-6 floating pointing is somewhat different. Consult a wizard.
|
||||
|
||||
@@ -952,7 +952,7 @@ Other floating point instructions:
|
||||
|
||||
FSC (Floating SCale) will add E to the exponent of the number in AC
|
||||
and normalize the result. One use of FSC is to convert an integer in
|
||||
AC to floating point (but FLTR, available in the KI and KL is better)
|
||||
AC to floating point (but FLTR, available in the KI, KL, and KS is better)
|
||||
To use FSC to float an integer, set E to 233 (excess 200 and shift
|
||||
the binary point 27 bits). The integer being floated must not have
|
||||
more than 27 significant bits. FSC will set AROV and FOV if the
|
||||
@@ -1131,11 +1131,11 @@ fetched. The POS field is changed by subtracting the size field from
|
||||
it. If the result of the subtraction is greater than or equal to
|
||||
zero, store the difference in the POS field. If the difference is
|
||||
negative, add 1 to the Y field (in the KA10 and PDP-6 if Y contains
|
||||
777777 then this will carry into the X field; in the KI10 and KL10 the
|
||||
carry out is suppressed) and set POS field to 44-SIZE (44 is octal).
|
||||
The effect of this is to modify the byte pointer to address the next
|
||||
byte (of the same size) that follows the byte addressed by the
|
||||
original pointer.
|
||||
777777 then this will carry into the X field; in the KI10, KL10, and
|
||||
KS10 the carry out is suppressed) and set POS field to 44-SIZE (44 is
|
||||
octal). The effect of this is to modify the byte pointer to address
|
||||
the next byte (of the same size) that follows the byte addressed by
|
||||
the original pointer.
|
||||
|
||||
ILDB - Increment and Load Byte. Increment the byte pointer contained
|
||||
at the effective address. Then perform a LDB function using
|
||||
Reference in New Issue
Block a user