1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-01-11 23:42:42 +00:00

Prepare for CUBE Library files.

Move and rename earlier transcriptions of files from the CUBE Library so
that they will underlay the the respective files extracted from the
CUBE-13 tapes and appear as versioned history of the extracted files.
This commit is contained in:
Paul Kimpel 2018-05-26 15:42:06 -07:00
parent ed7e9e1efc
commit 85679ca58d
11 changed files with 100 additions and 478 deletions

View File

@ -0,0 +1 @@
IF T = "%" THEN BEGIN WIN ~ 10; GO TO L; END; 00020650

View File

@ -21,14 +21,15 @@ source to function as a primitive "pretty print" formatter. It preserves
comments in the input, but of course cannot reinsert comments that were
stripped out by KRUNCH.
Input can be from a card deck or a "0CRDIMG" library tape. Output can be
to a new punched card deck, another "0CRDIMG" tape, or the line printer.
The reformatted program is resequenced 100+100. The program reads a
parameter card in free-field format with two integers that define the
modes of input and output. The values of these integers are defined in a
comment at the beginning of the source. A sample run deck to read the
original program from cards and output to the line printer would be
(note the trailing comma on the parameter card):
Input can be from a card deck or a "0CRDIMG" library tape (unblocked
card images). Output can be to a new punched card deck, another
"0CRDIMG" tape, or the line printer. The reformatted program is
resequenced 100+100. The program reads a parameter card in free-field
format with two integers that define the modes of input and output. The
values of these integers are defined in a comment at the beginning of
the source. A sample run deck to read the original program from cards
and output to the line printer would be (note the trailing comma on the
parameter card):
?EXECUTE UNKRNCH/UTILITY
?DATA CARD
@ -38,26 +39,40 @@ original program from cards and output to the line printer would be
: :
?END
These programs appear to have been written by someone at Burroughs. They
were donated by Burroughs to the CUBE (user association) library in
1968. I encountered them at the University of Delaware in 1970 and saved
compile listings of them. The source files below were transcribed from
those listing.
compile listings of them.
The source files below were transcribed from those listings before the
CUBE Library tapes became available to this project in May 2018. The
transcriptions have now been renamed and moved under the respective
files extracted from the CUBEB13 tape so that they will appear in the
versioned history of those files.
KRUNCH.UTILITY.alg_m
Algol source for the KRUNCH utility.
Transcribed source for the KRUNCH program. Moved to the versioned
history of /CUBE-Library-13/Files/KRUNCH-V0104AA.alg in this
repository.
KRUNCH-As-krunched.card
Card deck resulting from running the source for KRUNCH through
KRUNCH itself.
KRUNCH.PATCH.alg
Patch for KRUNCH containing the one-line difference between the
version on the CUBEB13 tape and the listing of the program obtained
at U.Delaware in 1970. This appears to recognize "%" comments and
drop them from the crunched output.
KRUNCH-As-Krunched.card
Card deck resulting from running the original transcribed source for
KRUNCH through KRUNCH itself.
KRUNCH-Compile.lst
Algol compile listing for KRUNCH generated using the retro-B5500
emulator running Mark XIII software.
UNKRNCH.UTILITY.alg_m
Algol source for the UNKRNCH utility.
Transcribed source for the UNKRNCH program. Moved to the versioned
history of /CUBE-Library-13/Files/UNKRNCH-V0107AA.alg in this
repository.
UNKRNCH-Compile-Run.lst
Algol file listing for UNKRNCH generated using the retro-B5500
@ -65,7 +80,11 @@ UNKRNCH-Compile-Run.lst
UNKRNCH that read the KRUNCH-As-krunched.card file and output the
reformatted source to the line printer.
Paul Kimpel
May 2016
__________
2016-05-30 Paul Kimpel
Commit original transcription.
2018-05-26 Paul Kimpel
Rename and move transcribed sources under /CUBE-Library-13.

View File

@ -1,431 +0,0 @@
?COMPILE UNKRNCH/DEBUG ALGOL GO 00000010
?DATA CARD 00000020
$ CARD LIST SINGLE PRT DEBUGN 00000080160530PK
LABEL 000000000PUNCH 00170141017014100000000000000000000000100001000000000090
UNKRUNCH 000107AA 00000100
00000200
00000300
************************************************************************00000400
PLEASE NOTE THAT THE BURROUGHS CORPORATION ASSUMES 00000500
NO RESPONSIBILITY FOR THE USE OR MAINTENANCE OF THIS PROGRAM. 00000600
***********************************************************************;00000700
% UNKRUNCH/UTILITY PRODUCES A NEW SOURCE DECK OF ALGOL, REFORMATTED 00000800
% FOR BETTER READABILITY. 00000900
% THE CONTROL CARD FOR THIS PROGRAM IS FREE FIELD AND SETS THE 00001000
% SWITCH FILES FOR THE INPUT AND OUTPUT. 00001100
% THE FIRST NUMBER IS FOR THE INPUT. 00001200
% INPUT = 0 THEN A CARD DECK IS EXPECTED AFTER THE CONTROL CARD 00001300
% INPUT = 1 THEN A 0CRDIMG TAPE IS EXPECTED 00001400
% OUTPUT = 0 THEN THE CARD PUNCH WILL MAKE A NEW SEQUENCED DECK 00001500
% OUTPUT = 1 THEN A NEW RESEQUENCED 0CRDIMG TAPE IS MADE 00001600
% OUTPUT = 2 THE OUTPUT APPEARS ON THE LINE PRINTER. 00001700
% 00001800
BEGIN 00001900
FILE CARD(5,10,30), 00002000
TAPE "0CRDIMG" (2,56,10), 00002100
LINE 18(2,15), 00002200
PUNCH 0(5,10), 00002300
NEWTAPE "0CRDIMG" (2,56,10,SAVE 1); 00002400
INTEGER I, J, PAREN, WIN, CIN, WBUF, CBUF, WOUT, COUT, SQ, SCOL, 00002500
TEMP; 00002600
ALPHA PARM, T, FILER, CHAR, BLKBGN, BLKEND, ELSER, SEMICO, COMMA, 00002700
RTPAREN, LISTR, FRMATR, LFPAREN; 00002800
ARRAY BUFIMG [0 : 9], CP [0 : 9], BUF [0 : 9]; 00002900
BOOLEAN COMA, DECL, NUMSW, FLORMAT, SEMI, ENDR; 00003000
SWITCH FILE INPUT := CARD, 00003100
TAPE; 00003200
SWITCH FILE OUTPUT := PUNCH, 00003300
NEWTAPE, 00003400
LINE; 00003500
LABEL ENDIT, ST; 00003600
BOOLEAN STREAM PROCEDURE BLANK (CP); 00003700
BEGIN 00003800
LABEL L7; 00003900
TALLY ~ 0; 00004000
SI ~ CP; 00004100
2 (36 (IF SC ! " " THEN JUMP OUT 2 TO L7; 00004200
SI ~ SI + 1)); 00004300
TALLY ~ 1; 00004400
L7: BLANK ~ TALLY; 00004500
END BLANK; 00004600
ALPHA STREAM PROCEDURE GNCH (CR, CIN); 00004700
VALUE CIN; 00004800
BEGIN 00004900
SI ~ CR; 00005000
SI ~ SI + CIN; 00005100
DI ~ LOC GNCH; 00005200
DI ~ DI + 7; 00005300
DS ~ CHR; 00005400
END GNCH; 00005500
ALPHA PROCEDURE GETCHAR; 00005600
BEGIN 00005700
ALPHA GC; 00005750160530PK
IF CIN < 0 THEN 00005800
BEGIN 00005900
CIN ~ CIN + 8; 00006000
WIN ~ WIN - 1 00006100
END; 00006200
IF WIN > 8 THEN 00006300
BEGIN 00006400
READ (INPUT [I], 10, BUFIMG [*]) [ENDIT]; 00006500
WIN ~ CIN ~ 0; 00006600
END; 00006700
GETCHAR ~ GC ~ GNCH (BUFIMG [WIN], CIN); 00006800160530PK
WRITE(LINE, <"GETCHAR: ",2I4,X1,A1>, WIN, CIN, GC); 00006850160530PK
CIN ~ CIN + 1; 00006900
IF CIN > 7 THEN 00007000
BEGIN 00007100
WIN ~ WIN + 1; 00007200
CIN ~ CIN - 8; 00007300
END; 00007400
END GETCHAR; 00007500
STREAM PROCEDURE BUFTOOUT (BUF, TEMP, CP, COUT); 00007600
VALUE TEMP, COUT; 00007700
BEGIN 00007800
SI ~ BUF; 00007900
DI ~ CP; 00008000
DI ~ DI + COUT; 00008100
DS ~ TEMP CHR; 00008200
END BUFTOOUT; 00008300
BOOLEAN STREAM PROCEDURE COMEQUAL (BUF); 00008400
BEGIN 00008500
LOCAL NIC; 00008600
TALLY ~ 0; 00008700
SI ~ BUF; 00008800
DI ~ LOC NIC; 00008900
DS ~ 8 LIT "COMMENT "; 00009000
DI ~ DI - 8; 00009100
IF 8 SC = DC THEN TALLY ~ 1; 00009200
COMEQUAL ~ TALLY; 00009300
END COMEQUAL; 00009400
BOOLEAN STREAM PROCEDURE EQUAL (BUF, COUNT, T); 00009500
VALUE COUNT; 00009600
BEGIN 00009700
LABEL L1; 00009800
TALLY ~ 0; 00009900
SI ~ BUF; 00010000
DI ~ T; 00010100
DI ~ DI + 2; 00010200
COUNT (IF SC ! DC THEN JUMP OUT 1 TO L1); 00010300
TALLY ~ 1; 00010400
L1: EQUAL ~ TALLY; 00010500
END EQUAL; 00010600
STREAM PROCEDURE CB (T, BUF, CBUF); 00010700
VALUE CBUF; 00010800
BEGIN 00010900
SI ~ T; 00011000
SI ~ SI + 7; 00011100
DI ~ BUF; 00011200
DI ~ DI + CBUF; 00011300
DS ~ CHR; 00011400
END CR; 00011500
PROCEDURE CHARTOBUF (T); 00011600
VALUE T; 00011700
ALPHA T; 00011800
BEGIN 00011900
CB (T, BUF [WBUF], CBUF); 00012000
WRITE(LINE, <"CHARTOBUF: ",2I4,X1,A1>, WBUF, CBUF, T); 00012050160530PK
CBUF ~ CBUF + 1; 00012100
IF CBUF > 7 THEN 00012200
BEGIN 00012300
WBUF ~ WBUF + 1; 00012400
CBUF ~ CBUF - 8; 00012500
END; 00012600
END CHARTOBUF; 00012700
BOOLEAN STREAM PROCEDURE ALPHACHECK (T); 00012800
BEGIN 00012900
SI ~ T; 00013000
SI ~ SI + 7; 00013100
IF SC = ALPHA THEN TALLY ~ 1 ELSE TALLY ~ 0; 00013200
ALPHACHECK ~ TALLY; 00013300
END ALPHACHECK; 00013400
STREAM PROCEDURE CLEARBUF (BUF); 00013500
BEGIN 00013600
DI ~ BUF; 00013700
2 (DS ~ 40 LIT " "); 00013800
END CLEARBUF; 00013900
STREAM PROCEDURE SEQUENCE (FO, SQ); 00014000
BEGIN 00014100
DI ~ FO; 00014200
2 (DI ~ DI + 36); 00014300
SI ~ SQ; 00014400
DS ~ 8 DEC; 00014500
END SEQUENCE; 00014600
PROCEDURE DROP; 00014700
BEGIN 00014800
IF NOT BLANK (CP[0]) THEN 00014900
BEGIN 00015000
SEQUENCE (CP [0], SQ); 00015100
SQ ~ SQ + 100; 00015200
WRITE (OUTPUT[J] [DBL], 10, CP[ *]); 00015300
CLEARBUF (CP); 00015400
END; 00015500
WOUT ~ SCOL DIV 8; 00015600
COUT ~ SCOL MOD 8; 00015700
END DROP; 00015800
PROCEDURE PERCENT; 00015900
BEGIN 00016000
INTEGER NUMCHAR, REMCHAR; 00016100
STREAM PROCEDURE MVCHAR (NUMB, SOURCE, SSKIP, DEST, DSKIP); 00016200
VALUE NUMB, SSKIP, DSKIP; 00016300
BEGIN 00016400
SI ~ SOURCE; 00016500
SI ~ SI + SSKIP; 00016600
DI ~ DEST; 00016700
DI ~ DI + DSKIP; 00016800
DS ~ NUMB CHR; 00016900
END MVCHAR; 00017000
IF (CIN ~ CIN - 1) < 0 THEN 00017100
BEGIN 00017200
CIN ~ CIN + 8; 00017300
WIN ~ WIN - 1; 00017400
END; 00017500
DROP; 00017600
NUMCHAR ~ 72 - (8 | WIN + CIN); 00017700
IF (REMCHAR ~ NUMCHAR - 40) > 0 THEN 00017800
BEGIN 00017900
MVCHAR (40, BUFIMG [WIN], CIN, CP [WIN], CIN); 00018000
MVCHAR (REMCHAR, BUFIMG [WIN + 5], CIN, CP [WIN + 5], CIN); 00018100
END 00018200
ELSE MVCHAR (NUMCHAR, BUFIMG [WIN], CIN, CP[WIN], CIN); 00018300
DROP; 00018400
WIN ~ 9; 00018500
T ~ " "; 00018600
END PERCENT; 00018700
PROCEDURE COMSCAN; 00018800
COMMENT THIS PROCEDURE HANDLES THE OUTPUTTING OF COMMENTS THAT 00018900
APPEAR IN THE PROGRAM, PLACING THEM IN THE SAME POSITION 00019000
THAT THEY HAD IN THE ORIGINAL CARD; 00019100
BEGIN 00019200
LABEL FOO; 00019300
INTEGER COL; 00019400
COL ~ SCOL; 00019500
SCOL ~ 0; 00019600
CLEARBUF (CP); 00019700
WIN ~ WIN - 1; 00019800
COUT ~ CIN; 00019900
WOUT ~ WIN; 00020000
FOO:T ~ GETCHAR; 00020100
IF WOUT > 8 THEN DROP; 00020200
CB (T, CP [WOUT], COUT); 00020300
COUT ~ COUT + 1; 00020400
WOUT ~ WOUT + COUT DIV 8; 00020500
COUT ~ COUT MOD 8; 00020600
IF T ! ";" THEN GO TO FOO; 00020700
T ~ GETCHAR; 00020800
SCOL ~ COL; 00020900
DROP; 00021000
END COMSCAN; 00021100
PROCEDURE CREAD; 00021200
BEGIN 00021300
LABEL N1, N2, DONE, C1, Q1, ST; 00021400
MONITOR LINE (N1, N2, DONE,C1, Q1, ST, T, CIN, WIN); 00021450160530PK
CBUF ~ WBUF ~ 0; 00021500
CLEARBUF (BUF); 00021600
CIN ~ CIN - 1; 00021700
ST: T ~ GETCHAR; 00021800
IF ALPHACHECK (T) THEN 00021900
BEGIN 00022000
IF T < 10 THEN 00022100
BEGIN 00022200
NUMSW ~ TRUE; 00022300
N1: CHARTOBUF (T); 00022400
T ~ GETCHAR; 00022500
IF ALPHACHECK (T) AND T > 9 AND NUMSW AND NOT FLORMAT THEN 00022600
BEGIN 00022700
NUMSW ~ FALSE; 00022800
GO TO DONE; 00022900
END; 00023000
IF ALPHACHECK (T) THEN GO TO N1; 00023100
IF T = "." OR T = ":" OR T = "," THEN GO TO N1; 00023200
IF T = "@" THEN 00023300
BEGIN 00023400
CHARTOBUF (T); 00023500
T ~ GETCHAR; 00023600
N2: CHARTOBUF (T); 00023700
T ~ GETCHAR; 00023800
IF T < 10 THEN GO TO N2; 00023900
END; 00024000
GO TO DONE; 00024100
END; 00024200
C1:CHARTOBUF (T); 00024300
T ~ GETCHAR; 00024400
IF ALPHACHECK (T) OR T = "." OR T = "[" OR T = ":" THEN GO TO 00024500
C1; 00024600
IF T = " " THEN GO TO DONE; 00024700
IF T = "." THEN 00024800
BEGIN 00024900
CHARTOBUF ("."); 00025000
T ~ GETCHAR; 00025100
END; 00025200
IF T = ":" THEN 00025300
BEGIN 00025400
CHARTOBUF (":"); 00025500
T ~ GETCHAR; 00025600
END; 00025700
GO TO DONE; 00025800
END; 00025900
IF T = """ THEN 00026000
BEGIN 00026100
T ~ GETCHAR; 00026200
IF T = """ THEN 00026300
BEGIN 00026400
T ~ GETCHAR; 00026500
IF T ! """ THEN GO TO ENDIT; 00026600
CHARTOBUF ("""); 00026700
CHARTOBUF ("""); 00026800
CHARTOBUF ("""); 00026900
T ~ GETCHAR; 00027000
GO TO DONE; 00027100
END; 00027200
CHARTOBUF ("""); 00027300
Q1: CHARTOBUF (T); 00027400
T ~ GETCHAR; 00027500
IF T ! """ THEN GO TO Q1; 00027600
CHARTOBUF ("""); 00027700
T ~ GETCHAR; 00027800
GO TO DONE; 00027900
END; 00028000
IF T = "%" THEN PERCENT; 00028100
IF T = " " THEN GO TO ST; 00028200
IF T = "," OR T = ";" OR T = ")" OR T = "]" THEN COUT ~ COUT - 1; 00028300
IF COUT < 0 THEN 00028400
BEGIN 00028500
COUT ~ COUT + 8; 00028600
WOUT ~ WOUT - 1; 00028700
END; 00028800
CHARTOBUF (T); 00028900
PARM ~ GETCHAR; 00029000
IF T = ";" THEN FLORMAT ~ FALSE; 00029100
IF T ! "." AND T ! "[" AND T ! "(" THEN DONE : CHARTOBUF (" "); 00029200
WRITE(LINE, <"CREAD: ",2I4,X1,A1>, WOUT, COUT, T); 00029250160530PK
WRITE(LINE, 10, BUF[*]); 00029260160530PK
END CREAD; 00029300
%***********************************************************************00029400
READ (CARD, /, I, J); 00029500
IF I = 1 THEN CLOSE (CARD, RELEASE); 00029600
FILER ~ "FILE "; 00029700
BLKBGN ~ "BEGIN "; 00029800
BLKEND ~ "END . "; 00029900
ELSER ~ "ELSE "; 00030000
SEMICO ~ "; "; 00030100
COMMA ~ ", "; 00030200
RTPAREN ~ ") "; 00030300
LFPAREN ~ "( "; 00030400
LISTR ~ "LIST "; 00030500
FRMATR ~ "FORMAT"; 00030600
SEMI ~ COMA ~ DECL ~ FALSE; 00030700
PAREN ~ 0; 00030800
WOUT ~ WBUF ~ CBUF ~ 0; 00030900
CIN ~ 1; 00031000
WIN ~ 10; 00031100
CLEARBUF (CP); 00031200
CLEARBUF (BUF); 00031300
SQ ~ 100; 00031400
ST: CREAD; 00031500
TEMP ~ 8 | WBUF + CBUF; 00031600
IF EQUAL (BUF, 6, BLKBGN) THEN 00031700
BEGIN 00031800
DROP; 00031900
IF SEMI THEN SCOL ~ SCOL - 2 ELSE SCOL ~ SCOL + 3; 00032000
SEMI ~ FALSE; 00032100
END; 00032200
IF EQUAL (BUF, TEMP, BLKEND) THEN 00032300
BEGIN 00032400
IF SEMI THEN SCOL ~ SCOL - 5; 00032500
SCOL ~ SCOL - 3; 00032600
DROP; 00032700
SEMI ~ FALSE; 00032800
ENDR ~ TRUE; 00032900
END; 00033000
IF ENDR AND EQUAL (BUF, TEMP, ELSER) THEN DROP; 00033100
IF TEMP + COUT + 8 | WOUT > 72 THEN 00033200
BEGIN 00033300
IF NOT SEMI THEN SCOL ~ SCOL + 5; 00033400
SEMI ~ TRUE; 00033500
DROP; 00033600
END; 00033700
BUFTOOUT (BUF, TEMP, CP [WOUT], COUT); 00033800
COUT ~ COUT + TEMP; 00033900
WOUT ~ WOUT + COUT DIV 8; 00034000
COUT ~ COUT MOD 8; 00034100
IF COMEQUAL (BUF) THEN COMSCAN; 00034200
IF EQUAL (BUF, TEMP, LISTR) THEN DECL ~ TRUE; 00034300
IF EQUAL (BUF, 6, FRMATR) THEN DECL ~ FLORMAT ~ TRUE; 00034400
IF EQUAL (BUF, TEMP, FILER) THEN DECL ~ TRUE; 00034500
IF DECL THEN 00034600
BEGIN 00034700
IF NOT SEMI THEN SCOL ~ SCOL + 5; 00034800
SEMI ~ TRUE; 00034900
IF NOT COMA THEN SCOL ~ SCOL + 3; 00035000
COMA ~ TRUE; 00035100
IF EQUAL (BUF, TEMP, LFPAREN) THEN PAREN ~ PAREN + 1; 00035200
IF EQUAL (BUF, TEMP, RTPAREN) THEN PAREN ~ PAREN - 1; 00035300
IF PAREN = 0 AND EQUAL (BUF, TEMP, COMMA) THEN 00035400
BEGIN 00035500
SCOL ~ SCOL - 3; 00035600
COMA ~ FALSE; 00035700
DROP; 00035800
END; 00035900
END; 00036000
IF EQUAL (BUF, TEMP, SEMICO) THEN 00036100
BEGIN 00036200
IF SEMI THEN SCOL ~ SCOL - 5; 00036300
IF COMA THEN SCOL ~ SCOL - 3; 00036400
COMA ~ DECL ~ FLORMAT ~ ENDR ~ SEMI ~ FALSE; 00036500
DROP; 00036600
END; 00036700
IF EQUAL (BUF, 6, BLKBGN) THEN DROP; 00036800
GO TO ST; 00036900
ENDIT: DROP; 00037000
END . 00037100
?DATA CARD 00100000
0,2, 00100100160530PK
KRUNCH 000104AA*********************************************************00100200
***************PLEASE NOTE THAT THE BURROUGHS CORPORATION ASSUMES NO RES00100300
PONSIBILITY FOR THE USE OR MAINTENANCE OF THIS PROGRAM.*****************00100400
*******************************************************BEGIN ALPHA CH,T,00100500
IDENT,CHAR,SAVE1,TUF1,TUF2;BOOLEAN ID,ID1,ID2,FIRSTCARD,EOF;INTEGER I,WI00100600
N,WOUT,CIN,COUT,SQ;LABEL K,L,M,N,ENDIT,N1;ALPHA ARRAY BUFIMG[0:9];DEFINE00100700
CR=BUFIMG#;FILE IN KRUCARD(1,10);FILE OUT KRUPNCH 0(1,10);DEFINE CP=KRU00100800
PNCH#;STREAM PROCEDURE SEQUENCE(FO,SQ,IDENT);BEGIN DI~FO;SI~IDENT;SI~SI+00100900
5;DS~3CHR;SI~SQ;DS~5DEC END;BOOLEAN STREAM PROCEDURE ALPHACHECK(T);BEGIN00101000
SI~T;SI~SI+7;DI~LOC ALPHACHECK;DS~8LIT"0";DI~DI-1;SKIP 5DB;IF SC=ALPHA 00101100
THEN DS~1SET;END;ALPHA STREAM PROCEDURE GNCH(FI,CIN);VALUE CIN;BEGIN SI~00101200
FI;SI~SI+CIN;DI~LOC GNCH;DI~DI+7;DS~CHR;END GNCH;ALPHA PROCEDURE GETCHAR00101300
;BEGIN IF WIN}9THEN BEGIN LABEL L1,L2;FORMAT FMT(13A6,A2);ALPHA ARRAY IN00101400
FO[0:13];STREAM PROCEDURE CONCAT(INBUF,OUTBUF);BEGIN SI~INBUF;DI~OUTBUF;00101500
13(SI~SI+2;DS~6CHR);SI~SI+6;DS~2CHR;END;STREAM PROCEDURE GETIDENT(IDENT,00101600
BUFIMG);BEGIN SI~BUFIMG;DI~IDENT;DI~DI+5;DS~3CHR END;INTEGER I;READ(KRUC00101700
ARD,FMT,FOR I~0STEP 1UNTIL 13DO INFO[I])[L1];CONCAT(INFO[0],BUFIMG[0]);I00101800
F FIRSTCARD THEN BEGIN GETIDENT(IDENT,BUFIMG[9]);FIRSTCARD~FALSE;END;GO 00101900
TO L2;L1:EOF~TRUE;L2:CIN~WIN~0;END;TUF1~TUF2;GETCHAR~TUF2~GNCH(CR[WIN],C00102000
IN);ID1~ID;ID~ALPHACHECK(TUF2)AND(ID OR TUF2}10);CIN~CIN+1;IF CIN}8THEN 00102100
BEGIN WIN~WIN+1;CIN~CIN-8END;END CHAR;STREAM PROCEDURE PPCH(FO,COUT,CH);00102200
VALUE COUT;BEGIN SI~CH;SI~SI+7;DI~FO;DI~DI+COUT;DS~CHR;END;PROCEDURE CHA00102300
ROUT(CH);VALUE CH;ALPHA CH;BEGIN IF WOUT}9THEN BEGIN SEQUENCE(CP(9),SQ,I00102400
DENT);SQ~SQ+10;RELEASE(CP);COUT~WOUT~0;END;PPCH(CP(WOUT),COUT,CH);COUT~C00102500
OUT+1;IF COUT}8THEN BEGIN WOUT~WOUT+1;COUT~COUT-8;END;END CHAROUT;PROCED00102600
URE CLEAR;BEGIN INTEGER I;FOR I~0WHILE WOUT<9DO CHAROUT(" ");END;PROCEDU00102700
RE COMMENTCHECK(L);LABEL L;BEGIN LABEL NOPE;INTEGER PTR,PWD;PTR~CIN;PWD~00102800
WIN;SAVE1~T;FOR CH~"O","M","M","E","N","T"DO BEGIN IF WIN}9THEN GO TO NO00102900
PE;CHAR~GETCHAR;IF EOF THEN GO TO ENDIT;IF CH!CHAR THEN GO TO NOPE;END;C00103000
HAR~GETCHAR;IF EOF THEN GO TO ENDIT;T~CHAR;IF NOT ALPHACHECK(T)THEN FOR 00103100
CH~T WHILE CHAR!";"DO BEGIN CHAR~GETCHAR;IF EOF THEN GO TO ENDIT;T~CHAR;00103200
END ELSE GO TO NOPE;GO TO L;NOPE:WIN~PWD;CIN~PTR;ID~ID1~TRUE;T~SAVE1;END00103300
;WIN~10;FIRSTCARD~TRUE;EOF~FALSE;TUF1~TUF2~";";SQ~10;L:CHAR~GETCHAR;IF E00103400
OF THEN GO TO ENDIT;T~CHAR;IF T="""THEN BEGIN N:CHAR~GETCHAR;IF EOF THEN00103500
GO TO ENDIT;T~CHAR;IF T="""THEN BEGIN CHAR~GETCHAR;IF EOF THEN GO TO EN00103600
DIT;IF CHAR!"""THEN BEGIN ENDIT:CLEAR;SEQUENCE(CP(9),SQ,IDENT);RELEASE(C00103700
P);GO TO N1;END;FOR I~1,2,3DO CHAROUT(""");GO TO L;END;CHAROUT(""");CHAR00103800
OUT(T);K:CHAR~GETCHAR;IF EOF THEN GO TO ENDIT;T~CHAR;CHAROUT(T);IF T!"""00103900
THEN GO TO K;CHAR~GETCHAR;IF EOF THEN GO TO ENDIT;T~CHAR;END;IF T=" "THE00104000
N BEGIN ID2~ID1;M:CHAR~GETCHAR;IF EOF THEN GO TO ENDIT;T~CHAR;IF T=" "TH00104100
EN GO TO M;IF ID2 AND ALPHACHECK(T)THEN CHAROUT(" ");IF T="""THEN GO TO 00104200
N;END;IF T="%"THEN BEGIN WIN~10;GO TO L;END;IF T="$"AND 8|WIN+CIN=1THEN 00104300
BEGIN IF 8|WOUT+COUT!0THEN BEGIN CLEAR;WOUT~10;END;CHAROUT("$");FOR I~1S00104400
TEP 1UNTIL 71DO BEGIN CHAR~GETCHAR;IF EOF THEN GO TO ENDIT;CHAROUT((T~CH00104500
AR));END;GO TO L;END;IF T="C"AND NOT ALPHACHECK(TUF1)THEN COMMENTCHECK(L00104600
);CHAROUT(T);GO TO L;N1:END.END;END.LAST CARD ON 0CRDING TAPE 00104700
00104800
?END 99999999

View File

@ -0,0 +1 @@
DEFINE MAXUSERS = 8#, MAXUSER = 7#; 00002500

View File

@ -18,12 +18,25 @@ from programs was generally printed or punched at the host, although
printer and punch files could be file-equated to disk and listed by R/C
from disk to the remote terminal.
The source files for R/C were transcribed from portions of
The program source and documentation were available to B5500 sites on
the CUBE Library tapes, maintained and distributed by the Cooperating
Users of Burroughs Equipment user organization. An earlier, single-user
version of the program (RCSY75-Z100004.alg, TEACHER-0000075.dat) is also
available on the CUBEB13 tape.
Before the CUBE Library tapes became available to this project in May
2018, the source and documentation files for R/C were transcribed from
portions of
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/
B5700_Text_Editors_Sep76.pdf
by Rich Cornwell of Durham, North Carolina, US. Proofing and correction
of the source was done by Paul Kimpel.
The transcriptions have now been renamed and moved under the respective
files extracted from the CUBEB13 tape so that they will appear in the
versioned history of those files.
RC-Compile.card
A card deck that can be used to compile R/C from the RCSY94/RON
source file.
@ -45,25 +58,35 @@ RCIXGEN.PAUL.alg_m
records is done in place using Algol update I/O.
RCSY94.RON.alg_m
The R/C program, written in Burroughs Extended Algol.
Source for the R/C program. Moved to the versioned history of
/CUBE-Library-13/Files/RCSY94-Z100006.alg in this repository.
RCSY94.PATCH.alg
Patch to modify MAXUSERS configuration parameter for the program.
This is a difference between the source transcribed from the listing
and the version on the CUBEB13 tape.
TEACHER.0000094.txt_m
The raw text of the R/C Reference Manual. This is coded in the
markup notation used by the XREF/JONES utility, available on the
Mark XIII SYSTEM tape. This file has not been transcribed from
original markup -- Rich Cornwell reverse-engineered the markup for
the first several sections from B5700_Text_Editors_Sep76.pdf;
Paul Kimpel completed the reconstruction and indexing for use by
R/C's TEACH command. Note that if lines are inserted or deleted in
this source, the TEACH command index records in the front of the
source will need to be regenerated on the B5500 by running the
RCIXGEN/PAUL utility.
The markup for the R/C Reference Manual. Moved to the versioned
history of /CUBE-Library-13/Files/TEACHER-0000094.dat in this
repository.
This file is coded in the markup notation used by the XREF/JONES
utility, available on the Mark XIII SYSTEM tape. This file was not
originally transcribed from markup -- Rich Cornwell reverse-
engineered the markup for the first several sections from the
formatted document in B5700_Text_Editors_Sep76.pdf; Paul Kimpel
completed the reconstruction and indexing for use by R/C's TEACH
command. Note that if lines are inserted or deleted in this source,
the TEACH command index records in the front of the source will need
to be regenerated on the B5500 by running the RCIXGEN/PAUL utility.
2016-05-13 P.Kimpel
__________
2016-05-13 Paul Kimpel
Completed proofing and correction of RCSY94/RON source.
2016-05-21 P.Kimpel
2016-05-21 Paul Kimpel
Completed and proofed TEACHER/0000094 and generated Reference Manual
text file.
2018-05-26 Paul Kimpel
Rename and move transcribed files under /CUBE-Library-13.

View File

@ -1,37 +1,46 @@
SNOBOL3 Interpreter for the Burroughs B5500
This implementation of SNOBOL3 was written by John Chambers at the
University of Wisconsin. The source was apparently obtained from CUBE
library tape CUBEA13, file SNOBOL/L200010.
University of Wisconsin. The source was obtained from CUBE Library tape
CUBEA13, file SNOBOL/L200010.
Before the CUBE Library tapes became available to this project in May
2018, the compiler and test program were transcribed from
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/
B5700_Snobol_Compiler_Apr77.pdf
by Rich Cornwell of North Carolina, US.
That transcribed source has now been renamed from SYMBOL.SNOBOL.alg_m to
SNOBOL-L200010.alg and moved under the CUBE-Library-13/Files directory
of this repository so that it will appear as versioned history of the
file extracted from the CUBEA13 tape.
A user manual is available at
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/
B5700_Snobol_Manual_Jun76.pdf.
The compiler and test program were originally transcribed by Rich
Cornwell of North Carolina, US.
**NOTE**
These files have not yet been proofread and corrected.
The manual can also be generated using the SNOBOL program SNOBOL-
L200012.sno against the file SNOBOL-L200011.dat. These can be found in
the CUBE-Library-13/Files directory of this repository.
SNOBOL3-Compile.card
Card deck to compile the SNOBOL interpreter.
SYMBOL/SNOBOL.alg_m
Source of the interpreter, transcribed from
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/
B5700_Snobol_Compiler_Apr77.pdf
by Rich Cornwell of
SYMBOL.SNOBOL.alg_m
Source for the SNOBOL program. Moved to the versioned history of
/CUBE-Library-13/Files/SNOBOL-L200010.alg in this repository.
SNTEST.card
A card deck with a series of SNOBOL test runs supplied by Rich
Cornwell.
__________
2016-07-16 Paul Kimpel
Commit initial files as transcribed by Rich Cornwell; overwrite with
revised source having up-cased text and sequence number corrections,
ready for proofreading.
2018-05-26 Paul Kimpel
Rename and move transcribed source under /CUBE-Library-13.