1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

111 lines
8.7 KiB
Plaintext

BEGIN %
REAL COM ; % NUMBER OF RECORDS IN ERROR FILE.
SAVE ARRAY A [0:9], B [0:50] ; %
FILE OUT PRINT 16 (2,15) ; %
INTEGER I,N,P,Y,Z ; %
IF COM = 0 THEN COM := 999; %
BEGIN % CREATE FILE
FILE IN CARD DISK SERIAL "ERROR""INPUT" (2,10,150); %
FILE OUT CREATE DISK SERIAL [20: %
(19+COM)DIV 20 + 20] "ALGOL""ERRORS" (2,15,30,SAVE 365) ; %
BOOLEAN STREAM PROCEDURE CMPR(A,B) ; %
BEGIN SI~A;DI~B;IF 4SC{DC THEN TALLY~1;CMPR~TALLY;END;%
BOOLEAN PROCEDURE CMP(A,B);ARRAY A,B[0];CMP~CMPR(A,B);%
PROCEDURE HV(A);ARRAY A[0];A[0]~REAL(<1414141414141414>);%
FILE OUT FIL DISK SERIAL [20:COM]"TEMPFIL"" "(2,10,30,SAVE 2) ; %
FILL B[*] WITH "SYNTAX E","RROR. PL","EASE TAK","E TO PRO","GRAMMING",
" ASSISTA","NT. "," "," "," ",
" "," "," "," "," ";
FOR I := 0 STEP 1 UNTIL COM DO WRITE(CREATE,15,B[*]) ; %
LOCK (CREATE) ; %
SORT (FIL,CARD,3,HV,CMP,10,6000,120000) ; %
END ; % CREATE
BEGIN % FIX FILE
FILE IN CARD DISK SERIAL "TEMPFIL"" "(2,10,30) ; %
FILE OUT ERRMDF DISK RANDOM "ALGOL""ERRORS" (1,15,30) ; %
LABEL L,X,DEL ; %
REAL STREAM PROCEDURE ADRS (A) ; %
BEGIN %
SI ~ A ; %
ADRS ~ SI ; %
END ADRS ; %
STREAM PROCEDURE EDIT (A,V,N) ; %
VALUE V ; %
BEGIN %
LABEL X ; %
LOCAL L; %
SI ~ A ; %
SI ~ SI + 29 ; %
DI ~ V ; %
TALLY ~ 51; %
50(IF SC = " " THEN BEGIN SI ~ SI + 1; TALLY ~ TALLY + 63 END ELSE %
JUMP OUT); %
L := TALLY; %
DS := L CHR; %
V ~ DI ; % %
SI ~ V ; %
DI ~ DI - 8 ; %
X : %
IF SC = " " THEN BEGIN %
SI ~ SI - 1 ; %
GO X ; %
END ; %
SI ~ SI + 2 ; %
V ~ SI ; %
SI ~ LOC V ; %
DI ~ N ; %
DS ~ WDS ; %
END EDIT ; %
STREAM PROCEDURE FINS (V) ; %
VALUE V ; %
BEGIN %
DI ~ V ; %
SI~V ;SI~SI-2;
IF SC="." THEN ELSE BEGIN DI~DI-1 ; DS~LIT "." END;
END FINS ; %
FORMAT ERR("ERROR NUMBER"I5" IS:");
STREAM PROCEDURE CLER (V) ; %
VALUE V ; %
BEGIN %
DI ~ V ; %
DI ~ DI + 48 ; %
V ~ DI ; %
SI ~ V ; %
DS ~ 8 LIT " " ; %
DS ~ 8 WDS ; %
END CLER ; %
BOOLEAN STREAM PROCEDURE ONEP (A,Z) ; %
BEGIN %
SI ~ A ; %
SI ~ SI + 3 ; %
IF SC = "1" THEN BEGIN %
TALLY ~ 1 ; %
ONEP ~ TALLY ; %
SI ~ SI - 3 ; %
DI ~ Z ; %
DS ~ 3 OCT ; %
END ; %
END ONEP ; %
N ~ ADRS (B) ; %
READ (CARD,10,A[*])[L] ; %
IF ONEP (A,Z) THEN ; %
FOR I := 0 STEP 1 UNTIL COM DO BEGIN %
Y ~ Z ; %
P ~ N ; %
CLER (N) ; %
DO BEGIN %
EDIT (A,P,P) ; %
READ (CARD,10,A[*])[L] ; %
END UNTIL ONEP (A,Z) ; %
IF FALSE THEN L: I ~ COM + 1 ; %
FINS (P) ; %
WRITE (PRINT,ERR,Y) ; %
WRITE (ERRMDF[Y],15,B[*]) ; %
WRITE(PRINT[DBL],15,B[*]) ; %
END ; %
CLOSE (CARD,PURGE) ; %
LOCK (ERRMDF) ; %
DEL: %
END ; % FIXING FILE
END .