mirror of
https://github.com/PDP-10/its.git
synced 2026-02-03 07:20:35 +00:00
90 lines
2.0 KiB
Groff
90 lines
2.0 KiB
Groff
|
|
SUBTTL Arithmentic Mode Conversion Macros
|
|
|
|
;SPCWAR uses three modes of arithmetic - integers (fixed), floating-point, and
|
|
;fractionals.
|
|
;
|
|
;Integer and floating-point numbers are the standard hardware representations.
|
|
;
|
|
;A fractional number is represented as an integer with a conceptual binary
|
|
;point (ala FIXED BINARY in PL/1). The binary point is to the left of bit
|
|
;2.9 of the value. That is, the left half of the word is the integer part,
|
|
;and the right half is the fraction.
|
|
|
|
|
|
;FLOAT AC
|
|
; Function:
|
|
; Converts an integer to a floating point value. The integer must be less than
|
|
; 27. bits.
|
|
; Inputs:
|
|
; AC: The accumulator containing the number. The result will be in placed here.
|
|
|
|
DEFINE FLOAT AC
|
|
FSC AC,233
|
|
IFDEF $PDP6, FADR AC,[0.0] ;PDP-6 FSC does not normalize.
|
|
TERMIN
|
|
|
|
|
|
;FIX AC
|
|
; Function:
|
|
; Convert a floating point number (positive or negative) to an integer.
|
|
; Inputs:
|
|
; AC: The accumulator containing the floating value.
|
|
; Outputs:
|
|
; AC+1: The result is placed in this accumulator. The contents of AC are lost.
|
|
|
|
DEFINE FIX AC
|
|
MULI AC,400
|
|
TSC AC,AC
|
|
ASH AC+1,-200-35.(AC)
|
|
TERMIN
|
|
|
|
|
|
;FIXP AC
|
|
; Function:
|
|
; This macro is identical to FIX. The only difference is that the value too convert
|
|
; must be positive.
|
|
|
|
DEFINE FIXP AC
|
|
MULI AC,400
|
|
ASH AC+1,-200-35.(AC)
|
|
TERMIN
|
|
|
|
|
|
;FRACT AC
|
|
; Function:
|
|
; Convert a floating-point number to a fractional value. The input may have any sign.
|
|
; The calling sequence and results are identical to FIX above.
|
|
|
|
DEFINE FRACT AC
|
|
MULI AC,400
|
|
TSC AC,AC
|
|
ASH AC+1,-200-17.(AC)
|
|
TERMIN
|
|
|
|
|
|
;FRACTP AC
|
|
; Function:
|
|
; This macro is identical to FRACT above, but the input must be positive.
|
|
|
|
DEFINE FRACTP AC
|
|
MULI AC,400
|
|
ASH AC+1,-200,-17.(AC)
|
|
TERMIN
|
|
|
|
|
|
;FRCSCL AC,SCALE
|
|
; Function:
|
|
; Convert a floating-point number to a fractional value with an arbitrary binary point.
|
|
; Inputs:
|
|
; AC: See FIX above.
|
|
; SCALE: The result will have SCALE bits of fraction in its representation.
|
|
; Outputs:
|
|
; See FIX above.
|
|
|
|
DEFINE FRCSCL AC,SCALE
|
|
MULI AC,400
|
|
TSC AC,AC
|
|
ASH AC+1,-200-35.+SCALE(AC)
|
|
TERMIN
|