1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-04 02:04:53 +00:00

Commit Richard Cornwell's OBJECT/READER utility as received on 23 April 2016.

This commit is contained in:
Paul Kimpel
2016-05-07 08:40:44 -07:00
parent 8f7dec7872
commit e36e78ca34
2 changed files with 80 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
Burroughs B5500 Utilities: Richard Cornwell
reader.card
A compile deck for the OBJECT/READER utility program. This was
reconstructed by inference from scanned PDF listings at
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/.
The program can be used to print a deck of cards, print a file from
disk or tape, or copy a deck of cards to disk or tape. Its behavior
is controlled by COMMON and file-equation control cards. See the
comment in the source for details.
The following example will copy a deck of cards to a disk file named
CARDS/ONDISK, using the standard blocking for B5500 source files
(10-word records, 150-word blocks). The file will also be printed:
?RUN OBJECT/READER; COMMON = 3
?FILE NEWTAPE = CARDS/ONDISK DISK SERIAL
?FILE LINE = LINE PRINT BACKUP DISK
?DATA CARD
:
: <deck of cards>
:
?END
This deck will compile the program to disk as OBJECT/READER, store
its source as SYMBOL/READER on disk, and create a compile listing.

View File

@@ -0,0 +1,52 @@
?COMPILE OBJECT/READER ALGOL LIBRARY
?ALGOL FILE LINE = PRINT BACK UP DISK
?ALGOL FILE NEWTAPE = SYMBOL/READER SERIAL DISK
?DATA CARD
$CARD LIST NEW TAPE SINGLE
BEGIN 0001000
COMMENT: SET COMMON TO CHANGE THE ACTION OF THIS PROGRAM. 0002000
DEFAULT WITH COMMON = 0 IS TO COPY "S" TO "LINE". 0003000
WITH COMMON = 1 THE FILE "CARD" IS COPIED TO "LINE". 0004000
WITH COMMON = 2 THE FILE "S" IS COPIED TO BOTH 0005000
"LINE" AND "NEWTAPE". 0006000
WITH COMMON = 3 THE FILE "CARD" IS COPIED TO BOTH 0007000
"LINE" AND "NEWTAPE". 0008000
0009000
SET COMMON=3 TO LOAD A DECK OF CARDS TO NEWTAPE. 0010000
NO SETTING WILL PRINT OUT FILE "S". 0011000
; 0012000
INTEGER COMMON; 0013000
LABEL EOF; 0014000
SAVE ARRAY REC[0:15]; 0015000
FILE IN CARD (2, 10); 0016000
FILE IN S DISK SERIAL (2, 10, 150); 0017000
SAVE FILE OUT NEWTAPE DISK SERIAL [20:3000] (2,10,150,SAVE 99); 0018000
FILE OUT LINE 15(5,15); 0019000
0020000
STREAM PROCEDURE FILLIT(DEST); 0021000
BEGIN 0022000
DI := DEST ; 15(DS := 8 LIT " "); 0023000
END; 0024000
0025000
FILLIT(REC[*]); 0026000
WHILE TRUE DO 0027000
BEGIN 0028000
IF BOOLEAN(COMMON.[47:1]) THEN 0029000
READ(CARD, 10, REC[*]) [EOF] 0030000
ELSE 0031000
READ(S, 10, REC[*]) [EOF]; 0032000
IF BOOLEAN(COMMON.[46:1]) THEN 0033000
WRITE(NEWTAPE, 10, REC[*]); 0034000
WRITE(LINE, 15, REC[*]); 0035000
END WHILE; 0036000
0037000
EOF: 0038000
LOCK(LINE); 0039000
IF BOOLEAN(COMMON.[46:1]) THEN LOCK(NEWTAPE,RELEASE); 0040000
IF BOOLEAN(COMMON.[47:1]) THEN 0041000
CLOSE(CARD) 0042000
ELSE 0043000
CLOSE(S); 0044000
END. 0045000
END. LAST CARD ON 0CRDING TAPE 9999999
?END