mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
78 lines
6.1 KiB
Plaintext
78 lines
6.1 KiB
Plaintext
BEGIN 00000100
|
|
COMMENT PROGRAM - TAPEDUMP, 00000200
|
|
CUBE LIBRARY NUMBER IS K400001. 00000300
|
|
THIS VERSION DATED 6/20/67; 00000400
|
|
FILE LP 4 (2,15); 00000500
|
|
ARRAY F[0:1022]; FILE FF(1,1023); 00000600
|
|
INTEGER COUNT,I; 00000700
|
|
LABEL TOPP,EOF,PAR; 00000800
|
|
ARRAY LINE[0:14]; 00000900
|
|
FORMAT BAD(2(60("*")),/"IRRECOVERABLE PARITY ERROR. " 00001000
|
|
"HERE COMES THE BAD RECORD",/2(60("*"))); 00001100
|
|
FORMAT GOOD("THERE ARE",I6," WORDS IN THIS RECORD"); 00001200
|
|
STREAM PROCEDURE BLANK(LINE); 00001300
|
|
BEGIN DI~LINE; 15(DS~8 LIT " "); END; 00001400
|
|
STREAM PROCEDURE FILLF(F); 00001500
|
|
BEGIN 00001600
|
|
DI~F; 20(51(DS~ 8 LIT""")); 3(DS~8 LIT """); 00001700
|
|
END OF FILLF; 00001800
|
|
INTEGER STREAM PROCEDURE COUNTDOWN(F); 00001900
|
|
BEGIN 00002000
|
|
LOCAL ONE,TEMP1,FAREND,QUOTES; 00002100
|
|
LABEL TOP,DOWN; 00002200
|
|
DI~LOC COUNTDOWN; DS~4 LIT "0"; 00002300
|
|
DI~LOC ONE; DS~4 LIT "0001"; 00002400
|
|
DI~LOC FAREND; DS~4 LIT "1023"; 00002500
|
|
DI~LOC QUOTES; DS~8 LIT """; 00002600
|
|
DI~LOC QUOTES; SI~F; 00002700
|
|
TOP: IF 8 SC=DC THEN GO TO DOWN; 00002800
|
|
TEMP1~SI; SI~ LOC ONE; DI~ LOC COUNTDOWN; DS~ 4 ADD; 00002900
|
|
DI~DI-4; SI~ LOC FAREND; IF 4 SC=DC THEN GO TO DOWN; 00003000
|
|
SI~TEMP1; DI~LOC QUOTES; 00003100
|
|
GO TO TOP; 00003200
|
|
DOWN:SI~ LOC COUNTDOWN; DI~ LOC TEMP1; DS~ 4 OCT; 00003300
|
|
SI~ LOC TEMP1; DI~ LOC COUNTDOWN; DS~ 1 WDS; 00003400
|
|
END OF COUNTDOWN; 00003500
|
|
PROCEDURE PRINTIT; 00003600
|
|
BEGIN 00003700
|
|
PROCEDURE RUBITOUT(N); VALUE N; INTEGER N; 00003800
|
|
BEGIN 00003900
|
|
STREAM PROCEDURE BLANCIT(L,A,B,A1,B1 ); VALUE A,B,A1,B1; 00004000
|
|
BEGIN 00004100
|
|
DI~L; B(DI~DI+63; DI~DI+1); DI~DI+A; 00004200
|
|
B1(8(DS~ 8 LIT " ")); 00004300
|
|
A1(DS~ 1 LIT " "); 00004400
|
|
END; 00004500
|
|
INTEGER J; 00004600
|
|
J~120-20|N; COMMENT START HERE; 00004700
|
|
N~N|20; COMMENT BLANK OUT THIS MANY; 00004800
|
|
BLANCIT(LINE,J,J DIV 64,N,N DIV 64); 00004900
|
|
END OF RUBITOUT; 00005000
|
|
STREAM PROCEDURE WOPITOUT(F,L); 00005100
|
|
BEGIN 00005200
|
|
SI~F; DI~L; 00005300
|
|
00005400
|
|
6(8(DS~3 RESET;3(IF SB THEN DS~1 SET ELSE DS~1 RESET;SKIP SB));00005500
|
|
DS~ 1 LIT " "; 00005600
|
|
8(DS~3 RESET;3(IF SB THEN DS~1 SET ELSE DS~1 RESET;SKIP SB)); 00005700
|
|
DS~3 LIT " ";); 00005800
|
|
END; 00005900
|
|
BLANK (LINE);WRITE (LP,15,LINE[*]); 00006000
|
|
WRITE(LP,GOOD,COUNT); 00006100
|
|
WRITE (LP,15,LINE[*]); 00006200
|
|
FOR I~0 STEP 6 UNTIL COUNT-1 DO 00006300
|
|
BEGIN 00006400
|
|
BLANK(LINE); WOPITOUT(F[I],LINE); 00006500
|
|
IF I+6>COUNT THEN RUBITOUT(6-COUNT+I); 00006600
|
|
WRITE (LP,15,LINE[*]); 00006700
|
|
END; 00006800
|
|
END OF PRINTIT; 00006900
|
|
TOPP: FILLF(F); 00007000
|
|
READ(FF,1023,F[*])[EOF:PAR]; 00007100
|
|
COUNT~COUNTDOWN(F); 00007200
|
|
PRINTIT; 00007300
|
|
GO TO TOPP; 00007400
|
|
PAR: WRITE(LP,BAD); GO TO TOPP; 00007500
|
|
EOF: 00007600
|
|
END. 00007700
|