LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERROR FILE 'SOS.KERNEL' NOT FOUND% INVALID KERNEL FILE: xةw,@ ȱlmi8# )! ) >dLԡm#i 㰼m#i ЕOLԡȱfg hi !dLԡ 憦 Ljmkm l y`2 Lԡ8(Je稽)ʈ@L TICTACTOE u ' %HELLO " FA ' # *SOS.KERNEL * , V ' a *SOS.DRIVER V % H ( + *SOS.INTERP { 4 ke ( +TTT.INSTALL ( & DA,d A TIC TAC TOE GAME FOR THE APPLE /// x by John Lomartire April 1988 =7:=35:"TIC TIC" =36:"\\ //" =37:"\\ //" =38:"TAC" =37:"// \\" ,=36:"// \\" @=35:"TOE TOE" TDELAY=1700:DELAY h: !|:=10:"79C";"TIC TAC TOE" V:"This tic tac toe game has been designed to be difficult. Although it is easy" V"to end up in a draw, it will be very hard to find a set of moves that will beat" "the computer." : !"#$%&'( "79C";"GOOD LUCK!" 6=20:"79C";"Press any key to begin --- ";:KEY$ 2 CHOOSING WHO GOES FIRST : !MOV=0:PWIN.FLAG=0:CWIN.FLAG=0 0PD1=0:PD2=0:CD1=0:CD2=0 'DPTR=0:PMR=0:PBR=0:CTR=0:CMR=0:CBR=0 'XPLC=0:PMC=0:PRC=0:CLC=0:CMC=0:CRC=0 +lSQ(1)=0:SQ(2)=0:SQ(3)=0:SQ(4)=0:SQ(5)=0 #SQ(6)=0:SQ(7)=0:SQ(8)=0:SQ(9)=0 'A=0:B=0:C=0:D=0:E=0:F=0:G=0:H=0:I=0 !=31::" OPTIONS ": <=6:"79C";"Use numbers 1 through 4 to make selection" *::"79C";"1. Player goes first " *::"79C";"2. Computer goes first" *::"79C";"3. Read documentation " * ::"79C";"4. Exit Program " 4SEL% -H(SEL%<>1SEL%<>2SEL%<>3SEL%<>4)500 \SEL%880,2300,7180,3440 p3460 + PLAYER GOES FIRST MOV=1 0,1740,22 .:"Your Selection? ";::PRESS$:6100 PRESS$<"1"6030:960 PRESS$>"9"6030:960 P%(MOV)=PRESS$) (P%(MOV)<1P%(MOV)>9)960 SQ(P%(MOV))=1:5400 3860 $P%(MOV)<>9C%(MOV)=9:1180 "8P%(MOV)=9RC%(1)=1)*4)+1 LRC%(1)=1C%(MOV)=1:1180 `RC%(1)=2C%(MOV)=3:1180 tRC%(1)=3C%(MOV)=5:1180 RC%(1)=4C%(MOV)=7 SQ(C%(MOV))=1:5580:4060 MOV=2 0,1740,22 .:"Your Selection? ";::PRESS$:6100 PRESS$<"1"6030:1240 PRESS$>"9"6030:1240 P%(MOV)=PRESS$) $(P%(2)=P%(1)P%(2)=C%(1))1240 SQ(P%(MOV))=1:5400 (3860 $<(P%(1)=4P%(2)=6)4400:1520 $P(P%(1)=6P%(2)=4)4400:1520 &d(P%(1)=4P%(2)=7)C%(2)=5:1520 bx((P%(1)=5P%(2)=1)(P%(1)=7P%(2)=3)(P%(1)=1P%(2)=5)(P%(1)=3P%(2)=7))4260:1520 -(P%(1)=9C%(1)=1P%(2)=5)4320:1520 -(P%(1)=9C%(1)=3P%(2)=7)4400:1520 -(P%(1)=9C%(1)=5P%(2)=1)4480:1520 -(P%(1)=9C%(1)=7P%(2)=3)4560:1520 4700 SQ(C%(2))=1:5580:4060 MOV=3 0,1740,22 .,:"Your Selection? ";::PRESS$:6100 .PRESS$<"1"6030:1580 0PRESS$>"9"6030:1580 2P%(MOV)=PRESS$) >@(P%(3)=P%(1)P%(3)=P%(2)P%(3)=C%(1)P%(3)=C%(2))1580 T hSQ(P%(3))=1:5400 |3860 5760 PWIN.FLAG=15880 4700 SQ(C%(MOV))=1:5580 4060 5820 CWIN.FLAG=15900 MOV=4 00,1740,22 .D:"Your Selection? ";::PRESS$:6100 FPRESS$<"1"6030:1860 HPRESS$>"9"6030:1860 JP%(MOV)=PRESS$) XX(P%(4)=P%(1)P%(4)=P%(2)P%(4)=P%(3)P%(4)=C%(1)P%(4)=C%(2)P%(4)=C%(3))1860 l SQ(P%(MOV))=1:5400 3860 5760 PWIN.FLAG=15880 4700 SQ(C%(MOV))=1:5580 4060 5820 CWIN.FLAG=15900 4MOV=5 H0,1740,22 .\:"Your Selection? ";::PRESS$:6100 ^PRESS$<"1"6030:2140 `PRESS$>"9"6030:2140 bP%(MOV)=PRESS$) tp(P%(5)=P%(1)P%(5)=P%(2)P%(5)=P%(3)P%(5)=P%(4)P%(5)=C%(1)P%(5)=C%(2)P%(5)=C%(3)P%(5)=C%(4))2140 SQ(P%(MOV))=1:5400 3860 5760 PWIN.FLAG=15880 5920 . COMPUTER GOES FIRST ::3460 $ MOV=1 8 C%(1)=1)*9)+1 L SQ(C%(MOV))=1:5580 ` 4060 t 0,1740,22 . :"Your Selection? ";::PRESS$:6100 PRESS$<"1"6030:2440 PRESS$>"9"6030:2440 P%(MOV)=PRESS$) 7 ((P%(MOV)=C%(1))((P%(MOV)<1)(P%(MOV)>9)))2440 SQ(P%(MOV))=1:5400 3860 MOV=2 * (C%(1)<>9P%(1)<>9)C%(MOV)=9:2620 C%(2)=1)*9)+1 $( (C%(2)=C%(1)C%(2)=P%(1))2580 < SQ(C%(MOV))=1:5580:4060 P 0,1740,22 .d :"Your Selection? ";::PRESS$:6100 f PRESS$<"1"6030:2660 h PRESS$>"9"6030:2660 j P%(MOV)=PRESS$) 1x (P%(2)=P%(1)P%(2)=C%(1)P%(2)=C%(2))2660 SQ(P%(MOV))=1:5400 3860 MOV=3 4700 SQ(C%(MOV))=1:5580:4060 5820 CWIN.FLAG=15900 ,0,1740,22 .@:"Your Selection? ";::PRESS$:6100 BPRESS$<"1"6030:2880 DPRESS$>"9"6030:2880 FP%(MOV)=PRESS$) KT(P%(3)=P%(1)P%(3)=P%(2)P%(3)=C%(1)P%(3)=C%(2)P%(3)=C%(3))2880 h |SQ(P%(3))=1:5400 3860 5760 PWIN.FLAG=15880 MOV=4 4700 SQ(C%(MOV))=1:5580 4060 5820 0CWIN.FLAG=15900 D0,1740,22 .X:"Your Selection? ";::PRESS$:6100 ZPRESS$<"1"6030:3160 \PRESS$>"9"6030:3160 ^P%(MOV)=PRESS$) el(P%(4)=P%(1)P%(4)=P%(2)P%(4)=P%(3)P%(4)=C%(1)P%(4)=C%(2)P%(4)=C%(3)P%(4)=C%(4))3160 SQ(P%(MOV))=1:5400 3860 5760 PWIN.FLAG=15880 MOV=5 4700 SQ(C%(MOV))=1:5580 4060 4 5820 H CWIN.FLAG=15900 \ 5920 p :: ) STARTING DIAGRAM " =5:=12:"|";" ";"|" " =6:=12:"|";" ";"|" " =7:=12:"|";" ";"|" 0 =8:=2:"---------------------------------" " =9:=12:"|";" ";"|" #=10:=12:"|";" ";"|" #$=11:=12:"|";" ";"|" 18=12:=2:"---------------------------------" #L=13:=12:"|";" ";"|" #`=14:=12:"|";" ";"|" #t=15:=12:"|";" ";"|" 1 NUMBERED SQUARES DIAGRAM 6=18:=58:"1";" ";"|";" ";"2";" ";"|";" ";"3" #=19:=55:"------------------" 6=20:=58:"8";" ";"|";" ";"9";" ";"|";" ";"4" #=21:=55:"------------------" 6=22:=58:"7";" ";"|";" ";"6";" ";"|";" ";"5" ( PLACING THE O's I(P%(MOV)=12,511,7:::" O":PTR=PTR+1:PLC=PLC+1:PD1=PD1+1:: @<P%(MOV)=213,521,7:::" O":PTR=PTR+1:PMC=PMC+1:: JPP%(MOV)=324,532,7:::" O":PTR=PTR+1:PRC=PRC+1:PD2=PD2+1:: @dP%(MOV)=82,911,11:::" O":PMR=PMR+1:PLC=PLC+1:: UxP%(MOV)=913,921,11:::" O":PMR=PMR+1:PMC=PMC+1:PD1=PD1+1:PD2=PD2+1:: AP%(MOV)=424,932,11:::" O":PMR=PMR+1:PRC=PRC+1:: KP%(MOV)=72,1311,15:::" O":PBR=PBR+1:PLC=PLC+1:PD2=PD2+1:: BP%(MOV)=613,1321,15:::" O":PBR=PBR+1:PMC=PMC+1:: LP%(MOV)=524,1332,15:::" O":PBR=PBR+1:PRC=PRC+1:PD1=PD1+1:: ) PLACING THE X's IC%(MOV)=12,511,7:::" X":CTR=CTR+1:CLC=CLC+1:CD1=CD1+1:: @C%(MOV)=213,521,7:::" X":CTR=CTR+1:CMC=CMC+1:: JC%(MOV)=324,532,7:::" X":CTR=CTR+1:CRC=CRC+1:CD2=CD2+1:: @,C%(MOV)=82,911,11:::" X":CMR=CMR+1:CLC=CLC+1:: U@C%(MOV)=913,921,11:::" X":CMR=CMR+1:CMC=CMC+1:CD1=CD1+1:CD2=CD2+1:: ATC%(MOV)=424,932,11:::" X":CMR=CMR+1:CRC=CRC+1:: KhC%(MOV)=72,1311,15:::" X":CBR=CBR+1:CLC=CLC+1:CD2=CD2+1:: B|C%(MOV)=613,1321,15:::" X":CBR=CBR+1:CMC=CMC+1:: LC%(MOV)=524,1332,15:::" X":CBR=CBR+1:CRC=CRC+1:CD1=CD1+1:: 3 SELECTED COMPUTER MOVES 2A RC%(2)=1)*4)+1 C%(MOV)=2*(RC%(2)): 3 SELECTED COMPUTER MOVES 2B RC%(2)=1)*2)+1 RC%(2)=1C%(MOV)=3: RC%(2)=2C%(MOV)=7: 30 SELECTED COMPUTER MOVES 2C DRC%(2)=1)*2)+1 XRC%(2)=1C%(MOV)=1: lRC%(2)=2C%(MOV)=5: 3 SELECTED COMPUTER MOVES 2D RC%(2)=1)*2)+1 RC%(2)=1C%(MOV)=3: RC%(2)=2C%(MOV)=7: 3 SELECTED COMPUTER MOVES 2E RC%(2)=1)*2)+1 RC%(2)=1C%(MOV)=1: RC%(2)=2C%(MOV)=5: 5 SELECTED COMPUTER MOVES 2F 4RC%(2)=1)*3)+1 HC%(MOV)=(2*(RC%(2)))+1: '\ COMPUTER MOVE