home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / demos / starter.amos / starter.amosSourceCode
AMOS Source Code  |  1978-01-24  |  7KB  |  342 lines

  1. Mvolume 63
  2. BANKERASE
  3. PANTHORSCREEN
  4. Global PIC$,PICNO,ST
  5. INITIALISATION
  6. SCCLOSE
  7. MAINLOOP:
  8. PICLOAD
  9. SCCLOSE
  10. If PICNO=0 Then Goto STARS
  11. SCSWAP
  12. SCAPPEAR
  13. Goto MAINLOOP
  14. Procedure PANTHORSCREEN
  15.    Screen Open 0,640,256,16,Hires : Hide : Flash Off : Curs Off : Cls 0
  16.    Screen Open 1,640,256,16,Hires : Flash Off : Hide : Curs Off 
  17.    Screen Open 2,640,256,16,Hires : Flash Off : Hide : Curs Off 
  18.    Screen To Front 0
  19.    Screen 1
  20.    Load Iff "panthor1"
  21.    Screen 2
  22.    Load Iff "panthor2"
  23.    Screen 0 : Get Palette(1)
  24.    Fade 1
  25.    Wait 15
  26.    Bob 1,0,0,1
  27.    Channel 1 To Bob 1
  28.    Amal 1,"S: M 100,0,0 ; M -100,0,0 ; J S"
  29.    Amal On 1
  30.    Double Buffer : Autoback 0
  31.    Bob Update Off 
  32.    Screen Copy 1 To Logic(0)
  33.    Screen Copy 2 To Physic(0)
  34.    Screen Close 1
  35.    Screen Close 2
  36.    Wait Vbl 
  37.    Bob Update On 
  38.    Fade 5,$0,$FFF,$900,$E22,$F99,$DA1,$FF2,$111,$667,$99A,$2,$3,$14,$339,$44A,$100
  39.    Wait 75
  40.    Repeat 
  41.    Until Mouse Key
  42.    Fade 5
  43.    Wait 75
  44.    If Fast Free>0 Then Load "musak5.abk" : Music 1 : Tempo $11
  45.    Screen Close 0
  46. End Proc
  47. Procedure SCAPPEAR
  48.    Screen 1
  49.    Y=178
  50.    YY=1
  51.    For Z=1 To 128
  52.       Screen Display 1,,Y,,YY
  53.       Dec Y
  54.       Add YY,2
  55.       Wait Vbl 
  56.    Next Z
  57. End Proc
  58. Procedure SCCLOSE
  59.    If PICNO=5 Then Wait 450
  60.    Screen 1
  61.    Y=50
  62.    YY=255
  63.    For Z=1 To 128
  64.       Screen Display 1,,Y,,YY
  65.       Inc Y
  66.       Add YY,-2
  67.       Wait Vbl 
  68.    Next Z
  69. End Proc
  70. Procedure INITIALISATION
  71.    Screen Open 0,320,256,64,Lowres : Flash Off : Hide : Curs Off : Cls 0
  72.    Screen Open 1,320,256,64,Lowres : Flash Off : Hide : Curs Off : Cls 0
  73.    Screen To Front 1
  74.    Screen Display 0,,0,,1
  75.    Screen Display 1,,128,,1
  76. End Proc
  77. Procedure BANKERASE
  78.    For Z=1 To 15
  79.       Erase Z
  80.    Next Z
  81. End Proc
  82. Procedure SCSWAP
  83.    Screen 1
  84.    Get Palette(0)
  85.    Screen Copy 0 To 1
  86. End Proc
  87. Procedure PICLOAD
  88.    Inc PICNO
  89.    If PICNO<>1 and ST=0 Then Wait 250
  90.    If ST=1 Then Screen Display 1,,128,,1
  91.    If PICNO=5 Then PICNO=0 : Pop Proc
  92.    A$=Str$(PICNO)
  93.    PIC$="pic"+Mid$(A$,2,1)
  94.    Screen 0
  95.    Cls 0 : Load Iff PIC$
  96.    Screen 1
  97.    ST=0
  98. End Proc
  99. STARS:
  100. Screen Open 0,320,256,8,Lowres : Flash Off : Curs Off : Cls 0 : Hide 
  101. Screen Open 1,320,256,4,Lowres : Flash Off : Curs Off : Colour 1,$FFF : Hide : Cls 0 : Double Buffer : Autoback 0
  102. Screen Display 0,128,40,320,256
  103. Screen Display 0,128,40,320,256
  104. Wait Vbl 
  105. Dual Playfield 0,1 : Screen Offset 0,1, : Screen Offset 1,1,
  106. Screen 0 : Load Iff "starsfront" : Colour 10,$FFF : Screen 1
  107. X=1 : XX=360
  108. If Fast Free=0 Then Load "musak5.abk"
  109. A=1
  110. S=1
  111. T=2
  112. U=4
  113. V=6
  114. W=8
  115. X=10
  116. Y=12
  117. Z=14
  118. S1=16
  119. T1=18
  120. U1=20
  121. V1=22
  122. W1=24
  123. X1=26
  124. Y1=28
  125. Z1=30
  126. S2=34
  127. T2=38
  128. U2=42
  129. V2=46
  130. W2=50
  131. X2=54
  132. Y2=58
  133. Z2=62
  134. S3=70
  135. T3=78
  136. U3=86
  137. V3=94
  138. W3=102
  139. X3=110
  140. Y3=118
  141. Z3=126
  142. COUNTER=3330
  143. Degree 
  144. A=Rnd(320)
  145. B=Rnd(320)
  146. C=Rnd(320)
  147. D=Rnd(320)
  148. E=Rnd(320)
  149. F=Rnd(320)
  150. G=Rnd(320)
  151. A1=Rnd(320)
  152. B1=Rnd(320)
  153. C1=Rnd(320)
  154. D1=Rnd(320)
  155. E1=Rnd(320)
  156. F1=Rnd(320)
  157. G1=Rnd(320)
  158. A2=Rnd(320)
  159. B2=Rnd(320)
  160. C2=Rnd(320)
  161. D2=Rnd(320)
  162. E2=Rnd(320)
  163. F2=Rnd(320)
  164. G2=Rnd(320)
  165. A3=Rnd(320)
  166. B3=Rnd(320)
  167. C3=Rnd(320)
  168. D3=Rnd(320)
  169. E3=Rnd(320)
  170. F3=Rnd(320)
  171. G3=Rnd(320)
  172. If Fast Free=0 Then Music 1 : Tempo $11
  173. Do 
  174. For COUNT=1 To 360 Step 8
  175. X#=Cos(COUNT)
  176. Y#=Cos(COUNTER)
  177. X1#=Cos(COUNT+A)
  178. Y1#=Cos(COUNTER+A)
  179. X2#=Cos(COUNT+B)
  180. Y2#=Cos(COUNTER+B)
  181. X3#=Cos(COUNT+C)
  182. Y3#=Cos(COUNTER+C)
  183. X4#=Cos(COUNT+D)
  184. Y4#=Cos(COUNTER+D)
  185. X5#=Cos(COUNT+E)
  186. Y5#=Cos(COUNTER+E)
  187. X6#=Cos(COUNT+F)
  188. Y6#=Cos(COUNTER+F)
  189. X7#=Cos(COUNT+G)
  190. Y7#=Cos(COUNTER+G)
  191. X8#=Cos(COUNT)
  192. Y8#=Cos(COUNTER)
  193. X9#=Cos(COUNT+A1)
  194. Y9#=Cos(COUNTER+A1)
  195. X10#=Cos(COUNT+B1)
  196. Y10#=Cos(COUNTER+B1)
  197. X11#=Cos(COUNT+C1)
  198. Y11#=Cos(COUNTER+C1)
  199. X12#=Cos(COUNT+D1)
  200. Y12#=Cos(COUNTER+D1)
  201. X13#=Cos(COUNT+E1)
  202. Y13#=Cos(COUNTER+E1)
  203. X14#=Cos(COUNT+F1)
  204. Y14#=Cos(COUNTER+F1)
  205. X15#=Cos(COUNT+G1)
  206. Y15#=Cos(COUNTER+G1)
  207. X16#=Cos(COUNT)
  208. Y16#=Cos(COUNTER)
  209. X17#=Cos(COUNT+A2)
  210. Y17#=Cos(COUNTER+A2)
  211. X18#=Cos(COUNT+B2)
  212. Y18#=Cos(COUNTER+B2)
  213. X19#=Cos(COUNT+C2)
  214. Y19#=Cos(COUNTER+C2)
  215. X20#=Cos(COUNT+D2)
  216. Y20#=Cos(COUNTER+D2)
  217. X21#=Cos(COUNT+E2)
  218. Y21#=Cos(COUNTER+E2)
  219. X22#=Cos(COUNT+F2)
  220. Y22#=Cos(COUNTER+F2)
  221. X23#=Cos(COUNT+G2)
  222. Y23#=Cos(COUNTER+G2)
  223. X24#=Cos(COUNT)
  224. Y24#=Cos(COUNTER)
  225. X25#=Cos(COUNT+A3)
  226. Y25#=Cos(COUNTER+A3)
  227. X26#=Cos(COUNT+B3)
  228. Y26#=Cos(COUNTER+B3)
  229. X27#=Cos(COUNT+C3)
  230. Y27#=Cos(COUNTER+C3)
  231. X28#=Cos(COUNT+D3)
  232. Y28#=Cos(COUNTER+D3)
  233. X29#=Cos(COUNT+E3)
  234. Y29#=Cos(COUNTER+E3)
  235. X30#=Cos(COUNT+F3)
  236. Y30#=Cos(COUNTER+F3)
  237. X31#=Cos(COUNT+G3)
  238. Y31#=Cos(COUNTER+G3)
  239. Plot X#*S+160,Y#*S+128
  240. Plot X1#*T+160,Y1#*T+128
  241. Plot X2#*U+160,Y2#*U+128
  242. Plot X3#*V+160,Y3#*V+128
  243. Plot X4#*W+160,Y4#*W+128
  244. Plot X5#*X+160,Y5#*X+128
  245. Plot X6#*Y+160,Y6#*Y+128
  246. Plot X7#*Z+160,Y7#*Z+128
  247. Plot X8#*S1+160,Y8#*S1+128
  248. Plot X9#*T1+160,Y9#*T1+128
  249. Plot X10#*U1+160,Y10#*U1+128
  250. Plot X11#*V1+160,Y11#*V1+128
  251. Plot X12#*W1+160,Y12#*W1+128
  252. Plot X13#*X1+160,Y13#*X1+128
  253. Plot X14#*Y1+160,Y14#*Y1+128
  254. Plot X15#*Z1+160,Y15#*Z1+128
  255. Plot X16#*S2+160,Y16#*S2+128
  256. Plot X17#*T2+160,Y17#*T2+128
  257. Plot X18#*U2+160,Y18#*U2+128
  258. Plot X19#*V2+160,Y19#*V2+128
  259. Plot X20#*W2+160,Y20#*W2+128
  260. Plot X21#*X2+160,Y21#*X2+128
  261. Plot X22#*Y2+160,Y22#*Y2+128
  262. Plot X23#*Z2+160,Y23#*Z2+128
  263. Plot X24#*S3+160,Y24#*S3+128
  264. Plot X25#*T3+160,Y25#*T3+128
  265. Plot X26#*U3+160,Y26#*U3+128
  266. Plot X27#*V3+160,Y27#*V3+128
  267. Plot X28#*W3+160,Y28#*W3+128
  268. Plot X29#*X3+160,Y29#*X3+128
  269. Plot X30#*Y3+160,Y30#*Y3+128
  270. Plot X31#*Z3+160,Y31#*Z3+128
  271. If Mouse Key=1 Then Goto TEND
  272. Add COUNTER,8
  273. Screen Swap : Wait Vbl : Cls 0
  274. Add S,1
  275. Add T,1
  276. Add U,1
  277. Add V,1
  278. Add W,1
  279. Add X,1
  280. Add Y,1
  281. Add Z,1
  282. Add S1,1
  283. Add T1,1
  284. Add U1,1
  285. Add V1,1
  286. Add W1,1
  287. Add X1,1
  288. Add Y1,1
  289. Add Z1,1
  290. Add S2,1
  291. Add T2,1
  292. Add U2,1
  293. Add V2,1
  294. Add W2,1
  295. Add X2,1
  296. Add Y2,1
  297. Add Z2,1
  298. Add S3,1
  299. Add T3,1
  300. Add U3,1
  301. Add V3,1
  302. Add W3,1
  303. Add X3,1
  304. Add Y3,1
  305. Add Z3,1
  306. If S>180 Then S=1
  307. If T>180 Then T=1 : A=Rnd(320)
  308. If U>180 Then U=1 : B=Rnd(320)
  309. If V>180 Then V=1 : C=Rnd(320)
  310. If W>180 Then W=1 : D=Rnd(320)
  311. If X>180 Then X=1 : E=Rnd(320)
  312. If Y>180 Then Y=1 : D=Rnd(320)
  313. If Z>180 Then Z=1 : F=Rnd(320)
  314. If S1>180 Then S1=1
  315. If T1>180 Then T1=1 : A1=Rnd(320)
  316. If U1>180 Then U1=1 : B1=Rnd(320)
  317. If V1>180 Then V1=1 : C1=Rnd(320)
  318. If W1>180 Then W1=1 : D1=Rnd(320)
  319. If X1>180 Then X1=1 : E1=Rnd(320)
  320. If Y1>180 Then Y1=1 : D1=Rnd(320)
  321. If Z1>180 Then Z1=1 : F1=Rnd(320)
  322. If S2>180 Then S2=1
  323. If T2>180 Then T2=1 : A2=Rnd(320)
  324. If U2>180 Then U2=1 : B2=Rnd(320)
  325. If V2>180 Then V2=1 : C2=Rnd(320)
  326. If W2>180 Then W2=1 : D2=Rnd(320)
  327. If X2>180 Then X2=1 : E2=Rnd(320)
  328. If Y2>180 Then Y2=1 : D2=Rnd(320)
  329. If Z2>180 Then Z2=1 : F2=Rnd(320)
  330. If S3>180 Then S3=1
  331. If T3>180 Then T3=1 : A3=Rnd(320)
  332. If U3>180 Then U3=1 : B3=Rnd(320)
  333. If V3>180 Then V3=1 : C3=Rnd(320)
  334. If W3>180 Then W3=1 : D3=Rnd(320)
  335. If X3>180 Then X3=1 : E3=Rnd(320)
  336. If Y3>180 Then Y3=1 : D3=Rnd(320)
  337. If Z3>180 Then Z3=1 : F3=Rnd(320)
  338. Next COUNT
  339. Loop 
  340. TEND:
  341. Screen 0
  342. Fade 5 : Wait 75 : For Z=63 To 0 Step -1 : Wait Vbl : Mvolume Z : Next Z : BANKERASE : Run "opener.amos"