1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-02-28 08:57:42 +00:00
Files
retro-software.B5500-software/Utilities-Richard-Cornwell/reader.card

53 lines
3.8 KiB
Plaintext

?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 00010000
COMMENT: SET COMMON TO CHANGE THE ACTION OF THIS PROGRAM. 00020000
DEFAULT WITH COMMON = 0 IS TO COPY "S" TO "LINE". 00030000
WITH COMMON = 1 THE FILE "CARD" IS COPIED TO "LINE". 00040000
WITH COMMON = 2 THE FILE "S" IS COPIED TO BOTH 00050000
"LINE" AND "NEWTAPE". 00060000
WITH COMMON = 3 THE FILE "CARD" IS COPIED TO BOTH 00070000
"LINE" AND "NEWTAPE". 00080000
00090000
SET COMMON=3 TO LOAD A DECK OF CARDS TO NEWTAPE. 00100000
NO SETTING WILL PRINT OUT FILE "S". 00110000
; 00120000
INTEGER COMMON; 00130000
LABEL EOF; 00140000
SAVE ARRAY REC[0:15]; 00150000
FILE IN CARD (2, 10); 00160000
FILE IN S DISK SERIAL (2, 10, 150); 00170000
SAVE FILE OUT NEWTAPE DISK SERIAL [20:3000] (2,10,150,SAVE 99); 00180000
FILE OUT LINE 15(5,15); 00190000
00200000
STREAM PROCEDURE FILLIT(DEST); 00210000
BEGIN 00220000
DI := DEST ; 15(DS := 8 LIT " "); 00230000
END; 00240000
00250000
FILLIT(REC[*]); 00260000
WHILE TRUE DO 00270000
BEGIN 00280000
IF BOOLEAN(COMMON.[47:1]) THEN 00290000
READ(CARD, 10, REC[*]) [EOF] 00300000
ELSE 00310000
READ(S, 10, REC[*]) [EOF]; 00320000
IF BOOLEAN(COMMON.[46:1]) THEN 00330000
WRITE(NEWTAPE, 10, REC[*]); 00340000
WRITE(LINE, 15, REC[*]); 00350000
END WHILE; 00360000
00370000
EOF: 00380000
LOCK(LINE); 00390000
IF BOOLEAN(COMMON.[46:1]) THEN LOCK(NEWTAPE,RELEASE); 00400000
IF BOOLEAN(COMMON.[47:1]) THEN 00410000
CLOSE(CARD) 00420000
ELSE 00430000
CLOSE(S); 00440000
END. 00450000
END. LAST CARD ON 0CRDING TAPE 99999999
?END