1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

130 lines
10 KiB
Plaintext

COMMENT LOCATIONS: 1 2 3 00000100
4 5 6 00000200
7 8 9 00000300
***********************************************************************;00000400
BEGIN 00000500
COMMENT CUBE LIBRARY NUMBER IS Z200010. THE PROGRAM NAME IS 00000600
"TICTAC/TTY". THIS VERSION DATED 5/14/68; 00000700
ALPHA FILE IN TTIN 14 (2,8); 00000800
ALPHA FILE OUT TTOUT 14 (2,8); 00000900
DEFINE RTT=READ(TTIN(STA)#, WTT=WRITE(TTOUT(STA)#; 00001000
BOOLEAN B1; 00001100
FORMAT OUT F01(X8,3(X2,A1),"{!~"); 00001200
FORMAT IN FIN(X8,I1); 00001300
ARRAY TBUF[0:7]; 00001400
ALPHA ARRAY A[0:10]; 00001500
INTEGER ARRAY TEMP,TEMP1,TEMP2[1:24]; 00001600
INTEGER I,J,K,CT,YOU,TYPE,MOVE,YORI,ALT,STA; 00001700
LABEL YOU1,MACH,MACH1,YOU2,CORN,INSD,CNTR,FIRMOV,SECMOV,PRINT, 00001800
PRINT1,WIN,YOULOOSE,AGAIN,START,MOUSE,CONT,CONT1,CHECK1, 00001900
AG1,FINISH; 00002000
SWITCH SW ~ AGAIN,START; 00002100
SWITCH SW1 ~ YOU1,MACH; 00002200
SWITCH SW2 ~ MACH1,YOU2; 00002300
SWITCH SW3 ~ CORN,INSD,CNTR; 00002400
FORMAT OUT FO5(X8,"SORRY, YOU LOOSE - BETTER LUCK NEXT TIME{!~"), 00002500
FO6(X8,"CAT AND MOUSE, GIVE UP IF YOU CAN NOT WIN{!~"), 00002600
FO7(X8,"CONGRATULATIONS - YOU DID IT - YOU WON{!~"), 00002700
FO8(X8,"YOU GOOFED A MARK IS IN THAT FRAME - TRY AGAIN{!~00002800
"), FCRLF(X8,"{!~"), 00002900
FO9(X9,"{!~"), 00003000
FMA1(X8," YOU MOVE FIRST{!~"), 00003100
FMA2(X8,"ONLY DIGITS 1- 9 MAY BE USED - TRY AGAIN{!~"), 00003200
FCRLF2(X8,"{!!~"), 00003300
FO10(X8,"THE BOARD IS NUMBERED AS FOLLOWS{!~"), 00003400
FO11(X8,"1 2 3 {!~"), 00003500
FO12(X8,"4 5 6{!~"), 00003600
FO13(X8,"7 8 9{!~"), 00003700
FO14(X8,"TYPE 0 WHEN YOU WISH TO STOP{!~"), 00003800
FMA3(X8," YOUR MOVE{!~"); 00003900
LIST LT(A[1],A[2],A[3]), LT1(A[4],A[5],A[6]), LT2(A[7],A[8], 00004000
A[9]); 00004100
STA~STATUS(TBUF[*]); 00004200
STA.[9:9]~TBUF[0].[9:9]; 00004300
WTT,FCRLF); 00004400
WTT,FO10); 00004500
WTT,FCRLF); 00004600
WTT,FO11); 00004700
WTT,FO12); 00004800
WTT,FO13); 00004900
WTT,FCRLF); 00005000
WTT,FO14); 00005100
CT~-1; 00005200
FILL TEMP[*] WITH 1,1,1,1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,5, 00005300
5,6,7,7,8; 00005400
FILL TEMP1[*] WITH 2,3,4,5,7,9,3,5,8,5,6,7,9,5,6,7,6,7,8,00005500
9,9,8,9,9; 00005600
FILL TEMP2[*] WITH 3,2,7,9,4,5,1,8,5,7,9,5,6,6,5,1,4,3,2,00005700
1,3,9,8,7; 00005800
YORI~2; 00005900
START: FOR I ~ 1 STEP 1 UNTIL 10 DO A[I]~ "*"; 00006000
MOVE ~0; GO TO SW1[YORI]; 00006100
MACH: CT~CT+2; IF CT>9 THEN CT~CT-9; A[CT]~"X"; YORI~1; 00006200
GO TO PRINT; 00006300
YOU1: YORI~2; WTT,FMA1); MOVE~MOVE+1; GO TO AG1; 00006400
AGAIN: B1~FALSE; MOVE~MOVE+1; WTT,FMA3); 00006500
AG1: RTT,FIN,YOU); 00006600
WTT,FCRLF); 00006700
IF YOU = 0 THEN GO TO FINISH ELSE 00006800
IF YOU<1 OR YOU>9 THEN 00006900
BEGIN WTT,FMA2); GO TO AG1 00007000
END; 00007100
IF A[YOU] !"*" THEN BEGIN WTT,FO8); 00007200
GO TO AG1 END; 00007300
A[YOU]~"0"; 00007400
FOR I~1 STEP 1 UNTIL 24 DO 00007500
BEGIN IF A[TEMP[I]]=A[TEMP1[I]] THEN 00007600
BEGIN IF A[TEMP[I]]="X" THEN 00007700
BEGIN IF (A[TEMP2[I]]="X") OR (A[TEMP2[I]]="0") THEN GO TO 00007800
CONT ELSE A[TEMP2[I]] ~"X"; GO TO YOULOOSE; 00007900
END; END; CONT: END; 00008000
FOR I~1 STEP 1 UNTIL 24 DO 00008100
BEGIN IF A[TEMP[I]]=A[TEMP1[I]] THEN 00008200
BEGIN IF A[TEMP[I]]="0" THEN 00008300
BEGIN IF (A[TEMP2[I]]="X") OR (A[TEMP2[I]]="0") 00008400
THEN GO TO CONT1 ELSE 00008500
BEGIN B1~ TRUE; A[TEMP2[I]]~"X" END; 00008600
GO TO CHECK1; END END; CONT1: END; 00008700
GO TO SW2[YORI]; 00008800
YOU2: IF MOVE =1 THEN GO TO FIRMOV ; 00008900
IF MOVE =2 THEN GO TO SW3[TYPE]; 00009000
IF B1 THEN GO TO CHECK1 ELSE GO TO MACH1; 00009100
FIRMOV: FOR I ~1,3,7,9 DO IF A[I] !"*" THEN BEGIN 00009200
TYPE~1; J~1; A[5] ~"X"; GO TO PRINT END; 00009300
FOR I ~ 2,4,6,8 DO IF A[I]!"*" THEN BEGIN 00009400
TYPE~2; J~1; A[5]~"X"; GO TO PRINT END; 00009500
TYPE~3; A[3]~"X"; GO TO PRINT; 00009600
CORN: IF A[10-J]!"*" THEN BEGIN 00009700
IF J=1 OR J=3 THEN A[2]~"X" ELSE A[8] ~"X"; GO TO PRINT; 00009800
END; 00009900
IF J>5 THEN A[16-J] ~"X" ELSE A[4-J] ~"X"; GO TO PRINT; 00010000
INSD: IF J=2 THEN BEGIN A[1]~"X"; GO TO PRINT END; 00010100
IF J=4 THEN BEGIN A[7]~"X"; GO TO PRINT END; 00010200
IF J=6 THEN BEGIN A[3]~"X"; GO TO PRINT END; 00010300
CNTR: A[9]~"X"; GO TO PRINT; 00010400
MACH1: FOR I~1,3,7,9 DO 00010500
IF A[I]="*" THEN BEGIN A[I]~"X"; GO TO CHECK1 END; 00010600
IF A[5]="*" THEN BEGIN A[5]~"X"; GO TO CHECK1 END; 00010700
FOR I~ 2,4,6,8 DO 00010800
IF A[I]="*" THEN BEGIN A[I]~"X"; GO TO CHECK1 END; 00010900
CHECK1: FOR I ~1 STEP 1 UNTIL 24 DO 00011000
IF A[TEMP[I]]=A[TEMP1[I]] THEN 00011100
BEGIN IF A[TEMP[I]]=A[TEMP2[I]] THEN 00011200
BEGIN IF A[TEMP[I]]!"*" THEN GO TO WIN END END; 00011300
FOR I ~1 STEP 1 UNTIL 9 DO 00011400
IF A[I]="*" THEN GO TO PRINT; GO TO MOUSE; 00011500
WIN: IF A[TEMP[I]]="X" THEN GO TO YOULOOSE; 00011600
WTT,FO7); K~2; GO TO PRINT1; 00011700
YOULOOSE: WTT,FO5); K~2; GO TO PRINT1; 00011800
MOUSE: WTT,FO6); K~2; GO TO PRINT1; 00011900
PRINT: K~1; 00012000
PRINT1: 00012100
WTT,FCRLF); 00012200
WTT,F01,LT); 00012300
WTT,F01,LT1); 00012400
WTT,F01,LT2); 00012500
WTT,FCRLF2); 00012600
GO TO SW[K]; 00012700
FINISH: 00012800
END. 00012900