1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-14 15:45:47 +00:00

Fix use of UFA instruction in C library.

Patch out the call to FIXIFY in CC.  This subroutine uses the UFA
instruction which isn't implemented on a KS10.

Make the use of UFA an assembly time conditional in the C library.
Replace it with FIX on KS10.
This commit is contained in:
Lars Brinkhoff 2018-10-23 08:48:39 +00:00
parent be1dde5e40
commit 628a20654b
3 changed files with 35 additions and 10 deletions

View File

@ -1087,6 +1087,16 @@ respond "M IML" "\r"
respond ":PDUMP" "games; ts maze\r"
respond "*" ":kill\r"
# The old CLIB has a UFA instruction which doesn't work on a KS10.
# Patch out the call to FIXIFY.
respond "*" ":job cc\r"
respond "*" ":load c; ts cc\r"
respond "*" "55107/"
respond "FIXIFY" "jfcl\r"
respond "UNPURE" ":corblk pure,55107\r"
respond "*" ":pdump c; ts cc\r"
respond "*" ":kill\r"
# TJ6
respond "*" ":midas sysbin;_tj6;tj6\r"
expect ":KILL"

View File

@ -8,6 +8,8 @@ TITLE CRUN
.INSRT NC
.INSRT NM
IFNDEF KS10,KS10==0
.GLOBAL A,B,C,D,P,GO,.CCALL,.VCALL,.ACALL,.XCALL
PDLSIZ==20000 ; DESIRED PDL SIZE
@ -352,17 +354,23 @@ I$MES4: ASCIZ/PURIFY FAILED/
.CODE
IFE KS10,[
EXPUNGE FIX
DEFINE FIX X,Y
UFA Y,[233000000000']
TLZ X,777000'
TERMIN
]
IENTRY FIXIFY
JUMPL A,FIXL
FADR A,[.499999]
UFA A,[233000000000']
TLZ B,777000'
FIX B,A
JRST @0
FIXL: MOVN A,A
FADR A,[.499999]
UFA A,[233000000000']
TLZ B,777000'
FIX B,A
MOVN B,B
JRST @0

View File

@ -8,6 +8,8 @@ TITLE CFLOAT
.INSRT NC
.INSRT NM
IFNDEF KS10,KS10==0
; CONTAINS: LOG, EXP, COS, SIN, ATAN, SQRT, DTRUNCATE, DROUND, DABS
CENTRY LOG,[V]
@ -183,24 +185,29 @@ ATAN3: MOVE A,B
SQRT2: 1.41421356
PI2: 3.1415926535/2
IFE KS10,[
EXPUNGE FIX
DEFINE FIX X,Y
UFA Y,[233000000000']
TLZ X,777000'
TERMIN
]
CENTRY DROUND,[V]
MOVE A,V
FADR A,[.499999]
JUMPL A,ROUND1
UFA A,[233000000000]
TLZ B,777000
FIX B,A
GO ROUND2
ROUND1: UFA A,[233000000000]
TLO B,777000
ROUND1: FIX B,A
ROUND2: MOVE A,B
RETURN
CENTRY DTRUNCATE,[V]
MOVE A,V
UFA A,[233000000000]
TLZ B,777000
FIX B,A
MOVE A,B
RETURN