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.
80 lines
6.2 KiB
Plaintext
80 lines
6.2 KiB
Plaintext
BICOMP 000124AA 00000100
|
|
00000200
|
|
************************************************************************00000300
|
|
PLEASE NOTE THAT THE BURROUGHS CORPORATION ASSUMES 00000400
|
|
NO RESPONSIBILITY FOR THE USE OR MAINTENANCE OF THIS PROGRAM. 00000500
|
|
************************************************************************00000600
|
|
00000700
|
|
A BINARY CARD READ AND COMPARE PROGRAM. THE DATA FILE IS A CARD- 00000800
|
|
READER. THE FIRST CARD TO BE READ MUST BE A BLANK CARD. THE 00000900
|
|
CARD WITH WHICH ALL OTHERS WILL BE COMPARED MUST BE THE SECOND 00001000
|
|
CARD IN THE CARD FILE. WHEN AN INCORRECT COMPARISON IS MADE 00001100
|
|
A MESSAGE WILL BE OUTPUTTED ON THE SPO, AND AN INPUT OF ANY 00001200
|
|
INTEGER NUMBER WILL BE EXPECTED. BEFORE INPUTTING THE NUMBER, 00001300
|
|
THE OFFENDING CARD SHOULD BE REMOVED FROM THE CARD-READER. IT 00001400
|
|
WILL BE THE LAST CARD READ IN THE STACKER. DUE TO THE FACT THAT 00001500
|
|
THE PROGRAM WILL READ THE END CARD IN BINARY ALSO, THERE MUST 00001600
|
|
BE TWO QUESTION MARK END CARDS FOLLOWING THE DATA DECK. WHEN 00001700
|
|
THE JOB COMPLETES, IT WILL OUTPUT A MESSAGE ON THE SPO INDICATING 00001800
|
|
HOW MANY CORRECT AND INCORRECT CARDS WERE PROCESSED. 00001900
|
|
15 JANUARY 1968 - A. RABENAU 00002000
|
|
00002100
|
|
BEGIN 00002200
|
|
FILE CARDZ(1,20); 00002300
|
|
FILE SPO 11(1,10); 00002400
|
|
LABEL AGIN,CEOF; 00002500
|
|
FORMAT F2("CORRECT = ",I5," INCORRECT = ",I5); 00002600
|
|
ARRAY A,B[0:19]; 00002700
|
|
INTEGER I,J,L; 00002800
|
|
% 00002900
|
|
STREAM PROCEDURE FIX(F); 00003000
|
|
BEGIN 00003100
|
|
DI := F; SKIP 21 DB; DS := SET; 00003200
|
|
END STREAM PROCEDURE FIX; 00003300
|
|
% 00003400
|
|
STREAM PROCEDURE MOVE(F,A); 00003500
|
|
BEGIN 00003600
|
|
SI:=F; DI:=A; DS:=20 WDS; 00003700
|
|
END STREAM PROCEDURE MOVE; 00003800
|
|
% 00003900
|
|
INTEGER STREAM PROCEDURE COMPARE(A,B); 00004000
|
|
BEGIN 00004100
|
|
LABEL L1; 00004200
|
|
LOCAL Q; 00004300
|
|
DI:=LOC Q; DS:=10 LIT"2200|+++||"; 00004400
|
|
SI:=A; DI:=B; TALLY:=0; 00004500
|
|
8(20(IF SC NEQ DC THEN 00004600
|
|
BEGIN 00004700
|
|
SI:=LOC Q; DI:=B; 00004800
|
|
IF 10 SC EQL DC THEN 00004900
|
|
BEGIN 00005000
|
|
TALLY:=2; JUMP OUT 2 TO L1; 00005100
|
|
END; 00005200
|
|
TALLY:=1; JUMP OUT 2 TO L1; 00005300
|
|
END; )); 00005400
|
|
L1: COMPARE:=TALLY; 00005500
|
|
END BOOLEAN STREAM PROCEDURE COMPARE; 00005600
|
|
% 00005700
|
|
READ(CARDZ[NO]) [CEOF]; 00005800
|
|
FIX(CARDZ); 00005900
|
|
RELEASE(CARDZ); 00006000
|
|
MOVE(CARDZ(0),A); 00006100
|
|
AGIN: RELEASE(CARDZ); 00006200
|
|
MOVE(CARDZ(0),B); 00006300
|
|
IF(L:=COMPARE(A,B)) EQL 1 THEN 00006400
|
|
BEGIN 00006500
|
|
FORMAT F1("BAD CARD...REMOVE.~"); 00006600
|
|
FORMAT F3(I5); 00006700
|
|
INTEGER K; 00006800
|
|
WRITE(SPO,F1); 00006900
|
|
READ(SPO,F3,K); 00007000
|
|
I:=I+1; 00007100
|
|
END ELSE IF L EQL 2 THEN GO TO CEOF; 00007200
|
|
J:=J+1; 00007300
|
|
GO TO AGIN; 00007400
|
|
CEOF: CLOSE(CARDZ,RELEASE); 00007500
|
|
J:=J-1; 00007600
|
|
WRITE(SPO,F2,J,I); 00007700
|
|
END OF PROGRAM. 00007800
|
|
END;END. LAST CARD ON 0CRDING TAPE 99999999
|