1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-03 07:20:35 +00:00
Files
PDP-10.its/src/spcwar/arith.1
Lars Brinkhoff 4d32246eea Spacewar! game.
Build for both standalone and timesharing.
2018-02-19 08:21:59 -08:00

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