home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 076-100 / apd099 / watscof1.amos / watscof1.amosSourceCode
AMOS Source Code  |  1978-01-16  |  6KB  |  253 lines

  1. Load "crsong3.abk"
  2. Load "chars.abk"
  3. Screen Open 0,320,160,4,0
  4. Palette 0,0 : Hide : Cls 0 : Flash Off 
  5. Screen Open 1,320,100,16,0 : Curs Off : Cls 0
  6. Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  7. Load Iff "benson.iff" : Flash Off : Curs Off 
  8. Screen Open 2,340,10,2,0
  9. Curs Off : Ink 1,0 : Doke 0,0
  10. Degree 
  11. Dim SYY(180),CL(32),SYN1(32),SYN2(16),WAT(48),WAT1(48),GOLD(64),BACK(64)
  12. Global SYY(),SYN1(),BACK(),GOLD(),WAT(),WAT1(),P
  13. SETSYN
  14. For I=1 To 32
  15.    SYN1(I)=8+Sin((I)*11)*4
  16.    Read CL(I)
  17.    CL(I)=0
  18. Next I
  19. For I=1 To 16
  20.    SYN2(I)=8+Sin((I)*11)*4
  21. Next I
  22. Restore WATER
  23. For I=1 To 48
  24.    Read WAT(I)
  25. Next I
  26. For I=1 To 48
  27.    Read WAT1(I)
  28. Next I
  29. Restore BACK
  30. For I=1 To 48
  31.    GOLD(I)=((I-1)/4)*$1
  32.    Read BACK(I)
  33. Next I
  34. COPSET
  35. Def Scroll 1,70,0 To 230,96+48,,-1
  36. Def Scroll 2,0,1 To 332,8,-2,0
  37. For I=1 To 67
  38.    Set Bob I,1,%10,
  39. Next I
  40. Restore TXT
  41. Screen 0
  42. TP$="Nearly finished so some cheerz to:                   BEAN for graphics (BENSON logo) CRYPTO demo disk for the music (hope you dont mind"
  43. TP$=TP$+" me stealing it), Tech support at DATABASE, Richard Vanner for sorting out the dual playfield problem, AMOS user club for answering my questions"
  44. TP$=TP$+" and Francois for producing the best language I have yet seen. "
  45. TP$=TP$+"                                   Is there anyone out there that would do me some music or graphics for a game I am working on "
  46. TP$=TP$+" cos mine are crap and nobody I know can do it. If so then call me on 0343-541210 "
  47. TP$=TP$+" after 5pm or at weekends.                                       !"
  48. Music 1
  49. Do 
  50.    Read TX$
  51.    If TX$="end" Then Restore BYE : Read TX$
  52.    MID=(Len(TX$)*32)/2 : MID=150-MID
  53.    For S=0 To 31
  54.       If Mouse Key=1 Then Direct 
  55.       If S<Len(TX$)
  56.          Paste Bob S*32+MID,64-S+48,Asc(Mid$(TX$,S+1,1))
  57.       End If 
  58.       Add ZZ,1,1 To 4
  59.       Add CIR,1,1 To 178*2
  60.       If ZZ=1
  61.          Add AN,1,1 To 31
  62.          Bob 1,0,SYY(CIR/2),AN
  63.          Bob 2,250,SYY(CIR/2),AN
  64.       End If 
  65.       Add TS,1,1 To 4
  66.       Screen 2
  67.       If TS=1
  68.          Inc TC
  69.          If Mid$(TP$,TC,1)="!"
  70.             TC=1
  71.          End If 
  72.          Text 322,7,Mid$(TP$,TC,1)
  73.       End If 
  74.       Scroll 2
  75.       Screen 0
  76.       Wait Vbl 
  77.       Scroll 1
  78.    Next S
  79. Loop 
  80. Data $0,$111,$222,$333,$444,$555,$666,$777,$888,$999,$AAA,$BBB,$CCC,$DDD,$EEE,$FFF
  81. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$0
  82. WATER:
  83. Data 8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,5,5,4,4,4,4,4,4,4,3,3,3,3,3,3,3,2,2,2,2,2,2,1,1,1,1,1
  84. Data $1,$1,$1,$1,$2,$2,$2,$2,$3,$3,$3,$3,$4,$4,$4,$4,$5,$5,$5,$5,$6,$6,$6,$6,$7,$7,$7,$7,$8,$8,$8,$8,$9,$9,$A,$A,$B,$B,$C,$C,$D,$D,$E,$E,$F,$F,$F,$F
  85. BACK:
  86. Data $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F,$F
  87. Data $10F,$20F,$30F,$40F,$50F,$60F,$70F,$80F,$90F,$A0F,$B0F,$C0F,$D0F,$E0F,$F0F
  88. Data $F1F,$F2E,$F3D,$F4C,$F5B,$F6A,$F79,$F88,$F97,$FA6,$FB5,$FC4,$FD3,$FE2,$FF1,$FF1,$FF1,$FF1,$FF1
  89. BENSON:
  90. Data 0,0,$400,$600,$800,$A00,$C00,$E00,$E10,$E20,$E30,$E40,$E50,$E60,$E70,$E80
  91. TXT:
  92. Data "WELL"
  93. Data "THIS"
  94. Data "IS"
  95. Data "THE"
  96. Data "LAST"
  97. Data "BIT"
  98. Data ""
  99. Data "I"
  100. Data "HOPE"
  101. Data "YOU"
  102. Data "LIKED"
  103. Data "THE"
  104. Data "DEMO"
  105. BYE:
  106. Data "."
  107. Data "."
  108. Data "."
  109. Data "."
  110. Data "."
  111. Data "."
  112. Data "BYE"
  113. Data "end"
  114. Procedure MAKESCROL[STRT,FINISH]
  115.    Wait Vbl 
  116.    For Y=STRT To FINISH
  117.       Add RD,$100,$500 To $F00
  118.       Inc P
  119.       Add SY,1,1 To 32
  120.       Cop Wait 0,Y+106
  121.       Cop Move $102,SYN1(SY)+((SYN1(SY)*16))
  122.       '      Cop Move $102,((SYN1(SY))*32)+SYN1(SY)
  123.       Cop Move $180,BACK(P/2)
  124.       Cop Move $182,GOLD(P/2)
  125.       Cop Move $184,BACK(48-(P/2))
  126.    Next Y
  127. End Proc
  128. Procedure COPSET
  129.    Copper Off 
  130.    Cop Move $102,0
  131.    Cop Move $104,0
  132.    Cop Move $108,2
  133.    Cop Move $10A,2
  134.    Cop Move $8E,$3081
  135.    For I=$120 To $13E
  136.       Cop Move I,0
  137.    Next I
  138.    Cop Move $90,$30C1
  139.    Cop Move $92,$38
  140.    'Cop Move $94,$D3  
  141.    Screen 2
  142.    Cop Move $182,$AAA
  143.    Cop Wait 0,48
  144.    Cop Move $182,$CCC
  145.    Cop Move $180,$300
  146.    Cop Move $102,1
  147.    Cop Movel $E0,Logbase(0)
  148.    Cop Move $100,$1200
  149.    Cop Move $96,$8180
  150.    Cop Wait 0,49
  151.    Cop Move $180,$500
  152.    Cop Move $102,2
  153.    Cop Wait 0,50
  154.    Cop Move $180,$700
  155.    Cop Move $102,3
  156.    Cop Wait 0,51
  157.    Cop Move $180,$900
  158.    Cop Move $102,4
  159.    Cop Wait 0,52
  160.    Cop Move $180,$B00
  161.    Cop Move $102,5
  162.    Cop Wait 0,53
  163.    Cop Move $180,$B00
  164.    Cop Move $102,6
  165.    Cop Wait 0,54
  166.    Cop Move $180,$900
  167.    Cop Move $102,7
  168.    Cop Wait 0,55
  169.    Cop Move $180,$700
  170.    Cop Move $102,8
  171.    Cop Wait 0,56
  172.    Cop Move $180,$500
  173.    Cop Move $102,9
  174.    Cop Wait 0,57
  175.    Cop Move $180,$300
  176.    Cop Move $102,10
  177.    Screen 1
  178.    Cop Move $182,$AAA
  179.    Cop Wait 0,58
  180.    Cop Move $182,$CCC
  181.    Cop Move $180,$300
  182.    Cop Move $102,0
  183.    Cop Movel $E0,Logbase(0)
  184.    Cop Movel $E4,Logbase(1)
  185.    Cop Movel $E8,Logbase(2)
  186.    Cop Movel $EC,Logbase(3)
  187.    Cop Move $100,$4200
  188.    Cop Move $96,$8180
  189.    Cop Move $108,0
  190.    Cop Move $10A,0
  191.    Screen 0
  192.    'Cop Move $94,$D3  
  193.    Restore BENSON
  194.    CL=0
  195.    For I=$182 To $19E Step 2
  196.       Rem Read CL
  197.       Inc CL
  198.       Cop Move I,CL*$111
  199.    Next I
  200.    For I=0 To 2
  201.       For CL=0 To 15
  202.          Cop Wait 0,58+(I*32)+CL
  203.          CO=(CL*$1)+3 : If CO>15 Then CO=15
  204.          Cop Move $180,CO
  205.       Next CL
  206.       For CL=0 To 15
  207.          Cop Wait 0,58+(I*32)+CL+16
  208.          CO=(15-(CL*$1))+3 : If CO>15 Then CO=15
  209.          Cop Move $180,CO
  210.       Next CL
  211.    Next I
  212.    Cop Wait 0,154
  213.    Cop Move $108,0
  214.    Cop Move $10A,0
  215.    Cop Move $182,0
  216.    Cop Move $184,$999
  217.    Cop Move $186,$999
  218.    Wait Vbl 
  219.    Cop Movel $E0,Logbase(0)
  220.    Wait Vbl 
  221.    Cop Movel $E4,Logbase(1)
  222.    '1200
  223.    Cop Move $100,$2200
  224.    Cop Move $96,$8180
  225.    '
  226.    '
  227.    MAKESCROL[48,79]
  228.    MAKESCROL[80,111]
  229.    MAKESCROL[112,143]
  230.   Cop Move $182,0
  231.    For Y=144 To 144+48
  232.       Cop Wait 0,Y+96
  233.       Cop Movel $E0,Logbase(0)+4080-((Y-143)*80)
  234.       Cop Movel $E4,Logbase(1)+4080-((Y-143)*80)
  235.       Add P,1,1 To 10
  236.       A=8+Sin(P)*24
  237.       Cop Move $102,((A)*16)+A
  238.       Cop Move $180,WAT1(Y-144)
  239.       Cop Move $182,WAT(Y-144)
  240.       Cop Move $182,WAT(Y-144)
  241.    Next Y
  242.    Cop Movel $E0,Logbase(0)+5760
  243.    Cop Move $180,0
  244.    Cop Move $182,$0
  245.    Cop Wait 254,255
  246.    Cop Swap 
  247.    Wait Vbl 
  248. End Proc
  249. Procedure SETSYN
  250.    For I=0 To 359 Step 2
  251.       SYY(I/2)=42+(30*Cos(I))
  252.    Next I
  253. End Proc