74200 #include "rundecs.h"
74210     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
74220 (**)
74230 (**)
74240 FUNCTION SUBFIXED(SIGN, BEFORE, POINT, AFTER  : INTEGER; VAR EXP: INTEGER; EXPNEEDED: BOOLEAN;
74250                 X: REALTEGER; R: BOOLEAN; VAR S: OBJECTP; START: INTEGER): BOOLEAN; EXTERN;
74260 PROCEDURE ERRORFILL(VAR S: OBJECTP; LENGTH: INTEGER); EXTERN;
74270 (**)
74280 (**)
74290 FUNCTION FIXED(XMODE: INTEGER; VAL: REALTEGER; WIDTH, AFTER: INTEGER): OBJECTP;
74300   VAR
74310     S: OBJECTP;
74320     SIGN, ABSWIDTH, BEFORE, POINT, E: INTEGER;
74330     OK: BOOLEAN;
74340   BEGIN
74350     ABSWIDTH := ABS(WIDTH);
74360     SIGN := ORD((WIDTH>0) OR (VAL.INT<0));
74370     IF ABSWIDTH-AFTER=1 THEN
74380       IF (WIDTH<0) AND (VAL.INT<0) THEN AFTER := AFTER-1;
74390     S := NIL;
74400     REPEAT
74410       POINT := ORD(AFTER>0);
74420       BEFORE := ABSWIDTH-SIGN-POINT-AFTER-ORD(WIDTH=0); (*-VE FOR WIDTH=0*)
74430       IF (WIDTH<>0) AND (BEFORE<0) THEN AFTER := -1; (*WILL CAUSE SUBFIXED TO FAIL*)
74440       OK := SUBFIXED(SIGN, BEFORE, POINT, AFTER, E, FALSE, VAL, XMODE=2, S, 1);
74450       AFTER := AFTER-1
74460     UNTIL OK OR (AFTER<0);
74470     IF NOT OK THEN ERRORFILL(S, ABSWIDTH+ORD(WIDTH=0));
74480     FIXED := S;
74490   END;
74500 (**)
74510 (**)
74520 (*-02()
74530 BEGIN (*OF A68*)
74540 END; (*OF A68*)
74550 ()-02*)
74560 (*+01()
74570 BEGIN (*OF MAIN PROGRAM*)
74580 END (* OF EVERYTHING *).
74590 ()+01*)
