home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 2: Collection B / 17Bit_Collection_B.iso / files / 1548.dms / in.adf / AUTOEXEC.AMOS / AUTOEXEC.amosSourceCode
Encoding:
AMOS Source Code  |  1978-05-20  |  20.1 KB  |  796 lines

  1. Set Buffer 10
  2. '******************Re-Written In AMOS,*****************  
  3. '*************Including AMAL And Scrolling,************  
  4. '***************By Gary Symons BSc(Hons)***************
  5. 'Note,what may seem redundant is there for timing!   
  6. Dir$="SkateTribe:"
  7. If Mouse Key=3 Then Erase 1 : Erase 3 : Erase 5 : List Bank : Bell : End 
  8. 'Break Off 
  9. Erase 5
  10. Dim A$(27)
  11. Load "amal_data.abk",5
  12. M=Start(5)
  13. For F=1 To 26
  14.    A$(F)=""
  15.    Repeat 
  16.       A$(F)=A$(F)+Chr$(Peek(M))
  17.       Inc M
  18.    Until Peek(M)=255
  19.    Inc M
  20. Next F
  21. Hide 
  22. Auto View Off 
  23. Screen Open 0,320,200,16,Lowres : Paper 0 : Clw : Curs Off : Flash Off 
  24. Double Buffer 
  25. Erase 5
  26. Erase 1 : Load "credsp.abk",1
  27. Load "broken.abk"
  28. Autoback 0 : Update Off 
  29. For I=1 To 11 : Channel I To Bob I : Next I
  30. Channel 14 To Sprite 6
  31. Channel 15 To Sprite 0
  32. Channel 12 To Sprite 0
  33. Screen Open 1,320,200,16,Lowres : Paper 0 : Clw : Curs Off : Flash Off 
  34. Get Sprite Palette 
  35. Dim HGH$(9) : Dim HGH(9)
  36. For F=1 To 9 : HGH(F)=10000-1000*F : Next F
  37. HGH$(1)="G Symons" : HGH$(2)="Lorna..." : HGH$(3)="Vickrage"
  38. HGH$(4)="Peter J." : HGH$(5)="Hickman " : HGH$(6)="D J....."
  39. HGH$(7)="Nuttall " : HGH$(8)="J M Wood" : HGH$(9)="........"
  40. Dim T$(7)
  41. Colour 0,$0
  42. Curs Off 
  43. Cls 
  44. Flash Off 
  45. '
  46. Erase 5
  47. Load "back1e.ABK",5
  48. Unpack 5 To 1
  49. Screen To Front 0 : Screen 0 : Cls 0
  50. Get Palette 1
  51. Colour 0,$0
  52. '
  53. View 
  54. Screen Copy 1 To Logic
  55. Gosub ROLL_ON_SCREEN
  56. Music 1 : Tempo 17 : MV=63 : Mvolume MV
  57. Screen 0 : Get Sprite Palette %11111111111111110000000000000000
  58. A$="A:L X=X+1&511;P;If X<>255 J A;FR0=0T100;NR0;J A"
  59. Channel 0 To Sprite 0
  60. Sprite 0,0,198,1
  61. Amal 0,A$
  62. Amal On 
  63. Sprite Update On 
  64. H_F=False : F_F=False
  65. Autoback 0
  66. F_W=25
  67. Do 
  68.    If H_F
  69.       Dec F_W : Add MV,-2 : Mvolume MV
  70.    Else 
  71.       If Fire(1)
  72.          Fade 4 : H_F=True
  73.       End If 
  74.    End If 
  75.    Exit If F_W<1
  76.    Screen Copy Physic,0,8,24,193 To Logic,0,0
  77.    Screen Copy Physic,0,0,24,8 To Logic,0,185
  78.    Screen Copy Physic,48,4,64,193 To Logic,48,0
  79.    Screen Copy Physic,48,0,64,4 To Logic,48,189
  80.    Screen Copy Physic,64,2,80,193 To Logic,64,0
  81.    Screen Copy Physic,64,0,80,2 To Logic,64,191
  82.    Screen Copy Physic,240,2,256,193 To Logic,240,0
  83.    Screen Copy Physic,240,0,256,2 To Logic,240,191
  84.    Screen Copy Physic,256,1,272,193 To Logic,256,0
  85.    Screen Copy Physic,256,0,272,1 To Logic,256,192
  86.    Screen Copy Physic,272,5,340,193 To Logic,272,0
  87.    Screen Copy Physic,272,0,340,5 To Logic,272,188
  88.    Screen Swap 
  89.    Wait Vbl 
  90. Loop 
  91. Music Off : Sprite Off : Amal Off : Wait Vbl : Update Off 
  92. SKILL=0
  93. Gosub HIGH_SCORE_BIT
  94. Repeat 
  95.    SC=1
  96.    LEV=2
  97.    LIVES=7
  98.    Gosub CHEAT_CHECK
  99. '
  100.    Repeat 
  101.       Gosub SET_UP_LEVEL : Wait Vbl 
  102.       Noise To 1
  103.       Set Envel 0,3 To 50,0
  104.       A$="GAME"+Str$(LEV)
  105.       A$=A$-" "
  106.       Gosub A$
  107. '
  108.       Music Off 
  109.       If LEV>10 Then Amal Freeze : Fade 5 : Wait 70
  110.       Sprite Off : Bob Off 
  111.       Amal Off 
  112.       Sprite Update : Bob Update 
  113.       If LEV<11
  114.          Gosub STAGE_FILLER : Inc LEV : Gosub PRIZES_GALORE
  115.       End If 
  116.    Until LEV>10
  117. '
  118.    Gosub HIGH_SCORE_BIT
  119. Until False
  120. '
  121. GAME2:
  122.     Gosub BCK_HIT
  123. Return 
  124. '
  125. GAME3:
  126.   Repeat 
  127.     Synchro 
  128.     Screen Copy 1,64,COUNT1,74,200 To Logic,64,0
  129.     Screen Copy 1,64,0,74,COUNT1 To Logic,64,200-COUNT1
  130.     Add COUNT1,12,0 To 188
  131.     Screen Copy 1,74,COUNT2,256,200 To Logic,74,0
  132.     Screen Copy 1,74,0,256,COUNT2 To Logic,74,200-COUNT2
  133.     Add COUNT2,16,0 To 184
  134.     Bob Draw 
  135.     Screen Swap 
  136.     Sprite Update 
  137.     CP1=Spritebob Col(0,1 To 5) : Gosub DETCT_COL
  138.   Until Timer>TIM or LEV>10
  139. Return 
  140. '
  141. GAME4:
  142.   OF1=8-Amreg(22) : OF2=200-OF1
  143.   OF3=5-Amreg(22) : OF4=200-OF3
  144.   Repeat 
  145.     Synchro 
  146.     Screen Copy 1,32,COUNT1,128,200 To Logic,32,0
  147.     Screen Copy 1,32,0,128,COUNT1 To Logic,32,200-COUNT1
  148.     Screen Copy 1,128,COUNT2,192,200 To Logic,128,0
  149.     Screen Copy 1,128,0,192,COUNT2 To Logic,128,200-COUNT2
  150.     Screen Copy 1,192,COUNT1,288,200 To Logic,192,0
  151.     Screen Copy 1,192,0,288,COUNT1 To Logic,192,200-COUNT1
  152.     Add COUNT1,OF1,0 To OF2
  153.     Add COUNT2,OF3,0 To OF4
  154.     Bob Draw 
  155.     Screen Swap 
  156.     Sprite Update 
  157.     CP1=(Amreg(23)>110) and(Amreg(23)<210) or(Spritebob Col(0,1 To 1))
  158.     CP1=CP1 and(Amreg(9)=0) : Gosub DETCT_COL
  159.   Until Timer>TIM or LEV>10
  160. Return 
  161. '
  162. GAME5:
  163.   OF1=8-Amreg(22) : OF2=200-OF1
  164.   OF3=-4+Amreg(22) : OF4=200+OF3
  165.   Repeat 
  166.     Synchro 
  167.     Screen Copy 1,32,COUNT1,288,200 To Logic,32,0
  168.     Screen Copy 1,32,0,288,COUNT1 To Logic,32,200-COUNT1
  169.     Screen Copy 1,288,COUNT2,320,200 To Logic,288,0
  170.     Screen Copy 1,288,0,320,COUNT2 To Logic,288,200-COUNT2
  171.     Add COUNT1,OF1,0 To OF2
  172.     Add COUNT2,OF3,0 To OF4
  173.     Bob Draw 
  174.     Screen Swap 
  175.     Sprite Update 
  176.     CP1=(Amreg(2)=2) or(Spritebob Col(0,1 To 1))
  177.     CP1=CP1 and(Amreg(9)=0)
  178.     Gosub DETCT_COL
  179.   Until Timer>TIM or LEV>10
  180. Return 
  181. '
  182. GAME6:
  183.   Repeat 
  184.     Synchro 
  185.     Screen Copy Physic,288,4,320,44 To Logic,288,0
  186.     Screen Copy Physic,288,44,320,200 To Logic,288,40
  187.     Screen Copy Physic,288,0,320,4 To Logic,288,196
  188.     Screen Copy 1,208,COUNT2,288,200 To Logic,208,0
  189.     Screen Copy 1,208,0,288,COUNT2 To Logic,208,200-COUNT2
  190.     Screen Copy 1,0,COUNT1,208,200 To Logic,0,0
  191.     Screen Copy 1,0,0,208,COUNT1 To Logic,0,200-COUNT1
  192.     Add COUNT1,8,0 To 192
  193.     Add COUNT2,2,0 To 198
  194.     Bob Draw 
  195.     Screen Swap 
  196.     Sprite Update 
  197.     CP1=(Amreg(23)>191) or(Spritebob Col(0,1 To 1))
  198.     CP1=CP1 and(Amreg(9)=0) : Gosub DETCT_COL
  199.   Until Timer>TIM or LEV>10
  200. Return 
  201. '
  202. '
  203. GAME7:
  204.   Repeat 
  205.     Synchro 
  206.     Screen Copy 1,0,COUNT1,320,200 To Logic,0,0
  207.     Screen Copy 1,0,0,320,COUNT1 To Logic,0,200-COUNT1
  208.     Add COUNT1,5,0 To 195
  209.     Bob Draw 
  210.     Screen Swap 
  211.     Sprite Update 
  212.     CP1=Spritebob Col(0,1 To 7) : Gosub DETCT_COL
  213.     Amreg(1,8)=Peek(PT)
  214.     Amreg(1,9)=Peek(PT+1)
  215.     Add PT,2
  216.     If Amreg(8,9)=1 Then Add CLCT,10 : Play 1,90,0 : Amreg(8,9)=0
  217.     If Amreg(12)=0 Then Timer=TIM+250 : Fade 4 : FAD_MUS
  218.   Until Timer>TIM or LEV>10
  219. Return 
  220. '
  221. '
  222. GAME8:
  223.   Repeat 
  224.     Synchro 
  225.     Screen Copy Physic,64,8,256,28 To Logic,64,0
  226.     Screen Copy Physic,64,28,256,108 To Logic,64,20
  227.     Screen Copy 1,64,100,256,140 To Logic,64,100
  228.     Screen Copy Physic,0,0,64,1 To Logic,0,199
  229.     Screen Copy Physic,0,1,64,200 To Logic,0,0
  230.     Screen Copy Physic,256,0,320,1 To Logic,256,199
  231.     Screen Copy Physic,256,1,320,200 To Logic,256,0
  232.     Bob Draw 
  233.     Screen Swap 
  234.     Sprite Update 
  235.     CP1=Spritebob Col(0,1 To 2) : Gosub DETCT_COL
  236.     If Amreg(22)=0 Then Bob 2,320-Peek(PT),Peek(PT+1),28
  237.     Bob 1,Peek(PT),Peek(PT+1),28 : Add PT,2
  238.   Until Timer>TIM or LEV>10
  239. Return 
  240. '
  241. GAME9:
  242.   S1=0 : S2=1
  243.   Repeat 
  244.     Synchro 
  245.     Screen Copy 1,241,COUNT0,280,200 To Logic,241,0
  246.     Screen Copy 1,241,0,280,COUNT0 To Logic,241,200-COUNT0
  247.     Screen Copy 1,50,COUNT1,241,200 To Logic,50,0
  248.     Screen Copy 1,50,0,241,COUNT1 To Logic,50,200-COUNT1
  249.     Screen Copy 1,32,COUNT2,50,200 To Logic,32,0
  250.     Screen Copy 1,32,0,50,COUNT2 To Logic,32,200-COUNT2
  251.     Screen Copy 1,0,COUNT3,32,200 To Logic,S1,0
  252.     Screen Copy 1,0,0,32,COUNT3 To Logic,S1,200-COUNT3
  253.     Add COUNT0,-4,0 To 196
  254.     Add COUNT1,2,0 To 198
  255.     Add COUNT2,8,0 To 192
  256.     Add COUNT3,6,0 To 194
  257.     Add S1,S2
  258.     If S1>7 Then S2=-1
  259.     If S1<1 Then S2=1
  260.     Bob Draw 
  261.     Screen Swap 
  262.     Sprite Update 
  263.     CP1=Spritebob Col(0,1 To 1) : Gosub DETCT_COL
  264.   Until Timer>TIM or LEV>10
  265. Return 
  266. '
  267. GAME10:
  268.     Gosub BCK_HIT
  269. Return 
  270. '
  271. BCK_HIT:
  272.    CNT=0
  273.    If LEV=2
  274.          OF1=10-Amreg(22)
  275.       Else 
  276.          OF1=8-Amreg(22) : OF4=12-Amreg(22) : OF5=200-OF4
  277.    End If 
  278.    OF2=OF1+20 : OF3=200-OF1
  279.    Repeat 
  280.     Synchro 
  281.     If LEV=2
  282.          Screen Copy Physic,0,OF1,320,OF2 To Logic,0,0
  283.          Screen Copy Physic,0,OF2,320,200 To Logic,0,20
  284.          Screen Copy 1,0,COUNT2,320,COUNT2+OF1 To Logic,0,OF3
  285.          Add COUNT2,OF1,0 To OF3
  286.     Else 
  287.          Screen Copy Physic,32,OF1,320,OF2 To Logic,32,0
  288.          Screen Copy Physic,32,OF2,320,200 To Logic,32,20
  289.          Screen Copy 1,32,COUNT2,320,COUNT2+OF1 To Logic,32,OF3
  290.          Screen Copy 1,0,COUNT1,32,200 To Logic,0,0
  291.          Screen Copy 1,0,0,28,COUNT1 To Logic,0,200-COUNT1
  292.          Add COUNT1,OF4,0 To OF5
  293.          Add COUNT2,OF1,0 To OF3
  294.     End If 
  295.     Bob Draw 
  296.     Screen Swap 
  297.     Sprite Update 
  298.     Add CNT,1,0 To 3
  299.     If CNT=0 and COUNT2>63
  300.        Add PT,2
  301.        If Peek(PT+1)>0 and Not FADING
  302.           Bob 1,Peek(PT),168,OBJST+Peek(PT+1)
  303.        End If 
  304.     Else 
  305.        Bob Off 1
  306.     End If 
  307.     MX=Amreg(23)
  308.     CP1=(Point(MX,50)<12)
  309.     CP1=CP1 or(Point(MX-7,55)<12)
  310.     CP1=CP1 or(Point(MX+7,55)<12)
  311.     CP1=CP1 and(Amreg(9)=0)
  312.     Gosub DETCT_COL
  313. '
  314.     If Amreg(2)=1
  315.       Inc CLCT
  316.       Play 1,70,0
  317.       Amreg(2)=0
  318.     End If 
  319.   Until Timer>TIM or LEV>10
  320. Return 
  321. '
  322. SET_UP_SCREEN:
  323. If(LEV mod 4)=0 Then Load "lament.abk"
  324. If(LEV mod 4)=1 Then Load "cag.abk"
  325. If(LEV mod 4)=2 Then Load "broken.abk"
  326. If(LEV mod 4)=3 Then Load "chaos.abk"
  327. Screen 0
  328. Autoback 1 : Colour 0,0 : Cls 0 : Autoback 0
  329. If LEV=2 Then Load "bushbeg.abk",5 : Unpack 5 To 1
  330. If LEV=3 Then Load "trojans.abk",5 : Unpack 5 To 1
  331. Screen 0
  332. Screen Copy 1 To Logic
  333. Erase 5 : Load F$,5 : Unpack 5 To 1 : Colour 0,0
  334. Get Sprite Palette %11111111111111110000000000000000
  335. If LEV=2 Then Erase 5 : Load "lev1.abk",5 : Colour 8,$333
  336. If LEV=7 Then Erase 5 : Load "lev3.abk",5
  337. If LEV=8 Then Erase 5 : Load "lev2.abk",5
  338. If LEV=10 Then Erase 5 : Load "lev4.abk",5 : Colour 8,$333
  339. PT=Start(5)
  340. Screen 0
  341. Get Palette 1
  342. If LEV<>2 and LEV<>3 Then Screen Copy 1 To Logic
  343. Gosub ROLL_ON_SCREEN
  344. If LEV=3 Then Screen Copy 1 To Logic
  345. If LEV=2 Then Sprite 0,X Hard(0,120),Y Hard(0,50),11
  346. Sprite Update 
  347. If LEV=2
  348.    Wait 100
  349.    Play 14,7,12
  350.    Play 14,7,5
  351.    Play 14,7,5
  352.    Play 14,7,12
  353.    Play 14,7,12
  354.    Play 14,9,12
  355.    Play 14,7,12
  356.    Play 14,11,12
  357.    Repeat : Until Joy(1)<>0
  358. End If 
  359. Timer=0
  360. Autoback 0
  361. Music 1 : Tempo 17 : Mvolume 63
  362. Return 
  363. '
  364. DETCT_COL:
  365.    If CP1
  366.      If SAFE<1 and Timer<TIM2
  367.        Amreg(2)=0
  368.        Shoot 
  369.        Gosub LOSE_A_LIFE
  370.      End If 
  371.    End If 
  372.    If Timer>TIM2
  373.      If FADING and(MV>1) : Mvolume MV : Dec MV : End If 
  374.      If Not FADING : FADING=True : Fade 7 : MV=63 : End If 
  375.      If LEV<>7 : Sprite 0,,Y Sprite(0)+4, : End If 
  376.    End If 
  377.    If SAFE>0 Then Dec SAFE
  378.    Inc TS
  379. Return 
  380. '
  381. STAGE_FILLER:
  382. CLCT=CLCT*10
  383. Load "lament.abk"
  384. Erase 5
  385. Load "dsc8.abk",5
  386. Unpack 5 To 1
  387. Screen 0 : Autoback 1 : Cls 0
  388. Screen To Front 0
  389. Flash Off : Curs Off 
  390. Screen Copy 1,160,150,314,200 To Physic,80,150
  391. Screen Copy 1,160,150,314,200 To Logic,80,150
  392. Pen 15
  393. Locate 11,2 : Print "END OF LEVEL";LEV-1
  394. Locate 11,5 : Pen 4 : Print "SCORE: "
  395. Locate 11,7 : Print "BONUS: "
  396. Locate 11,9 : Print " CASH..."
  397. Locate 11,12 : Print "LIVES: ";LIVES
  398. Music 1 : Tempo 17 : Mvolume 63
  399. Fade 8 To 1 : Wait 50
  400. Pen 6
  401. For F=1 To TS Step 10
  402.    Add SC,100 : Add TS,-10
  403.    Locate 25-Len(Str$(SC)),5 : Print SC : Locate 25-Len(Str$(TS)),7
  404.    If TS>0 Then Print TS : Else Print 0
  405. Next F
  406. Pen 6
  407. If CLCT>0
  408.    For F=1 To CLCT
  409.       Add SC,100 : Locate 25-Len(Str$(F)),9 : Print F
  410.    Next F
  411. End If 
  412. Locate 2,20 : Pen 10 : Print "FIRE!" : Locate 32,20 : Print "FIRE!";
  413. Repeat 
  414. Until Fire(1)
  415. Autoback 0
  416. Screen To Front 0
  417. Fade 3
  418. SC_ST=Y Hard(0,0)
  419. Screen Hide 1
  420. MV=63
  421. For G=2 To 200 Step 4
  422.    Screen Display 0,,G+SC_ST,,
  423.    Dec MV : Mvolume MV
  424.    View 
  425.    Wait Vbl 
  426. Next G
  427. Music Off 
  428. Screen Display 0,,SC_ST,,
  429. Screen Show 1 : View : Wait 20
  430. Return 
  431. '
  432. PRIZES_GALORE:
  433. Load "cag.abk"
  434. Screen 0
  435. Autoback 1 : Cls 0 : Autoback 0
  436. Get Palette 1 : PRZ=LEV-1
  437. If PRZ=2 Then Screen Copy 1,0,0,80,50 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
  438. If PRZ=3 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
  439. If PRZ=4 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,50,160,100 To Physic,160,20
  440. If PRZ=5 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
  441. If PRZ=6 Then Screen Copy 1,0,100,80,150 To Physic,80,20 : Screen Copy 1,80,100,160,150 To Physic,160,20
  442. If PRZ=7 Then Screen Copy 1,0,100,80,150 To Physic,80,20 : Screen Copy 1,80,50,160,100 To Physic,160,20
  443. If PRZ=8 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,0,150,80,200 To Physic,160,20
  444. If PRZ=9 Then Screen Copy 1,0,50,80,100 To Physic,80,20 : Screen Copy 1,80,0,160,50 To Physic,160,20
  445. If PRZ=10 Then Screen Copy 1,80,150,160,200 To Physic,120,20 : Add SC,LIVES*1000
  446. Screen Copy Physic To Logic
  447. Wait 25
  448. Pen 15 : Locate 0,1 : Centre T$(1)
  449. For F=1 To 5
  450.    Locate 0,F*2+8 : Pen 15 : Centre T$(1+F)
  451. Next F
  452. Music 1 : Tempo 17 : Mvolume 63
  453. Appear Logic To Physic,51
  454. Repeat : Until Fire(1)
  455. Fade 4 : FAD_MUS : Return 
  456. '
  457. LOSE_A_LIFE:
  458. HOLD=Timer
  459. If CHEAT<>1 Then Dec LIVES
  460. If LEV<>7 and LEV<>8
  461.    B_X=100
  462.    B_Y=Y Screen(0,Y Sprite(0))+32
  463.    B_W=160
  464.    If B_Y+100>199
  465.       B_H=200-B_Y
  466.    Else 
  467.       B_H=100
  468.    End If 
  469.    Wait Vbl : Screen Swap 
  470.    If LEV=2 or LEV=10
  471.       Get Block 1,B_X,B_Y,B_W,B_H
  472.    End If 
  473.    Paste Bob B_X,B_Y,CRASH
  474.    Screen Swap : Wait Vbl 
  475. End If 
  476. Boom : For F=1 To 30 : Play 60-F,1 : Play 10+F,0 : Next F : Shoot 
  477. Wait Vbl : Screen Swap 
  478. If LEV=2 or LEV=10
  479.    Put Block 1,B_X,B_Y
  480.    Del Block 
  481. End If 
  482. Screen Swap 
  483. SAFE=22 : If LEV=5 Then SAFE=10
  484. Timer=HOLD : Add TS,-100 : If LIVES<1 Then LEV=12 : Add SC,TS : Timer=TIM
  485. Return 
  486. '
  487. HIGH_SCORE_BIT:
  488. Load "chaos.abk"
  489. If SC<1 and TIM<>0 Then SC=50
  490. If SC>HGH(8)
  491.    Erase 5
  492.    Screen 1
  493.    Colour 0,0 : Colour 1,0 : Curs Off : Flash Off : Colour 3,0
  494.    Paper 0 : Pen 1 : Clw 
  495.    Clw : Screen To Front 1 : View 
  496.    Fade 5,0,$FFF,,,,,,,,,,,,,,
  497.    Clear Key 
  498.    Locate 1,10 : Print "ENTER YOUR NAME...";
  499.    SC$=""
  500.    L=1
  501.    Do 
  502.       A$=Upper$(Inkey$)
  503.       L=Len(SC$)
  504.       If(Scancode=65) and(L>0) : SC$=Left$(SC$,L-1) : End If 
  505.       If(L<8) and(A$>=" ")
  506.          SC$=SC$+A$
  507.       End If 
  508.       Locate 20,10 : Print SC$;" "
  509.       Exit If A$=Chr$(13)
  510.    Loop 
  511.    SC$=SC$+"        " : SC$=Left$(SC$,8)
  512.    Fade 4 : Wait 70
  513.    CHEAT=0-(SC$="HORTON I")
  514.    Screen 0 : Autoback 1 : Cls 0 : Autoback 0 : Screen To Front 0 : View 
  515.    For F=8 To 1 Step -1
  516.       If SC>HGH(F)
  517.          HGH(F+1)=HGH(F) : HGH$(F+1)=HGH$(F) : HGH(F)=SC : HGH$(F)=SC$
  518.       End If 
  519.    Next F
  520. End If 
  521. Erase 5
  522. Load "dsc8.abk",5
  523. Unpack 5 To 1
  524. Screen 0 : Curs Off : Flash Off : Cls 0 : Screen To Front 0 : View 
  525. Music 1 : Tempo 17 : Mvolume 63
  526. Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  527. Autoback 1 : Cls 0 : View 
  528. For F=1 To 8 : Locate 20,(F*2)+1
  529. Pen 4 : If F<5 Then Pen 6 : If F=1 Then Pen 15
  530. Print F;" ";HGH$(F);HGH(F) : Next F
  531. Fade 5 To 1
  532. View 
  533. Autoback 0
  534. A$=Str$(SKILL+1)-" "
  535. Locate 5,20 : Print "Difficulty(Hard 1-3 Normal):";A$;"  "
  536. Screen Copy 1,160,121,320,130 To Logic,90,1
  537. Screen Copy 1,160,0,320,120 To Logic,0,24
  538. Wait 10
  539. Appear Logic To Physic,51
  540. Autoback 1
  541. Repeat 
  542.    A$=Inkey$
  543.    If(A$>"0") and(A$<"4") Then SKILL=Val(A$)-1
  544.    Add A,1,0 To 10
  545.    If A=0
  546.       If Jdown(1) : Add SKILL,-1,0 To 2 : End If 
  547.       If Jup(1) : Add SKILL,1,0 To 2 : End If 
  548.    End If 
  549.    A$=Str$(SKILL+1)-" "
  550.    Locate 33,20 : Print A$
  551.    Wait Vbl 
  552. Until Fire(1)
  553. Fade 4
  554. FAD_MUS
  555. Cls 0
  556. Return 
  557. '
  558. Procedure FAD_MUS
  559.    For MV=63 To 1 Step -1
  560.       Mvolume MV
  561.       Wait Vbl 
  562.    Next MV
  563.    Music Off 
  564. End Proc
  565. '
  566. ROLL_ON_SCREEN:
  567. F=0
  568. F1=8
  569. F2=1
  570. Noise To 1
  571. Set Envel 0,3 To 50,0
  572. Do 
  573.    MV=F : Ror.l 2,MV : MV=MV and $FF : Add MV,10
  574.    Play 1,MV,0
  575.    Screen Copy Logic,0,F,320,F2 To Physic,0,F
  576.    C0=F1 : C1=F1 : Inc C1
  577.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  578.    Add C0,4 : Add C1,4 : Dec F1
  579.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  580.    Add C0,3 : Add C1,3 : Dec F1
  581.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  582.    Add C0,2 : Add C1,2 : Dec F1
  583.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  584.    Add C0,1 : Add C1,1 : Dec F1
  585.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  586.    Add C0,1 : Add C1,1 : Dec F1
  587.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  588.    Add C0,2 : Add C1,2 : Dec F1
  589.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  590.    Add C0,3 : Add C1,3 : Dec F1
  591.    Screen Copy Logic,0,C0,320,C1 To Physic,0,F1
  592.    Inc F : Inc F2 : Add F1,8
  593.    Exit If F>200
  594. Loop 
  595. Return 
  596. '  
  597. CHEAT_CHECK:
  598. If Mouse Key
  599.    Screen To Front 1
  600.    Screen 1
  601.    Clear Key 
  602.    Colour 0,0 : Colour 1,$FFF : Colour 3,0
  603.    Flash 2,"(F00,2)(0F0,2)(F0F,2)(FF0,2)(00F,2)(0FF,2)"
  604.    Paper 0 : Clw : View 
  605.    Pen 2 : Locate 0,10
  606.    Print : Centre "Lorna 'Jam' Vickrage!!!!!!!!!"
  607.    Print : Centre "Champion"
  608.    Print : Centre "Colour clasher!"
  609.    Print : Print 
  610.    Pen 1
  611.    Print "Fast :";Hex$(Fast Free,8);" ";Fast Free
  612.    Print "Chip :";Hex$(Chip Free,8);" ";Chip Free
  613.    Print "Total:";Hex$(Chip Free+Fast Free,8);" ";Chip Free+Fast Free
  614.    Print "Level(1-9):";
  615.    Repeat 
  616.       A$=Inkey$
  617.    Until(A$>"0") and(A$<="9")
  618.    Print A$ : LEV=Val(A$)+1
  619.    Print "Infinite lives(Y/N):";
  620.    Repeat 
  621.       A$=Upper$(Inkey$)
  622.    Until(A$="Y") or(A$="N")
  623.    Print A$
  624.    CHEAT=(A$="Y") and 1
  625.    Flash Off : Fade 4 : Wait 70
  626.    Screen 0 : Screen To Front 0 : View 
  627. End If 
  628. Return 
  629. '
  630. SET_UP_LEVEL:
  631.    Bob Off : Sprite Off : Amal Off 
  632.    Sprite Update : Bob Update 
  633.    For I=1 To 12 : Set Bob I,-1,%1111,%11001010 : Next I
  634.    TIM=0
  635.    Colour 0,$0
  636.    TIM=5900 : TS=0 : CLCT=0 : SAFE=0
  637.    Cls 0
  638.    Colour 0,$0
  639.    Restore "L"+Str$(LEV)-" "
  640.    Erase 1
  641.    A$="SP"+Str$(LEV-1)+".ABK"
  642.    A$=A$-" "
  643.    Load A$,1
  644.    Gosub OBTAIN_DATA
  645. '
  646.    Timer=0
  647.    Gosub SET_UP_SCREEN
  648.    CP1=False
  649.    Amreg(2)=0
  650.    If LEV=2
  651.       TIM=5700 : CRASH=31 : OBJST=31
  652.       SKID=10
  653.       Sprite 6,220,250,28
  654.       Amal 14,A$(7)
  655.    End If 
  656.    If LEV=3
  657.       TIM=2000 : CRASH=36
  658.       For I=1 To 5 : Bob I,240,159,28 : Amal I,A$(I) : Next I
  659.       SKID=10
  660.    End If 
  661.    If LEV=4
  662.       TIM=3000 : CRASH=29
  663.       Bob 1,212,212,28 : Amal 1,A$(6) : SKID=6
  664.    End If 
  665.    If LEV=5
  666.       TIM=4000 : CRASH=31
  667.       Bob 1,84,200,28
  668.       Bob 2,100,130,29
  669.       Bob 3,144,130,30
  670.       Amal 1,A$(13)
  671.       Amal 2,A$(10)
  672.       Amal 3,A$(11)
  673.       Amal 15,A$(12)
  674.       SKID=3
  675.    End If 
  676.    If LEV=6
  677.       TIM=4500 : CRASH=29
  678.       SKID=1 : CARI=2
  679.       Bob 1,8,-200,28
  680.       Amal 1,A$(14)
  681.    End If 
  682.    If LEV=7
  683.       TIM=5000
  684.       For I=1 To 7 : Bob I,-100,-100,29 : Amal I,A$(I+15) : Next I
  685.       Amreg(12)=7
  686.       Bob 8,-70,-70,28
  687.       Amal 8,A$(15)
  688.       Amal 15,A$(23)
  689.       SKID=1
  690.    End If 
  691.    If LEV=8
  692.       TIM=2900
  693.       Amal 15,A$(24)
  694.       SKID=3
  695.    End If 
  696.    If LEV=9
  697.       TIM=3000 : CRASH=30
  698.       SKID=1
  699.       Bob 1,74,210,28
  700.       Amal 1,A$(25)
  701.    End If 
  702.    If LEV=10
  703.       TIM=5700 : CRASH=36 : OBJST=36
  704.       SKID=6
  705.       Sprite 6,200,300,28
  706.       Amal 14,A$(7)
  707.    End If 
  708. '
  709.    Make Mask 
  710.    Synchro Off 
  711.    X=88 : Y=50 : BOARD=1
  712.    If LEV=7 or LEV=8 Then Y=122 : X=94 : BOARD=25
  713.    If LEV=3 Then X=176
  714.    If LEV=6 Then Y=60 : X=20
  715.    Add TIM,-TIM/3
  716.    TIM2=TIM-100
  717.    If LEV<>5 and LEV<>7 and LEV<>8
  718.       Amal 15,A$(8) : Amal 12,A$(9)
  719.       Amreg(12,0)=X : Amreg(12,1)=Y : Amreg(12,2)=BOARD
  720.       If LEV<>2 and LEV<>3 and LEV<>9
  721.          Amreg(12,9)=1
  722.       Else 
  723.          Amreg(12,9)=0
  724.       End If 
  725.    End If 
  726.    Amreg(15,7)=XMIN
  727.    Amreg(15,8)=XMAX
  728.    Amreg(11)=LEV
  729.    Amreg(15,5)=SKID/3
  730.    Amreg(15,6)=SKID/2
  731.    If SKID=1 Then Amreg(15,5)=1 : Amreg(15,6)=1
  732. '
  733.    Amreg(15,0)=X : Amreg(15,1)=Y : Amreg(15,2)=BOARD
  734.    ADSKT=0
  735.    If LEV=2
  736.       Amreg(9)=1
  737.    Else 
  738.       Amreg(9)=0
  739.    End If 
  740.    Amal On 
  741.    FADING=False
  742.    Amreg(22)=SKILL
  743. Return 
  744. '
  745. OBTAIN_DATA:
  746.    Read F$,XMIN,XMAX
  747.    For F=1 To 6 : Read T$(F) : Next F
  748.    COUNT0=0 : COUNT1=0 : COUNT2=0 : COUNT3=0
  749. Return 
  750. '
  751. L2:
  752. Data "BUSHES.ABK",0,320
  753. Data "TROJAN GATE BRIDGE","Race the trojans..."
  754. Data "Move left and right to dodge the bombs","TURBO WHEELS ARE NOW ACTIVE!"
  755. Data " "," "
  756. '
  757. L3:
  758. Data "TROJANS2.ABK",118,204
  759. Data "BROKEN TRANSIT BRIDGE","Use power flip board to cross sides"
  760. Data "FIRE ACTIVATES FLIP ","AVOID HOLES "," Don 't misjudge jump"," "
  761. '
  762. L4:
  763. Data "TRANSIT.ABK",64,256
  764. Data "RAILROAD GLIDE","Power glide rail slide..."
  765. Data "Keep balance with left & right","Fire to flip to other side"," "," "
  766. '
  767. L5:
  768. Data "RAILROAD.ABK",0,320
  769. Data "MANIC METROPOLIS","Avoid Cars...","JUMP and STEER LEFT/RIGHT"
  770. Data " "," "," "
  771. '
  772. L6:
  773. Data "HOLE.ABK",20,200
  774. Data "AIR-O-PEDE","Move proportionally...","all directions..."
  775. Data "Fire to launch hydrobomb","Bomb follows your trajectory"
  776. Data "Destroy all AIR-O-PEDE segments"
  777. '
  778. L7:
  779. Data "MUSHROOM.ABK",0,320
  780. Data "STRATOSNAKE","Move proportionally left/right","Docking rails on ship"
  781. Data "Dodge snake when it lunges"," "," "
  782. '
  783. L8:
  784. Data "FIRESEA.ABK",94,226
  785. Data "DESERT GRIND","Steer sharply with GRIND-X Trucks","Dodge Bikes"
  786. Data "WARNING:","THE TUFTEX BOARD IS RIGID ",""
  787. '
  788. L9:
  789. Data "DESERTG.ABK",40,220
  790. Data "STREET PARTY","Dodge obstacles","collect coins","Flip Carefully"
  791. Data " "," "
  792. '
  793. L10:
  794. Data "SEAROAD.ABK",44,256
  795. Data "CONGRATULATIONS","You have completed the run","BONUS=1000 x LIVES LEFT"
  796. Data "Eternal Glory is yours"," ","Your tribe were welcomed home !"