mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-02-28 08:57:42 +00:00
53 lines
3.8 KiB
Plaintext
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
|