home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 21 / 021.d81 / presenter (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1986-01-01  |  9.3 KB  |  323 lines

  1. 0 rem sidirq presenter 12/28/84
  2. 1 iflf=0thenprint"[147][210]eading the [212]able of [195]ontents..."
  3. 2 iflf=0thenlf=1:load"romusic",8,1
  4. 3 ifpeek(49153)=11thenifpeek(49154)=192then5
  5. 4 load"sidirq v3",8,1
  6. 5 ifpeek(51201)<>12orpeek(51202)<>200orpeek(52222)<>5then7
  7. 6 goto8
  8. 7 load"routines v4",8,1
  9. 8 ifpeek(928)=128then10
  10. 9 load"menu.sprites",8,1
  11. 10 poke49161,0:poke49162,160:old$="":goto6000
  12. 1000 poke646,c%(2):print"[147]"tl$:pokev+33,c%(1):poke1021,17:lp=1:poke646,c%(4)
  13. 1002 poke53280,c%(0)
  14. 1010 printwt$;:fori=2to17:print"[221]"spc(38)"[221]";:next:printwb$;:poke646,c%(3)
  15. 1020 print"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]";
  16. 1025 print"[221]f1[146][208]age [194]ack  [221]       [221][202]oystick[146] scrolls[221]";
  17. 1030 print"[221]f3[146][211]croll [194]ack[221][208][146]rinter[221]    ([208]ort 2)    [221]";
  18. 1035 print"[221]f5[146][211]croll [198]wd.[221]"mu$"  [171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179]";
  19. 1040 print"[221]f7[146][208]age [198]wd.  [221][216][146]=[197]xit [221]"spc((16-len(mo$))/2)mo$tab(39)"[221]";
  20. 1045 print"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";
  21. 1050 fori=217to242:pokei,peek(i)or128:next:poke646,c%(5):sys51203
  22. 1055 poke2023,125:poke56295,c%(3):return
  23. 1100 poke783,peek(783)and254:poke781,y%:poke782,x%:sys65520:return
  24. 1200 input#15,er%,er$,et%,es%
  25. 1205 if(er%>19ander%<30)orer%=66orer%=67orer%=71orer%=73then1250
  26. 1210 return
  27. 1250 print"[147][212]here has been a disk error."
  28. 1251 print
  29. 1252 print"[208]ress <space> to continue.":pokeb,0
  30. 1253 getk$:if k$=""then 1253
  31. 1261 run
  32. 1270 :
  33. 1280 remwiggle & bonk
  34. 1282 fori=27to31step+1:waitr,128:poker,i:next
  35. 1284 fori=31to24step-1:waitr,128:poker,i:next
  36. 1286 fori=24to27step+1:waitr,128:poker,i:next
  37. 1288 :
  38. 1290 ifpeek(788)<>49then1296
  39. 1291 pokes+4,0:pokes+11,0:pokes+18,0:pokes+5,8:pokes+6,0:pokes+24,15
  40. 1292 pokes+4,20:pokes,rnd(0)*256:pokes+1,rnd(0)*256:pokes+14,rnd(0)*256
  41. 1294 pokes+15,30:pokes+4,21
  42. 1295 :
  43. 1296 return
  44. 1300 remold bonk
  45. 1400 remnow goto
  46. 1450 rem1280
  47. 1455 :
  48. 1500 iff$=old$thenreturn
  49. 1501 old$=f$
  50. 1502 open8,8,8,f$:gosub1200:ifer%=62thenreturn
  51. 1505 print"[158]  [210]eading: "m$(mp,0)
  52. 1510 ll=1:poke781,8:sys65478
  53. 1515 sysli,b$:t$(ll)=left$(b$,38):ifst=.thenll=ll+1:goto1515
  54. 1520 sys65484:close8:gosub1200:fori=ll+1toll+20:t$(i)="":next:return
  55. 2000 getk$:j%=notpeek(j)and31:ifk$=""andj%=.then2000
  56. 2001 pokeb,0
  57. 2005 ifk$="\"then60000:rem run a program
  58. 2010 ifk$="[145]"ork$=""ork$="[134]"orj%=1thengosub2100:goto2000
  59. 2015 ifk$=""ork$="[157]"ork$="[135]"orj%=2thengosub2200:goto2000
  60. 2020 ifk$="[133]"then2300
  61. 2025 ifk$="[136]"then2400
  62. 2030 ifk$="p"ork$="[208]"ork$="[175]"ork$=""then50000
  63. 2040 ifk$="m"ork$="[205]"ork$="[167]"thenmu%=-1:gosub2705:sys49152:mu$="[209][146]uiet":goto2800
  64. 2045 ifk$="q"ork$="[209]"ork$="[171]"thenmu%=0:gosub2705:mu$="[205][146]usic":goto2800
  65. 2050 if(k$="x"ork$="[216]"ork$="[189]"ork$=""orj%=16ork$=" ")andm$(mp,2)="rq"then5000
  66. 2051 :
  67. 2052 ifk$="x"ork$="[216]"ork$="[189]"ork$=""orj%=16ork$=" "thengosub9000:gosub5500
  68. 2053 ifk$="x"ork$="[216]"ork$="[189]"ork$=""orj%=16ork$=" "thengoto5900
  69. 2054 :
  70. 2055 goto2000
  71. 2100 iflp=1then1280
  72. 2105 lp=lp-1:sys51209:x%=1:y%=2:gosub1100
  73. 2106 ifleft$(t$(lp),4)="\oad"thenprint"":goto2110
  74. 2107 printt$(lp)
  75. 2110 return
  76. 2200 iflp+16>llthen1280
  77. 2205 lp=lp+1:sys51206:x%=1:y%=17:gosub1100
  78. 2206 ifleft$(t$(lp+15),4)="\oad"thenprint"":goto2210
  79. 2207 printt$(lp+15)
  80. 2210 return
  81. 2300 fori=1to15:gosub2100:next:goto2000
  82. 2400 fori=1to15:gosub2200:next:goto2000
  83. 2500 :
  84. 2700 ifpeek(788)=49thenpokes+24,15:sys49158:poke56325,59
  85. 2702 return
  86. 2705 ifpeek(788)=49then2715
  87. 2710 sys49155:pokes+4,0:pokes+11,0:pokes+18,0:pokes+5,8:pokes+6,0:pokes+24,15
  88. 2715 return
  89. 2800 x%=15:y%=22:gosub1100:poke646,c%(3):printmu$:poke646,c%(5):goto2000
  90. 2900 x%=0:y%=2:gosub1100:sys51200:fori=lptolp+15
  91. 2902 ifleft$(t$(i),4)="\oad"thenprint"":goto2904
  92. 2903 print""t$(i)
  93. 2904 next:pokeb,0
  94. 2906 return
  95. 5000 gosub9000:remscreen
  96. 5047 gosub5500:rem menu
  97. 5048 :
  98. 5049 :
  99. 5050 ifmp=1thenifm$(1,1)="*"thena$="":goto5053
  100. 5051 formy=55708to55708+25:pokemy,7:next
  101. 5052 pokev+21,val(m$(mp,3)):geta$:j%=notpeek(j)and31:ifj%=.anda$=""then5051
  102. 5053 pokeb,0
  103. 5055 ifa$="[145]"ora$=""ora$="[134]"ora$="[138]"orj%=1thengosub5100
  104. 5060 kf=0:ifa$=""ora$="[157]"ora$="[135]"ora$="[139]"orj%=2thengosub5200
  105. 5065 ifa$="[133]"ora$="[137]"thenmp=1:gosub5520
  106. 5070 ifa$="[136]"ora$="[140]"thenmp=ml:gosub5500
  107. 5075 ifj%=16ora$=" "ora$=chr$(13)thengosub63300:goto5900
  108. 5080 ifa$="x"ora$="[216]"ora$="[189]"thenpokev+21,.:goto5600
  109. 5090 goto5050
  110. 5100 ifmp=1thengosub1280:goto5160
  111. 5105 sys51209:sys51209:mp=mp-1
  112. 5110 ifmp<5then5150
  113. 5114 x%=12:y%=2:gosub1100:po$=m$(mp-4,.)
  114. 5115 ifleft$(po$,1)="*"thenprintmid$(po$,2);:goto5150
  115. 5116 print"[129]"m$(mp-4,.);
  116. 5150 ifleft$(m$(mp,1),1)="*"then5100
  117. 5160 return
  118. 5175 :
  119. 5200 ifmp=mlthengosub1280:goto5260
  120. 5205 sys51206:sys51206:mp=mp+1
  121. 5210 ifmp>ml-4then5250
  122. 5214 x%=12:y%=18:gosub1100:po$=m$(mp+4,.)
  123. 5215 ifleft$(po$,1)="*"thenprintmid$(po$,2);:goto5250
  124. 5216 print"[129]"m$(mp+4,.);
  125. 5250 ifleft$(m$(mp,1),1)="*"then5200
  126. 5260 return
  127. 5275 :
  128. 5300 :
  129. 5400 :
  130. 5500 sys51200:print"[129]";:ifmp<5then5520
  131. 5505 fori=mp-4tomp+4
  132. 5507 ifleft$(m$(i,.),1)="*"thenprinttab(12)mid$(m$(i,0),2)"":goto5515
  133. 5510 printtab(12)"[129]"m$(i,.)"":
  134. 5515 next:return
  135. 5517 :
  136. 5520 sys51200:print"[129]";:fori=mpto4:print"";:next:fori=1tomp+4
  137. 5522 ifleft$(m$(i,.),1)="*"thenprinttab(12)mid$(m$(i,0),2)"":goto5530
  138. 5525 printtab(12)m$(i,.)"":
  139. 5530 next:return
  140. 5600 rem exit
  141. 5605 gosub63002:gosub63000
  142. 5607 goto63400
  143. 5608 end
  144. 5620 :
  145. 5630 :
  146. 5900 pop=0:gosub7000:ifpop=1then5000
  147. 5902 f$="t."+m$(mp,1):tl$=m$(mp,.)
  148. 5903 pop=0:gosub63100:ifpop=1then5000
  149. 5904 gosub1500:ifer%=62thenclose8:goto5000
  150. 5905 :
  151. 5906 pokev+21,0
  152. 5907 poke1020,2:poke1021,18:poke1022,1:poke1023,38:sys51200:print"[129]";:sys51203
  153. 5910 pokes+4,.:pokes+11,.:pokes+18,.
  154. 5915 ifmu%andpeek(788)=49thensys49152:poke56325,80:mu%=-1:pokes+24,15
  155. 5999 gosub1000:gosub2900:goto2000
  156. 6000 v=53248:r=v+17:c=128:s=v+1024:j=56320:lp=1:li=52016:mu%=-1:sys52176:b=198
  157. 6002 pokes+5,96:pokes+6,246
  158. 6005 open15,8,15:dimt$(600),m$(60,3),c(4):fori=1to4:readc(i):next:mu$="[209][146]uiet
  159. 6006 [131]2,5,6,7
  160. 6010 [151]1020,2:[151]1021,17:[151]1022,1:[151]1023,38:[151]49665,4
  161. 6012 [153]:[151]s[170]23,.:[151]s[170]4,128
  162. 6014 wl$[178]"tantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantantan":wt$[178]"or"[170]wl$[170]"^":wb$[178]"/"[170]wl$[170]"exp
  163. 6015 d1$=left$(wt$,27)+right$(wt$,1):d2$=left$(wb$,27)+right$(wb$,1)
  164. 6016 bo$="[158][221]                          [221][146]"
  165. 6017 q1$="[158]                          "
  166. 6018 q2$="[158]                          "
  167. 6020 m$="features11":open8,8,8,m$:gosub1200:ml=1:
  168. 6022 :
  169. 6025 input#8,mt$,mo$,mn$
  170. 6030 fori=.to3:poke781,8:sys65478:sysli,b$:m$(ml,i)=b$+""
  171. 6032 ifstthengosub1200:ifer%=.andst>63then6037
  172. 6033 next
  173. 6035 ml=ml+1:goto6030
  174. 6037 close8:p$="p"+chr$(8)+chr$(1)+chr$(0)+chr$(1):print#15,"i0":dimc%(5)
  175. 6038 open8,8,8,"color.file":get#8,a$,b$:fori=0to5:input#8,c%(i):next:close8
  176. 6039 open8,8,8,"print.file":print#15,p$:input#8,pa:input#8,sa:close8
  177. 6040 sys65484:pokes+4,.:pokes+23,.:pokes+5,9:pokes+6,.
  178. 6042 mp=peek(597):ifmp>mlormp<1thenmp=1
  179. 6044 goto5000
  180. 6050 :
  181. 6060 :
  182. 7000 remsub menus 111885
  183. 7002 rem120485
  184. 7005 poke53281,0:poke53280,6:sys51200:pokev+21,val(m$(mp,3)):gosub2705
  185. 7006 poke1020,6:poke1021,14:poke1022,12:poke1023,37
  186. 7007 sys51200:print"";:sys51203
  187. 7010 bl=len(m$(mp,2)):sq$=m$(mp,2)
  188. 7020 c=0
  189. 7030 print"                                        ";
  190. 7031 print"[159]"wt$"[221] [195][210][211][210][146] keys or [202]oystick[146] to scroll menu [221]";
  191. 7032 print"[221] [211][208][193][195][197]-[194][193][210][146], [210]eturn[146], or [194]utton[146] [211]elects [221]";
  192. 7033 printleft$(wb$,39);:poke2023,125:poke56295,3
  193. 7035 :
  194. 7037 print"[158]"
  195. 7038 printspc(11)"[158]"d1$"[146]":fori=1to11:printbo$;:next
  196. 7039 printspc(11)""d2$"[146]"
  197. 7040 forzp=217to242:pokezp,128orpeek(zp):nextzp
  198. 7045 print"[158]":print:foruu=1tobl:ch$=mid$(sq$,uu,1)
  199. 7050 ifch$="r"thenprintspc(12)"[210]ead about it.":c=c+1
  200. 7060 ifch$="e"thenprintspc(12)"[210]un it.":c=c+1
  201. 7070 ifch$="q"thenprintspc(12)"[198]orget about it.":c=c+1
  202. 7100 nextuu
  203. 7135 :
  204. 7140 :
  205. 7150 pq=1:sd=51209:su=51206
  206. 7155 print"[158]";spc(25-(len(m$(mp,0))/2))m$(mp,0)"[145][145]"
  207. 7156 :
  208. 7157 :
  209. 7160 pokeb,0
  210. 7161 geta$:j%=notpeek(j)and31:ifj%=.anda$=""then7161
  211. 7162 pokeb,0:ff=0
  212. 7163 ifa$="[145]"ora$=""ora$="[134]"ora$="[133]"orj%=1thenff=1
  213. 7164 ifff=1thenifpq>=2thensyssd:printq1$:syssd:printq1$:pq=pq-1:goto7161
  214. 7165 :
  215. 7166 ifa$=""ora$="[157]"ora$="[135]"ora$="[136]"orj%=2thenff=2
  216. 7167 ifff=2thenifpq<blthensyssu:printq2$:syssu:printq2$:pq=pq+1:goto7161
  217. 7168 :
  218. 7169 ifa$<>chr$(13)anda$<>" "andj%<>16thengosub1280:goto7161
  219. 7173 gosub63300
  220. 7175 ifmid$(sq$,pq,1)="q"thenpop=1:rem'pop' back
  221. 7176 :
  222. 7180 ifmid$(sq$,pq,1)="r"then 8000:remread file
  223. 7185 :
  224. 7190 ifmid$(sq$,pq,1)="e"thenf$="load"+chr$(34)+m$(mp,1)+chr$(34)+",8":goto61000
  225. 7192 rem run
  226. 7290 :
  227. 7390 :
  228. 8000 return
  229. 9000 rem main scrn
  230. 9002 gosub2705:print"[147]";:pokev+33,.:print"[153] "mt$tab(39-len(mo$))mo$
  231. 9005 printwt$;:fori=2to18:print"[221]"spc(38)"[221]";:next:printwb$;
  232. 9010 print"[159]"wt$"[221] [195][210][211][210][146] keys or [202]oystick[146] to scroll menu [221]";
  233. 9015 print"[221] [211][208][193][195][197]-[194][193][210][146], [210]eturn[146], or [194]utton[146] [211]elects [221]";
  234. 9020 print"[221]       [216][146] key to exit [204][207][193][196][211][212][193][210]         [221]";
  235. 9022 printleft$(wb$,39);:poke2023,125:poke56295,3
  236. 9025 fori=217to242:pokei,peek(i)or128:next
  237. 9030 poke1020,2:poke1021,18:poke1022,1:poke1023,38:sys51200:print"[129]";:sys51203
  238. 9032 :
  239. 9040 poke2040,13:pokev,60:pokev+1,128:pokev+39,7
  240. 9045 poke2041,14:pokev+2,60:pokev+3,128:pokev+40,7
  241. 9046 poke2042,15:pokev+4,60:pokev+5,128:pokev+41,7
  242. 9047 :
  243. 9048 pokev+29,7
  244. 9049 :
  245. 9050 return
  246. 9999 end
  247. 10000 d=peek(186):n$="presenter":open15,d,15,"s0:"+n$:close15:saven$,d:end
  248. 50000 poke646,c%(5):print"[147]          [204][207][193][196][211][212][193][210] [200]ardcopy             "
  249. 51005 print"  [196]o you want your hardcopy printed in"
  250. 51010 print""spc(12)"two columns?"
  251. 51035 pokeb,.:waitb,1:geta$
  252. 51040 ifa$="y"thenc8%=1:goto55000
  253. 51045 ifa$<>"n"then51035
  254. 51050 c8%=0
  255. 55000 poke646,c%(5):print"[147]          [204][207][193][196][211][212][193][210] [200]ardcopy             "
  256. 55010 print"   [208]lease make sure your printer is"
  257. 55015 print"       on-line and ready to go."
  258. 55020 print"    [208]ress a key when you are ready.":pokeb,0:waitb,1:geta$
  259. 55022 ifmu%thengosub2705
  260. 55025 open4,pa,sa:lc=.:cl=1:ifc8%then55100
  261. 55030 fori=1toll:lc=lc+1:iflc>60thenforj=1to6:print#4," ":next:lc=1
  262. 55035 print#4,t$(i):next:fori=llto65:print#4," ":next:goto55160
  263. 55100 ifll-cl<120then55150
  264. 55105 fori=cltocl+59:t$=t$(i):print#4,t$spc(42-len(t$))t$(i+60):next
  265. 55110 fori=1to6:print#4," ":next:cl=cl+120:goto55100
  266. 55150 ch%=(ll-cl+2)/2:fori=cltocl+ch%-1:t$=t$(i):print#4,t$spc(42-len(t$))t$(i+ch%)
  267. 55155 next:fori=1to4:print#4," ":next
  268. 55160 close4:ifmu%thengosub2700
  269. 55165 goto5999
  270. 59999 poke56325,59:end
  271. 60050 :
  272. 60105 :
  273. 61000 rem actually run
  274. 61005 mu%=0:gosub2705
  275. 61006 poke597,mp:rem hide flag
  276. 61007 pop=0:gosub63100:ifpop=1then5900
  277. 61008 pokev+21,0
  278. 61010 print"[147]"f$:print"run"
  279. 61020 poke631,13:poke632,13:pokeb,2:poke44,8:poke56325,59:end
  280. 63000 fori=.to24:pokes+i,.:next:pokes+1,100:pokes+2,100:pokes+5,10:pokes+6,2
  281. 63001 pokes+24,15:pokes+4,33:fordl=1to600:next:pokes+4,32:return
  282. 63002 fori=0to24:pokes+i,0:next:pokes+1,40:pokes+2,40:pokes+5,10:pokes+6,2
  283. 63003 pokes+24,15:pokes+4,33:fordl=1to600:next:pokes+4,32:return
  284. 63005 :
  285. 63100 return
  286. 63105 ifval(s$)=val(m$(mp,3))thenreturn
  287. 63107 pokev+21,0
  288. 63110 print"[147][212]he diskette currently in your drive is"
  289. 63120 ifi1$<>"\"thenprint"     not a regular [204][207][193][196][211][212][193][210] issue.":goto63140
  290. 63130 print"         side "s$" of [204][207][193][196][211][212][193][210]"val(n1$+n2$)
  291. 63140 print""tab(17-len(m$(mp,0))/2);"'"m$(mp,0)"' is on"
  292. 63150 print"         side "m$(mp,3)" of [204][207][193][196][211][212][193][210] "mn$
  293. 63160 print"        [201]nsert that side, please"
  294. 63170 printspc(19)"&"
  295. 63180 printspc(12)"press space bar"
  296. 63190 print"   or press [210][197][212][213][210][206][146][160]to return to menu"
  297. 63200 print:print"  ([201] suggest you turn the disk over.)
  298. 63210 [151]b,.:[146]b,1:[161]k$:[139]k$[179][177]" "[167]pop[178]1:[142]
  299. 63220 [153]"load":[137]63100
  300. 63230 [143]read side marker
  301. 63240 [160]8
  302. 63250 [159]8,8,8,"#":[152]15,"ua:8 0 18 0":[152]15,"b-p:8 154"
  303. 63260 [161]#8,n1$,n2$,a$,a$,a$,s$,a$,a$,i1$,i2$:[160]8
  304. 63270 [142]
  305. 63300 [143]ding
  306. 63301 kt[178][194](1020):kb[178][194](1021):kl[178][194](1022):kr[178][194](1023)
  307. 63302 [129]pp[178]1020[164]1023:[151]pp,0:[130]
  308. 63304 [151]v[170]21,4:[141]63000
  309. 63308 [151]v[170]21,[197](m$(mp,3)):[141]63002
  310. 63309 [151]1020,kt:[151]1021,kb:[151]1022,kl:[151]1023,kr
  311. 63310 [142]
  312. 63350 :
  313. 63400 [153]"loadstop   (NULL)(NULL)atnstr$(NULL)(NULL)atn(NULL)closeis not public domain."
  314. 63406 [151]53281,1:[160]15
  315. 63408 [153]"   (NULL)(NULL)atnstr$(NULL)(NULL)atn(NULL)closeis unprotected for your"
  316. 63410 [153][163]28);"convenience.":[153]"(NULL)e want you to be able";
  317. 63412 [153]" to copy, modify, and learn from the";
  318. 63414 [153]" programs on (NULL)(NULL)atnstr$(NULL)(NULL)atn(NULL).":[153]:[153]"(NULL)lease respect this policy:"
  319. 63416 [153]:[153]"str$o not allow unauthorized copies":[153][163]29)"to be made."
  320. 63418 [153]:[153]"((NULL)chools may make a copy for each len-64.)"
  321. 63420 [153]:[153]"(NULL)ype (NULL)(NULL)(NULL) then press <(NULL)val(NULL)(NULL)(NULL)(NULL)> to return  to (NULL)(NULL)atnstr$(NULL)(NULL)atn(NULL)."
  322. 63422 [128]
  323.