Do Run Run STWRITER.PRGB„!B„!8 5 90MONOPOLY.BAS 1/17/88 Page @ClearIf Xbios(4)<>0 Alert 3," | TO PLAY MONOPOLY|GO TO LOW RESOLUTION",1,"EXIT",B SystemEndifPrintPrint "Monopoly by David Addison, debugged and"Print " further improved."Print At(2,10);" Hello, are you ready to play"Print At(2,11);" Monopoly? Good! Please tell me"Print At(2,12);" your name: ";Repeat Input Human$Until Len(Human$)>1If Len(Human$)>8 Human$=Left$(Human$,8)EndifClsIf Not Exist("monopoly.rgb") Chdir "\monofile"EndifHidemOpen "I",#1,"monopoly.rgb"For J=0 To 15 R=Inp(#1) G=Inp(#1) B=Inp(#1) Setcolor J,R,G,BNext JClose #1Get 1,7,1,7,Blank$@Titel_efSget Titel$Bload "monopoly.put",Varptr(Titel$)Void C:Tite%(L:Varptr(Titel$))Chance$=Space$(7390)Bload "chance.put",Varptr(Chance$)Dice1$=Space$(374)Bload "dice1.put",Varptr(Dice1$)Dice2$=Space$(374)Bload "dice2.put",Varptr(Dice2$)Dice3$=Space$(374)Bload "dice3.put",Varptr(Dice3$)Dice4$=Space$(374)Bload "dice4.put",Varptr(Dice4$)Dice5$=Space$(374)Bload "dice5.put",Varptr(Dice5$)Dice6$=Space$(374)Bload "dice6.put",Varptr(Dice6$)Hotel$=Space$(2078)Bload "hotel.put",Varptr(Hotel$)Lite1$=Space$(1350)Bload "lite1.put",Varptr(Lite1$)Lite2$=Space$(1350)Bload "lite2.put",Varptr(Lite2$)Lite3$=Space$(1350)Bload "lite3.put",Varptr(Lite3$)Lite4$=Space$(1350)Bload "lite4.put",Varptr(Lite4$)Lite5$=Space$(1350)Bload "lite5.put",Varptr(Lite5$)Lite6$=Space$(1350)Bload "lite6.put",Varptr(Lite6$)Lite7$=Space$(1350)Bload "lite7.put",Varptr(Lite7$)Lite8$=Space$(1350)Bload "lite8.put",Varptr(Lite8$)Player1$=Space$(62)Bload "player1.put",Varptr(Player1$)Player2$=Space$(62)Bload "player2.put",Varptr(Player2$)Player3$=Space$(62)Bload "player3.put",Varptr(Player3$)Player4$=Space$(62)Bload "you4.put",Varptr(Player4$)Train1$=Space$(326)Bload "train1.put",Varptr(Train1$)Train2$=Space$(326)Bload "train2.put",Varptr(Train2$)Train3$=Space$(326)Bload "train3.put",Varptr(Train3$)Train4$=Space$(326)Bload "train4.put",Varptr(Train4$)Yesno$=Space$(774)Bload "yesno.put",Varptr(Yesno$)Center$=Space$(12382)Bload "center.put",Varptr(Center$)Chest$=Space$(7390)Bload "chest.put",Varptr(Chest$)Ctinue$=Space$(774)Bload "cont.put",Varptr(Ctinue$)House$=Space$(606)Bload "house.put",Varptr(House$)ShowmGoto Z7900Rem **** COMPUTER MONOPOLY **** SOFTWARE COPYRIGHT ½ 1985 by David M. AddisonRem **** key press sound ****Procedure Z40 Rem **** graphic to build house **** Put 138,129,House$,3 Kk%=Val(Mid$(B$,8,1))-1 Oct=3 Mnote1%=1 Mnote2%=12 Gosub Z40000ReturnRem **** SORT DEEDS ****Procedure Z50 For U%=1 To 4 If D%(U%)<2 Goto Z58 Endif For V%=1 To D%(U%)-1 For W%=1 To D%(U%)-1 C$=Str$(Pd(U%,W%)) B$=Str$(Pd(U%,W%+1)) If Mid$(C$,2,2)="23" Or Mid$(C$,2,1)="4" Y%=2-Val(Mid$(C$,2,1)) Goto Z54 Endif Y%=Val(Mid$(C$,4,2)) Z54: If Mid$(B$,2,2)="23" Or Mid$(B$,2,1)="4" X%=2-Val(Mid$(B$,2,1)) Goto Z56 Endif X%=Val(Mid$(B$,4,2)) Z56: If Y%>X% Zd=Pd(U%,W%) Pd(U%,W%)=Pd(U%,W%+1) Pd(U%,W%+1)=Zd Endif Next W% Next V% Z58: Next U%ReturnProcedure Z60 Rem **** GRAPHIC TO BUILD HOTEL **** Put 113,117,Hotel$,3 Kk%=5 Oct=2 Mnote1%=1 Mnote2%=12 Gosub Z40000ReturnRem **** POLICE GRAPHIC ****Procedure Z70 Gosub Z36300ReturnRem **** SOUND ****Procedure Z80ReturnRem **** GRAPHIC FOR TRAIN ****Procedure Z90 Yy%=132 Xx%=220 J%=0 Draw 66,152 To 245,152 For I%=220 To 66 Step -1 Inc J% If J%>4 J%=1 Endif If J%=1 Goto Z95 Endif If J%=2 Goto Z96 Endif If J%=3 Goto Z97 Endif If J%=4 Goto Z98 Endif Z95: Vsync Put I%,Yy%,Train1$,3 Goto Z99 Z96: Vsync Put I%,Yy%,Train2$,3 Goto Z99 Z97: Vsync Put I%,Yy%,Train3$,3 Goto Z99 Z98: Vsync Put I%,Yy%,Train4$,3 Z99: Pause 2 Next I%ReturnRem **** FETCH PROPERTY NAME ****Procedure Z200 X%=Val(Mid$(B$,4,2)) A$=Propname$(X%) If Propcolor%(X%)<>7 Print Chr$(27);"b";Chr$(Propcolor%(X%));A$; Else Print Chr$(27);"b";Chr$(10);A$; EndifReturnRem **** FETCH PROPERTY DEED ****Procedure Z299 B$=Propdeed$(Z%)ReturnRem **** MENU ****Z400:Gosub DrawcenterGosub Z460ShowmZ401:Repeat Bb%=MousekUntil Bb%<>0Mouse Xx%,Yy%,Bb%Repeat Bb%=MousekUntil Bb%=0X%=Point(Xx%,Yy%)If X%=3 Hidem T%=4 Gosub Drawcenter Goto Z1219EndifIf X%=7 Goto Z5000EndifIf X%=15 Gosub Z3000 Gosub Z41000 Goto Z400EndifIf X%=9 Goto Z410EndifGoto Z401Z410:Gosub DrawcenterPrintPrintPrint At(13,Crslin);"b^L Are you SURE"Print At(11,Crslin);" you want to QUIT!"Gosub Z1700If X$="Y" Goto Z48000EndifGoto Z400Procedure Z460 Print At(9,8);"b^Ac^G MENU" Graphmode 2 Color 2 Circle (16*8)-3,(11*8)-3,5 Deffill 9,1 Fill (16*8)-3,(11*8)-3 Deftext 9,1,0,6 Text 18*8,11*8,"= End" Color 2 Circle (16*8)-3,(13*8)-3,5 Deffill 7,1 Fill (16*8)-3,(13*8)-3 Deftext 7,1,0,6 Text 18*8,13*8,"= Trade" Color 2 Circle (16*8)-3,(15*8)-3,5 Deffill 15,1 Fill (16*8)-3,(15*8)-3 Deftext 15,1,0,6 Text 18*8,15*8,"= Info." Color 2 Circle (16*8)-3,(17*8)-3,5 Deffill 3,1 Fill (16*8)-3,(17*8)-3 Deftext 3,1,0,6 Text 18*8,17*8,"= Play"ReturnZ600:Rem **** COMPUTER TRADE ****If D%(T%)=0 Goto Z1020EndifU%=1Z611:If U%=T% Goto Z620EndifIf D%(U%)=0 Goto Z620EndifV%=1Z614:Y%=0B$=Str$(Pd(U%,V%))For W%=1 To D%(T%) C$=Str$(Pd(T%,W%)) If Mid$(B$,2,2)=Mid$(C$,2,2) Inc Y% EndifNext W%If Val(Mid$(B$,2,1))=Y%+1 And B$<>"23" Goto Z630EndifZ618:Inc V%If V%<=D%(U%) Goto Z614EndifZ620:Inc U%If U%<4 Goto Z611EndifGoto Z1003Z630:X%=1Z631:Y%=0C$=Str$(Pd(T%,X%))For Z%=1 To D%(U%) D$=Str$(Pd(U%,Z%)) If Mid$(C$,2,2)=Mid$(D$,2,2) Inc Y% EndifNext Z%If Val(Mid$(C$,2,1))=Y%+1 Goto Z640EndifZ634:Inc X%If X%<=D%(T%) Goto Z631EndifGoto Z618Z640:If Mid$(C$,2,2)=Mid$(B$,2,2) Goto Z634EndifD$=C$Y%=T%T%=U%Gosub Z6000X%=Z%T%=Y%D$=B$Gosub Z6000Y%=Z%Z%=Int(Y%-X%)/2Z%=100*Int(Z%/100)If C%(T%)-Z%<0 Or C%(U%)+Z%<0 Goto Z1003EndifW%=0Gosub DrawcenterPrint At(18,7);"b^K";Human$;"!"Z661:Inc W%Pause 8Print At(18,7);"b^A";Human$;"!"Sound 1,12,3,2Pause 10Print At(18,7);"b^K";Human$;"!"Sound 1,12,3,8If W%<6 Goto Z661EndifWave 0,0Print At(9,Crslin);Gosub Z4080Print "b^A just traded "D$=B$B$=C$Print At(9,Crslin);Gosub Z200PrintC%(T%)=C%(T%)-Z%C%(U%)=C%(U%)+Z%If Z%>0 Print At(9,Crslin);"b^Aand $ ";Z%;" "; PrintEndifPrint At(9,Crslin);"b^Aand got "B$=D$Print At(9,Crslin);Gosub Z200PrintPrint At(9,Crslin);If Z%<0 Print "b^Aand $ ";Abs(Z%);EndifPrint " from ";Y%=T%T%=U%Gosub Z4080Print "b^A !"Print At(9,Crslin);Gosub Z4080Print "b^A has $ ";C%(U%);"."T%=Y%Print At(9,Crslin);Gosub Z4080Print "b^A has $ ";C%(T%);"."Gosub Z2780Gosub DrawcenterGoto Z5350Z1000:Rem **** MAIN LOOP ****Gosub Z2400If Gameover Goto Z48000EndifIf T%=4 Goto Z1003EndifGoto Z600Z1003:If D%(T%)=0 Goto Z1020EndifIf T%>3 Goto Z1009EndifFor S%=1 To D%(T%) C$=Str$(Pd(T%,S%)) If Mid$(C$,8,1)="0" Or Len(C$)>8 Gosub Z1500 EndifNext S%Z1009:If T%=4 Gosub Z1500EndifZ1020:Gosub Z1400If L%(T%)=40 Goto Z2900EndifQ%=0Gosub Z10000Print At(9,10);Gosub Z4088Print "b^A rolled ";If D1%+D2%=8 Or D1%+D2%=11 Print "an ";D1%+D2% Goto Z1050EndifPrint "a ";D1%+D2%Z1050:If D1%<>D2% Goto Z1100EndifInc D3%Inc D%If D%=3 Xnewx%=40 Gosub Z31000 L%(T%)=40 Print Print At(9,Crslin);"b Three doubles..."; Print Print At(9,Crslin);"GO TO JAIL!!" Gosub Z70 Goto Z1210EndifZ1100:If Gameover Goto Z48000EndifGosub Z30000Gosub DrawcenterL%(T%)=L%(T%)+D1%+D2%If L%(T%)>39 Sub L%(T%),40 Gosub Z4070EndifZ1110:Z%=L%(T%)Gosub Z299Gosub Z4080Print "b^A landed on "Print At(9,Crslin);Gosub Z200Print "b^A."Gosub Z80If Mid$(B$,2,3)="502" Goto Z47000EndifIf Mid$(B$,2,2)="60" Goto Z3100EndifIf Mid$(B$,2,2)="70" Goto Z4220EndifIf Mid$(B$,2,2)="80" Xnewx%=40 Gosub Z31000 L%(T%)=40 Gosub Z70 Goto Z1210EndifZ1116:If Val(Mid$(B$,2,1))>4 Gosub Z2400 Goto Z1200EndifFor V%=1 To 4 If D%(V%)=0 Goto Z1124 Endif For X%=1 To D%(V%) C$=Str$(Pd(V%,X%)) Exit If Mid$(C$,1,3)=Mid$(B$,1,3) Next X% Exit If Mid$(C$,1,3)=Mid$(B$,1,3) Z1124:Next V%If Mid$(C$,1,3)=Mid$(B$,1,3) Goto Z1140EndifIf T%<4 Goto Z1300EndifIf Val(Mid$(B$,2,1))<5 And C%(4)<20*Fininfo%(8*Val(Mid$(B$,6,2))) Goto Z1170EndifZ1130:PrintPrint At(9,Crslin);"b^AYou have $ ";C%(T%)PrintPrint At(9,Crslin);"Want to buy"Print At(9,Crslin);Gosub Z200PrintPrint At(9,Crslin);"b^Afor $ ";20*Fininfo%(8*Val(Mid$(B$,6,2)));Print "b^A?"Gosub Z1700If X$="N" Goto Z1200EndifGosub Z2800Goto Z1200Z1140:If V%<>T% Goto Z1148EndifIf T%=4 Print Print Print At(9,Crslin);"b^KYou own it." Goto Z1200EndifPrintPrintPrint At(9,Crslin);Gosub Z4080Print "b^O owns it."Goto Z1200Z1148:If Mid$(C$,8,1)<>"0" Goto Z1150EndifPrint At(9,Crslin);"b No rent!"Y%=T%T%=V%Print At(9,Crslin);Gosub Z4080T%=Y%PrintPrint At(9,Crslin);"b^Amortgaged the property."Goto Z1200Z1150:For Tt=1 To 3 Pause 10 Print At(15,Crslin);"b";Chr$(13);"PAY RENT!"; Sound 1,10,5,4 Pause 10 Print At(15,Crslin);"b^LPAY RENT!"; Sound 1,10,12,4Next TtWave 0,0If Q%=82 Print Print At(15,Crslin);"b^C(DOUBLED)"EndifPrintPrint At(9,Crslin);Goto Z2600Z1170:If D%(4)=0 Goto Z1198EndifZ%=C%(4)For W%=1 To D%(4) C$=Str$(Pd(4,W%)) If Mid$(C$,8,1)="1" Or Mid$(C$,8,1)="2" Z%=Z%+10*Fininfo%(8*Val(Mid$(C$,6,2))) EndifNext W%If Z%<20*Fininfo%(8*Val(Mid$(B$,6,2))) Goto Z1198EndifPrint At(9,Crslin);"b^AYou can raise an "Print At(9,Crslin);"additional $ ";Z%-C%(4);" cash "Print At(9,Crslin);"by mortgaging "Print At(9,Crslin);"undeveloped land."Print At(9,Crslin);"Want to mortgage land"Print At(9,Crslin);"and buy?"Gosub Z1700If X$="N" Print At(9,Crslin);"bNot a gambler, eh? OK..." Goto Z1200EndifU%=1Z1187:Gosub Z2700If C%(4)>=20*Fininfo%(8*Val(Mid$(B$,6,2))) Goto Z1130EndifInc U%If U%<=D%(4) Goto Z1187EndifZ1198:Print At(9,Crslin);"b You don't have the"Print At(9,Crslin);"money to buy."Gosub Z2780Z1200:If Gameover Goto Z48000EndifIf D3%=1 Gosub Z2780 Gosub Drawcenter Gosub Z4080 Print "b^A had doubles" D3%=0 Pause 50 Goto Z1000EndifZ1210:If Gameover Goto Z48000EndifD3%=0D%=0Inc T%If T%=5 T%=1EndifIf J%(T%)=1000 Goto Z1210EndifGosub Z2780If T%=4 Goto Z400EndifZ1219:Goto Z1223If T%=4 Z%=L%(T%) Gosub Z299 Gosub Drawcenter If Z%=40 Print "b^KYou are" Else Print "b^KYou're on" EndifEndifIf T%=4 Print At(9,Crslin); Gosub Z200 Print Print At(9,Crslin);"b^AYou have $ ";C%(4)EndifIf T%<4 Gosub Drawcenter Z%=T% Gosub Z4080 Z%=L%(T%) If Z%=40 Print "b^A is" Else Print "b^A is on" EndifEndifIf T%<4 Gosub Z299 Print At(9,Crslin); Gosub Z200 Print Print At(9,Crslin); Gosub Z4088 Print "b^A has $ ";C%(T%)EndifZ1223:Goto Z1000Z1300:Rem **** WILL COMPUTER BUY ****X%=0For V%=1 To 4 X%=X%+35*H%(V%)+200*H1%(V%)Next V%X%=X%-(H1%(T%)*200+H%(T%)*35)If Mid$(B$,2,2)<>"23" Goto Z1314EndifIf T%=3 And Rnd>0.5 Print Print At(9,Crslin);"bUtilities are so " Print At(9,Crslin);"dull, says Chip." Gosub Z1350 Goto Z1200EndifIf C%(T%)"4" Goto Z1320EndifIf T%=2 And Rnd>0.5 Print Print At(9,Crslin);"b^ORailroads are ickey," Print At(9,Crslin);"says Betsy." Gosub Z1350 Goto Z1200EndifY%=0For V%=1 To D%(T%)+1 If Int(Pd(T%,V%)/10^7)=10*Int(Pd(T%,V%)/10^7)+4 Inc Y% EndifNext V%If C%(T%)<500-100*Y% Gosub Z1350 Goto Z1200EndifGosub Z2800Goto Z1200Z1320:If C%(T%)>X%+20*Fininfo%(8*Val(Mid$(B$,6,2)))+10*3*T% Gosub Z2800 Goto Z1200EndifIf D%(T%)=0 Gosub Z1350 Goto Z1200EndifY%=0For V%=1 To D%(T%) C$=Str$(Pd(T%,V%)) If Mid$(C$,2,2)=Mid$(B$,2,2) Inc Y% EndifNext V%If Y%<>Val(Mid$(B$,2,1))-1 Gosub Z1350 Goto Z1200EndifIf C%(T%)=20*Fininfo%(8*Val(Mid$(B$,6,2))) Gosub Z2800 Goto Z1200EndifIf D%(T%)=0 Gosub Z1350 Goto Z1200EndifX%=0Y%=0For V%=1 To D%(T%) C$=Str$(Pd(T%,V%)) If Mid$(C$,8,1)="1" X%=X%+10*Fininfo%(8*Val(Mid$(C$,6,2))) EndifNext V%If C%(T%)+X%<20*Fininfo%(8*Val(Mid$(B$,6,2))) Gosub Z1350 Goto Z1200EndifZ1344:If C%(T%)>20*Fininfo%(8*Val(Mid$(B$,6,2))) Gosub Z2800 Goto Z1200EndifGosub Z2700Goto Z1344Procedure Z1350 Rem **** REFUSE BUY **** Print Print Print At(9,Crslin); Gosub Z4080 Print "b^A saves "; If T%=2 Print "her"; Goto Z1353 Endif Print "his"; Z1353: Print " money."ReturnProcedure Z1400 Rem **** DEVELOP HOUSES & HOTELS **** If D%(T%)=0 Gosub Z1600 Goto Z1475 Endif Z%=0 For V%=1 To 4 Z%=Z%+35*H%(V%)+180*H1%(V%) Next V% Z%=Z%+20-(H%(T%)*35+H1%(T%)*180) A%=1 Z1410: C$=Str$(Pd(T%,A%)) If Mid$(C$,2,1)="4" Or Mid$(C$,2,2)="23" Goto Z1414 Endif If Val(Mid$(C$,8,1))>1 And Val(Mid$(C$,8,1))<7 Gosub Z1485 If Y%=1 Goto Z1428 Endif If Y%=2 Goto Z1414 Endif Endif Z1414: Inc A% If A%>D%(T%) Gosub Z2780 Gosub Z1600 Goto Z1475 Endif Goto Z1410 Z1428: U%=Val(Mid$(C$,8,1)) For W%=A% To A%+Val(Mid$(C$,2,1))-1 B$=Str$(Pd(T%,W%)) Exit If Val(Mid$(B$,8,1))>U% Next W% Z1436: Dec W% B$=Str$(Pd(T%,W%)) Y%=50*(1+Int(Val(Mid$(B$,4,2))/10)) If T%=4 And C%(T%)b^A You need another" Print At(9,Crslin);" $ ";Y%-C%(T%);" to build." Gosub Z2780 Gosub Z1600 Goto Z1475 Endif If T%=4 Goto Z1460 Endif If C%(T%)b^A builds a " Print At(9,Crslin); Gosub Z1478 Print "b^A$ ";Y%; If Mid$(B$,8,1)="6" Inc H1%(T%) Sub H%(T%),4 Print "b Hotel" Goto Z1452 Endif Inc H%(T%) Print "b^E House" Z1452: Print At(9,Crslin);"b^Aon "; Gosub Z200 Print " " If Mid$(B$,8,1)="6" Gosub Z60 Xx%=Val(Mid$(B$,4,2)) Gosub Z25000 Gosub Drawcenter Goto Z1410 Endif Xx%=Val(Mid$(B$,4,2)) Gosub Z25000 Gosub Z40 Goto Z1410 Z1460: Gosub Drawcenter Print "b^AYou have $ ";C%(T%) Print At(9,Crslin);"Want to build a "; If Mid$(B$,8,1)="6" Print Print At(9,Crslin);"b Hotel "; Goto Z1462 Endif Print Print At(9,Crslin); Gosub Z1478 Print "b^EHouse "; Z1462: Print "b^Aon " Print At(9,Crslin); Gosub Z200 Print Print At(9,Crslin);"b^Afor $ ";Y%;" ?" Gosub Z1700 If X$="N" Gosub Drawcenter Print "b^AOK..." A%=A%+(Val(Mid$(C$,2,1))-Val(Mid$(C$,1,1))) Goto Z1414 Endif C%(T%)=C%(T%)-Y% Inc Pd(T%,W%) C$=Str$(Pd(T%,W%)) If Mid$(C$,8,1)<"7" Inc H%(T%) Gosub Z40 Gosub Drawcenter Print "b^AOK. Now you have $ ";C%(T%) Goto Z1471 Endif Gosub Z60 Gosub Drawcenter Print "bOK.. ,Tycoon." Print At(9,Crslin);"b^AYou have $ ";C%(T%) Print At(9,Crslin);"and a Hotel on " Print At(9,Crslin); Gosub Z200 Print "b^O!" Gosub Z27000 Sub H%(T%),4 Inc H1%(T%) Gosub Z2780 Goto Z1410 Z1471: If Mid$(C$,8,1)="3" Print At(9,Crslin);"b^Aand a house on" Print At(9,Crslin); Gosub Z200 Print "b^A." Gosub Z27000 Gosub Z2780 Goto Z1410 Endif Print At(9,Crslin);"b^Aand ";Val(Mid$(C$,8,1))-2;" houses on" Print At(9,Crslin); Gosub Z200 Print " " Gosub Z27000 Gosub Z2780 Goto Z1410 Z1475:ReturnProcedure Z1478 If Mid$(B$,8,1)="6" Goto Z1481 Endif If Val(Mid$(B$,8,1))-1=1 Print "b^Ofirst "; Goto Z1481 Endif If Val(Mid$(B$,8,1))-1=2 Print "b^Osecond "; Goto Z1481 Endif If Val(Mid$(B$,8,1))-1=3 Print "b^Othird "; Goto Z1481 Endif If Val(Mid$(B$,8,1))-1=4 Print "b^Ofourth "; Goto Z1481 Endif Z1481:ReturnProcedure Z1485 Y%=1 W%=1 Z1486: D$=Str$(Pd(T%,W%)) If Mid$(D$,2,2)=Mid$(C$,2,2) And Mid$(D$,8,1)="0" Y%=2 Endif Inc W% If W%<=D%(T%) Goto Z1486 Endif Z1490:ReturnProcedure Z1500 Rem **** UNMORTGAGE PROPERTY **** If D%(T%)=0 Goto Z1570 Endif Z1504: W%=1 Z1505: C$=Str$(Pd(T%,W%)) If Len(C$)>8 Goto Z1520 Endif Inc W% If W%<=D%(T%) Goto Z1505 Endif W%=1 Z1512: C$=Str$(Pd(T%,W%)) If Val(Mid$(C$,8,1))>2 And Val(Mid$(C$,8,1))<7 And T%<4 Goto Z1570 Endif Inc W% If W%<=D%(T%) Goto Z1512 Endif W%=1 Z1517: C$=Str$(Pd(T%,W%)) If Mid$(C$,8,1)="0" Goto Z1520 Endif Inc W% If W%<=D%(T%) Goto Z1517 Endif Goto Z1570 Z1520: Y%=11*Fininfo%(8*Val(Mid$(C$,6,2))) If T%=4 Goto Z1550 Endif If C%(T%)<(Y%+50*T%) Goto Z1570 Endif C%(T%)=C%(T%)-Y% B$=C$ Gosub Drawcenter Gosub Z4080 Print "b^A pays $ ";Y%;" ," Print Print At(9,Crslin);"including $ ";Int((1/11)*Y%);" interest" Print Print At(9,Crslin);"to remove the mortgage" Print Print At(9,Crslin);"on "; Gosub Z200 Print If Len(C$)>8 Pd(T%,W%)=Val(Mid$(C$,1,8))+2 Tt%=T% Bb$=Str$(Pd(T%,W%)) Gosub Z19000 Gosub Z2780 Gosub Drawcenter Goto Z1570 Endif Inc Pd(T%,W%) Tt%=T% Bb$=Str$(Pd(T%,W%)) Gosub Z19000 Gosub Z2780 Gosub Drawcenter Goto Z1504 Z1550: If C%(T%)b^AYou have $ ";C%(T%) Print Print At(9,Crslin);"Want to pay $ ";Y% Print At(9,Crslin);"to remove the mortgage" Print At(9,Crslin);"on "; Gosub Z200 Print "b^A?" Gosub Z1700 If X$="N" Gosub Drawcenter Goto Z1570 Endif C%(T%)=C%(T%)-Y% If Len(Str$(Pd(T%,W%)))>8 Pd(T%,W%)=Pd(T%,W%)+1/2 Endif Inc Pd(T%,W%) Gosub Drawcenter Print "Mortgage removed." Print At(9,Crslin);"You have $ ";C%(T%) Tt%=T% Bb$=Str$(Pd(T%,W%)) Gosub Z19000 Gosub Z2780 Goto Z1504 Z1570:ReturnProcedure Z1600 Rem **** SHOW STUFF **** If T%=4 Z%=L%(T%) Gosub Z299 Gosub Drawcenter If Z%=40 Print "You are" Else Print "You're on" Endif Endif If T%=4 Print At(9,Crslin); Gosub Z200 Print Print At(9,Crslin);"b^AYou have $ ";C%(4) Endif If T%<4 Gosub Drawcenter Z%=T% Gosub Z4080 Z%=L%(T%) If Z%=40 Print "b^A is" Else Print "b^A is on" Endif Endif If T%<4 Gosub Z299 Print At(9,Crslin); Gosub Z200 Print Print At(9,Crslin); Gosub Z4088 Print "b^A has $ ";C%(T%) EndifReturnProcedure Z1700 Rem **** YES - NO ROUTINE **** Get 104,156,227,168,Oldyesno$ Put 104,156,Yesno$,3 Showm Z1706: Repeat B%=Mousek Until B%<>0 Repeat B%=Mousek Until B%=0 Mouse Xxx%,Yyy%,B% If Xxx%<104 Or Xxx%>227 Or Yyy%<156 Or Yyy%>168 Goto Z1706 Endif If Xxx%<165 X$="Y" Goto Z1720 Else X$="N" Goto Z1720 Endif Goto Z1706 Z1720: Put 104,156,Oldyesno$,3 HidemReturnProcedure Z2400 Rem **** CHECK CASH LEVELS **** U%=0 If C%(T%)>=0 Goto Z2410 Endif If D%(T%)=0 Z%=0 Gosub Z2500 Endif Net%=D%(T%)+H%(T%)+5*(H1%(T%)) Z2404: If Gameover Or C%(T%)>=0 Goto Z2410 Endif Inc U% If U%>Net% Z%=0 Gosub Z2500 Goto Z2410 Endif Gosub Z2700 Goto Z2404 Z2410:ReturnProcedure Z2500 Rem **** GO BUST, TAKE PROPERTY **** If T%=4 Gosub Drawcenter Print "b^L SORRY, YOU LOSE !!!!" Gosub Z41000 Gameover=True Goto Z2536 Endif If J%(1)+J%(2)+J%(3)>=100*20 Gosub Drawcenter Print "b^C YOU WIN, ";Human$;"!!!" Gosub Z41000 Gameover=True Goto Z2536 Endif Gosub Z2780 Gosub Drawcenter Print Print Print At(13,Crslin); Gosub Z4080 Print "b^A is busted!!!" Gosub Z2780 Gosub Drawcenter Xnewx%=41 Gosub Z31000 L%(T%)=41 If Z%=1 Or Z%=2 Or Z%=3 Or Z%=4 Goto Z2527 Endif Z2522: J%(T%)=1000 C%(T%)=0 For V%=1 To D%(T%) If Z%<1 Or Z%>4 C$=Str$(Pd(T%,V%)) B=Val(Mid$(C$,4,2)) Graphmode 1 Deftext 0,0,0,6 Text Owner%(B,0),Owner%(B,1)," " Endif Pd(T%,V%)=0 Next V% D%(T%)=0 D%=0 D3%=0 Gosub Z50 Goto Z2536 Z2527: If D%(T%)>0 Goto Z2530 Endif Gosub Drawcenter Gosub Z4080 Print "b^A's $ ";C%(T%);" goes to" Y%=T% T%=Z% Print At(9,Crslin); Gosub Z4080 T%=Y% Print "b^A." C%(Z%)=C%(Z%)+C%(T%) Gosub Z2780 Goto Z2522 Z2530: For V%=D%(Z%)+1 To D%(Z%)+D%(T%) Pd(Z%,V%)=Pd(T%,V%-D%(Z%)) Gosub Z18000 Gosub Drawcenter Gosub Z2540 Next V% D%(Z%)=V%-1 Gosub Z2780 Gosub Drawcenter If Z%=4 Print "You take "; Gosub Z4080 Print "b^A's land." Goto Z2534 Endif X%=T% T%=Z% Gosub Z4080 Print "b^A takes " T%=X% Print At(9,Crslin); Gosub Z4080 Print "b^A's property." Z2534: If C%(T%)>0 C%(Z%)=C%(Z%)+C%(T%) Print At(9,Crslin);"Also $ ";C%(T%);" in cash." Endif Goto Z2522 Z2536: Sub Numplayers%,1ReturnProcedure Z2540 X1%=0 B$=Str$(Pd(Z%,V%)) Y%=2*Fininfo%(8*Val(Mid$(B$,6,2))) Print "b^OInterest payable:" C%(Z%)=C%(Z%)-Y% Print At(9,Crslin);"b^A$ ";Y%;" on " Print At(9,Crslin); Gosub Z200 Print "b^A." Print Gosub Z41000 W%=1 Z2543: C$=Str$(Pd(Z%,W%)) If Mid$(C$,2,2)=Mid$(B$,2,2) Inc X1% If Str$(X1%)=Mid$(B$,2,1) Goto Z2548 Endif Endif Inc W% If W%<=V% Goto Z2543 Endif Goto Z2561 Z2548: W%=1 Z2549: C$=Str$(Pd(Z%,W%)) If Mid$(C$,2,2)<>Mid$(B$,2,2) Goto Z2560 Endif If Len(C$)=8 And Mid$(C$,8,1)="0" Pd(Z%,W%)=Pd(Z%,W%)+1/2 Endif If Mid$(C$,8,1)="1" Inc Pd(Z%,W%) Endif Z2560: Inc W% If W%<=V% Goto Z2549 Endif Z2561:ReturnZ2600:Rem **** PAY RENT ****Z%=Val(Mid$(C$,8,1))X%=T%If Mid$(C$,2,1)="4" Goto Z2650EndifIf Mid$(C$,2,2)="23" Goto Z2670EndifGosub Z4080Print "b^A must pay "T%=V%Print At(9,Crslin);Gosub Z4080Print "b^A $ ";If Z%>2 Goto Z2620EndifY%=Fininfo%(8*Val(Mid$(B$,6,2))+Z%-8)Print Y%If Z%=2 Print At(9,Crslin);"b^C(Doubled for monopoly)"EndifGoto Z2630Z2620:Y%=10*Fininfo%(8*Val(Mid$(B$,6,2))+Z%-8)Print Y%Print At(9,Crslin);"b^A(Rent for ";If Z%=7 Print "b HOTELb^A)" Goto Z2630EndifPrint Z%-2;If Z%=3 Print "b^E houseb^A)" Goto Z2630EndifPrint "b^E housesb^A)"Z2630:T%=X%If C%(X%)b^AYou pay $ ";Y% Goto Z1200EndifPrint At(9,Crslin);Gosub Z4088Print "b^A pays $ ";Y%;" .";Goto Z1200Z2640:Z%=V%If D%(T%)=0 Gosub Z2500 Goto Z1200EndifU%=0Net%=D%(T%)+H%(T%)+(5*H1%(T%))Z2641:If C%(T%)>=Y% U%=0 Goto Z2632EndifInc U%Z%=V%If U%>Net% Gosub Z2500 Goto Z1200EndifGosub Z2780Gosub Z2700V%=Z%Goto Z2641Z2650:U%=0For W%=1 To D%(V%) C$=Str$(Pd(V%,W%)) If Mid$(C$,2,1)="4" Inc U% EndifNext W%If U%=1 Y%=25 Goto Z2658EndifY%=50*Int((U%*U%)/4)Z2658:If Q%=82 Y%=Y%*2EndifPrint At(9,Crslin);Gosub Z4080If T%=4 Print "b^A owe ";EndifIf T%<4 Print "b^A owes ";EndifX%=T%T%=V%Gosub Z4080Print "b^A $ ";Y%;" ."If U%>1 Print At(9,Crslin);"b^O(Rent with b^B";U%;"b^O Railroads)"EndifGoto Z2630Z2670:U%=0For W%=1 To D%(V%) C$=Str$(Pd(V%,W%)) If Mid$(C$,2,2)="23" Inc U% EndifNext W%Y%=V%Gosub Z2780V%=Y%If Q%=82 U%=2EndifPrint At(9,Crslin);"b^ARolling to pay rent.."Gosub Z10000W%=D1%Z%=D2%Print At(9,Crslin);Gosub Z4080Print "b^A rolled a ";W%+Z%If U%=1 Goto Z2676EndifIf U%=2 Goto Z2678EndifZ2676:Y%=4*(W%+Z%)X%=T%T%=V%Print At(9,Crslin);"b^APay ";Gosub Z4080Print "b^A 4 ";Goto Z2680Z2678:Y%=10*(W%+Z%)Print At(9,Crslin);"b^LUTILITY MONOPOLY!"X%=T%T%=V%PrintPrint At(9,Crslin);"b^APay ";Gosub Z4080Print "b^A 10 ";Z2680:Print "times"Print At(9,Crslin);"the roll of the dice!"PrintGoto Z2630Procedure Z2700 Rem **** MORTGAGE PROPERTY **** If D%(T%)=0 Goto Z2765 Endif V%=1 Z2710: C$=Str$(Pd(T%,V%)) If Mid$(C$,2,1)<>"4" And Mid$(C$,8,1)="1" Goto Z2722 Endif Inc V% If V%<=D%(T%) Goto Z2710 Endif V%=1 Z2713: C$=Str$(Pd(T%,V%)) If Mid$(C$,8,1)="1" Goto Z2722 Endif Inc V% If V%<=D%(T%) Goto Z2713 Endif For V%=1 To D%(T%) C$=Str$(Pd(T%,V%)) If Mid$(C$,8,1)="2" W%=D%(T%)+1 Endif Exit If Mid$(C$,8,1)="2" Next V% If Mid$(C$,8,1)="2" Goto Z2718 Endif Goto Z2730 Z2718: Dec W% D$=Str$(Pd(T%,W%)) If Mid$(D$,2,2)=Mid$(C$,2,2) And Val(Mid$(D$,8,1))>2 Goto Z2730 Endif If W%=1 Goto Z2721 Endif Goto Z2718 Z2721: Pd(T%,V%)=Pd(T%,V%)-1/2 Z2722: Dec Pd(T%,V%) X%=10*Fininfo%(8*Val(Mid$(C$,6,2))) C%(T%)=C%(T%)+X% A$=B$ B$=C$ C$=A$ Gosub Z2780 Gosub Drawcenter Gosub Z4080 Print "b^A borrowed $ ";X% Print At(9,Crslin);"on "; Gosub Z200 Print "b^A." B$=C$ Print Print At(9,Crslin);"b^ATotal cash: $ ";C%(T%) Bb$=Str$(Pd(T%,V%)) Tt%=T% Gosub Z19000 Gosub Z41000 Gosub Drawcenter Goto Z2765 Z2730: W%=8 Z2731: Dec W% For V%=1 To D%(T%) C$=Str$(Pd(T%,V%)) Exit If Mid$(C$,8,1)=Str$(W%) Next V% If Mid$(C$,8,1)=Str$(W%) Goto Z2750 Endif If W%=3 Goto Z2765 Endif Goto Z2731 Z2750: Dec Pd(T%,V%) X%=5*5*(1+Int(Val(Mid$(C$,4,2))/10)) If W%=7 Add H%(T%),4 Dec H1%(T%) Goto Z2760 Endif Dec H%(T%) Z2760: B$=Str$(Pd(T%,V%)) Xx%=Val(Mid$(B$,4,2)) Gosub Z26000 C%(T%)=C%(T%)+X% Gosub Drawcenter Gosub Z4080 Print "b^A mortgaged" If W%=7 Print At(9,Crslin);"b^La hotel" Goto Z2762 Endif Print At(9,Crslin);"b^Athe "; Gosub Z2770 Print "b^E house" Z2762: W%=X% Print At(9,Crslin);"b^Aon "; B$=C$ Gosub Z200 Print Print At(9,Crslin);"b^Afor $ ";W% Print Print At(9,Crslin);"Total cash: $ ";C%(T%) Gosub Z41000 Z2765:ReturnProcedure Z2770 If W%=6 Print "b^Ofourth"; Endif If W%=5 Print "b^Othird"; Endif If W%=4 Print "b^Osecond"; Endif If W%=3 Print "b^Ofirst"; EndifReturnProcedure Z2780 Rem **** DELAY **** Pause 100ReturnProcedure Z2800 Rem **** BUY PROPERTY **** C%(T%)=C%(T%)-20*Fininfo%(8*Val(Mid$(B$,6,2))) Print Print At(9,Crslin); Gosub Z4080 Print "b^A bought " Print At(9,Crslin); Gosub Z200 Print "b^A." If T%=4 Print At(9,Crslin);"b^AYou have"; Goto Z2815 Endif Print At(9,Crslin); Gosub Z4088 Print "b^A has"; Z2815: Print "b^A $ ";C%(T%);" left."; Inc D%(T%) Pd(T%,D%(T%))=Val(B$)-7 Bb$=Str$(Pd(T%,D%(T%))) Tt%=T% Gosub Z19000 X%=0 For V%=1 To D%(T%) A$=Str$(Pd(T%,V%)) If Mid$(A$,2,2)=Mid$(B$,2,2) Inc X% Endif Next V% If X%<>Val(Mid$(B$,2,1)) Gosub Z50 Goto Z2832 Endif For V%=1 To D%(T%) A$=Str$(Pd(T%,V%)) If Mid$(A$,2,2)=Mid$(B$,2,2) And Mid$(A$,8,1)="1" Inc Pd(T%,V%) Endif If Mid$(A$,2,2)=Mid$(B$,2,2) And Mid$(A$,8,1)="0" Pd(T%,V%)=Pd(T%,V%)+1/2 Endif Next V% Gosub Z50 Z2832:ReturnZ2900:Rem **** JAIL ****Inc J%(T%)If T%<4 Goto Z2945EndifIf J%(T%)<100 Goto Z2920EndifPrintPrint At(9,Crslin);"b^AWant to use the"Print At(9,Crslin);"GET OUT OF JAIL card?"Gosub Z1700If X$="Y" J%(T%)=Int(J%(T%)/100)*100 Sub J%(T%),100 Xnewx%=10 Gosub Z31000 L%(T%)=10 Gosub Drawcenter Goto Z1219EndifIf J%(T%)-(Int(J%(T%)/100)*100)=4 Goto Z2980EndifZ2920:If C%(T%)<50 Goto Z2932EndifPrintPrint At(9,Crslin);"b^AWant to pay $50 and"Print At(9,Crslin);"get out now?"Gosub Z1700If X$="N" Goto Z2932EndifJ%(T%)=Int(J%(T%)/100)*100Sub C%(T%),50Xnewx%=10Gosub Z31000L%(T%)=10Goto Z1219Z2932:Gosub Z2780Gosub DrawcenterPrint "b^FOK, let's roll..."Gosub Z10000If D1%<>D2% Goto Z2938EndifPrintPrintPrint At(15,Crslin);"b^CDOUBLES!"Print At(11,Crslin);"You're out free!"Gosub Z2780J%(T%)=Int(J%(T%)/100)*100Xnewx%=10Gosub Z31000L%(T%)=10D%=1Goto Z1100Z2938:If J%(T%)-(Int(J%(T%)/100)*100)=3 If J%(T%)>100 Goto Z2900 Endif Goto Z2980EndifPrintPrintPrint At(9,Crslin);"b^AYou stay in jail."Goto Z1210Z2945:Gosub Z2780Z%=0For V%=1 To 4 Z%=H1%(V%)+Z%Next V%If Z%-H1%(T%)>6-T% Goto Z2970EndifFor V%=1 To 4 Z%=H%(V%)+Z%Next V%If Z%-(H1%(T%)+H%(T%))>10-T% Goto Z2970EndifIf D%(1)+D%(2)+D%(3)+D%(4)>27 Goto Z2970EndifIf J%(T%)<100 Goto Z2952EndifZ2950:Gosub Z2780J%(T%)=Int(J%(T%)/100)*100Sub J%(T%),100Xnewx%=10Gosub Z31000L%(T%)=10Gosub DrawcenterGosub Z4080Print "b^A used"Print At(10,Crslin);"b^A'GET OUT OF JAIL FREE'"Gosub Z2780Goto Z1000Z2952:If C%(T%)<150 Goto Z2970EndifSub C%(T%),50Xnewx%=10Gosub Z31000L%(T%)=10PrintPrint At(9,Crslin);Gosub Z4080Print "b^A pays $50 to"Print At(9,Crslin);"get out of jail."PrintPrint At(9,Crslin);Gosub Z4088Print "b^A has $ ";C%(T%)Gosub Z2780J%(T%)=Int(J%(T%)/100)*100Goto Z1000Z2970:Gosub Z10000PrintPrintPrint At(9,Crslin);Gosub Z4080Print "b^A rolls a b^B";D1%;"b^A and a b^B";D2%Print At(9,Crslin);Gosub Z2780If D1%=D2% Print At(9,Crslin); Gosub Z4088 Print "b^A rolls doubles!" Gosub Z2780 J%(T%)=Int(J%(T%)/100)*100 Xnewx%=10 Gosub Z31000 L%(T%)=10 D%=1 Goto Z1100EndifIf J%(T%)-(Int(J%(T%)/100)*100)=3 If J%(T%)>100 Goto Z2950 Endif Goto Z2980EndifPrint At(9,Crslin);Gosub Z4088Print "b^A stays in jail."Goto Z1210 Print Goto Z1100EndifZ2980:If C%(T%)>50 Sub C%(T%),50 Xnewx%=10 Gosub Z31000 L%(T%)=10 J%(T%)=Int(J%(T%)/100)*100 Print Print Print Print At(9,Crslin);"b^AJailkeeper pockets $50." Goto Z1100EndifIf D%(T%)=0 Z%=0 Gosub Z2500 Goto Z1210EndifU%=0Net%=D%(T%)+H%(T%)+(5*H1%(T%))Z2981:If C%(T%)>50 Goto Z2980EndifInc U%If U%>Net% Goto Z2982EndifGosub Z2700Goto Z2981Z2782:Z%=0Gosub Z2500Goto Z1210Procedure Z3000 Rem **** DISPLAY INFO **** Z3001: Gosub Drawcenter Print " Point to the property" Print At(9,Crslin);" you want info on, and" Print At(9,Crslin);" click left button." Z3004: Repeat B%=Mousek Until B%<>0 Mouse Xxx%,Yyy%,B% Repeat B%=Mousek Until B%=0 Flag%=1 Gosub Z35000 If Flag%=0 Print Print At(18,Crslin);"b^LHUH ???" Gosub Z2780 Showm Goto Z3001 Endif X%=Z% Gosub Drawcenter Print A$="" Gosub Z299 If Int(Len(A$)/2)=Len(A$)/2 Print At((14-Int((Len(A$)/2))),7); Else Print At((13-Int((Len(A$)/2))),7); Endif Gosub Z200 Print If Mid$(B$,2,2)<>"23" Goto Z3034 Endif Print Print At(9,Crslin);"b^A To find rent,roll dice" Print Print At(14,Crslin);" NO MONOPOLY!" Print At(14,Crslin);" 4 times roll" Print Print At(14,Crslin);" MONOPOLY!" Print At(14,Crslin);" 10 times roll" Print Print Goto Z3076 Z3034: If Mid$(B$,2,3)="502" If Freepark%=1 Print Print Print At(11,Crslin);"b^A $ ";Parkmoney%;" from taxes!!" Endif Goto Z3090 Endif If Mid$(B$,2,2)="60" If Mid$(B$,1,1)="1" Print Print Print At(11,Crslin);"b^A 10% of all ASSETS" Print At(11,Crslin);" or $200" Print At(11,Crslin);"whichever is LESS." Else Print Print Print Print At(11,Crslin);"b^A Pay $75." Endif Goto Z3090 Endif If Mid$(B$,2,2)="70" Print "b^A" Print If Mid$(B$,1,1)="1" Print At(11,Crslin);"b^A Take a" Print At(11,Crslin);" COMMUNITY CHEST" Print At(11,Crslin);" Card." Else Print At(11,Crslin);"b^A Take a" Print At(11,Crslin);" CHANCE" Print At(11,Crslin);" Card." Endif Goto Z3090 Endif If Mid$(B$,2,2)="80" Print Print At(11,Crslin);"b^AGo DIRECTLY to JAIL!" Print At(11,Crslin);" Do NOT pass GO." Print At(11,Crslin);"Do NOT collect $200!" Goto Z3090 Endif If Mid$(B$,2,2)="50" If Mid$(B$,1,1)="1" Print Print Print At(11,Crslin);"b^A Collect $200" Print At(11,Crslin);" when you pass" Print At(11,Crslin);" GO!" Goto Z3090 Else If Mid$(B$,1,1)="2" Print Print Print At(11,Crslin);"b^A Try to Look" Print At(11,Crslin);" Innocent." Goto Z3090 Endif Endif Endif If Mid$(B$,2,2)="00" Print Print At(11,Crslin);"b^ABad Food! Crowded!!" Print At(11,Crslin);"Sentence: 3 Turns." Print Print At(9,Crslin);"Get out by paying $50," Print At(9,Crslin);"Throwing Doubles, or use" Print At(9,Crslin);"'GET OUT OF JAIL' card." Goto Z3090 Endif If Mid$(B$,2,2)="41" Goto Z3080 Endif Print Print At(9,Crslin);"b^A PRICE $ ";20*Fininfo%(8*Val(Mid$(B$,6,2))) Print At(9,Crslin);" RENT $ ";Fininfo%(8*Val(Mid$(B$,6,2))+1-8) Print Print At(9,Crslin);" With 1 house $ ";10*Fininfo%(8*Val(Mid$(B$,6,2))+3-8) Vv%=2 Z3072: Print At(9,Crslin);" With ";Vv%;" houses $ ";10*Fininfo%(8*Val(Mid$(B$,6,2))+Vv%+2-8) Inc Vv% If Vv%<5 Goto Z3072 Endif Print Print At(9,Crslin);" With HOTEL $ ";10*Fininfo%(8*Val(Mid$(B$,6,2))-1) Print At(9,Crslin);" Houses cost $ ";50*(1+Int(Val(Mid$(B$,4,2))/10));" each." Z3076: Print At(9,Crslin);" Mortgage Value $ ";10*Fininfo%(8*Val(Mid$(B$,6,2))) Goto Z3090 Z3080: Print Print At(9,Crslin);" RENT . . . . . . . $25" Print Vv%=2 Z3082: Print At(9,Crslin);" If ";Vv%;" RRs are owned $";50*Int((Vv%*Vv%)/4) Inc Vv% If Vv%<5 Goto Z3082 Endif Print Print At(9,Crslin);" Mortgage Value $ 100" Z3090:ReturnZ3100:Rem **** PAY TAXES ****R%=0S%=75If Mid$(B$,1,3)="260" Goto Z3153EndifY%=C%(T%)If D%(T%)=0 Goto Z3152EndifFor V%=1 To D%(T%) C$=Str$(Pd(T%,V%)) Y%=Y%+20*Fininfo%(8*Val(Mid$(C$,6,2)))Next V%Z3152:S%=Int(Y%/10)If S%>200 S%=200EndifNet%=D%(T%)+H%(T%)+(5*H1%(T%))Z3153:If C%(T%)>S% Goto Z3160EndifInc R%If R%>Net% Z%=0 Gosub Z2500 Goto Z1210EndifGosub Z2700Goto Z3153Z3160:PrintPrint At(9,Crslin);"b^APay $ ";S%;" ,"C%(T%)=C%(T%)-S%Print At(9,Crslin);"leaving $ ";C%(T%)If Freepark%=1 Parkmoney%=Parkmoney%+S%EndifGoto Z1200Procedure Z4070 Rem **** PASS GO **** Add C%(T%),200 If T%=4 Print "b^Ac^GAt b^BGO b^Kyou b^Acollect $200." Goto Z4074 Endif Print "b^Ac^GAt b^BGO "; Gosub Z4080 Print "b^A gets $200." Z4074: Rem **** PASS GO SOUND **** Print At(9,Crslin); Gosub Z2780ReturnRem **** PLAYERNAMES & PRONOUNS ****Procedure Z4080 If T%=1 Print At(Crscol,Crslin);"b";Chr$(Plc1);P1$; Endif If T%=2 Print At(Crscol,Crslin);"b";Chr$(Plc2);P2$; Endif If T%=3 Print At(Crscol,Crslin);"b";Chr$(Plc3);P3$; Endif If T%=4 Print At(Crscol,Crslin);"b";Chr$(Plc4);"You"; EndifReturnProcedure Z4088 If T%=1 Print At(Crscol,Crslin);"b";Chr$(Plc1);"He"; Endif If T%=2 Print At(Crscol,Crslin);"b";Chr$(Plc2);"She"; Endif If T%=3 Print At(Crscol,Crslin);"b";Chr$(Plc3);"He"; Endif If T%=4 Print At(Crscol,Crslin);"b";Chr$(Plc4);"You"; EndifReturnZ4220:Rem **** CHANCE & COMMUNITY CHEST ****Gosub Z2780If Mid$(B$,1,1)="2" Goto Z4225EndifInc Dk1%If Dk1%>14 Gosub Z42000 Dk1%=0EndifGosub Z22000If Deck1%(Dk1%)+1=1 Goto Z4350EndifIf Deck1%(Dk1%)+1=2 Goto Z4360EndifIf Deck1%(Dk1%)+1=3 Goto Z4370EndifIf Deck1%(Dk1%)+1=4 Goto Z4380EndifIf Deck1%(Dk1%)+1=5 Goto Z4390EndifIf Deck1%(Dk1%)+1=6 Goto Z4400EndifIf Deck1%(Dk1%)+1=7 Goto Z4410EndifIf Deck1%(Dk1%)+1=8 Goto Z4420EndifIf Deck1%(Dk1%)+1=9 Goto Z4430EndifIf Deck1%(Dk1%)+1=10 Goto Z4440EndifIf Deck1%(Dk1%)+1=11 Goto Z4450EndifIf Deck1%(Dk1%)+1=12 Goto Z4460EndifIf Deck1%(Dk1%)+1=13 Goto Z4470EndifIf Deck1%(Dk1%)+1=14 Goto Z4480EndifIf Deck1%(Dk1%)+1=15 Goto Z4490EndifZ4225:Inc Dk2%If Dk2%>14 Gosub Z43000 Dk2%=0EndifGosub Z21000If Deck2%(Dk2%)+1=1 Goto Z4230EndifIf Deck2%(Dk2%)+1=2 Goto Z4240EndifIf Deck2%(Dk2%)+1=3 Goto Z4250EndifIf Deck2%(Dk2%)+1=4 Goto Z4260EndifIf Deck2%(Dk2%)+1=5 Goto Z4270EndifIf Deck2%(Dk2%)+1=6 Goto Z4280EndifIf Deck2%(Dk2%)+1=7 Goto Z4290EndifIf Deck2%(Dk2%)+1=8 Goto Z4300EndifIf Deck2%(Dk2%)+1=9 Goto Z4310EndifIf Deck2%(Dk2%)+1=10 Goto Z4320EndifIf Deck2%(Dk2%)+1=11 Goto Z4330EndifIf Deck2%(Dk2%)+1=12 Goto Z4340EndifIf Deck2%(Dk2%)+1=13 Goto Z4350EndifIf Deck2%(Dk2%)+1=14 Goto Z4360EndifIf Deck2%(Dk2%)+1=15 Goto Z4370EndifZ4230:PrintPrintPrint At(9,Crslin);"Advance to Illinois Ave."If L%(T%)<24 Xnewx%=24 Gosub Z31000 L%(T%)=24 Gosub Z2780 Gosub Drawcenter Goto Z1110EndifGosub Z4900PrintPrint At(9,Crslin);Gosub Z4070Xnewx%=24Gosub Z31000L%(T%)=24Gosub Z2780Gosub DrawcenterGoto Z1110Z4240:PrintPrintPrint At(9,Crslin);" Take a ride"Print At(14,Crslin);"on the Reading."If L%(T%)<5 Xnewx%=5 Gosub Z31000 L%(T%)=5 Gosub Z90 Gosub Drawcenter Goto Z1110EndifGosub Z4900Print At(9,Crslin);Gosub Z4070Xnewx%=5Gosub Z31000L%(T%)=5Gosub Z90Gosub DrawcenterGoto Z1110Z4250:PrintPrintPrint At(10,Crslin);" Go back three spaces."Xnewx%=L%(T%)-3Gosub Z31000Sub L%(T%),3Gosub Z2780Gosub DrawcenterGoto Z1110Z4260:PrintPrintPrint At(9,Crslin);" Advance to St. Charles"If L%(T%)<11 Xnewx%=11 Gosub Z31000 L%(T%)=11 Gosub Z2780 Gosub Drawcenter Goto Z1110EndifGosub Z4900PrintPrint At(9,Crslin);Gosub Z4070Xnewx%=11Gosub Z31000L%(T%)=11Gosub Z2780Gosub DrawcenterGoto Z1110Z4270:PrintPrint At(16,Crslin);"Advance to"Print At(13,Crslin);"nearest utility."Print At(9,Crslin);"(Rent is 10 times roll.)"Q%=82If L%(T%)=22 Xnewx%=28 Gosub Z31000 L%(T%)=28 Gosub Z2780 Gosub Drawcenter Goto Z1110EndifIf L%(T%)=36 Gosub Z4900 Print Print At(9,Crslin); Gosub Z4070EndifXnewx%=12Gosub Z31000L%(T%)=12Gosub Z2780Gosub DrawcenterGoto Z1110Z4280:PrintPrintPrint At(15,Crslin);"Take a walk"Print At(12,Crslin);"on the Boardwalk."Xnewx%=39Gosub Z31000L%(T%)=39Gosub Z2780Gosub DrawcenterGoto Z1110Z4290:PrintPrint At(14,Crslin);"You're elected"Print At(10,Crslin);"chairman of the board."PrintPrint At(11,Crslin);"Pay each player $50."For V%=1 To 4 Add C%(V%),50Next V%C%(T%)=C%(T%)-(50*Numplayers%)Z%=0Goto Z1116Z4300:PrintPrint At(16,Crslin);"Advance to"Print At(12,Crslin);"nearest railroad."PrintPrint At(14,Crslin);"(Rent Doubled)";Q%=82If L%(T%)>35 Gosub Z4900 Print At(9,Crslin); Gosub Z4070 Xnewx%=5 Gosub Z31000 L%(T%)=5 Gosub Z90 Gosub Drawcenter Goto Z1110EndifFor V%=5 To 35 Step 10 If L%(T%)b^A pay $ ";EndifIf T%<4 Print "b^A pays $ ";EndifPrint 25*H%(T%)+100*H1%(T%);" !"Goto Z1116Z4320:PrintPrintPrint At(11,Crslin);"Pay poor tax of $15."If Freepark%=1 Add Parkmoney%,15EndifSub C%(T%),15Goto Z1116Z4330:PrintPrintPrint At(14,Crslin);"Bank pays you"Print At(13,Crslin);"dividend of $50"Add C%(T%),50Goto Z1116Z4340:PrintPrint At(14,Crslin);"Your building"Print At(13,Crslin);"and loan matures."PrintPrint At(15,Crslin);"Collect $150."Add C%(T%),150Goto Z1116Z4350:PrintPrint At(15,Crslin);"GO TO JAIL!"Print At(10,Crslin);"GO DIRECTLY TO JAIL!!!"PrintPrint At(14,Crslin);"Do not pass GO"Print At(11,Crslin);"Do not collect $200!"Xnewx%=40Gosub Z31000L%(T%)=40Gosub Z70Goto Z1210Z4360:PrintPrintPrint At(10,Crslin);"Get out of jail, FREE!"Add J%(T%),100Goto Z1116Z4370:PrintPrintPrint At(14,Crslin);"Advance to GO!"Gosub Z4900PrintPrint At(9,Crslin);Gosub Z4070Xnewx%=0Gosub Z31000L%(T%)=0Gosub Z80Goto Z1116Z4380:PrintPrint At(16,Crslin);"Assessment"Print At(11,Crslin);"for street repairs."PrintPrint At(12,Crslin);"Pay $40 per House"Print At(13,Crslin);"$115 per Hotel."Gosub Z4900If H%(T%)+H1%(T%)=0 Print At(15,Crslin);"(No Charge.)" Goto Z1116EndifC%(T%)=C%(T%)-(40*H%(T%)+115*H1%(T%))Print At(9,Crslin);Gosub Z4080If T%=4 Print "b^A pay $ ";EndifIf T%<4 Print "b^A pays $ ";EndifPrint 40*H%(T%)+115*H1%(T%);" !"Goto Z1116Z4390:PrintPrintPrint At(11,Crslin);"Doctor's fee pay $50."Sub C%(T%),50Goto Z1116Z4400:PrintPrintPrint At(13,Crslin);"You inherit $100."Add C%(T%),100Goto Z1116Z4410:PrintPrint At(13,Crslin);"Win second prize"Print At(11,Crslin);"in a beauty contest!"PrintPrint At(15,Crslin);"Collect $10."Add C%(T%),10Goto Z1116Z4420:PrintPrintPrint At(12,Crslin);"From sale of stock"Print At(15,Crslin);"you get $45."Add C%(T%),45Goto Z1116Z4430:PrintPrintPrint At(12,Crslin);"Pay Hospital $100."Sub C%(T%),100Goto Z1116Z4440:PrintPrintPrint At(12,Crslin);"Income tax refund."PrintPrint At(15,Crslin);"Collect $20."Add C%(T%),20Goto Z1116Z4450:PrintPrintPrint At(12,Crslin);"$ 200 bank error"Print At(13,Crslin);"in your favor!"Add C%(T%),200Goto Z1116Z4460:PrintPrintPrint At(9,Crslin);"Receive for services $25"Add C%(T%),25Goto Z1116Z4470:PrintPrintPrint At(10,Crslin);"Life insurance matures"PrintPrint At(15,Crslin);"Collect $100."Add C%(T%),100Goto Z1116Z4480:PrintPrintPrint At(12,Crslin);"Xmas fund matures"PrintPrint At(15,Crslin);"Collect $100."Add C%(T%),100Goto Z1116Z4490:PrintPrintPrint At(10,Crslin);"Pay school tax of $150"If Freepark%=1 Add Parkmoney%,150EndifSub C%(T%),150Goto Z1116Procedure Z4900 Jj%=1 Z4910: Print Inc Jj% If Jj%<5 Goto Z4910 Endif Print "b^Ac^G";ReturnZ5000:Rem **** TRADE WITH COMPUTER ****T%=4Gosub DrawcenterPrint " Who do you"Print At(9,Crslin);" want to trade with?"Color 2Circle (16*8)-3,(11*8)-3,5Deffill 10,1Fill (16*8)-3,(11*8)-3Deftext 10Text 18*8,11*8,"= Andy"Color 2Circle (16*8)-3,(13*8)-3,5Deffill 9,1Fill (16*8)-3,(13*8)-3Deftext 9Text 18*8,13*8,"= Betsy"Color 2Circle (16*8)-3,(15*8)-3,5Deffill 7,1Fill (16*8)-3,(15*8)-3Deftext 7Text 18*8,15*8,"= Chip"Z5006:Repeat B%=MousekUntil B%<>0Mouse Xxx%,Yyy%,B%Repeat B%=MousekUntil B%=0U%=Point(Xxx%,Yyy%)If U%=10 U%=1Else If U%=9 U%=2 Else If U%=7 U%=3 Else U%=0 Endif EndifEndifIf U%<1 Or U%>3 Goto Z5006EndifIf J%(U%)>=1000 Y%=T% T%=U% Gosub Drawcenter Gosub Z4080 Print "b^A is out of the game" Gosub Z41000 Goto Z400EndifY%=T%T%=U%Gosub DrawcenterPrint " Hi. I'm ";Gosub Z4080Print "b^A."If D%(U%)=0 Print Print At(9,Crslin);"b^A I don't have" Print At(9,Crslin);" any property." Gosub Z41000 Goto Z400EndifPrint At(9,Crslin);"b^A I have $ ";C%(U%)Z5020:Flag%=1PrintPrint At(9,Crslin);"b^A What one of my"Print At(9,Crslin);" properties are you"Print At(9,Crslin);" interested in?"PrintPrint At(9,Crslin);" Point to it with mouse"Print At(9,Crslin);" and click left button."Z5024:Repeat B%=MousekUntil B%<>0Mouse Xxx%,Yyy%,B%Repeat B%=MousekUntil B%=0Gosub DrawcenterGosub Z35000If Flag%=0 Print Print At(18,Crslin);"b^LHUH ???" Pause 150 Gosub Drawcenter Goto Z5020EndifFor W%=1 To D%(U%) B$=Str$(Pd(U%,W%)) Exit If Val(Mid$(B$,4,2))=Z%Next W%If Val(Mid$(B$,4,2))=Z% Goto Z5035EndifPrintPrint At(9,Crslin);"b^A Sorry!"Print At(9,Crslin);" I don't own that."Gosub Z41000Gosub DrawcenterShowmGoto Z5020Z5035:Z%=W%B$=Str$(Pd(T%,Z%))PrintPrint At(9,Crslin);"b^A You want "Print At(10,Crslin);Gosub Z200Print "b^A!"T%=Y%If D%(T%)=0 Print Print At(9,Crslin);"b^A You have no property" Print At(9,Crslin);" to offer." Gosub Z41000 Goto Z400EndifIf Val(Mid$(B$,8,1))>1 Or Len(B$)>8 Print Print At(9,Crslin);"b^A I bet you want it." Print At(9,Crslin);" So do I." Gosub Z41000 Gosub Drawcenter Goto Z400EndifY%=0For V%=1 To D%(T%) C$=Str$(Pd(T%,V%)) If Mid$(C$,2,2)=Mid$(B$,2,2) Inc Y% EndifNext V%If Val(Mid$(B$,2,1))=Y%+1 Print At(9,Crslin);"b^A It would" Print At(9,Crslin);" give you a monopoly!" Goto Z5200EndifFor W%=1 To 3 If W%=U% Goto Z5128 Endif If D%(W%)=0 Goto Z5128 Endif Y%=0 For V%=1 To D%(W%) C$=Str$(Pd(W%,V%)) If Mid$(C$,2,2)=Mid$(B$,2,2) Inc Y% Endif Next V% If Val(Mid$(B$,2,1))=Y%+1 Z%=T% T%=W% Print T%=Z% Endif Exit If Val(Mid$(B$,2,1))=Y%+1 Z5128:Next W%Z5200:Z%=1Z5205:Y%=0C$=Str$(Pd(T%,Z%))For W%=1 To D%(U%) A$=Str$(Pd(U%,W%)) If Mid$(A$,2,2)=Mid$(C$,2,2) Inc Y% EndifNext W%If Val(Mid$(C$,2,1))=Y%+1 And Mid$(C$,2,2)<>"23" S%=1 On Error Gosub 0 Goto Z5218EndifZ5214:Inc Z%If Z%<=D%(T%) Goto Z5205Else Goto Z5230EndifGoto Z5200Z5218:If Mid$(C$,2,2)=Mid$(B$,2,2) Goto Z5214EndifGoto Z5280Z5230:R%=1Z5231:If D%(R%)=0 Goto Z5240EndifIf R%=U% Goto Z5240EndifZ%=1Z5235:Y%=0D$=Str$(Pd(R%,Z%))For W%=1 To D%(U%) A$=Str$(Pd(U%,W%)) If Mid$(A$,2,2)=Mid$(D$,2,2) Inc Y% EndifNext W%If Val(Mid$(D$,2,1))=Y%+1 And Mid$(D$,2,2)<>"23" Y%=0 Goto Z5250EndifZ5238:Inc Z%If Z%<=D%(R%) Goto Z5235EndifZ5240:If R%>3 Goto Z5242EndifInc R%If R%<4 Goto Z5231EndifZ5242:PrintPrint At(9,Crslin);"b I don't think"Print At(9,Crslin);" we can do business."Gosub Z41000Goto Z400Z5250:P%=1Z5251:Y%=0C$=Str$(Pd(T%,P%))For Q%=1 To D%(R%) A$=Str$(Pd(R%,Q%)) If Mid$(A$,2,2)=Mid$(C$,2,2) Inc Y% EndifNext Q%If Val(Mid$(C$,2,1))=Y%+1 S%=2 Goto Z5280EndifZ5254:Inc P%If P%<=D%(T%) Goto Z5251Else Goto Z5238EndifZ5280:PrintPrint At(9,Crslin);"b^A Willing to discuss"D$=B$B$=C$Print At(10,Crslin);Gosub Z200B$=D$Print "b^A?";N%=R%Gosub Z1700R%=N%If X$="N" And S%=1 Goto Z5214EndifIf X$="N" And S%=2 Goto Z5254EndifGosub DrawcenterPrint " OK, let's"Print At(9,Crslin);" GET down TO business."Print At(9,Crslin)D$=C$Y%=T%T%=U%Gosub Z6000X%=Z%T%=Y%D$=B$Gosub Z6000Y%=Z%PrintPrint At(9,Crslin);"b^A ";Human$;", I'll give you"Z%=Int(Y%-X%)/2If Z%>0 Goto Z5400EndifZ%=Abs(Z%)If Z%>400 Z%=400+(Z%-200)*6/10EndifIf Z%>C%(U%)*8/10 Z%=C%(U%)*8/10EndifZ%=100*Int(Z%/100)If Z%>0 Print At(9,Crslin);"b^A $ ";Z%;" and ";EndifPrint At(10,Crslin);Gosub Z200PrintPrint At(9,Crslin);"b^A for ";D$=B$B$=C$Gosub Z200B$=D$Print "b^A "PrintPrintPrint At(9,Crslin);" Is it a deal?"Gosub Z1700If X$="N" Print Print At(9,Crslin);"b OK. You may regret it." Gosub Z41000 Goto Z400EndifC%(U%)=C%(U%)-Z%C%(4)=C%(4)+Z%Gosub Z2780Gosub DrawcenterRem **** PROCESS ALL TRADES ****Z5350:Y%=0For V%=1 To D%(U%) D$=Str$(Pd(U%,V%)) If D$=B$ Pd(U%,V%)=Val(C$) Tt%=U% Bb$=C$ Gosub Z19000 D$=C$ Endif If Mid$(D$,2,2)=Mid$(C$,2,2) Inc Y% EndifNext V%X%=0For V%=1 To D%(T%) D$=Str$(Pd(T%,V%)) If D$=C$ Pd(T%,V%)=Val(B$) Tt%=T% Bb$=B$ Gosub Z19000 D$=B$ Endif If Mid$(D$,2,2)=Mid$(B$,2,2) Inc X% EndifNext V%If Y%<>Val(Mid$(C$,2,1)) Goto Z5360EndifFor V%=1 To D%(U%) D$=Str$(Pd(U%,V%)) If Mid$(D$,2,2)<>Mid$(C$,2,2) Goto Z5359 Endif If Mid$(D$,8,1)="0" Pd(U%,V%)=Pd(U%,V%)+1/2 Goto Z5359 Endif Inc Pd(U%,V%) Z5359:Next V%Z5360:If X%<>Val(Mid$(B$,2,1)) Goto Z5370EndifV%=1Z5363:D$=Str$(Pd(T%,V%))If Mid$(D$,2,2)<>Mid$(B$,2,2) Goto Z5369EndifIf Mid$(D$,8,1)="1" Inc Pd(T%,V%) Goto Z5369EndifPd(T%,V%)=Pd(T%,V%)+1/2Z5369:Inc V%If V%<=D%(T%) Goto Z5363EndifZ5370:Gosub Z50If T%<>4 Goto Z1003EndifGoto Z400Z5400:Z%=Z%*2If Z%>500 Z%=500+(Z%-500)*2/3EndifZ%=100+100*Int(Z%/100)If Z%>C%(T%) Gosub Z2780 Gosub Drawcenter Print "b^LWait..." Print At(9,Crslin);"b^A You are $ ";Z%-C%(T%);" short!" Gosub Z2780 Goto Z400EndifPrint At(10,Crslin);Gosub Z200PrintPrint At(9,Crslin);"b^A for $ ";Z%;" and"D$=B$B$=C$Print At(10,Crslin);Gosub Z200B$=D$Print " "PrintPrintPrint At(9,Crslin);"b^A Is it a deal?";Gosub Z1700If X$="N" S%=10 Print Print At(9,Crslin);"b Think you're" Print At(9,Crslin);" smarter'n me, huh?" Gosub Z2780 Goto Z400EndifC%(U%)=C%(U%)+Z%C%(4)=C%(4)-Z%Gosub DrawcenterGoto Z5350Procedure Z6000 Rem **** EVALUATE PROPERTIES - TRADING **** If Mid$(D$,2,1)="4" Z%=400 Goto Z6040 Endif If Mid$(D$,2,2)="23" Z%=0 Goto Z6040 Endif Z=0 For V%=1 To 4 If V%<>T% Z=Z+35*H%(V%)+200*H1%(V%) Endif Next V% Z=C%(T%)-Z Z=Z+120*H%(T%)+350*H1%(T%) Z=(Int(Z/(50+Val(Mid$(D$,4,1))*50)))/(Val(Mid$(D$,2,1))*5) If Z>1 Z=1 Endif If Z<2/10 Z=2/10 Endif Z=Z*Val(Mid$(D$,2,1))*10*Fininfo%(8*Val(Mid$(D$,6,2))-3) Z=Z+20*Val(Mid$(D$,6,2)) If D$=C$ And S%=2 Z=0 Endif If Mid$(D$,8,1)="0" Z=Z-11*Fininfo%(8*Val(Mid$(D$,6,2))) Endif If Z>1000 Z=1000 Endif Z%=Int(Z) Z6040:ReturnGoto Z400Z7900:Rem **** INITIALIZE VARIABLES & START PROGRAM ****Dim Propname$(41),Propdeed$(41),Propcolor%(41),Gfacolor%(41),Play1pos%(40,1)Dim Deck1%(15),Deck2%(15)Dim Play2pos%(41,1),Play3pos%(41,1),Play4pos%(41,1),Hopos%(41,1),Owner%(41,1),Fininfo%(128)Dim D%(4),C%(4),L%(4),J%(4),H%(4),H1%(4),Pd(4,26),M%(7)Z7950:Gameover=FalseZ%=0Plc1=9Plc2=8Plc3=3Plc4=11Dk1%=-1Dk2%=-1Xf=9Yf=6P1$="Andy"P2$="Betsy"P3$="Chip"Maincolor%=1Get 275+Xf,171+Yf,(275+8)+Xf,(171+7)+Yf,Old1$Get 287+Xf,171+Yf,(287+8)+Xf,(171+7)+Yf,Old2$Get 275+Xf,178+Yf,(275+8)+Xf,(178+7)+Yf,Old3$Get 287+Xf,178+Yf,(287+8)+Xf,(178+7)+Yf,Old4$Gosub Z11000Gosub Z12000Gosub Z13000Gosub Z14000Gosub Z15000Gosub Z16000Gosub Z17000Rem **** BEGIN PLAY ****Gosub Z42000Gosub Z43000Gosub DrawcenterPrint At(9,10);" Do you want to put"Print At(9,11);" TAX money"Print At(9,12);" in FREE PARKING?"Freepark%=0Gosub Z1700If X$="Y" Freepark%=1 Parkmoney%=0EndifGosub DrawcenterPrint At(9,10);" How many COMPUTER"Print At(9,11);" Players ?"Print At(9,12);" ( 1,2 or 3 )"Repeat Z$=Inkey$Until Z$="1" Or Z$="2" Or Z$="3"Numplayers%=Val(Z$)+1For V%=1 To 4 L%(V%)=0 C%(V%)=1500 D%(V%)=0 H%(V%)=0 H1%(V%)=0 J%(V%)=0 For X%=1 To 25 Pd(V%,X%)=0 Next X%Next V%If Numplayers%<>4 For V%=Numplayers% To 3 J%(V%)=1000 Next V%EndifXnewx%=0For T%=1 To Numplayers%-1 Gosub Z31000Next T%T%=4Gosub Z31000Gosub DrawcenterFirstloop:T%=Int((4*Rnd)+1)If T%=4 Print "b^KYou b^Ago first." Print At(9,Crslin);"b^KYou b^Ahave $1500." Gosub Z2780 Goto Z1000EndifIf T%>Numplayers%-1 Goto FirstloopEndifGosub Z4080Print " goes first."Print At(9,Crslin);Gosub Z4088Print At(Crscol,Crslin);"b^A has $1500."Gosub Z2780Goto Z1000Rem **** DRAW DICE & ROLL ****Procedure Z10000 Dy%=47 J%=1 Z10020: If J%<28 D1%=Random(6)+1 Dx%=201 On D1% Gosub Z10100,Z10200,Z10300,Z10400,Z10500,Z10600 Endif Pause 3 Sound 1,15,10,1 Pause 1 Wave 0,0 Z10030: D2%=Random(6)+1 Dx%=231 On D2% Gosub Z10100,Z10200,Z10300,Z10400,Z10500,Z10600 Inc J% If J%<31 Goto Z10020 Endif If D2%=D1% And Rnd>0.6 And J%<32 Goto Z10030 EndifReturnProcedure Z10100 Put Dx%,Dy%,Dice1$,3ReturnProcedure Z10200 Put Dx%,Dy%,Dice2$,3ReturnProcedure Z10300 Put Dx%,Dy%,Dice3$,3ReturnProcedure Z10400 Put Dx%,Dy%,Dice4$,3ReturnProcedure Z10500 Put Dx%,Dy%,Dice5$,3ReturnProcedure Z10600 Put Dx%,Dy%,Dice6$,3ReturnProcedure Z11000 Rem **** BUILD PROPNAME$ **** Restore Z11100 I%=0 Z11031: Read Propname$(I%) Inc I% If I%<41 Goto Z11031 EndifReturnZ11100:Data Go,Mediterranean Ave,Community Chest,Baltic Ave,Income Tax,Reading RR,Oriental AveData Chance,Vermont Ave,Connecticut Ave,Just Visiting,St. Charles Pl,Electric Co,States AveData Virginia Ave,Pennsylvania RR,St. James Pl,Community Chest,Tennessee Ave,New York Ave,Free ParkingData Kentucky Ave,Chance,Indiana Ave,Illinois Ave,B & O RR,Atlantic Ave,Ventnor Ave,Water WorksData Marvin Gardens,Go to Jail!,Pacific Ave,N.Carolina Ave,Community Chest,Pennsylvania Ave,Short Line RRData Chance,Park Place,Luxury Tax,Boardwalk,in jailProcedure Z12000 Rem **** BUILD PROPDEED$ **** Restore Z12100 I%=0 Z12021: Read Propdeed$(I%) Inc I% If I%<41 Goto Z12021 EndifReturnZ12100:Data 15000008,12101018,17002008,22103028,16004008,14105088,13106038,27007008,23108038,33109048Data 25010008,13211058,12312058,23213058,33214068,24115088,13316078,17017008,23318078,33319088Data 35020008,13421098,27022008,23423098,33424108,34125088,13526118,23527118,22328058,33529128Data 18030008,13631138,23632138,17033008,33634148,44135088,27036008,12237158,26038008,22239168,00040008Procedure Z13000 Rem **** BUILD PROPCOLOR% **** Restore Z13100 I%=0 Z13022: Read Propcolor%(I%) Inc I% If I%<41 Goto Z13022 Endif I%=0 Z13025: Read Gfacolor%(I%) Inc I% If I%<41 Goto Z13025 EndifReturnZ13100:Data 0,4,0,4,0,0,7,0,7,7,0,8,0,8,8,0,11,0,11,11,0,12,0,12,12,0,13,13,0,13,0,3,3,0,3,0,0,10,0,10,0Data 0,4,0,4,0,0,8,0,8,8,0,9,0,9,9,0,14,0,14,14,0,12,0,12,12,0,15,15,0,15,0,6,6,0,6,0,0,11,0,11,0Procedure Z14000 Rem **** BUILD PLAYPOS% **** Restore Z14100 For I%=0 To 40 Read J Play1pos%(I%,0)=J+Xf Read J Play1pos%(I%,1)=J+Yf Next I% For I%=0 To 40 Read J Play2pos%(I%,0)=J+Xf Read J Play2pos%(I%,1)=J+Yf Next I% For I%=0 To 40 Read J Play3pos%(I%,0)=J+Xf Read J Play3pos%(I%,1)=J+Yf Next I% For I%=0 To 40 Read J Play4pos%(I%,0)=J+Xf Read J Play4pos%(I%,1)=J+Yf Next I%ReturnZ14100:Data 275,171,241,171,216,171,191,171,166,171,141,171,116,171,91,171,66,171,40,171,5,163,5,146,5,131,5,116,5,101,5,86,5,71,5,56,5,41,5,26,5,3Data 40,3,66,3,91,3,116,3,141,3,166,3,191,3,216,3,241,3,275,3,275,26,275,41,275,56,275,71,275,86,275,101,275,116,275,131,275,146,19,161Data 287,171,253,171,228,171,203,171,178,171,153,171,128,171,103,171,78,171,52,171,5,172,17,146,17,131,17,116Data 17,101,17,86,17,71,17,56,17,41,17,26,17,3Data 52,3,78,3,103,3,128,3,153,3,178,3,203,3,228,3,253,3,287,3,287,26,287,41,287,56,287,71,287,86,287,101,287,116,287,131,287,146,28,161Data 275,178,241,178,216,178,191,178,166,178,141,178,116,178,91,178,66,178,40,178,16,177,5,153,5,138,5,123,5,108,5,93,5,78,5,63,5,48,5,33,5,10Data 40,10,66,10,91,10,116,10,141,10,166,10,191,10,216,10,241,10,275,10,275,33,275,48,275,63,275,78,275,93,275,108,275,123,275,138,275,153,19,168Data 287,178,253,178,228,178,203,178,178,178,153,178,128,178,103,178,78,178,52,178,27,177,17,153,17,138,17,123,17,108,17,93,17,78,17,63,17,48,17,33,17,10Data 52,10,78,10,103,10,128,10,153,10,178,10,203,10,228,10,253,10,287,10,287,33,287,48,287,63,287,78,287,93,287,108,287,123,287,138,287,153,28,168Procedure Z15000 Rem **** BUILD HOPOS% **** Restore Z15100 I%=0 Z15022: Read J Hopos%(I%,0)=J+Xf Read J Hopos%(I%,1)=J+Yf Inc I% If I%<41 Goto Z15022 EndifReturnZ15100:Data 0,0,248,168,0,0,198,168,0,0,0,0,123,168,0,0,73,168,47,168,0,0,30,156,0,0,30,126,30,111,0,0,30,81,0,0,30,51,30,36,0,0Data 47,24,0,0,98,24,123,24,0,0,173,24,198,24,0,0,248,24,0,0,265,36,265,51,0,0,265,81,0,0,0,0,265,126,0,0,265,156,0,0Procedure Z16000 Rem **** BUILD OWNER% **** Restore Z16100 I%=0 Z16022: Read J Owner%(I%,0)=J+Xf Read J Owner%(I%,1)=J+Yf Inc I% If I%<41 Goto Z16022 EndifReturnZ16100:Data 0,0,248,159,0,0,198,159,0,0,148,159,123,159,0,0,73,159,47,159,0,0,39,156,39,141,39,126,39,111,39,96,39,81,0,0,39,51,39,36,0,0Data 47,32,0,0,98,32,123,32,148,32,173,32,198,32,223,32,248,32,0,0,255,36,255,51,0,0,255,81,255,96,0,0,255,126,0,0,255,156,0,0Procedure Z17000 Rem **** BUILD FININFO **** Restore Z17100 I%=1 Z17022: Read Fininfo%(I%) Inc I% If I%<129 Goto Z17022 EndifReturnZ17100:Data 2,4,1,3,9,16,25,3,4,8,2,6,18,32,45,3,6,12,3,9,27,40,55,5,8,16,4,10,30,45,60,6,10,20,5,15,45,63,75,7,12,24,6,18,50,70,90,8,14,28,7,20,55,75,95,9,16,32,8,22,60,80,100,10,18,36,9,25,70,88,105,11Data 20,40,10,30,75,93,110,12,22,44,11,33,80,98,115,13,24,48,12,36,85,103,120,14,26,52,13,39,90,110,128,15,28,56,15,45,100,120,140,16,35,70,18,50,110,130,150,17,50,100,20,60,140,170,200,20Procedure Z18000 Rem **** DRAW OWNER **** Graphmode 1 If Z%=1 X1$="A" X2$="a" Ccc=10 Endif If Z%=2 X1$="B" X2$="b" Ccc=9 Endif If Z%=3 X1$="C" X2$="c" Ccc=7 Endif If Z%=4 X1$="Y" X2$="y" Ccc=14 Endif B$=Str$(Pd(Z%,V%)) B=Val(Mid$(B$,4,2)) Gosub Mytext2(Owner%(B,0),Owner%(B,1)," ",0,0,2) If Val(Mid$(B$,8,1))=0 Gosub Mytext2(Owner%(B,0),Owner%(B,1),X2$,Ccc,0,2) Else Gosub Mytext2(Owner%(B,0),Owner%(B,1),X1$,Ccc,0,2) Endif Graphmode 2ReturnProcedure Z19000 Graphmode 1 If Tt%=1 X1$="A" X2$="a" Ccc=10 Endif If Tt%=2 X1$="B" X2$="b" Ccc=9 Endif If Tt%=3 X1$="C" X2$="c" Ccc=7 Endif If Tt%=4 X1$="Y" X2$="y" Ccc=14 Endif B=Val(Mid$(Bb$,4,2)) Gosub Mytext2(Owner%(B,0),Owner%(B,1)," ",0,0,2) If Val(Mid$(Bb$,8,1))=0 Gosub Mytext2(Owner%(B,0),Owner%(B,1),X2$,Ccc,0,2) Else Gosub Mytext2(Owner%(B,0),Owner%(B,1),X1$,Ccc,0,2) Endif Graphmode 2ReturnProcedure Drawcenter Rem **** DRAW CENTER **** Vsync Put 59,40,Center$,3 Print At(9,7);"b^Ac^G";ReturnProcedure Z21000 Rem **** DRAW CHANCE **** Gosub Drawcenter Put 59,40,Chance$,3 Print At(9,8);"bc";Chr$(11); Graphmode 2 Deftext 2,4,0,6 Text 70,60,"Chance"ReturnProcedure Z22000 Rem **** DRAW COMMUNITY **** Gosub Drawcenter Put 59,40,Chest$,3 Print At(9,8);"bc";Chr$(13); Graphmode 2 Deftext 2,4,0,6 Text 70,60,"Community Chest"ReturnProcedure Z25000 Rem **** DRAW HOTELS & HOUSES **** On Val(Mid$(B$,8,1))-1 Gosub Z25020,Z25030,Z25040,Z25050,Z25060 Gosub Z25080ReturnProcedure Z25020 Ccc=7 Gosub Mytext2(Hopos%(Xx%,0),Hopos%(Xx%,1),"1",Ccc,Gfacolor%(Xx%),2)ReturnProcedure Z25030 Ccc=7 Gosub Mytext2(Hopos%(Xx%,0),Hopos%(Xx%,1),"2",Ccc,Gfacolor%(Xx%),2)ReturnProcedure Z25040 Ccc=7 Gosub Mytext2(Hopos%(Xx%,0),Hopos%(Xx%,1),"3",Ccc,Gfacolor%(Xx%),2)ReturnProcedure Z25050 Ccc=7 Gosub Mytext2(Hopos%(Xx%,0),Hopos%(Xx%,1),"4",Ccc,Gfacolor%(Xx%),2)ReturnProcedure Z25060 Ccc=10 Gosub Mytext2(Hopos%(Xx%,0),Hopos%(Xx%,1),"H",Ccc,Gfacolor%(Xx%),2)ReturnProcedure Z25070 Ccc=10 Gosub Mytext2(Hopos%(Xx%,0),Hopos%(Xx%,1)," ",Ccc,Gfacolor%(Xx%),2)ReturnProcedure Z25080 If (Xx%>0 And Xx%<10) Or (Xx%>19 And Xx%<30) Graphmode 1 Color 2 Draw Hopos%(Xx%,0),Hopos%(Xx%,1)+1 To Hopos%(Xx%,0)+8,Hopos%(Xx%,1)+1 Graphmode 2 Else Graphmode 1 Color 2 Draw Hopos%(Xx%,0)+7,Hopos%(Xx%,1)-7 To Hopos%(Xx%,0)+7,Hopos%(Xx%,1)+1 Graphmode 2 EndifReturnProcedure Z26000 Xx%=Val(Mid$(B$,4,2)) If Val(Mid$(B$,8,1))-2<=0 Gosub Z25070 Goto Z26070 Endif On Val(Mid$(B$,8,1))-2 Gosub Z25020,Z25030,Z25040,Z25050,Z25060 Z26070: Gosub Z25080ReturnProcedure Z27000 Xx%=Val(Mid$(C$,4,2)) If Val(Mid$(C$,8,1))-2<=0 Gosub Z25070 Goto Z27030 Endif On Val(Mid$(C$,8,1))-2 Gosub Z25020,Z25030,Z25040,Z25050,Z25060 Z27030: Gosub Z25080ReturnProcedure Z30000 Rem **** MOVE PLAYERS **** Xx%=L%(T%) I%=1 Z30015: Pause 5 On T% Gosub Z30200,Z30300,Z30400,Z30500 Sound 1,15,10,2 Pause 5 Sound 1,15,10,3 Pause 5 Wave 0,0 Inc I% If I%<=D1%+D2% Goto Z30015 Endif Pause 25ReturnProcedure Z30200 Put Play1pos%(Xx%,0),Play1pos%(Xx%,1),Old1$,3 Inc Xx% If Xx%>39 Sub Xx%,40 Endif Get Play1pos%(Xx%,0),Play1pos%(Xx%,1),Play1pos%(Xx%,0)+8,Play1pos%(Xx%,1)+6,Old1$ Put Play1pos%(Xx%,0),Play1pos%(Xx%,1),Player1$,3ReturnProcedure Z30300 Put Play2pos%(Xx%,0),Play2pos%(Xx%,1),Old2$,3 Inc Xx% If Xx%>39 Sub Xx%,40 Endif Get Play2pos%(Xx%,0),Play2pos%(Xx%,1),Play2pos%(Xx%,0)+8,Play2pos%(Xx%,1)+6,Old2$ Put Play2pos%(Xx%,0),Play2pos%(Xx%,1),Player2$,3ReturnProcedure Z30400 Put Play3pos%(Xx%,0),Play3pos%(Xx%,1),Old3$,3 Inc Xx% If Xx%>39 Sub Xx%,40 Endif Get Play3pos%(Xx%,0),Play3pos%(Xx%,1),Play3pos%(Xx%,0)+8,Play3pos%(Xx%,1)+6,Old3$ Put Play3pos%(Xx%,0),Play3pos%(Xx%,1),Player3$,3ReturnProcedure Z30500 Put Play4pos%(Xx%,0),Play4pos%(Xx%,1),Old4$,3 Inc Xx% If Xx%>39 Sub Xx%,40 Endif Get Play4pos%(Xx%,0),Play4pos%(Xx%,1),Play4pos%(Xx%,0)+8,Play4pos%(Xx%,1)+6,Old4$ Put Play4pos%(Xx%,0),Play4pos%(Xx%,1),Player4$,3ReturnProcedure Z31000 Xx%=L%(T%) On T% Gosub Z31200,Z31300,Z31400,Z31500 Sound 1,15,10,2 Pause 5 Sound 1,15,10,3 Pause 5 Wave 0,0ReturnProcedure Z31200 Put Play1pos%(Xx%,0),Play1pos%(Xx%,1),Old1$,3 Xx%=Xnewx% If Xx%=41 Goto Z31240 Endif Get Play1pos%(Xx%,0),Play1pos%(Xx%,1),Play1pos%(Xx%,0)+8,Play1pos%(Xx%,1)+6,Old1$ Put Play1pos%(Xx%,0),Play1pos%(Xx%,1),Player1$,3 Z31240:ReturnProcedure Z31300 Put Play2pos%(Xx%,0),Play2pos%(Xx%,1),Old2$,3 Xx%=Xnewx% If Xx%=41 Goto Z31340 Endif Get Play2pos%(Xx%,0),Play2pos%(Xx%,1),Play2pos%(Xx%,0)+8,Play2pos%(Xx%,1)+6,Old2$ Put Play2pos%(Xx%,0),Play2pos%(Xx%,1),Player2$,3 Z31340:ReturnProcedure Z31400 Put Play3pos%(Xx%,0),Play3pos%(Xx%,1),Old3$,3 Xx%=Xnewx% If Xx%=41 Goto Z31440 Endif Get Play3pos%(Xx%,0),Play3pos%(Xx%,1),Play3pos%(Xx%,0)+8,Play3pos%(Xx%,1)+6,Old3$ Put Play3pos%(Xx%,0),Play3pos%(Xx%,1),Player3$,3 Z31440:ReturnProcedure Z31500 Put Play4pos%(Xx%,0),Play4pos%(Xx%,1),Old4$,3 Xx%=Xnewx% If Xx%=41 Goto Z31540 Endif Get Play4pos%(Xx%,0),Play4pos%(Xx%,1),Play4pos%(Xx%,0)+8,Play4pos%(Xx%,1)+6,Old4$ Put Play4pos%(Xx%,0),Play4pos%(Xx%,1),Player4$,3 Z31540:ReturnProcedure Z35000 Rem **** CHECK MOUSE & PROPERTY TO TRADE **** If Xxx%<1+Xf Or Xxx%>300+Xf Or Yyy%<1+Yf Or Yyy%>(198-Yf) Flag%=0 Goto Z35270 Endif If Yyy%>25+Yf Goto Z35070 Endif Z%=20 For Xx%=38+Xf To 288+Xf Step 25 If Xx%=288+Xf Xx%=300+Xf Endif Exit If Xxx%<=Xx% Inc Z% Next Xx% Goto Z35270 Z35070: If Yyy%>160+Yf Goto Z35200 Endif If Xxx%>38+Xf And Xxx%<264+Xf Flag%=0 Goto Z35270 Endif If Xxx%>263+Xf Goto Z35150 Endif Z%=19 For Xx%=40+Yf To 160+Yf Step 15 Exit If Yyy%<=Xx% Dec Z% Next Xx% Goto Z35270 Z35150: Z%=31 For Xx%=40+Yf To 160+Yf Step 15 Exit If Yyy%<=Xx% Inc Z% Next Xx% Goto Z35270 Z35200: Z%=10 For Xx%=38+Xf To 288+Xf Step 25 If Xx%=288+Xf Xx%=300+Xf Endif Exit If Xxx%<=Xx% Dec Z% Next Xx% If Z%=10 If Xxx%>15+Xf And Yyy%<175+Yf Z%=40 Endif Endif Z35270:ReturnProcedure Z36300 Rem **** POLICE LIGHT **** Jj%=0 Ii%=1 Z36310: Inc Jj% If Jj%>8 Jj%=1 Endif Vsync If Jj%=1 Goto Z36330 Endif If Jj%=2 Goto Z36340 Endif If Jj%=3 Goto Z36350 Endif If Jj%=4 Goto Z36360 Endif If Jj%=5 Goto Z36370 Endif If Jj%=6 Goto Z36375 Endif If Jj%=7 Goto Z36380 Endif If Jj%=8 Goto Z36390 Endif Z36330: Put 126+Xf,106+Yf,Lite1$,3 Sound 1,14,5,4 Goto Z36400 Z36340: Put 126+Xf,106+Yf,Lite2$,3 Sound 1,12,5,4 Goto Z36400 Z36350: Put 126+Xf,106+Yf,Lite3$,3 Sound 1,10,5,4 Goto Z36400 Z36360: Put 126+Xf,106+Yf,Lite4$,3 Sound 1,8,5,4 Goto Z36400 Z36370: Put 126+Xf,106+Yf,Lite5$,3 Sound 1,6,5,4 Goto Z36400 Z36375: Put 126+Xf,106+Yf,Lite6$,3 Sound 1,8,5,4 Goto Z36400 Z36380: Put 126+Xf,106+Yf,Lite7$,3 Sound 1,10,5,4 Goto Z36400 Z36390: Put 126+Xf,106+Yf,Lite8$,3 Sound 1,12,5,4 Z36400: Pause 4 Inc Ii% If Ii%<40 Goto Z36310 Endif Wave 0,0ReturnProcedure Z40000 Rem **** SOUND - HOUSES & HOTELS **** Z40010: Jj%=15 Z40020: Sound 1,Jj%,Mnote1%,Oct,1 Sound 21,Jj%,Mnote2%,Oct+1,1 Dec Jj% If Jj%>0 Goto Z40020 Endif Wave 0,0 Dec Kk% If Kk%>0 Goto Z40010 EndifReturnProcedure Z41000 Rem **** CONTINUE **** Get 104,156,227,168,Oldyesno$ Put 104,156,Ctinue$,3 Showm Z41030: Repeat B%=Mousek Until B%<>0 Repeat B%=Mousek Until B%=0 Mouse Xxx%,Yyy%,B% If Xxx%<104 Or Xxx%>227 Or Yyy%<156 Or Yyy%>168 Goto Z41030 Endif Put 104,156,Oldyesno$,3 Z41070: HidemReturnProcedure Z42000 Rem **** SHUFFLE CHEST **** J%=0 Z42015: Let Deck1%(J%)=J% Inc J% If J%<15 Goto Z42015 Endif J%=14 Z42025: K%=Int(Rnd*(J%+1)) Temp%=Deck1%(J%) Let Deck1%(J%)=Deck1%(K%) Let Deck1%(K%)=Temp% Dec J% If J%>0 Goto Z42025 EndifReturnProcedure Z43000 Rem **** SHUFFLE CHANCE **** J%=0 Z43015: Let Deck2%(J%)=J% Inc J% If J%<15 Goto Z43015 Endif J%=14 Z43025: K%=Int(Rnd*(J%+1)) Temp%=Deck2%(J%) Let Deck2%(J%)=Deck2%(K%) Let Deck2%(K%)=Temp% Dec J% If J%>0 Goto Z43025 EndifReturnZ47000:Rem **** FREE PARKING MONEY ****If Freepark%=0 Goto Z1116EndifPrintPrintPrint At(9,Crslin);Gosub Z4088If T%=4 Print "b^A collect $";Parkmoney% Goto Z47050EndifPrint "b^A collects $";Parkmoney%Z47050:C%(T%)=C%(T%)+Parkmoney%Parkmoney%=0Goto Z1116Z48000:Gosub DrawcenterPrintPrintPrintPrint At(12,Crslin);"b^APLAY ANOTHER GAME ?"Gosub Z1700If X$="Y" @Cls Sput Titel$ Goto Z7950EndifRestore OldcolorsFor J=0 To 15 Read R Read G Read B Setcolor J,R,G,BNext JClearWave 0,0SystemOldcolors:Data 7,7,7,7,0,0,0,7,0,5,2,0,0,0,7,0,5,0,0,0,5,5,5,5,2,2,2,0,7,7,0,5,5,7,7,0,7,0,7,5,5,0,5,0,5,0,0,0Procedure Mytext(A$,F,B,G) Graphmode 4 Deftext B,0,0,6 Text Xtext*8,(Ytext*8)+5,Space$(Len(A$)) Graphmode G Deftext F,0,0,6 Text Xtext*8,(Ytext*8)+5,A$ Inc Ytext Graphmode 1ReturnProcedure Mytext2(X,Y,A$,F,B,G) Graphmode 4 Deftext B,0,0,6 Text X,Y,Space$(Len(A$)) Graphmode G Deftext F,0,0,6 Text X,Y,A$ Graphmode 1ReturnProcedure Titel_ef Local X%,A% Restore Ti Tite$=Space$(180) Tite%=Varptr(Tite$) X%=Tite% Do Read A% Exit If A%=-1 Poke X%,A% Inc X% LoopReturn' ---Assembler Daten---Ti:Data 32,111,0,4,67,250,0,164Data 34,136,63,60,0,2,78,78Data 84,143,34,0,36,0,212,188Data 0,0,61,224,77,250,0,132Data 44,130,212,188,0,0,1,64Data 77,250,0,112,44,130,210,188Data 0,0,0,160,36,0,212,188Data 0,0,125,0,38,2,150,188Data 0,0,0,160,56,60,0,99Data 40,122,0,96,42,76,219,252Data 0,0,125,0,58,60,0,99Data 32,64,34,65,36,66,38,67Data 60,60,0,39,32,217,81,206Data 255,252,60,60,0,39,37,35Data 81,206,255,252,81,205,255,234Data 32,122,0,32,44,122,0,36Data 60,60,0,39,44,220,33,37Data 81,206,255,250,81,204,255,198Data 78,117,0,0,0,0,0,0Data 0,0,0,0,0,0,0,0Data 0,0,0,0,0,0,0,0Data 0,0,0,0,0,0,0,0Data 0,0,0Data -1Procedure Cls Color 0 For G%=0 To 19 For H%=0+G% To 400 Step 20 Line 0,H%,319,H% Next H% Next G%Return." Print At(9,Crslin);"b^KYou b^Ahave $1500." Gosub Z2780 Goto Z1000EndifIf T%>Num