home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 1: Collection A / 17Bit_Collection_A.iso / files / 1052a.dms / 1052a.adf / main1 < prev    next >
Text File  |  1991-08-24  |  52KB  |  2,143 lines

  1. 50 :
  2. RANDOMIZE TIMER
  3. ON MENU GOSUB menumaster
  4. MENU ON
  5. GOSUB sc1
  6. GOSUB newstart
  7. GET (0,0)-(320,8),topline%
  8. loop:
  9. IF gostop%<>0 THEN waiting
  10. GOSUB simulated.time
  11. ON gflag% GOTO gendy
  12. GOSUB movealltrucks
  13. GOSUB journeycomplete 
  14. GOTO loop
  15. gendy:
  16. gflag%=0:GOTO loop
  17. movealltrucks:
  18. FOR q%=0 TO 4
  19. FOR w%=0 TO 1
  20. IF truck%(w%,q%,13)>0 THEN laidup
  21. IF truck%(w%,q%,0)>0 THEN GOSUB movetruck
  22. loop5:   
  23. NEXT:NEXT
  24. RETURN
  25. laidup:
  26. truck%(w%,q%,13)=truck%(w%,q%,13)-1
  27. truck%(w%,q%,19)=truck%(w%,q%,19)-1
  28. IF truck%(w%,q%,13)=0 AND truck%(w%,q%,14)=0 THEN truck%(w%,q%,0)=-5
  29. IF truck%(w%,q%,13)=0 AND truck%(w%,q%,14)<>0 THEN truck%(w%,q%,14)=0
  30. GOTO loop5
  31. movetruck:
  32. t%=35:'IF w%=0 THEN t%=25:REM was 30
  33. x%=INT(RND*t%):IF x%=q% THEN penalty
  34. tmove!(w%,q%,2)=tmove!(w%,q%,2)+tmove!(w%,q%,0)
  35. tmove!(w%,q%,3)=tmove!(w%,q%,3)+tmove!(w%,q%,1)
  36. OBJECT.X truck%(w%,q%,12),INT(tmove!(w%,q%,2))
  37. OBJECT.Y truck%(w%,q%,12),INT(tmove!(w%,q%,3))
  38. truck%(w%,q%,5)=truck%(w%,q%,5)-1
  39. truck%(w%,q%,19)=truck%(w%,q%,19)-1
  40. IF truck%(w%,q%,5)=<0 THEN
  41. truck%(w%,q%,13)=2*truck%(w%,q%,10)
  42. END IF
  43. truck%(w%,q%,3)=truck%(w%,q%,3)-truck%(w%,q%,11)
  44. IF truck%(w%,q%,3)=<0 THEN nofuel
  45. RETURN
  46. journeycomplete:
  47. FOR q%=0 TO 4
  48. FOR w%=0 TO 1
  49. IF truck%(w%,q%,0)=-5 THEN GOSUB new.truck
  50. NEXT:NEXT
  51. RETURN
  52. flash.truck:
  53. x%=OBJECT.X(truck%(w%,q%,12)):y%=OBJECT.Y(truck%(w%,q%,12))
  54. IF x%>100 THEN x%=x%-100
  55. a%=x%+3:b%=y%+12:c1%=24+w%
  56. COLOR 20,c1%:OBJECT.OFF
  57. GET (x%,y%)-STEP(100,20),getput%
  58. FOR t%=0 TO 5
  59. LINE (x%,y%)-STEP(100,20),c1%,bf
  60. LINE (x%,y%)-STEP(100,20),10,b
  61. xyptab a%,b%
  62. PRINT tname$(w%,q%)
  63. FOR tt%=0 TO 700:NEXT
  64. PUT (x%,y%),getput%,PSET
  65. FOR tt%=0 TO 200:NEXT
  66. NEXT
  67. PUT (x%,y%),getput%,PSET
  68. OBJECT.ON
  69. RETURN
  70. penalty:
  71. MOUSE OFF:TIMER OFF
  72. IF win4%<5 THEN fontaok
  73. WINDOW OUTPUT 4
  74. fontset "topaz",8
  75. fontaok:
  76. WINDOW OUTPUT 3
  77. x%=INT(RND*5)+1
  78. win4%=4
  79. ON x% GOTO spding,ttrouble,rgang,tstuf,rdam
  80. nopen:
  81. WINDOW OUTPUT 3
  82. IF gostop%=0 THEN MOUSE ON:TIMER ON
  83. RETURN
  84. tstuf:
  85. IF truck%(w%,q%,16)>57 OR truck%(w%,q%,18)=1 THEN nopen
  86. truck%(w%,q%,18)=1
  87. pic$="tstuf"
  88. e%=(100-truck%(w%,q%,16))*(truck%(w%,q%,7)*5)
  89. r%=0:IF w%=0 THEN r%=1
  90. GOSUB flash.truck
  91. GOSUB threscreen
  92. COLOR 3,6
  93. xyptab 135,50:PRINT Co.Name$(w%)
  94. xyptab 135,62:PRINT tname$(w%,q%)
  95. xyptab 180,135:PRINT Co.Name$(r%)
  96. xyptab 217,185:WRITE e%
  97. WINDOW 4
  98. money&(r%)=money&(r%)+(truck%(w%,q%,8)*10)
  99. truck%(w%,q%,8)=-e%/10:truck%(w%,q%,9)=19
  100. truck%(w%,q%,19)=0:truck%(w%,q%,20)=0
  101. GOTO expenalty
  102. spding:
  103. IF truck%(w%,q%,15)<61 OR truck%(w%,q%,18)=2 THEN nopen
  104. pic$="speeding"
  105. truck%(w%,q%,18)=2
  106. e%=INT((truck%(w%,q%,15)-60)*10)*truck%(w%,q%,7)
  107. r%=INT(RND*9)+1
  108. GOSUB flash.truck
  109. GOSUB threscreen
  110. COLOR 6,7 
  111. xyptab 172,121:PRINT Co.Name$(w%)
  112. xyptab 153,131:PRINT tname$(w%,q%)
  113. xyptab 153,141:PRINT MID$(city$(truck%(w%,q%,6)),2,12)
  114. xyptab 172,151:WRITE e%
  115. xyptab 172,161:PRINT r%
  116. WINDOW 4 
  117. truck%(w%,q%,13)=r%
  118. truck%(w%,q%,8)=truck%(w%,q%,8)-(e%\10)
  119. truck%(w%,q%,14)=1
  120. GOTO expenalty
  121. ttrouble:
  122. IF truck%(w%,q%,18)=3 THEN nopen
  123. pic$="blowout":truck%(w%,q%,18)=3
  124. e%=INT(RND*truck%(w%,q%,7)+1)*30
  125. r%=INT(RND*6+2)
  126. GOSUB flash.truck
  127. GOSUB threscreen
  128. COLOR 2,3
  129. xyptab 49,41:PRINT Co.Name$(w%)
  130. xyptab 67,51:PRINT tname$(w%,q%)
  131. xyptab 228,141:PRINT r%
  132. xyptab 228,151:PRINT "$"e%*10
  133. WINDOW 4
  134. truck%(w%,q%,13)=r%
  135. truck%(w%,q%,8)=truck%(w%,q%,8)-e%
  136. truck%(w%,q%,14)=1
  137. GOTO expenalty
  138. rgang:
  139. IF truck%(w%,q%,18)=4 THEN nopen
  140. pic$="roadfix":truck%(w%,q%,18)=4
  141. e%=0:r%=INT(RND*12)+1
  142. GOSUB flash.truck
  143. GOSUB threscreen
  144. COLOR 7,6
  145. xyptab 237,133:PRINT r% 
  146. xyptab 197,143:PRINT tname$(w%,q%)
  147. WINDOW 4
  148. truck%(w%,q%,13)=r%
  149. truck%(w%,q%,14)=1
  150. expenalty:
  151. GOSUB exscreen
  152. win4%=5:GOTO returnmain
  153. rdam:
  154. IF truck%(w%,q%,18)=5 THEN nopen
  155. truck%(w%,q%,18)=5
  156. pic$="rdam"
  157. r%=INT(RND*9)+1
  158. e%=truck%(w%,q%,7)*100
  159. GOSUB flash.truck
  160. GOSUB threscreen
  161. COLOR 3,4
  162. xyptab 124,107:WRITE r%
  163. xyptab 239,167:WRITE e%
  164. WINDOW 4
  165. truck%(w%,q%,13)=r%                        
  166. truck%(w%,q%,16)=truck%(w%,q%,16)-INT(RND*5+2)
  167. truck%(w%,q%,14)=1
  168. truck%(w%,q%,8)=truck%(w%,q%,8)-e%\10
  169. GOTO expenalty
  170. nofuel:              
  171. MOUSE OFF:TIMER OFF
  172. GOSUB flash.truck
  173. pic$="nofuel":GOSUB threscreen
  174. IF win4%>6 THEN fontset "topaz",8
  175. LOCATE 3,4:COLOR 1,0
  176. xyptab 117,28:PRINT Co.Name$(w%)
  177. xyptab 117,38:PRINT tname$(w%,q%)
  178. xyptab 200,144:WRITE truck%(w%,q%,7)*125
  179. WINDOW 4
  180. nf:
  181. GOSUB exscreen
  182. IF x%<20 OR x%>84 OR y%>144 OR y%<123 THEN nf
  183. truck%(w%,q%,8)=truck%(w%,q%,8)-(truck%(w%,q%,7)*125)\10
  184. truck%(w%,q%,3)=300
  185. truck%(w%,q%,13)=5
  186. truck%(w%,q%,14)=1
  187. win4%=3
  188. returnmain:
  189. contract%=0
  190. WINDOW(3):GOSUB sc1
  191. IF gostop%=0 THEN TIMER ON:MOUSE ON
  192. RETURN
  193. returnmain1:
  194. WINDOW(3):GOSUB sc1:GOTO waiting
  195. exscreen:
  196. GOSUB checkmouse:GOSUB mousepointer
  197. RETURN 
  198. new.truck:
  199. MOUSE OFF:TIMER OFF     
  200. GOSUB flash.truck
  201. IF win2%=1 THEN WINDOW OUTPUT 2:GOTO des2
  202. pic$="despatch":win2%=1:GOSUB secscreen
  203. WINDOW OUTPUT 2
  204. fontset "small",7
  205. des2:
  206. no%=tc%:IF no%=0 THEN no%=25
  207. pen%=0:c2%=26:IF w%=1 THEN c2%=27
  208. COLOR 25,18
  209. LINE (76,55)-(170,92),1,bf
  210. LINE (88,93)-(170,132),1,bf
  211. LINE (7,163)-(171,233),18,bf
  212. LINE (38,14)-(80,21),18,bf
  213. LINE (110,14)-(170,21),18,bf
  214. xyptab 36,21:PRINT no%-1": 00"
  215. xyptab 110,21:PRINT day$(day%)
  216. IF truck%(w%,q%,17)=>5500 THEN
  217. truck%(w%,q%,16)=truck%(w%,q%,16)-2
  218. truck%(w%,q%,17)=truck%(w%,q%,17)-5500
  219. END IF
  220. IF truck%(w%,q%,20)>0 THEN pic$="CONTRACT"
  221. IF truck%(w%,q%,20)>0 AND truck%(w%,q%,19)<0 THEN
  222. pen%=(truck%(w%,q%,20)*truck%(w%,q%,19))/10
  223. truck%(w%,q%,8)=truck%(w%,q%,8)+pen%
  224. END IF
  225. money&(w%)=money&(w%)+(truck%(w%,q%,8)*10)
  226. COLOR 25,1
  227. xyptab 76,61: PRINT Co.Name$(w%)
  228. xyptab 76,71: PRINT tname$(w%,q%) 
  229. xyptab 76,81: PRINT MID$(city$(truck%(w%,q%,1)),2,12)
  230. xyptab 76,91: PRINT MID$(cargo$(truck%(w%,q%,9)),2,14)
  231. xyptab 88,101: WRITE truck%(w%,q%,8)*10
  232. xyptab 88,111:WRITE money&(w%)
  233. xyptab 88,121:WRITE truck%(w%,q%,16)
  234. xyptab 84,131:PRINT truck%(w%,q%,3)
  235. fuel%=INT(RND*59)+40
  236. truck%(w%,q%,1)=truck%(w%,q%,6)
  237. OPEN "R",#1,"ram:REQUIRES",243
  238. FIELD #1,27 AS a$,27 AS b$,27 AS c$,27 AS d$,27 AS e$,27 AS f$,27 AS g$,27 AS h$,27 AS i$
  239. GET #1,truck%(w%,q%,1)+1
  240. LOCATE 25,1:COLOR 25,18
  241. PRINT TAB(2)a$:PRINT TAB(2)b$:PRINT TAB(2)c$:PRINT TAB(2)d$:PRINT TAB(2)e$
  242. PRINT TAB(2)f$:PRINT TAB(2)g$:PRINT TAB(2)h$:PRINT TAB(2)i$
  243. CLOSE #1
  244. WINDOW 2
  245. IF pic$="CONTRACT" THEN GOSUB conmessage
  246. a%=INT((RND*20)+10)*truck%(w%,q%,7)
  247. w$=MID$(city$(truck%(w%,q%,6)),2,12)
  248. despatch:                         
  249. GOSUB mousepointer
  250. x1%=203:x2%=283:y1%=18:ystep%=20:gap%=4:no.but%=5
  251. GOSUB check.b.screen
  252. IF mouseclick%<6 THEN GOSUB buttonpress:GOTO desaction
  253. GOTO despatch
  254. conmessage:
  255. IF truck%(w%,q%,19)<0 THEN del%=truck%(w%,q%,19) ELSE del%=0
  256. GET (99,129)-(257,179),getput%
  257. COLOR 1,c2%
  258. LINE (99,129)-(257,179),25,b
  259. LINE (100,130)-(256,178),c2%,bf
  260. xyptab 105,139:PRINT "SPECIAL CONTRACT RESULT"
  261. xyptab 105,150:PRINT "Time Default"del%
  262. xyptab 105,160:PRINT "Penalty:-  $";:WRITE ABS(pen%*10)
  263. xyptab 105,175:PRINT "KEEP ON TRUCKIN PARDNER"
  264. GOSUB checkmouse:GOSUB mousepointer:PUT(99,129),getput%,PSET
  265. pic$="":truck%(w%,q%,19)=0:truck%(w%,q%,20)=0
  266. RETURN
  267. desaction:
  268. ON mouseclick% GOTO layup,refuel,contract,repair,xload
  269. repair:
  270. b%=100-truck%(w%,q%,16)
  271. IF win6%=7 THEN 
  272. WINDOW OUTPUT 6
  273. LINE (173,19)-(270,27),2,bf
  274. LINE (173,28)-(213,87),2,bf
  275. WINDOW 6:GOTO re6
  276. END IF
  277. pic$="repair":GOSUB sixscreen
  278. WINDOW OUTPUT 2
  279. PUT (59,140),getput%,PSET
  280. WINDOW 6
  281. re6:
  282. COLOR 31,2
  283. xyptab 173,25:WRITE money&(w%)
  284. xyptab 173,40:WRITE truck%(w%,q%,16)
  285. xyptab 173,55:WRITE a%
  286. xyptab 175,70:WRITE b%
  287. xyptab 173,85:WRITE b%*a%
  288. GOSUB checkmouse
  289. win6%=7
  290. rloop:
  291. GOSUB mousepointer
  292. IF y%>44 AND y%<58 AND x%>216 AND x%<276 THEN rup
  293. IF y%>59 AND y%<75 AND x%>216 AND x%<276 THEN rdo
  294. IF y%>102 AND y%<121 AND x%>48 AND x%<136 THEN okrepair
  295. IF y%>102 AND y%<121 AND x%>177 AND x%<265 THEN norepair
  296. GOTO rloop
  297. okrepair:
  298. t%=b%*a%
  299. IF t%>money&(w%) THEN nmoney
  300. money&(w%)=money&(w%)-t%
  301. IF b%<5 THEN b%=5
  302. truck%(w%,q%,13)=b%*2
  303. truck%(w%,q%,16)=truck%(w%,q%,16)+b%
  304. IF truck%(w%,q%,16)>100 THEN truck%(w%,q%,16)=100
  305. truck%(w%,q%,0)=0:truck%(w%,q%,17)=0
  306. truck%(w%,q%,5)=0
  307. truck%(w%,q%,8)=0
  308. truck%(w%,q%,9)=19
  309. truck%(w%,q%,6)=truck%(w%,q%,1)
  310. truck%(w%,q%,1)=19
  311. truck%(w%,q%,19)=0
  312. truck%(w%,q%,20)=0
  313. GOTO exitdespatch
  314. nmoney:
  315. LINE (15,120)-(295,260),1,bf
  316. LINE (14,119)-(296,261),0,b
  317. COLOR 31,1 :LOCATE 17,1  
  318. rfile%=4:GOSUB getrand
  319. money&(w%)=money&(w%)-INT(t%/10)
  320. GOSUB checkmouse       
  321. GOSUB mousepointer
  322. y%=186:x%=68:t%=5:win6%=0:GOTO leavelay
  323. norepair:
  324. WINDOW 2:GOSUB checkmouse:GOTO despatch
  325. rdo:
  326. IF b%=5 THEN rloop
  327. b%=b%-1:GOTO reupdate
  328. rup:
  329. IF b%=100-truck%(w%,q%,16) THEN rloop
  330. b%=b%+1
  331. reupdate:
  332. xyptab 175,70:PRINT "  "
  333. xyptab 175,70:WRITE b%
  334. xyptab 173,85:PRINT "      "
  335. xyptab 173,85:WRITE b%*a%
  336. GOTO rloop
  337. layup:
  338. t%=10:IF win4%=1 THEN WINDOW 4:GOSUB laywrite:GOTO loop4
  339. pic$="layup":GOSUB threscreen
  340. IF win4%>6 THEN fontset "topaz",8
  341. WINDOW 4
  342. win4%=1:contract%=0
  343. loop4:
  344. GOSUB mousepointer
  345. IF y%>164 THEN leavelay
  346. IF y% <130 OR y%> 150 THEN loop4
  347. IF x%> 63 AND x%<149 THEN addtime
  348. IF x%> 201 AND x%<251 THEN deducttime
  349. GOTO loop4
  350. deducttime:
  351. t%=t%-10:IF t%<10 THEN t%=10
  352. GOSUB laywrite:GOSUB checkmouse
  353. GOTO loop4
  354. addtime:
  355. t%=t%+10:IF t%>90 THEN t%=90
  356. GOSUB laywrite:GOSUB checkmouse
  357. GOTO loop4
  358. laywrite:
  359. COLOR 5,1
  360. xyptab 157,141: PRINT "  "
  361. xyptab 157,141: WRITE t%
  362. RETURN
  363. leavelay:
  364. IF y%>187 THEN loop4
  365. IF x%>66 AND x%<187 THEN 
  366. truck%(w%,q%,13)=t%
  367. truck%(w%,q%,0)=0
  368. truck%(w%,q%,8)=0
  369. truck%(w%,q%,9)=19
  370. truck%(w%,q%,6)=truck%(w%,q%,1)
  371. truck%(w%,q%,1)=19
  372. truck%(w%,q%,5)=0
  373. truck%(w%,q%,19)=0
  374. truck%(w%,q%,20)=0
  375. GOTO returnmain
  376. END IF
  377. GOTO loop4
  378. noload: 
  379. GET (196,81)-(298,121),getput%
  380. LINE (197,82)-(297,120),25,bf
  381. LINE (196,81)-(298,121),1,b
  382. COLOR 15,25:LOCATE 13,1
  383. PRINT TAB(26)"You seem a bit"
  384. PRINT TAB(26)"CONFUSED!.  You"
  385. PRINT TAB(26)"will need a"
  386. PRINT TAB(26)"CONTRACT before"
  387. PRINT TAB(26)"I can LOAD. !!!!"
  388. GOSUB mousepointer
  389. PUT (196,81),getput%,PSET
  390. GOSUB checkmouse
  391. GOTO despatch 
  392. xload:
  393. IF truck%(w%,q%,5)<1 THEN noload
  394. WINDOW OUTPUT 4
  395. IF win4%>6 THEN fontset "topaz",8
  396. speed%=80:t%=speed%:IF truck%(w%,q%,20)<1 THEN truck%(w%,q%,19)=0
  397. IF chsp%=1 THEN t%=truck%(player%,q%,15):c1%=(t%-80)*2:speed%=t%-c1%
  398. kpl!=truck%(w%,q%,4)/80
  399. x1%=47:y1%=90:
  400. win4%=2:COLOR 4,3
  401. pic$="speed":GOSUB threscreen
  402. xyptab 209,35:PRINT  Co.Name$(w%)
  403. xyptab 209,45:PRINT tname$(w%,q%)
  404. xyptab 209,55:PRINT MID$(cargo$(truck%(w%,q%,9)),2,12)
  405. xyptab 209,65:PRINT TAB(27)MID$(city$(truck%(w%,q%,6)),2,12)
  406. xyptab 209,75:PRINT truck%(w%,q%,5)
  407. xyptab 209,85:PRINT truck%(w%,q%,19)
  408. GOSUB speedupdate
  409. xyptab 209,105:PRINT truck%(w%,q%,3)
  410. xyptab 209,125:PRINT truck%(w%,q%,7)
  411. WINDOW 4
  412. GET (47,90)-(71,98),getput%
  413. IF chsp%=1 THEN RETURN
  414. loop3:
  415. GOSUB mousepointer
  416. IF x%<72 THEN speedadjust 
  417. IF x%>98 AND x%<177 AND y%<183 AND y%>145 THEN exitspeed
  418. GOTO loop3
  419. speedadjust:
  420. IF y%<60 OR y%>170 THEN loop3
  421. IF y%<y1%-4 THEN y2%=-10:GOTO addjust
  422. IF y%>y1%+14 THEN y2%=10:GOTO addjust
  423. GOTO loop3
  424. addjust:
  425. PUT (x1%,y1%),getput%
  426. y1%=y1%+y2%:PUT (x1%,y1%),getput%
  427. speed%=speed%+y2%:t%=t%-y2%:GOSUB speedupdate
  428. GOTO loop3
  429. speedupdate:
  430. xyptab 218,95:PRINT "    "
  431. xyptab 209,95:PRINT INT(truck%(w%,q%,5)/t%)
  432. xyptab 218,115:PRINT "    "
  433. xyptab 209,115:PRINT INT(truck%(w%,q%,5)/(speed%*kpl!))
  434. RETURN    
  435. exitspeed:
  436. truck%(w%,q%,0)=1
  437. x%=INT(truck%(w%,q%,5)/t%)
  438. y%=INT(truck%(w%,q%,5)/(speed%*kpl!))
  439. truck%(w%,q%,17)=truck%(w%,q%,17)+truck%(w%,q%,5)
  440. truck%(w%,q%,11)=INT(y%/x%)
  441. truck%(w%,q%,5)=x%
  442. truck%(w%,q%,15)=t%
  443. IF chsp%=0 THEN
  444. tmove!(w%,q%,2)=cityx%(truck%(w%,q%,1))
  445. tmove!(w%,q%,3)=cityy%(truck%(w%,q%,1))
  446. END IF
  447. tmove!(w%,q%,4)=cityx%(truck%(w%,q%,6))
  448. tmove!(w%,q%,5)=cityy%(truck%(w%,q%,6))
  449. tmove!(w%,q%,0)=(tmove!(w%,q%,4)-tmove!(w%,q%,2))/x%
  450. tmove!(w%,q%,1)=(tmove!(w%,q%,5)-tmove!(w%,q%,3))/x%
  451. IF chsp%<>0 THEN RETURN
  452. truck%(w%,q%,18)=0
  453. exitdespatch:
  454. contract%=0
  455. GOTO returnmain
  456. refuel:
  457. IF win6%=1 THEN erasefuel
  458. pic$="fuel":GOSUB sixscreen
  459. WINDOW OUTPUT 2
  460. PUT (59,140),getput%,PSET
  461. WINDOW OUTPUT 6
  462. IF win6%>3 THEN fontset "topaz",8
  463. win6%=1
  464. fugo:
  465. stepp#=truck%(w%,q%,2)/109
  466. fillhieght%=truck%(w%,q%,3)/stepp#
  467. COLOR 20,7:xyptab 178,6:PRINT w$
  468. COLOR 31,7:xyptab 179,7:PRINT w$
  469. LINE (230,136)-STEP(-53,-fillhieght%+1),2,bf
  470. COLOR 31,23
  471. xyptab 97,166:WRITE fuel%
  472. xyptab 228,196:WRITE money&(w%)
  473. litres!=0:total!=0:tank!=truck%(w%,q%,3)
  474. range%=tank!*truck%(w%,q%,4)
  475. fillhieght%=136-fillhieght%
  476. GOSUB fuelupdate
  477. WINDOW 6
  478. fueldepot:
  479. GOSUB mousepointer
  480. IF x%<254 OR x%>299 THEN fueldepot
  481. IF y%>74 AND y%<116 THEN exitfuel
  482. IF y%>24 AND y%<66 THEN topup
  483. GOTO fueldepot
  484. topup:
  485. FOR t%=fillhieght% TO 26 STEP-1
  486. LINE (177,t%)-(230,t%),2
  487. litres!=litres!+stepp#
  488. total!=total!+(fuel%*stepp#)
  489. tank!=tank!+stepp#
  490. range%=tank!*truck%(w%,q%,4)
  491. NEXT:fillhieght%=t%
  492. money&(w%)=money&(w%)-INT(total!/100)
  493. IF money&(w%)<0 THEN GOTO xnomoney
  494. GOSUB fuelupdate
  495. truck%(w%,q%,3)=INT(tank!)
  496. xyptab 228,196:PRINT "         "
  497. xyptab 228,196:WRITE money&(w%)
  498. GOSUB checkmouse:GOTO exitfuel
  499. erasefuel:
  500. WINDOW OUTPUT 6
  501. COLOR 31,7:xyptab 179,7:PRINT "             "
  502. LINE (177,26)-(230,136),11,bf
  503. COLOR 31,23
  504. xyptab 97,166:PRINT "  "
  505. xyptab 228,196:PRINT "         "
  506. xyptab 97,181:PRINT "    "
  507. xyptab 105,196:PRINT "    "
  508. xyptab 263,166:PRINT "    "
  509. xyptab 263,181:PRINT "    "
  510. GOTO fugo
  511. fuelupdate:
  512. COLOR 31,23
  513. xyptab 97,181:WRITE INT(litres!)
  514. xyptab 105,196:WRITE INT(total!/100)
  515. xyptab 263,166:WRITE INT(tank!)
  516. xyptab 263,181:WRITE range%
  517. RETURN
  518. xnomoney:
  519. LINE (50,40)-STEP(220,65),21,b
  520. LINE (51,41)-STEP(218,63),7,bf
  521. LOCATE 7,9:COLOR 20,7
  522. PRINT "SORRY PAL: I wasn't born"
  523. PRINT TAB(9)"yesterday. This is a"
  524. PRINT TAB(9)"Service Station not a"
  525. PRINT TAB(9)"bloody BANK!"
  526. PRINT TAB(9)"Come back when you've"
  527. PRINT TAB(9)"got enough dough."
  528. money&(w%)=money&(w%)+INT(total!/100)
  529. win6%=0
  530. exitfuel:
  531. GOSUB exscreen
  532. GOSUB checkmouse
  533. WINDOW OUTPUT 2
  534. COLOR 25,1
  535. xyptab 88,111: PRINT "           "
  536. xyptab 88,111: WRITE money&(w%)
  537. xyptab 84,131:PRINT truck%(w%,q%,3)
  538. WINDOW 2:GOTO despatch
  539. contract:
  540. IF contract%=7 THEN WINDOW 4:GOTO page
  541. WINDOW OUTPUT 4
  542. IF win4%<7 OR win4%>13 THEN fontset "despatch",13
  543. PALETTE 0,.6,.58,.57:PALETTE 1,.6,.58,.57
  544. PALETTE 2,.48,.01,0:PALETTE 3,.77,.77,.77
  545. PALETTE 4,1,1,0:PALETTE 5,.02,.56,0
  546. PALETTE 6,1,1,1:PALETTE 7,0,0,1
  547. win4%=7:contract%=7:diff!=(246-finishy%)/2:h!=(RND*1.5)+1:dp%=INT(RND*10)
  548. desgo:                                     
  549. COLOR 0,0:CLS
  550. LOCATE 1,1:COLOR 3,2
  551. randy%=INT(RND*12)
  552. FOR t%=0 TO randy%
  553. go:
  554. double%=0:cargo%=INT(RND*19)
  555. FOR tt%=0 TO t%
  556. IF ABS(cargo%(tt%))=cargo% THEN double%=1
  557. NEXT
  558. ON double% GOTO go
  559. e%=INT(RND*19)
  560. IF e%=cargo% THEN cargo%=-cargo%
  561. cargo%(t%)=cargo%
  562. PRINT TAB(16)cargo$(ABS(cargo%(t%)))
  563. NEXT
  564. destination%=t%
  565. x%=10:IF truck%(w%,q%,1)=9 THEN x%=5
  566. LOCATE 1,1
  567. randy%=INT(RND*x%)
  568. FOR t%=0 TO randy%
  569. goo:
  570. double%=0
  571. cargo%=INT(RND*19)
  572. IF dist%(truck%(w%,q%,1),cargo%)=0 THEN goo
  573. FOR tt%=0 TO t%
  574. IF city%(tt%)=cargo% THEN double%=1
  575. NEXT
  576. ON double% GOTO goo
  577. distt%(t%)=dist%(truck%(w%,q%,1),cargo%)
  578. city%(t%)=cargo%
  579. PRINT city$(cargo%)
  580. NEXT:GOSUB setcargo
  581. cargo%=t%
  582. LOCATE 15,17:COLOR 6,7
  583. PRINT "( OK )"TAB(24)"(CANCEL)";
  584. mouseclick%=1:randy%=0
  585. GOSUB klm
  586. st1%=0:GOSUB rl
  587. st2%=0:GOSUB rr
  588. page: 
  589. WINDOW 4                   
  590. GOSUB mousepointer
  591. IF y%>181 AND x%>161 THEN okcancel
  592. IF x%>146 THEN right
  593. x1%=0:x2%=139:y1%=0:ystep%=13:gap%=2:no.but%=cargo%
  594. GOSUB check.b.screen
  595. IF mouseclick%<cargo%+1 THEN GOSUB reverseleft
  596. GOTO page
  597. right:
  598. x1%=150:x2%=309:y1%=0:ystep%=13:gap%=2:no.but%=destination%
  599. GOSUB check.b.screen
  600. IF mouseclick%<destination%+1 THEN
  601. randy%=mouseclick%-1
  602. GOSUB reverseright    
  603. GOSUB cargoprice
  604. END IF
  605. GOTO page
  606. okcancel:
  607. IF x%<221 AND y%<196 THEN 
  608. truck%(w%,q%,5)=klm%
  609. truck%(w%,q%,8)=INT(t&/10)
  610. truck%(w%,q%,9)=ABS(cargo%(randy%))
  611. truck%(w%,q%,19)=del%
  612. truck%(w%,q%,20)=pen%
  613. WINDOW 2:GOTO despatch
  614. END IF
  615. IF x%>232 AND x%<312 AND y%<196 THEN WINDOW 2:GOTO despatch
  616. GOTO page
  617. reverseleft:
  618. IF st%=st1% THEN RETURN
  619. GOSUB rl
  620. st1%=st%
  621. GOSUB rl
  622. GOTO klm
  623. rl:
  624. AREA (0,st1%):AREA STEP (139,0)
  625. AREA STEP (0,12):AREA STEP (-139,0)
  626. AREAFILL 1
  627. RETURN
  628. reverseright:
  629. IF st%=st2% THEN BEEP:RETURN
  630. GOSUB rr
  631. st2%=st%
  632. rr:
  633. AREA (150,st2%):AREA STEP (159,0)
  634. AREA STEP (0,12):AREA STEP (-159,0)
  635. AREAFILL 1
  636. RETURN
  637. klm:
  638. truck%(w%,q%,6)=city%(mouseclick%-1)
  639. klm%=distt%(mouseclick%-1)
  640. LOCATE 11,8:COLOR 4,7
  641. PRINT "````":LOCATE 11,8:WRITE klm%
  642. cargoprice:
  643. del%=0:pen%=0
  644. t&=truck%(w%,q%,7)*(klm% * (cargorates!(ABS(cargo%(randy%))))*diff!)
  645. IF cargo%(randy%)<0 AND week%>3 THEN
  646. t&=t&*h!
  647. del%=klm%/80+dp%
  648. pen%=(t&/del%)*2
  649. END IF
  650. COLOR 6,2:LOCATE 12,8
  651. PRINT "``````";:LOCATE 12,8: WRITE t&
  652. PRINT TAB(10)"```";:LOCATE 13,10:WRITE del%
  653. PRINT TAB(10)"````";:LOCATE 14,10:WRITE pen%
  654. GOTO checkmouse
  655. setcargo:
  656. LOCATE 11,1:COLOR 4,7
  657. LINE (0,130)-(139,142),7,bf
  658. PRINT "klm{:`"
  659. COLOR 6,2:LOCATE 12,1
  660. LINE (0,143)-(139,184),2,bf
  661. PRINT TAB(1)"rate:`$"
  662. PRINT TAB(1)"del:hrs:"
  663. PRINT TAB(1)"penalty{$"
  664. RETURN
  665. simulated.time:
  666. IF gostop%<>0 THEN RETURN
  667. COLOR 10,3
  668. IF tc%=24 THEN GOSUB addday
  669. xyptab 5+am%,197:WRITE tc%
  670. tc%=tc%+1:IF tc%>9 THEN am%=0 
  671. IF shares%(0,0)>0 THEN shares%(0,0)=shares%(0,0)-1
  672. IF shares%(1,0)>0 THEN shares%(1,0)=shares%(1,0)-1
  673. IF tract%(0,0)>0 THEN tract%(0,0)=tract%(0,0)-1
  674. IF tract%(1,0)>0 THEN tract%(1,0)=tract%(1,0)-1
  675. RETURN
  676. addday:
  677. tc%=0:am%=8
  678. day%=day%+1:IF day%=7 THEN GOSUB addweek
  679. xyptab 64,197:PRINT day$(day%)
  680. xyptab 5,197:PRINT " "
  681. RETURN
  682. addweek:
  683. week%=week%+1:day%=0
  684. IF week%=53 THEN week%=1
  685. xyptab 186,197:WRITE week%
  686. FOR t%=0 TO 1
  687. IF morg&(t%,5)>0 THEN GOSUB paymorg
  688. GOSUB wagebill
  689. NEXT
  690. IF week% => duration%+1 THEN gflag%=1:GOTO gameend
  691. RETURN
  692. market:
  693. COLOR 5,10
  694. r%=INT(RND*20)
  695. r%=r%-10
  696. finishy%=starty%+r%
  697. IF finishy%>245 THEN finishy%=245
  698. IF finishy%<196 THEN finishy%=196
  699. SCROLL (224,196)-(304,245),-3,0
  700. LINE(startx%-3,starty%)-(startx%,finishy%),5
  701. starty%=finishy%:COLOR 10,3
  702. RETURN
  703. sc1:
  704. x1%=217:x2%=311:y1%=11:ystep%=39:gap%=3:no.but%=4
  705. RETURN
  706. interuptmouse:
  707. g%=MOUSE(0)
  708. x%=MOUSE(1):y%=MOUSE(2)
  709. IF x%>217 AND x%<310 AND y%>132 AND y%<163 THEN 
  710. GOSUB fillstart:GOTO st.stop
  711. END IF
  712. RETURN
  713. st.stop:
  714. MOUSE OFF:TIMER OFF
  715. BEEP
  716. gostop%=1:GOSUB menuset
  717. diff%=220-finishy%
  718. RETURN
  719. waiting:
  720. GOSUB mousepointer
  721. IF x%>x1% AND x%<x2% THEN GOSUB checkpointer:GOTO action
  722. GOTO waiting
  723. fillstart:
  724. AREA (217,129):AREA (311,129)
  725. AREA (311,164):AREA (217,164)
  726. AREAFILL 1
  727. GOTO checkmouse
  728. player:
  729. OBJECT.OFF
  730. GET (142,72)-(260,136),getput%
  731. LINE (142,72)-STEP(118,48),5,b
  732. LINE (143,73)-STEP(116,22),24,bf
  733. LINE (143,96)-STEP(117,0),5
  734. LINE (143,97)-STEP(116,22),25,bf
  735. LINE (142,120)-STEP(118,16),5,b
  736. LINE (143,121)-STEP(116,14),10,bf
  737. COLOR 26,24:LOCATE 11,19
  738. PRINT "Co. "Co.Name$(0)
  739. PRINT :PRINT:COLOR 26,25 
  740. PRINT TAB(19)"Co. "Co.Name$(1)
  741. COLOR 9,10:xyptab 145,131
  742. PRINT "OOPS! Boo-Boo!"
  743. loopy:
  744. GOSUB mousepointer
  745. IF x%<142 OR x%>260 THEN loopy
  746. IF y%>72 AND y%<94 THEN player%=0:GOTO out
  747. IF y%>97 AND y%<120 THEN player%=1:GOTO out
  748. IF y%>120 AND y%<137 THEN player%=-1:GOTO out
  749. GOTO loopy
  750. out: 
  751. PUT (142,72),getput%,PSET
  752. OBJECT.ON
  753. GOSUB checkmouse
  754. RETURN
  755. action:
  756. ON mouseclick% GOTO bank,tdept,salesyard,s.go,loop
  757. GOTO finish
  758. bank:
  759. GOSUB buttonpress:GOSUB player
  760. IF player%=-1 THEN waiting
  761. IF shval%<>diff% THEN GOSUB sprices
  762. shval%=diff%
  763. IF win6%=2 THEN WINDOW(6):GOTO bankscreen 
  764. pic$="bank":win6%=2
  765. GOSUB sixscreen
  766. WINDOW OUTPUT 3
  767. PUT (59,140),getput%,PSET
  768. WINDOW 6
  769. GOTO bankscreen          
  770. tdept:
  771. GOSUB buttonpress:GOSUB player
  772. IF player%=-1 THEN waiting
  773. IF win6%=3 THEN WINDOW(6):GOTO officescreen  
  774. pic$="office":win6%=3
  775. GOSUB sixscreen
  776. WINDOW OUTPUT 3
  777. PUT (59,140),getput%,PSET
  778. WINDOW 6
  779. GOTO officescreen 
  780. salesyard:
  781. GOSUB buttonpress:GOSUB player
  782. IF player%=-1 THEN waiting
  783. IF win2%=2 THEN WINDOW(2):GOTO salescreen
  784. pic$="sales":win2%=2
  785. GOSUB secscreen 
  786. GOTO salescreen
  787. secscreen:          
  788. GOSUB message
  789. WINDOW OUTPUT 2
  790. cblocks%=4:colours&=32:bytes&=10240
  791. GOSUB loadscreen
  792. WINDOW OUTPUT 3
  793. PUT (59,140),getput%,PSET
  794. RETURN
  795. sixscreen:
  796. GOSUB message
  797. WINDOW OUTPUT 6
  798. cblocks%=4:colours&=32:bytes&=10240
  799. GOSUB loadscreen
  800. RETURN
  801. threscreen:
  802. WINDOW OUTPUT 4
  803. cblocks%=2:colours&=8:bytes&=8000
  804. GOSUB loadscreen
  805. RETURN
  806. s.go:
  807. GOSUB fillstart
  808. gostop%=0
  809. GOSUB menuset
  810. ON MOUSE GOSUB interuptmouse
  811. ON TIMER(1) GOSUB market
  812. MOUSE ON:TIMER ON
  813. GOTO loop
  814. message:
  815. GET (59,140)-STEP(88,32),getput%
  816. LINE (59,140)-STEP(88,32),5,b
  817. LINE (60,141)-STEP(86,30),20,bf
  818. COLOR 1,20
  819. xyptab 68,153: PRINT " LOADING "
  820. xyptab 64,165: PRINT "NEW SCREEN"
  821. RETURN
  822. reverseblock:
  823. gg%=x2%-x1%:gb%=x1%-x2%
  824. AREA (x1%,st%):AREA STEP (gg%,0)
  825. AREA STEP (0,ystep%-gap%):AREA STEP (gb%,0)
  826. AREAFILL 1
  827. RETURN
  828. buttonpress:
  829. GOSUB reverseblock:GOSUB checkmouse:GOTO reverseblock
  830. loadscreen:
  831. b&=AllocMem&(64,65537&)
  832. IF b&=0 THEN ERROR 7
  833. file$="screens:"+pic$+CHR$(0)
  834. h&=xOpen&(SADD(file$),1005)
  835. viewport&=PEEKL(WINDOW(7)+46)+44
  836. CALL LoadRGB4(viewport&,b&,colours&)
  837. FOR i%=0 TO cblocks%
  838. ad&=PEEKL(PEEKL(WINDOW(8)+4)+8+4*i%)
  839. r&=xRead&(h&,ad&,bytes&)
  840. NEXT
  841. r&=xRead&(h&,b&,64)
  842. CALL xClose(h&)
  843. CALL LoadRGB4(viewport&,b&,colours&)
  844. CALL FreeMem(b&,64)
  845. RETURN
  846. finish:
  847. MENU RESET
  848. LIBRARY CLOSE
  849. TIMER STOP:MOUSE OFF
  850. OBJECT.CLOSE
  851. WINDOW CLOSE 6
  852. WINDOW CLOSE 5
  853. WINDOW CLOSE 2
  854. WINDOW CLOSE 3
  855. WINDOW CLOSE 4
  856. SCREEN CLOSE 4
  857. SCREEN CLOSE 2
  858. SCREEN CLOSE 3
  859. SCREEN CLOSE 1
  860. WINDOW 1,"OK",(0,0)-(600,30),0,-1
  861. CHDIR "DF0:"
  862. END
  863. salescreen:
  864. WINDOW 2
  865. x1%=116:x2%=206:y1%=38:ystep%=20:gap%=4:no.but%=4
  866. GOSUB mousepointer     
  867. IF y%>14 AND x%<92 AND y%<42 THEN WINDOW(3):GOSUB sc1:GOTO waiting
  868. GOSUB check.b.screen
  869. IF mouseclick%<5 THEN
  870. GOSUB buttonpress
  871. IF day%=6 THEN sunday
  872. IF tc%<8 OR tc%>22 THEN yardclosed
  873. IF tract%(player%,0)>0 THEN ttime
  874. ON mouseclick% GOTO newtrucks,owner1,owner2,selltrucks
  875. END IF
  876. GOTO salescreen
  877. newtrucks: 
  878. IF win6%=4 THEN sixok
  879. pic$="1owner":GOSUB sixscreen:ttype%=0:win6%=4:GOTO buytrucks
  880. owner1:     
  881. IF win6%=5 THEN sixok       
  882. pic$="1owner":GOSUB sixscreen:ttype%=2:win6%=5:GOTO buytrucks
  883. owner2:
  884. IF win6%=6 THEN sixok
  885. pic$="2hand":GOSUB sixscreen:ttype%=4:win6%=6:GOTO buytrucks        
  886. sixok:
  887. e%=55:WINDOW OUTPUT 6:GOTO buytrucks          
  888. bs:
  889. DATA 70,141,100,19,5,3
  890. bs1:
  891. DATA 164,235,100,19,5,3
  892. bankscreen:
  893. GOSUB exscreen
  894. IF x%>124 AND y%>180 AND x%<184 AND y%<200 THEN
  895. WINDOW(3):GOSUB sc1:GOTO waiting 
  896. END IF
  897. IF x% <160 THEN RESTORE bs ELSE RESTORE bs1
  898. READ x1%,x2%,y1%,ystep%,gap%,no.but%
  899. GOSUB check.b.screen
  900. IF mouseclick%<4 THEN GOSUB buttonpress:GOTO bankaction
  901. GOTO bankscreen
  902. bankaction:
  903. GOSUB message
  904. IF x%>160 THEN mouseclick%=mouseclick%+3
  905. ON mouseclick% GOTO p.mortgage,plas,bbuyshares,omorg,balance,ssellshares
  906. officescreen:
  907. GOSUB exscreen
  908. IF x%<186 AND x%>129 AND y%<47 AND y%>17 THEN returnmain1
  909. IF y%<11 OR y%>53 THEN officescreen
  910. IF x%<120 AND x%>4 THEN speeding
  911. IF x%>193 AND x%<310 THEN find
  912. GOTO officescreen
  913. checkpointer:
  914. mouseclick%=0
  915. FOR tt%=y1% TO y1%+(no.but%*ystep%) STEP ystep%
  916. mouseclick%=mouseclick%+1
  917. IF y%>tt% AND y%<tt%+(ystep%-gap%) THEN st%=tt%:tt%=y1%+(no.but%*ystep%)
  918. NEXT
  919. RETURN
  920. check.b.screen:
  921. IF x%>x1% AND x%<x2% THEN GOTO checkpointer
  922. mouseclick%=50
  923. RETURN
  924. buytrucks:
  925. IF e%<>55 THEN
  926. WINDOW OUTPUT 2
  927. PUT (59,140),getput%,PSET
  928. WINDOW OUTPUT 6
  929. END IF
  930. GOSUB truprice:COLOR 1,23
  931.  IF ttype%=0 AND pic$="1owner" THEN
  932. GET (125,20)-STEP(88,34),getput%
  933. LINE (125,20)-STEP(88,34),1,b
  934. LINE (126,21)-STEP(86,32),23,bf
  935. GET (87,141)-STEP(123,32),getput%
  936. LINE (87,141)-STEP(123,32),1,b
  937. LINE (88,142)-STEP(121,30),23,bf
  938. COLOR 3,23
  939. LOCATE 4,18:PRINT "MACK D500"
  940. LOCATE 19,12:PRINT "WHITE ROAD BOSS"
  941. END IF
  942. LOCATE 6,18:PRINT "$"truck&(0)
  943. LOCATE 21,16:PRINT "$"truck&(1)
  944. COLOR 31,21
  945. xyptab 227,155: PRINT Co.Name$(player%)
  946. rfile%=mouseclick%:e%=0
  947. ccc:
  948. COLOR 5,21
  949. xyptab 236,170: PRINT "        "
  950. xyptab 236,170: WRITE money&(player%) 
  951. tchoice%=0
  952. WINDOW 6
  953. cccc:
  954. GOSUB mousepointer
  955. IF x%<213 AND y%<126 THEN mack
  956. IF x%<213 AND y%>125 THEN toyo
  957. IF x%>238 AND y%<114 THEN xbuttons
  958. GOTO cccc
  959. xbuttons:
  960. x1%=236:x2%=287:y1%=29:ystep%=34:gap%=18:no.but%=3
  961. GOSUB check.b.screen
  962. IF mouseclick%<4 THEN GOSUB buttonpress:GOTO taction
  963. GOTO cccc
  964. taction:
  965. ON mouseclick% GOTO getname,tinfo,exxit
  966. tinfo:
  967. IF tchoice%=0 THEN cccc
  968. GOTO info2
  969. mack: 
  970. IF tchoice%=2 THEN toyo 
  971. x1%=135:x2%=209:ystep%=23:gap%=0:st%=26
  972. sh%=135:blocky%=209:randy%=27:batchs%=26
  973. IF ttype%=0 THEN x1%=125:x2%=213:sh%=125:blocky%=213:ystep%=33:st%=21
  974. GOSUB reverseblock
  975. IF tchoice%<>0 THEN tchoice%=0 ELSE tchoice%=1
  976. GOSUB checkmouse
  977. ON tchoice% GOTO cccc
  978. GOTO cccc
  979. toyo:
  980. IF tchoice%=1 THEN mack
  981. x1%=96:x2%=209:ystep%=27:gap%=0:st%=145
  982. sh%=96:blocky%=209:randy%=27:batchs%=145
  983. IF ttype%=0  THEN x1%=87:sh%=87:ystep%=33:st%=140
  984. GOSUB reverseblock
  985. IF tchoice%<>0 THEN tchoice%=0 ELSE tchoice%=2
  986. GOSUB checkmouse
  987. ON tchoice% GOTO cccc,cccc
  988. GOTO cccc
  989. trucks5:
  990. rfile%=5:GOSUB getrand
  991. WINDOW 4:GOSUB checkmouse:GOSUB mousepointer
  992. GOTO gb     
  993. getname:
  994. IF tchoice%=0 THEN cccc
  995. WINDOW OUTPUT 4
  996. IF win4%<>14 THEN fontset "t.sales",8
  997. PALETTE 0, .41,.41,.41
  998. PALETTE 1, .41,.41,.41
  999. PALETTE 2, 1,1,1
  1000. PALETTE 3, 0,0,0
  1001. PALETTE 4, 0,0,1
  1002. PALETTE 5, .69,.37,.07
  1003. PALETTE 6, .73,0,0
  1004. PALETTE 7, .35,.16,.6
  1005. COLOR 0,0:CLS:win4%=14
  1006. LINE (30,10)-STEP(240,137),5,bf
  1007. LINE (271,11)-(271,148),3
  1008. LINE (270,148)-(31,148),3
  1009. COLOR 3,5:LOCATE 3,1
  1010. IF tcount%(player%)=5 THEN trucks5
  1011. GOSUB getrand
  1012. PRINT:PRINT TAB(22)"%"
  1013. LINE (158,44)-STEP(106,15),7,bf
  1014. LINE (140,124)-STEP(23,15),7,bf
  1015. COLOR 6,2:LOCATE 20,11
  1016. PRINT " CLICK IN NAME BOX ";
  1017. WINDOW 4
  1018. GOSUB mousepointer
  1019. y%=7:x%=21:c1%=2:c2%=7:lo%=32:hi%=90:maxlen%=12
  1020. GOSUB gtname
  1021. IF w$="" THEN gb
  1022. tname$(player%,tcount%(player%))=w$
  1023. x%=19:y%=17:lo%=48:hi%=57:maxlen%=2
  1024. GOSUB gtname
  1025. fuel%=VAL(w$)
  1026. IF fuel%+deposit%>100 THEN 
  1027. fuel%=100-deposit%
  1028. END IF
  1029. mgage%=fuel%+deposit%
  1030. tcost&=(truck&(tchoice%-1)/100)*mgage%
  1031. IF tcost&>money&(player%) THEN 
  1032. c1%=4:c2%=6:c3%=tchoice%
  1033. tchoice%=7-ttype%:GOTO ext
  1034. END IF
  1035. RESTORE truckspecs
  1036. FOR t%=1 TO tchoice%+ttype%
  1037. READ b%,c%,d%,a%
  1038. NEXT
  1039. IF truck&(tchoice%-1)-tcost&>0 THEN morg&(player%,5)=morg&(player%,5)+1
  1040. morg&(player%,tcount%(player%))=truck&(tchoice%-1)-tcost&
  1041. truck%(player%,tcount%(player%),0)=-5
  1042. truck%(player%,tcount%(player%),1)=homeport%(player%)
  1043. truck%(player%,tcount%(player%),6)=homeport%(player%)
  1044. truck%(player%,tcount%(player%),2)=b%
  1045. truck%(player%,tcount%(player%),3)=INT(RND*b%)+1
  1046. truck%(player%,tcount%(player%),4)=d%
  1047. truck%(player%,tcount%(player%),7)=c%
  1048. truck%(player%,tcount%(player%),9)=19
  1049. truck%(player%,tcount%(player%),10)=tchoice%+ttype%
  1050. truck%(player%,tcount%(player%),12)=tcount%(player%)+1
  1051. truck%(player%,tcount%(player%),16)=a%
  1052. truck%(player%,tcount%(player%),17)=0
  1053. tract%(player%,0)=12
  1054. IF player%=1 THEN
  1055. truck%(player%,tcount%(player%),12)=tcount%(player%)+6
  1056. END IF
  1057. money&(player%)=money&(player%)-tcost&
  1058. WINDOW OUTPUT 3
  1059. OBJECT.SHAPE truck%(player%,tcount%(player%),12),sprite$(player%)
  1060. OBJECT.X truck%(player%,tcount%(player%),12),cityx%(homeport%(player%))
  1061. OBJECT.Y truck%(player%,tcount%(player%),12),cityy%(homeport%(player%))
  1062. tmove!(player%,tcount%(player%),2)=cityx%(homeport%(player%))
  1063. tmove!(player%,tcount%(player%),3)=cityy%(homeport%(player%))
  1064. WINDOW 4
  1065. tcount%(player%)=tcount%(player%)+1
  1066. c1%=6:c2%=4
  1067. ext:
  1068. LINE (53,20)-STEP(200,68),c2%,bf
  1069. LINE (254,21)-(254,89),3
  1070. LINE (253,89)-(54,89),3
  1071. COLOR 2,c2%:LOCATE 4,13
  1072. PRINT "CONGRATULATIONS"
  1073. PRINT 
  1074. GOSUB comment
  1075. cc:
  1076. LINE (134,65)-STEP(40,20),c1%,bf
  1077. LINE (175,66)-(175,86),3
  1078. LINE (174,86)-(135,86),3
  1079. COLOR 3,c1%:LOCATE 10,19:PRINT "OK"
  1080. IF tchoice%+ttype%=7 THEN
  1081. tcost&=(truck&(c3%-1)/100)*2
  1082. money&(player%)=money&(player%)-tcost&
  1083. tchoice%=c3%
  1084. tname$(player%,tcount%(player%))=""
  1085. END IF
  1086. GOSUB exscreen:GOTO exxit 
  1087. rblock:
  1088. add%= WINDOW(0)
  1089. x1%=sh%:x2%=blocky%:ystep%=randy%:gap%=0:st%=batchs%
  1090. WINDOW OUTPUT 6:GOSUB reverseblock
  1091. WINDOW add%:RETURN 
  1092. gb:
  1093. WINDOW 6:GOSUB checkmouse:GOTO cccc
  1094. truckspecs:
  1095. DATA 1500,35,5,99
  1096. DATA 1350,30,5,99
  1097. DATA 1300,25,5,80
  1098. DATA 950,20,5,80
  1099. DATA 850,15,4,60
  1100. DATA 550,8,5,60
  1101. info2:
  1102. WINDOW OUTPUT 4
  1103. IF win4%<>14 THEN fontset "t.sales",8
  1104. win4%=14
  1105. PALETTE 0,.39,.39,.39
  1106. PALETTE 1,.39,.39,.39
  1107. PALETTE 2,0,0,0
  1108. PALETTE 3,1,1,1
  1109. COLOR 0,0:CLS
  1110. LINE (15,20)-(295,130),2,b
  1111. COLOR 3,0 :LOCATE 4,1  
  1112. GOSUB t.info       
  1113. WINDOW 4
  1114. GOSUB checkmouse:GOSUB mousepointer
  1115. GOTO gb             
  1116. exxit:
  1117. IF tchoice% <>0 THEN GOSUB rblock
  1118. WINDOW 2:GOSUB checkmouse:GOTO salescreen
  1119. truckdata:
  1120. DATA 200000,145000,40,75000,45000,50,18000,8000,80
  1121. truprice:
  1122. RESTORE truckdata
  1123. FOR t%=1 TO mouseclick%
  1124. READ truck1&,truck2&,deposit%
  1125. NEXT
  1126. truck&(0)=truck1&+((truck1&/100)*diff%)
  1127. truck&(1)=truck2&+((truck2&/100)*diff%)
  1128. RETURN
  1129. getrand:
  1130. OPEN "R",#1,"ram:TRUCKIN.ON.",196
  1131. FIELD #1,28 AS a$,28 AS b$,28 AS c$,28 AS d$,28 AS e$,28 AS f$,28 AS g$
  1132. GET #1,rfile%
  1133. PRINT TAB(6) a$:PRINT 
  1134. PRINT TAB(6) b$:PRINT 
  1135. PRINT TAB(6) c$:PRINT 
  1136. PRINT TAB(6) d$:PRINT 
  1137. PRINT TAB(6) e$:PRINT 
  1138. PRINT TAB(6) f$:PRINT 
  1139. PRINT TAB(6) g$:PRINT 
  1140. CLOSE#1
  1141. RETURN
  1142. comment:
  1143. OPEN "R",#1,"ram:1MEGABYTE",48
  1144. FIELD #1,24 AS a$,24 AS b$
  1145. GET #1,tchoice%+ttype%
  1146. PRINT TAB(8) a$
  1147. PRINT TAB(8) b$
  1148. CLOSE #1:RETURN
  1149. t.info:
  1150. OPEN "R",#1,"ram:OF.MEMORY",275
  1151. FIELD #1,33 AS a$,33 AS b$,33 AS c$,33 AS d$,33 AS e$,22 AS f$,22 AS g$,22 AS h$,22 AS i$,22 AS j$
  1152. GET #1,tchoice%+ttype%
  1153. PRINT TAB(4)a$
  1154. PRINT 
  1155. PRINT TAB(4)b$
  1156. PRINT TAB(4)c$
  1157. PRINT TAB(4)d$
  1158. PRINT 
  1159. PRINT TAB(4)e$
  1160. PRINT 
  1161. PRINT TAB(4)f$
  1162. PRINT TAB(4)g$
  1163. PRINT TAB(4)h$
  1164. PRINT TAB(4)i$
  1165. PRINT TAB(4)j$
  1166. CLOSE #1:RETURN
  1167. selltrucks:
  1168. WINDOW OUTPUT 4
  1169. IF win4%<>15 THEN fontset "selltruck",13
  1170. PALETTE 0, 0,0,0
  1171. PALETTE 1, 1,0,0
  1172. PALETTE 2, 0,0,1
  1173. PALETTE 3, .5,.5,.5
  1174. PALETTE 4, 1,1,0
  1175. PALETTE 5, 0,1,1
  1176. PALETTE 6, 1,0,1
  1177. PALETTE 7, 1,1,1
  1178. COLOR 0,0:CLS:win4%=15
  1179. IF diff%<-5 THEN a$="(VERY POOR)":GOTO sss
  1180. IF diff%<10 THEN a$="(ONLY FAIR)":GOTO sss
  1181. IF diff%>9 THEN a$="(DESPERATE)"      
  1182. sss:
  1183. COLOR 7,2:PRINT "( TRUCK DEMAND )";
  1184. COLOR 2,7:PRINT TAB(20)a$
  1185. COLOR 7,3:PRINT :PRINT "(TRUCK NAME)"TAB(16)"(M/GE)"TAB(25)"(VALUE)"
  1186. COLOR 2,4:LOCATE 15,3
  1187. PRINT "(SELL RIG)"TAB(19)"(KEEP RIG)";
  1188. COLOR 5-player%,player%+1
  1189. LOCATE 5,1:x%=0:randy%=0
  1190. FOR t%=0 TO 4
  1191. y%=LEN(tname$(player%,t%))
  1192. IF y%>0 THEN GOSUB nprint ELSE t%=4
  1193. x%=x%+1:y%=0
  1194. NEXT:tchoice%=52+(13*x%)
  1195. WINDOW 4
  1196. x1%=0:x2%=139:y1%=53:ystep%=13:gap%=1:no.but%=x%
  1197. ctruck:
  1198. GOSUB exscreen
  1199. IF y%>tchoice% AND y%<182 THEN ctruck
  1200. IF y%>182 THEN kbutt
  1201. GOSUB check.b.screen
  1202. IF mouseclick%<=no.but% THEN chooserig
  1203. GOTO ctruck
  1204. chooserig:
  1205. IF randy%=mouseclick% THEN
  1206. st%=39+(13*randy%):GOSUB reverseblock:randy%=0:GOTO ctruck
  1207. END IF
  1208. IF randy%<>0 THEN st%=39+(13*randy%):GOSUB reverseblock
  1209. st%=39+(13*mouseclick%):GOSUB reverseblock
  1210. randy%=mouseclick%
  1211. GOTO ctruck
  1212. outy:
  1213. WINDOW 2:GOTO salescreen       
  1214. nprint:
  1215. PRINT "("tname$(player%,t%)STRING$(12-y%," ")")";
  1216. a$=STR$(morg&(player%,t%))
  1217. y%=LEN(a$):a$=MID$(a$,2,y%-1)
  1218. PRINT TAB(15)"("a$")";
  1219. GOSUB calprice
  1220. a$=STR$(truck&)
  1221. y%=LEN(a$):a$=MID$(a$,2,y%-1)
  1222. PRINT TAB(24)"("a$")"
  1223. RETURN
  1224. calprice:
  1225. y%=truck%(player%,t%,10)
  1226. truck&(1)=((trprice%(y%)*1000)+((trprice%(y%)*10)*diff%))
  1227. truck&(1)=truck&(1)-(truck&(1)/15)
  1228. truck&(0)=truck&(1)/100
  1229. truck&=truck&(0)*truck%(player%,t%,16)
  1230. RETURN
  1231. kbutt:
  1232. IF x%>179 AND x%<281 THEN outy
  1233. IF x%>20 AND x%<193 THEN struck
  1234. GOTO ctruck
  1235. struck:
  1236. IF randy%=0 THEN BEEP:GOTO ctruck
  1237. t%=mouseclick%-1
  1238. GOSUB calprice
  1239. truck&=truck&-morg&(player%,t%)
  1240. IF morg&(player%,t%)>0 THEN morg&(player%,5)=morg&(player%,5)-1
  1241. LOCATE 13,1:COLOR 0,4
  1242. PRINT "( YOU COLLECT ) $";
  1243. WRITE truck&
  1244. WINDOW OUTPUT 3:
  1245. randy%=truck%(player%,tcount%(player%)-1,12)
  1246. money&(player%)=money&(player%)+truck&
  1247. FOR x%=t% TO tcount%(player%)-1
  1248. morg&(player%,x%)=morg&(player%,x%+1)
  1249. tname$(player%,x%)=tname$(player%,x%+1)
  1250. FOR y%=0 TO 20
  1251. truck%(player%,x%,y%)=truck%(player%,x%+1,y%)
  1252. NEXT y%
  1253. FOR y%=0 TO 5
  1254. tmove!(player%,x%,y%)=tmove!(player%,x%+1,y%)
  1255. NEXT y%
  1256. NEXT x%
  1257. tcount%(player%)=tcount%(player%)-1
  1258. tract%(player%,0)=12
  1259. y%=0:IF player%=1 THEN y%=5
  1260. FOR x%=1 TO 5:truck%(player%,x%-1,12)=x%+y%:NEXT
  1261. IF tcount%(player%)>0 THEN
  1262. FOR x%=t% TO tcount%(player%)-1
  1263. OBJECT.X truck%(player%,x%,12),tmove!(player%,x%,2)
  1264. OBJECT.Y truck%(player%,x%,12),tmove!(player%,x%,3)
  1265. NEXT
  1266. END IF
  1267. OBJECT.CLOSE randy%
  1268. GOSUB exscreen
  1269. GOTO outy
  1270. gameend:
  1271. MOUSE OFF:TIMER OFF
  1272. OBJECT.OFF
  1273. GET (142,72)-(280,119),getput%
  1274. LINE (142,72)-(280,119),10,b
  1275. LINE (143,73)-(279,118),24,bf
  1276. COLOR 5,24:LOCATE 11,20
  1277. PRINT "TIME'S EXPIRED"
  1278. PRINT TAB(20)"MY FRIENDS." 
  1279. PRINT TAB(20)"CHECK BANK FOR"  
  1280. PRINT TAB(20)"THE VICTOR."
  1281. IF gostop%=0 THEN GOSUB fillstart
  1282. GOSUB st.stop
  1283. GOSUB checkmouse
  1284. GOSUB mousepointer
  1285. PUT (142,72),getput%,PSET
  1286. OBJECT.ON
  1287. RETURN
  1288. paymorg:
  1289. MOUSE OFF:TIMER OFF
  1290. GOSUB msquare
  1291. WINDOW OUTPUT 4
  1292. IF win4%>6 THEN fontset "topaz",8
  1293. pic$="morg":GOSUB threscreen
  1294. WINDOW OUTPUT 3
  1295. PUT (142,72),getput%,PSET
  1296. WINDOW 4:COLOR 5-t%,1
  1297. xyptab 114,69:PRINT Co.Name$(t%)
  1298. y%=102:truck&=0
  1299. FOR randy%=0 TO tcount%(t%)-1
  1300. xyptab 38,y%:PRINT tname$(t%,randy%)
  1301. xyptab 144,y%:PRINT morg&(t%,randy%)
  1302. truck&=truck&+(morg&(t%,randy%)/100)*8
  1303. xyptab 222,y%:PRINT INT((morg&(t%,randy%)/100)*8)
  1304. y%=y%+14
  1305. NEXT
  1306. xyptab 234,172:WRITE truck&
  1307. money&(t%)=money&(t%)-truck&
  1308. win4%=5
  1309. GOSUB exscreen
  1310. WINDOW(3):GOSUB sc1:OBJECT.ON
  1311. IF gostop%=0 THEN TIMER ON:MOUSE ON
  1312. COLOR 10,3
  1313. RETURN
  1314. msquare:
  1315. OBJECT.OFF
  1316. GET (142,72)-(280,119),getput%
  1317. LINE (142,72)-(280,119),10,b
  1318. LINE (143,73)-(279,118),24+t%,bf
  1319. COLOR 26,24+t%:LOCATE 11,20
  1320. PRINT "Co. "Co.Name$(t%)
  1321. PRINT  
  1322. PRINT TAB(20)"WEEKLY MORTGAGE"  
  1323. PRINT TAB(20)"IS NOW DUE!."
  1324. RETURN
  1325. msquare1:
  1326. OBJECT.OFF
  1327. GET (142,72)-(280,119),getput%
  1328. LINE (142,72)-(280,119),10,b
  1329. LINE (143,73)-(279,118),24+t%,bf
  1330. COLOR 26,24+t%:LOCATE 11,20
  1331. PRINT "Co. "Co.Name$(t%)
  1332. PRINT  
  1333. PRINT TAB(20)"WEEKLY WAGE BILL"  
  1334. PRINT TAB(20)"IS NOW DUE!."
  1335. RETURN
  1336. sharetime:
  1337. GOSUB noen
  1338. GET (85,72)-(223,119),getput%
  1339. LINE (85,72)-(223,119),2,b
  1340. LINE (86,73)-(222,118),5,bf
  1341. COLOR 0,5:LOCATE 11,13
  1342. PRINT "12 Hours. must"
  1343. PRINT TAB(13)" ELAPSE before"
  1344. PRINT TAB(13)"entry to market"
  1345. PRINT TAB(13)"is granted!. OK"
  1346. GOTO noshareboy
  1347. noshareboy:
  1348. GOSUB exscreen
  1349. PUT (85,72),getput%,PSET
  1350. GOTO bankscreen
  1351. shareclosed:
  1352. GOSUB noen
  1353. GET (85,72)-(223,119),getput%
  1354. LINE (85,72)-(223,119),3,b
  1355. LINE (86,73)-(222,118),0,bf
  1356. COLOR 31,0:LOCATE 11,13
  1357. PRINT "The Stockmarket"
  1358. PRINT TAB(13)"opens at 7 AM. "
  1359. PRINT TAB(13)"and closes 5 PM"
  1360. PRINT TAB(13)"See you then OK"
  1361. GOTO noshareboy
  1362. sunshare:
  1363. GOSUB noen
  1364. GET (85,72)-(223,119),getput%
  1365. LINE (85,72)-(223,119),0,b
  1366. LINE (86,73)-(222,118),16,bf
  1367. COLOR 3,16:LOCATE 11,13
  1368. PRINT "The Stockmarket"
  1369. PRINT TAB(13)"don't open on"
  1370. PRINT TAB(13)"the SABBATH."
  1371. PRINT TAB(13)"Come back later"
  1372. GOTO noshareboy
  1373. noyard:
  1374. GOSUB exscreen
  1375. PUT (85,72),getput%,PSET
  1376. GOTO salescreen
  1377. yardclosed:
  1378. GOSUB setfonty
  1379. LINE (86,73)-(222,118),21,bf
  1380. COLOR 31,21:LOCATE 11,13
  1381. PRINT "Our operating"
  1382. PRINT TAB(13)"hours are from"
  1383. PRINT TAB(13)"7 AM to 9 PM. "
  1384. PRINT TAB(13)"To bad ah!."
  1385. GOTO noyard
  1386. ttime:
  1387. GOSUB setfonty
  1388. LINE (86,73)-(222,118),1,bf
  1389. COLOR 19,1:LOCATE 11,13
  1390. PRINT "We'll only serve"
  1391. PRINT TAB(13)"one customer at"
  1392. PRINT TAB(13)"a time. You've"
  1393. PRINT TAB(13)"been in today."
  1394. GOTO noyard
  1395. sunday:
  1396. GOSUB setfonty
  1397. LINE (86,73)-(222,118),16,bf
  1398. COLOR 6,16:LOCATE 11,13
  1399. PRINT "This yard isn't"
  1400. PRINT TAB(13)"allowed to open"
  1401. PRINT TAB(13)"on SUNDAY come"
  1402. PRINT TAB(13)"back tomorrow."
  1403. GOTO noyard
  1404. setfonty:
  1405. IF win2%<>3 THEN fontset "topaz",8
  1406. win2%=3:GET (85,72)-(223,119),getput%
  1407. LINE (85,72)-(223,119),0,b
  1408. RETURN
  1409. win4ok:
  1410. WINDOW OUTPUT 6:PUT (59,140),getput%,PSET
  1411. WINDOW 4:RETURN
  1412. noen:
  1413. PUT (59,140),getput%,PSET:RETURN
  1414. p.mortgage:
  1415. WINDOW OUTPUT 4
  1416. IF win4%<15 THEN fontset "selltruck",13
  1417. PALETTE 0, 0,0,0
  1418. PALETTE 1, 1,0,0
  1419. PALETTE 2, 0,0,1
  1420. PALETTE 3, .5,.5,.5
  1421. PALETTE 4, 1,1,0
  1422. PALETTE 5, 0,1,1
  1423. PALETTE 6, 1,0,1
  1424. PALETTE 7, 1,1,1
  1425. COLOR 0,0:CLS:win4%=16
  1426. COLOR 1+player%,7:LOCATE 2,2       
  1427. PRINT "(AUST.BANK PAY MORTGAGE DEPT)"
  1428. COLOR 7,1+player%
  1429. PRINT :PRINT "("Co.Name$(player%)")"TAB(13)"(CAPITAL)$        )";
  1430. LOCATE 4,23:WRITE money&(player%)
  1431. COLOR 5-player%,player%+1
  1432. LOCATE 7,1:x%=0:randy%=0
  1433. FOR t%=0 TO 4
  1434. y%=LEN(tname$(player%,t%))
  1435. IF y%>0 THEN 
  1436. PRINT "("tname$(player%,t%)STRING$(12-y%," ")")"
  1437. x%=x%+1
  1438. ELSE 
  1439. t%=4
  1440. END IF
  1441. NEXT
  1442. LOCATE 14,2:COLOR 2,5
  1443. PRINT "( SEE YA LATER )"
  1444. LOCATE 6,17:COLOR 7,player%+1
  1445. PRINT "(AMOUNT OWING)"
  1446. PRINT TAB(17)"(ON THIS RIG )"
  1447. PRINT TAB(17)"(IS.$        )"
  1448. PRINT TAB(17)"(I'LL PAYOFF )"
  1449. COLOR 5,2
  1450. PRINT TAB(17)"(100%#50%#25%)"
  1451. GOSUB win4ok
  1452. x1%=0:x2%=139:y1%=79:ystep%=13:gap%=1:no.but%=x%
  1453. ptruck:
  1454. GOSUB exscreen
  1455. IF y%>169 AND y%<185 AND x%>11 AND x%<170 THEN WINDOW 6:GOTO bankscreen
  1456. IF x%>162 THEN ppmm
  1457. GOSUB check.b.screen
  1458. IF mouseclick%<=no.but% THEN chooserigg
  1459. GOTO ptruck
  1460. chooserigg:
  1461. IF randy%=mouseclick% THEN
  1462. st%=65+(13*randy%):GOSUB reverseblock:randy%=0
  1463. LOCATE 8,22:PRINT "        "
  1464. GOTO ptruck
  1465. END IF
  1466. IF randy%<>0 THEN st%=65+(13*randy%):GOSUB reverseblock
  1467. st%=65+(13*mouseclick%):GOSUB reverseblock
  1468. randy%=mouseclick%
  1469. chrig:
  1470. COLOR 7,player%+1
  1471. LOCATE 8,22:PRINT "        "
  1472. LOCATE 8,22:WRITE morg&(player%,randy%-1)
  1473. GOTO ptruck
  1474. ppmm:
  1475. IF y% <118 OR y%>130 OR x%>301 THEN ptruck
  1476. IF x%<221 THEN e%=100: GOTO payee
  1477. IF x%<261 THEN e%=50:GOTO payee
  1478. e%=25
  1479. payee:
  1480. truck#=morg&(player%,randy%-1)/100
  1481. morg&(player%,randy%-1)=morg&(player%,randy%-1)-truck#*e%
  1482. money&(player%)=money&(player%)-((truck#*e%)+(2*truck#))
  1483. COLOR 7,1+player%
  1484. LOCATE 4,23:PRINT "        "
  1485. LOCATE 4,23:WRITE money&(player%)
  1486. IF morg&(player%,randy%-1)=0 THEN morg&(player%,5)=morg&(player%,5)-1
  1487. GOTO chrig
  1488. sprices:
  1489. RESTORE share.values
  1490. FOR t%=1 TO 5
  1491. READ value%
  1492. shareprice%(t%)=value%+INT(value%/200)*(diff%*INT(RND*3+1))
  1493. NEXT
  1494. RETURN
  1495. share.values:
  1496. DATA 250,450,650,850,1000
  1497. bbuyshares:
  1498. IF day%=6 THEN sunshare
  1499. IF tc%<8 OR tc%>18 THEN shareclosed
  1500. IF shares%(player%,0)>0 THEN sharetime
  1501. WINDOW OUTPUT 4
  1502. IF win4%<20 THEN fontset "truckdata",13
  1503. GOSUB shcolor
  1504. COLOR 0,1
  1505. win4%=21:CLS
  1506. LOCATE 1,1:COLOR 6,7
  1507. PRINT "(LEWIES ST/BROKERS: PURCHASING)"
  1508. xyptab 1,23:COLOR 5,0
  1509. PRINT "stocks`sold`in`batches`of`(100)"
  1510. xyptab 91,37
  1511. PRINT "i`will`spend`$100,000)" 
  1512. PRINT "brokerage`fee`(1%)
  1513. LOCATE 6,4:COLOR 5,2
  1514. PRINT "shares"TAB(17)"outlay"TAB(25)"batchs"
  1515. COLOR 3,4
  1516. FOR t%=0 TO 4
  1517. PRINT sharename$(t%)TAB(16)"$      )"TAB(25)"*#   #+"
  1518. NEXT
  1519. PRINT :COLOR 5,6 
  1520. PRINT "(";Co.Name$(player%);" CAPITAL)";
  1521. COLOR 3,4:PRINT TAB(21)"$         )"
  1522. PRINT:COLOR 4,7 
  1523. PRINT "(EXIT)"TAB(9)"(BUY)"TAB(16)"(CANCEL)";
  1524. screenon:
  1525. COLOR 3,4
  1526. GOSUB putshareprices:GOSUB mmm
  1527. GOSUB win4ok
  1528. nameshare%=0
  1529. waitt:
  1530. t%=0:GOSUB pointer
  1531. ON t% GOTO bottom,updown,sharetitle,batch100,b100000
  1532. GOTO waitt
  1533. buyshares:
  1534. IF nameshare%<1 THEN waitt
  1535. truck&=truck&+INT(truck&/100)
  1536. IF truck&>money&(player%) THEN nogoshares
  1537. money&(player%)=money&(player%)-truck&
  1538. shares%(player%,nameshare%)=shares%(player%,nameshare%)+batchs%
  1539. shares%(player%,0)=12
  1540. GOSUB mmm
  1541. GOTO cancel
  1542. nogoshares:
  1543. LOCATE 3,1:COLOR 7,6
  1544. PRINT "(YOU OVER ESTIMATED YOUR FUNDS)"
  1545. PRINT "(PENALTY FOR MY EXPENSES = 10%)"
  1546. PRINT "(        CLICK TO EXIT        )"
  1547. money&(player%)=money&(player%)-INT(truck&/10)
  1548. GOSUB exscreen
  1549. GOTO r.to.bank
  1550. up.data:
  1551. DATA 241,253,79,13,3,5
  1552. down.data:
  1553. DATA 296,308,79,13,3,5
  1554. updown:
  1555. IF x%<265 THEN 
  1556. RESTORE up.data :add%=1
  1557. ELSEIF x%<312 AND x%>284 THEN
  1558. RESTORE down.data :add%=-1
  1559. ELSE
  1560. GOTO waitt
  1561. END IF
  1562. READ x1%,x2%,y1%,ystep%,gap%,no.but%
  1563. GOSUB check.b.screen
  1564. IF nameshare% <>mouseclick% THEN waitt
  1565. GOSUB reverseblock
  1566. batchs%=batchs%+add%
  1567. IF batchs%=101 THEN
  1568. batchs%=100
  1569. ELSEIF batchs%=0 THEN
  1570. batchs%=1
  1571. ELSE
  1572. truck&=truck&+shareprice%(nameshare%)*add%
  1573. END IF
  1574. GOSUB reverseblock
  1575. u.d.screen:
  1576. LOCATE 6+mouseclick%,17: PRINT "      "
  1577. LOCATE 6+mouseclick%,17:WRITE truck&
  1578. LOCATE 6+mouseclick%,27:PRINT "   "
  1579. LOCATE 6+mouseclick%,27:WRITE batchs%
  1580. GOTO waitt
  1581. batch100:
  1582. IF nameshare%<1 THEN waitt
  1583. batchs%=100:truck&=shareprice%(nameshare%)*100
  1584. GOTO u.d.screen
  1585. b100000:
  1586. IF nameshare%<1 THEN waitt
  1587. batchs%=INT(100000&/shareprice%(nameshare%))
  1588. truck&=shareprice%(nameshare%)*batchs%
  1589. GOTO u.d.screen
  1590. cancel:
  1591. IF nameshare%<1 THEN waitt
  1592. truck&=shareprice%(nameshare%):batchs%=1
  1593. mouseclick%=nameshare%:nameshare%=0
  1594. x1%=1:x2%=128:y1%=79:ystep%=13:gap%=3:no.but%=5
  1595. st%=blocky%
  1596. GOSUB reverseblock
  1597. GOSUB checkmouse
  1598. GOTO u.d.screen
  1599. shtitle:
  1600. DATA 1,128,79,13,3,5
  1601. sharetitle:
  1602. x1%=1:x2%=128:y1%=79:ystep%=13:gap%=3:no.but%=5
  1603. GOSUB check.b.screen
  1604. IF mouseclick%<6 THEN selectshare  
  1605. GOTO waitt
  1606. selectshare:
  1607. IF nameshare%<>0 AND nameshare%<>mouseclick% THEN
  1608. mouseclick%=nameshare%:GOTO waitt
  1609. END IF
  1610. IF nameshare%=mouseclick% THEN GOTO cancel
  1611. GOSUB reverseblock:blocky%=st%:GOSUB checkmouse
  1612. nameshare%=mouseclick%:truck&=shareprice%(nameshare%)
  1613. GOTO waitt
  1614. bottom:
  1615. IF x%<62 THEN nameshare%=0:GOTO r.to.bank
  1616. IF x%>81 AND x%<132 THEN buyshares
  1617. IF x%>151 AND x%<232 THEN cancel
  1618. GOSUB checkmouse
  1619. GOTO waitt
  1620. mmm:
  1621. LOCATE 13,22:PRINT "         )"
  1622. LOCATE 13,22:WRITE money&(player%)
  1623. RETURN
  1624. r.to.bank:
  1625. WINDOW (6)
  1626. GOTO bankscreen
  1627. putshareprices:
  1628. batchs%=1
  1629. FOR t%=1 TO 5
  1630. LOCATE 6+t%,17
  1631. WRITE shareprice%(t%)
  1632. LOCATE 6+t%,27:WRITE batchs%
  1633. NEXT:RETURN
  1634. pointer:
  1635. GOSUB mousepointer
  1636. IF y%>15 AND y%<27 AND x%>260 THEN t%=4:RETURN
  1637. IF y%>29 AND y%<41 AND x%>223 THEN t%=5:RETURN
  1638. IF y%>182 THEN t%=1:RETURN  
  1639. IF y%<79 OR y>143 THEN t%=0:RETURN 
  1640. IF x%>241 THEN t%=2:RETURN  
  1641. IF x%<132 THEN t%=3:RETURN
  1642. RETURN
  1643. ssellshares:
  1644. IF day%=6 THEN sunshare
  1645. IF tc%<8 OR tc%>18 THEN shareclosed
  1646. IF shares%(player%,0)>0 THEN sharetime
  1647. WINDOW OUTPUT 4
  1648. IF win4%<20 THEN fontset "truckdata",13
  1649. COLOR 0,1:win4%=20:CLS
  1650. GOSUB shcolor
  1651. PALETTE 0,0,0,0
  1652. PALETTE 1,0,0,0
  1653. LOCATE 1,1:COLOR 6,7
  1654. PRINT "(LEWIES ST/BROKERS:    SELLING)"
  1655. PRINT :COLOR 5,0
  1656. PRINT "stocks`purchased`as`a`package" 
  1657. PRINT TAB(14)"brokerage`fee`(1%)
  1658. PRINT :COLOR 5,2
  1659. PRINT TAB(4)"shares"TAB(17)"value"TAB(25)"batchs"
  1660. setup:
  1661. LOCATE 7,1:COLOR 3,4 :sh%=0:nameshare%=0
  1662. FOR t%=1 TO 5
  1663. IF shares%(player%,t%)<>0 THEN GOSUB insert
  1664. NEXT
  1665. PRINT :COLOR 5,6:LOCATE 13,1
  1666. PRINT "(";Co.Name$(player%);" BANK)";
  1667. COLOR 3,4:PRINT TAB(21)"$         )"
  1668. GOSUB mmm
  1669. PRINT:COLOR 4,7 
  1670. PRINT "(EXIT)"TAB(9)"(SELL)"TAB(17)"(CANCEL)";
  1671. GOSUB win4ok
  1672. IF sh%=0 THEN GOSUB noshares
  1673. waittt:
  1674. t%=0 :GOSUB checkmouse
  1675. GOSUB pointer2
  1676. ON t% GOTO botto,sharename
  1677. GOTO waittt
  1678. sharename:
  1679. RESTORE shtitle
  1680. READ x1%,x2%,y1%,ystep%,gap%,no.but%
  1681. no.but%=sh%
  1682. GOSUB check.b.screen
  1683. IF mouseclick%<sh%+1 THEN hishare  
  1684. GOTO waittt
  1685. hishare:
  1686. IF nameshare%<>0 AND nameshare%<>mouseclick% THEN
  1687. mouseclick%=nameshare%:GOTO waittt
  1688. END IF
  1689. IF nameshare%=no%(mouseclick%) THEN cancell
  1690. GOSUB reverseblock:blocky%=st%:GOSUB checkmouse
  1691. nameshare%=no%(mouseclick%)
  1692. GOTO waittt
  1693. botto:
  1694. IF x%<62 THEN eee
  1695. IF x%>81 AND x%<141 THEN sellshares
  1696. IF x%>160 AND x%<241 THEN cancell
  1697. GOTO waittt
  1698. sellshares:
  1699. truck&=shareprice%(nameshare%)*shares%(player%,nameshare%)
  1700. IF truck& >10 THEN
  1701. truck&=truck&-INT(truck&/100)
  1702. money&(player%)=money&(player%)+truck&
  1703. shares%(player%,nameshare%)=0
  1704. shares%(player%,0)=12
  1705. END IF
  1706. AREA(0,78):AREA(310,78):AREA(310,145):AREA(0,145)
  1707. COLOR 0,0: AREAFILL 0
  1708. GOTO setup
  1709. cancell:
  1710. IF nameshare%<1 THEN waittt
  1711. GOSUB reverseblock:nameshare%=0
  1712. GOTO waittt
  1713. eee:
  1714. GOTO r.to.bank
  1715. noshares:
  1716. LOCATE 9,3:COLOR 7,6
  1717. PRINT "(YOU HAVE NO VALID SHARES)"
  1718. RETURN
  1719. insert:
  1720. LOCATE 7+sh%,1
  1721. PRINT sharename$(t%-1)TAB(16)"$      )"TAB(25)"(    )"
  1722. LOCATE 7+sh%,1
  1723. PRINT TAB(17);:WRITE shareprice%(t%)
  1724. LOCATE 7+sh%,1
  1725. PRINT TAB(26);:WRITE shares%(player%,t%)
  1726. sh%=sh%+1:no%(sh%)=t%
  1727. RETURN
  1728. pointer2:
  1729. GOSUB mousepointer
  1730. IF y%>182 THEN t%=1:RETURN  
  1731. IF y%<79 OR y%>143 THEN t%=0:RETURN 
  1732. IF x%<132 THEN t%=2:RETURN 
  1733. RETURN
  1734. GOTO bankscreen
  1735. menuset:
  1736. MENU 1,0,1," TRUCKIN ON OPTIONS "
  1737. MENU 1,1,gostop%,"   RESTART GAME     "
  1738. MENU 1,2,gostop%,"   SAVE THIS GAME   "
  1739. MENU 1,3,gostop%,"  LOAD A SAVED GAME "
  1740. MENU 1,4,gostop%," DELETE a SAVED game"
  1741. MENU 1,5,1,     "  RETURN TO A/BASIC "
  1742. MENU 2,0,1,""
  1743. MENU 3,0,1,""
  1744. MENU 4,0,1,""
  1745. RETURN
  1746. menumaster:
  1747. ON MENU(1) GOSUB rstart,savve,looad,delet,finish
  1748. PUT (0,0),topline%,PSET
  1749. RETURN
  1750. rstart:
  1751. ERASE credit&,tcount%,tract%,tname$,morg&,shares%,truck%,tmove!
  1752. DIM credit&(1),tcount%(1),tract%(1,1),tname$(1,5)
  1753. DIM morg&(1,5),shares%(1,5),truck%(1,5,20),tmove!(1,5,5)
  1754. money&(1)=10000&:money&(0)=10000&:finishy%=220
  1755. day%=0:tc%=0:am%=8:week%=1:shval%=1:startx%=300:starty%=220
  1756. WINDOW OUTPUT 3:OBJECT.CLOSE
  1757. GOTO newstart
  1758. delet:
  1759. b$="SCRUB"
  1760. GOSUB setdirectory
  1761. IF w$="" THEN WINDOW 3:RETURN
  1762. IF RIGHT$(w$,1)<>"*" THEN 
  1763. LOCATE 10,24:PRINT "FILE NOT FOUND"
  1764. BEEP:GOSUB mousepointer
  1765. GOTO delet
  1766. END IF
  1767. LOCATE 10,24:PRINT "DELETING FILE"
  1768. KILL "main:games/"+w$
  1769. WINDOW 3
  1770. RETURN
  1771. savve:
  1772. b$="SAVE"
  1773. GOSUB setdirectory
  1774. IF w$="" THEN WINDOW 3:RETURN
  1775. IF count%>13 THEN
  1776. LOCATE 24,1:PRINT "I CAN'T FIT ANY MORE GAMES ON THE DISC! sorry?";
  1777. GOSUB checkmouse:GOSUB mousepointer
  1778. WINDOW 3:RETURN
  1779. END IF 
  1780. IF RIGHT$(w$,1)<>"*" THEN w$=w$+"*"
  1781. LOCATE 10,24:PRINT "SAVING FILE"
  1782. a$="main:games/"+w$
  1783. OPEN a$ FOR OUTPUT AS #1
  1784. FOR x%=0 TO 1
  1785. PRINT #1,credit&(x%):PRINT #1,homeport%(x%):PRINT #1,Co.Name$(x%)
  1786. PRINT #1,tcount%(x%):PRINT #1,money&(x%):PRINT #1,tract%(x%,x%)
  1787. FOR y%=0 TO 5
  1788. PRINT #1,tname$(x%,y%):PRINT #1,morg&(x%,y%):PRINT #1,shares%(x%,y%)
  1789. FOR t%=0 TO 20
  1790. PRINT #1,truck%(x%,y%,t%)
  1791. NEXT t%
  1792. FOR t%=0 TO 5
  1793. PRINT#1,tmove!(x%,y%,t%)
  1794. NEXT t%,y%,x%
  1795. PRINT #1,tc%-1:PRINT #1,am%:PRINT #1,week%:PRINT #1,day%
  1796. PRINT #1,finishy%:PRINT #1,startx%:PRINT #1,starty%:PRINT #1,duration%
  1797. CLOSE #1
  1798. WINDOW 3
  1799. RETURN
  1800. setime:
  1801. COLOR 10,3
  1802. xyptab 5+am%,197:WRITE tc%
  1803. xyptab 21,197:PRINT ":00"
  1804. xyptab 64,197:PRINT day$(day%)
  1805. xyptab 186,197:WRITE week%
  1806. RETURN
  1807. newstart:
  1808. WINDOW OUTPUT 3
  1809. pic$="main":cblocks%=4:colours&=32:gamestop%=1
  1810. bytes&=10240&:GOSUB loadscreen
  1811. LINE (225,220)-(300,finishy%),5
  1812. GOSUB setime
  1813. GOSUB st.stop
  1814. WINDOW 3:OBJECT.ON
  1815. RETURN
  1816. find:
  1817. GOSUB message
  1818. pic$="find":GOSUB threscreen
  1819. IF win4%>6 THEN fontset "topaz",8
  1820. win4%=6:x%=214:y%=40:COLOR 2,4+player%
  1821. FOR t%=0 TO tcount%(player%)-1
  1822. l%=LEN(tname$(player%,t%))
  1823. x1%=12-l%
  1824. xyptab x%,y%:PRINT tname$(player%,t%)SPACE$(x1%)
  1825. y%=y%+10:NEXT
  1826. WINDOW OUTPUT 6
  1827. PUT (59,140),getput%,PSET
  1828. WINDOW 4
  1829. GET (4,14)-(18,29),getput%
  1830. e%=t%:x1%=0
  1831. findloop:
  1832. GOSUB checkmouse
  1833. GOSUB mousepointer
  1834. IF x%<214 THEN findloop
  1835. IF y%<27  THEN backtooffice
  1836. IF y%<34 OR y%>33+10*e% THEN findloop
  1837. posinfo:
  1838. ON x1% GOTO pinfo
  1839. COLOR 2,0:t%=(y%-34)\10
  1840. GOSUB fillfind
  1841. xyptab 216,125:PRINT MID$(city$(truck%(player%,t%,6)),2,14)
  1842. xyptab 216,144:PRINT MID$(cargo$(truck%(player%,t%,9)),2,14)
  1843. xyptab 216,163:PRINT "$"truck%(player%,t%,8)*10
  1844. xyptab 216,182:PRINT truck%(player%,t%,5)+truck%(player%,t%,13)"Hrs."
  1845. PUT (tmove!(player%,t%,2)-7,tmove!(player%,t%,3)-7),getput%
  1846. x1%=1: GOTO findloop
  1847. pinfo:
  1848. GOSUB fillfind
  1849. xyptab 216,125:PRINT "              "
  1850. xyptab 216,144:PRINT "              "
  1851. xyptab 216,163:PRINT "              "
  1852. xyptab 216,182:PRINT "         "
  1853. PUT (tmove!(player%,t%,2)-7,tmove!(player%,t%,3)-7),getput%
  1854. x1%=0:GOTO findloop
  1855. fillfind:
  1856. AREA (213,33+t%*10):AREA (309,33+t%*10)
  1857. AREA (309,42+t%*10):AREA (213,42+t%*10)
  1858. AREAFILL 1
  1859. RETURN
  1860. shcolor:
  1861. PALETTE 0,.65,.42,.4
  1862. PALETTE 1,.65,.42,.4
  1863. PALETTE 2,.99,0,0
  1864. PALETTE 3,0,.86,.86
  1865. PALETTE 4,0,0,.66
  1866. PALETTE 5,1,1,1
  1867. PALETTE 6,.54,.27,.26
  1868. PALETTE 7,1,1,0
  1869. RETURN
  1870. backtooffice:
  1871. IF win2%<>1 THEN:WINDOW 6:WINDOW OUTPUT 2:fontset "topaz",8
  1872. WINDOW 6:GOSUB checkmouse:GOTO officescreen
  1873. speeding:
  1874. GOSUB message
  1875. WINDOW OUTPUT 2
  1876. fontset "truckdata",13
  1877. GOSUB shcolor
  1878. PALETTE 26,0,0,0
  1879. PALETTE 27,0,1,1
  1880. PALETTE 29,1,0,1
  1881. COLOR 0,0:CLS:COLOR 5,6:e%=0
  1882. PRINT "(BASE CALLING ALL MOBILE RIGS)
  1883. COLOR 4,0:PRINT "``report`your`current`speeds"
  1884. PRINT :COLOR 7,6:PRINT "(TRUCKS  NAME)"TAB(16)"(KPH)"TAB(23)"(HOURS)"
  1885. spset:
  1886. win2%=3:COLOR 5,2+player%*2:LOCATE 6,1
  1887. FOR t%=0 TO tcount%(player%)-1
  1888. l%=LEN(tname$(player%,t%))
  1889. x1%=12-l%
  1890. PRINT "("tname$(player%,t%)SPACE$(x1%)")";
  1891. IF truck%(player%,t%,5)<1 THEN truck%(player%,t%,15)=0
  1892. PRINT TAB(16)"("truck%(player%,t%,15)")";
  1893. PRINT TAB(23)"("truck%(player%,t%,5)")"
  1894. NEXT
  1895. LOCATE 12,1:COLOR 6,7
  1896. PRINT "(ADJUST SPEED)"TAB(20)"(10/4 OUT)"
  1897. ON e% GOTO hklk
  1898. WINDOW OUTPUT 6
  1899. PUT (59,140),getput%,PSET
  1900. hklk:
  1901. WINDOW 2:e%=0
  1902. speedaddloop:
  1903. GOSUB mousepointer
  1904. IF y%>143 THEN bspeed
  1905. IF x%>142 THEN speedaddloop
  1906. IF y%<66 OR y%>64+t%*13 THEN speedaddloop
  1907. e%=e%+1:IF e%=2 THEN e%=0
  1908. IF e%=1 THEN 
  1909. x1%=(y%-65)\13:GOSUB speedfill
  1910. ELSE
  1911. GOSUB speedfill
  1912. END IF
  1913. GOTO speedaddloop 
  1914. speedfill: 
  1915. AREA (0,65+x1%*13):AREA (139,65+x1%*13)
  1916. AREA (139,77+x1%*13):AREA (0,77+x1%*13)
  1917. AREAFILL 1:GOTO checkmouse
  1918. bspeed:
  1919. IF y%>156 THEN speedaddloop
  1920. IF x%<142 THEN adjustspeed
  1921. IF x%>192 AND x%<292 THEN backtooffice
  1922. adjustspeed:
  1923. IF e%<>1 THEN speedaddloop
  1924. IF truck%(player%,x1%,5)<1 THEN BEEP:GOTO speedaddloop
  1925. chsp%=1:q%=x1%:w%=player%
  1926. truck%(player%,q%,5)=truck%(player%,q%,5)*truck%(player%,q%,15)
  1927. LOCATE 14,1:COLOR 26,0:PRINT "base`calling`("tname$(w%,q%)")"
  1928. GOSUB xload
  1929. PUT (47,90),getput%
  1930. y1%=90+(80-t%)
  1931. PUT (47,y1%),getput%
  1932. GOSUB checkmouse
  1933. GOSUB loop3
  1934. WINDOW 2:x1%=q%:chsp%=0
  1935. COLOR 0,0:LOCATE 14,1:PRINT "                            "
  1936. GOTO spset
  1937. plas:
  1938. WINDOW OUTPUT 4
  1939. IF win4%<20 THEN fontset "truckdata",13
  1940. win4%=22
  1941. GOSUB shcolor
  1942. COLOR 0,0:CLS
  1943. COLOR 7,6:PRINT "(COMPANY ASSESSMENT DEPARTMENT)"
  1944. xyptab 7,25:COLOR 7,2:PRINT "(CLICK TO EXIT)"
  1945. LOCATE 15,1:COLOR 5,6
  1946. PRINT "(MONEY)"TAB(12)"(ASSETS)"TAB(24)"(TOTAL)";
  1947. LINE (1,45)-(1,178),6
  1948. LINE (2,178)-(300,178),6
  1949. x1%=7:c1%=2:add%=player%
  1950. FOR player%=0 TO 1
  1951. GOSUB plpr
  1952. LINE (x1%,177)-(x1%+25,177-x%),c1%,bf
  1953. LINE (x1%+115,177)-(x1%+140,177-y%),c1%,bf
  1954. LINE (x1%+229,177)-(x1%+254,177-e%),c1%,bf
  1955. x1%=37:c1%=4
  1956. NEXT
  1957. GOSUB win4ok
  1958. GOSUB mousepointer
  1959. player%=add%
  1960. WINDOW 6:GOTO bankscreen
  1961. plpr:
  1962. assets&=0
  1963. x%=money&(player%)/7500:IF x%<0 THEN x%=0
  1964. IF x%>137 THEN x%=137
  1965. FOR t%=0 TO tcount%(player%)-1
  1966. GOSUB calprice
  1967. assets&=assets&+(truck&-morg&(player%,t%))
  1968. NEXT:truck&=0
  1969. FOR t%=1 TO 5
  1970. IF shares%(player%,t%)<>0 THEN 
  1971. truck&=truck&+shareprice%(t%)*shares%(player%,t%)
  1972. END IF
  1973. NEXT
  1974. assets&=assets&+truck&
  1975. y%=assets&/7500:IF y%>130 THEN y%=130
  1976. e%=(x%+y%):IF e%>137 THEN e%=137
  1977. RETURN
  1978. omorg:
  1979. WINDOW OUTPUT 4
  1980. IF win4%<20 THEN fontset "truckdata",13
  1981. win4%=22
  1982. GOSUB shcolor
  1983. COLOR 0,0:CLS
  1984. COLOR 7,6:PRINT "(MORTGAGE AND LOAN DEPARTMENT)"
  1985. GOSUB mormon
  1986. LOCATE 5,1:COLOR 6,0:PRINT "which`truck"
  1987. LOCATE 6,1
  1988. COLOR 5,2+player%*2
  1989. FOR t%=0 TO tcount%(player%)-1
  1990. l%=LEN(tname$(player%,t%))
  1991. x1%=12-l%
  1992. PRINT "("tname$(player%,t%)SPACE$(x1%)")"
  1993. NEXT:e%=0:x2%=t%
  1994. LOCATE 15,1:COLOR 6,7
  1995. PRINT "(STREWTH THANKS FOR NOTHING:-)";
  1996. LINE (148,64)-(311,133),4,b
  1997. PAINT (155,77),5,4
  1998. LOCATE 6,1:COLOR 6,5
  1999. PRINT TAB(16)"loan`is`````````"
  2000. PRINT TAB(16)"amount`";:COLOR 4,5:PRINT "$       )"
  2001. COLOR 6,5
  2002. PRINT TAB(16)"loan`charge(10%)"
  2003. PRINT:COLOR 7,6 
  2004. PRINT TAB(16)"(THANK YOU SIR.)"
  2005. GOSUB win4ok
  2006. orgloop:
  2007. GOSUB mousepointer
  2008. IF y%>182 THEN WINDOW 6:GOTO bankscreen
  2009. IF y%>118 AND y%<130 AND x%>152 AND x%<312 THEN accmorg
  2010. IF x%>142 THEN orgloop
  2011. IF y%<66 OR y%>64+x2%*13 THEN orgloop
  2012. e%=e%+1:IF e%=2 THEN e%=0
  2013. IF e%=1 THEN 
  2014. t%=(y%-65)\13:x1%=t%:GOSUB speedfill:GOTO calmorg
  2015. ELSE
  2016. GOSUB speedfill:GOTO erasemorg
  2017. END IF
  2018. GOTO orgloop 
  2019. accmorg:
  2020. IF e%<>1 OR truck&<100 THEN orgloop
  2021. money&(player%)=money&(player%)+truck&
  2022. money&(player%)=money&(player%)-truck&/10
  2023. GOSUB mormon
  2024. morg&(player%,t%)=morg&(player%,t%)+truck&
  2025. GOSUB speedfill:e%=0:GOTO erasemorg
  2026. mormon:
  2027. xyptab 7,25:COLOR 2+player%*2,5
  2028. PRINT "("Co.Name$(player%)" BANK )"TAB(20)"$"money&(player%)")"
  2029. RETURN
  2030. calmorg:
  2031. GOSUB calprice
  2032. IF y%>4 THEN reject
  2033. truck&=truck&/2
  2034. truck&=truck&-morg&(player%,t%)
  2035. IF truck&<100 THEN reject
  2036. COLOR 4,5
  2037. xyptab 226,74:PRINT "accepted"
  2038. xyptab 237,87:WRITE truck&
  2039. GOTO orgloop
  2040. reject:
  2041. COLOR 2,5
  2042. xyptab 226,74:PRINT "rejected"
  2043. COLOR 4,5
  2044. xyptab 237,87:PRINT "ZILCH"
  2045. GOTO orgloop
  2046. erasemorg:
  2047. COLOR 4,5
  2048. xyptab 226,74:PRINT "````````"
  2049. xyptab 237,87:PRINT "      "
  2050. GOTO orgloop
  2051. balance:
  2052. WINDOW OUTPUT 4
  2053. IF win4%<20 THEN fontset "truckdata",13
  2054. win4%=22:sh%=player%
  2055. GOSUB shcolor
  2056. PALETTE 0,1,1,1:PALETTE 1,1,1,1
  2057. COLOR 0,0:CLS
  2058. COLOR 7,6:PRINT "( COMPANY AUDITORS DEPARTMENT)";
  2059. COLOR 2,0
  2060. FOR player%=0 TO 1
  2061. GOSUB balprint
  2062. COLOR 4,0: NEXT
  2063. LINE (0,22)-(310,104),6,b
  2064. LINE (0,113)-(310,195),6,b
  2065. GOSUB win4ok
  2066. GOSUB mousepointer
  2067. WINDOW 6:player%=sh%:GOTO bankscreen
  2068. balprint:
  2069. cal&=0:ccal&=0:truck&(2)=0
  2070. FOR t%=0 TO 4
  2071. IF truck%(player%,t%,10)<>0 THEN
  2072. GOSUB calprice
  2073. cal&=cal&+truck&
  2074. END IF 
  2075. IF morg&(player%,t%)<>0 THEN ccal&=ccal&+morg&(player%,t%)
  2076. NEXT
  2077. FOR t%=1 TO 5
  2078. IF shares%(player%,t%)<>0 THEN
  2079. truck&(2)=truck&(2)+shareprice%(t%)* shares%(player%,t%)
  2080. END IF
  2081. NEXT
  2082. truck&=money&(player%)+cal&+truck&(2)-ccal&
  2083. PRINT:PRINT  
  2084. PRINT "company`name"TAB(18)"("Co.Name$(player%)")"
  2085. PRINT "truck`assets"TAB(18)"$"cal&")"
  2086. PRINT "stock`assets"TAB(18)"$"truck&(2)")"
  2087. PRINT "present`capital"TAB(18)"$"money&(player%)")"
  2088. PRINT "truck`mortgages"TAB(18)"$"ccal&")"
  2089. PRINT "total`nett`worth"TAB(18)"$"truck&")";
  2090. RETURN
  2091. wagebill:
  2092. MOUSE OFF:TIMER OFF
  2093. GOSUB msquare1
  2094. WINDOW OUTPUT 4
  2095. IF win4%>6 THEN fontset "topaz",8
  2096. pic$="morg":GOSUB threscreen
  2097. WINDOW OUTPUT 3
  2098. PUT (142,72),getput%,PSET
  2099. WINDOW 4:COLOR 5-t%,7
  2100. LINE  (2,5)-(310,195),7,bf
  2101. LINE(5,60)-(305,156),5,b
  2102. LINE(125,60)-(125,156),5
  2103. LINE(245,60)-(245,156),5
  2104. LINE(245,156)-(305,171),5,b
  2105. ar=16
  2106. FOR aq=1 TO 5
  2107. LINE(5,((ar*aq)+60))-(305,((ar*aq)+60)),5
  2108. NEXT
  2109.  LOCATE 3,5:PRINT Co.Name$(t%);
  2110.  COLOR 2,7 :PRINT" WEEKLY WAGES BILL"
  2111.  ae=9:af=2
  2112.  COLOR 5-t%,7
  2113. LOCATE ae,af:PRINT "Truck No"
  2114. LOCATE ae,af+16:PRINT "Truck Name"
  2115. LOCATE ae,af+31:PRINT"Wages"
  2116. ae=ae+2
  2117.  FOR randy%=0 TO tcount%(t%)-1
  2118.    aa$=tname$(t%,randy%)
  2119.   aj=INT((5)*RND)+1
  2120.  IF aj>LEN (aa$)THEN aj=LEN (aa$)
  2121.    ab$=LEFT$(aa$,aj)
  2122.   ac$=RIGHT$(aa$,aj)
  2123.   aw1=ASC(ab$)
  2124.   IF aw1>96 AND aw1<123 THEN aw1=aw1-32  
  2125.    aw2=ASC(ac$)   
  2126.    aw=(aw1*aw2)/20:aw=INT(aw)
  2127. LOCATE ae,af:PRINT "Truck ";randy%+1
  2128. LOCATE ae,af+15:PRINT tname$(t%,randy%)
  2129. LOCATE ae,af+30:PRINT"$";aw
  2130. atotal=atotal+aw
  2131. ae=ae+2
  2132. NEXT
  2133. LOCATE 21,af+24:PRINT"TOTAL":LOCATE 21,af+30:PRINT"$";atotal
  2134. money&(t%)=money&(t%)-atotal
  2135.  win4%=5
  2136. GOSUB exscreen
  2137. WINDOW(3):GOSUB sc1:OBJECT.ON
  2138. IF gostop%=0 THEN TIMER ON:MOUSE ON
  2139. COLOR 10,3
  2140. atotal=0
  2141. RETURN
  2142.  
  2143.