home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / demos / demo2.amos / demo2.amosSourceCode < prev    next >
AMOS Source Code  |  1994-01-01  |  5KB  |  172 lines

  1. '
  2. '
  3. ' Programmed By Gary Shilvock 1990 
  4. '
  5. '
  6. DRAGONS
  7. '
  8. '
  9. '
  10. Procedure DRAGONS
  11.    Gosub SETUP : Rem do all the setup routines
  12.    Gosub SCR0LL : Rem do the scroll
  13.    Goto DEMO_END : Rem finish off 
  14.    '
  15.    SETUP:
  16.    Rem check for memory expansion or a 1meg agnus 
  17.    '
  18.    ' if you have expansion ram available the variable 'MEG' is set to TRUE
  19.    MEG=False
  20.    If((Fast Free+Chip Free)/1024)>512
  21.       MEG=True
  22.    End If 
  23.    Load "df0:full demos/demo2.pic",6
  24.    If MEG=True
  25.       Load "df0:full demos/demo2.music",3
  26.    End If 
  27.    Close Editor 
  28.    Close Workbench : Rem free some memory 
  29.    Rem open the window on which the scrolling will take place 
  30.    WIDTH=640
  31.    M0DE=Hires
  32.    Screen Open 3,WIDTH,16,2,M0DE : Curs Off : Palette $0,$FFF
  33.    Rem position it
  34.    Screen Display 3,130,0,,
  35.    Curs Off : Hide 
  36.    Rem turn up the volume to full 
  37.    If MEG=True
  38.       Mvolume 63
  39.    End If 
  40.    Rem turn off the filter
  41.    Led Off 
  42.    Rem unpack and display the bitmap
  43.    Unpack 6 To 0
  44.    Screen 3
  45.    FIND_A_FONT:
  46.    Rem load font data from disk 
  47.    Get Disc Fonts 
  48.    For TEMP=1 To 100
  49.       A$=Font$(TEMP)
  50.       If Mid$(A$,0,11)="garnet.font" : Rem is it the one i want 
  51.          If Mid$(A$,31,1)="9" : Rem and the size i want ?
  52.             F0NT=TEMP : Rem yep, so set the variable F0nt to the font number 
  53.             Goto SETFNT : Rem and set the font 
  54.          End If 
  55.       End If 
  56.       Rem this happens if i cant find a garnet font on your  
  57.       Rem amos disk
  58.       If A$=""
  59.          Screen 3 : Palette $0,$FFF
  60.          Screen Display 3,130,130,,
  61.          Bell 
  62.          Centre "Problem Locating Font. Defaulting To Topaz."
  63.          Wait 100
  64.          Rem set font to bold,italic topaz
  65.          F0NT=0 : Set Text 6
  66.          Exit 
  67.       End If 
  68.    Next 
  69.    SETFNT:
  70.    Set Font F0NT : Rem set font 
  71.    If MEG=True
  72.       Music 1
  73.    End If 
  74.    Screen Show 0 : Screen 0
  75.    Screen 3
  76.    Return 
  77.    '
  78.    '
  79.    SCR0LL:
  80.    Screen To Front 3 : Screen 3
  81.    Restore TXT : Rem point to our text
  82.    COUNT=0 : Rem temp label 
  83.    DIZZY:
  84.    PRESSED=False : Rem 'no mouse button pressed yet' flag 
  85.    Read DAT$ : Rem get a line of text 
  86.    If DAT$="End Of Scroll" : Rem is it a special command? 
  87.       Restore TXT : Rem if it was,point to the begining of our text again
  88.       Read DAT$ : Rem you need this otherwise it will print 'End Of Scroll'  
  89.       Rem and we dont want that to appear
  90.    End If 
  91.    If DAT$="Fade Music Down" : Rem another special command? 
  92.       If MEG=True
  93.          For A=63 To 0 Step -1
  94.             Mvolume A : Wait 1 : Rem fade music to volume 0 
  95.          Next 
  96.       End If 
  97.       Read DAT$ : Rem get next line of text
  98.    End If 
  99.    If DAT$="Filter On" : Rem another special command ?
  100.       Bclr %1,$BFE001 : Rem set the filter (Led on would have worked just as well) 
  101.       Read DAT$ : Rem get next line
  102.    End If 
  103.    If DAT$="Filter Off" : Rem special command ?
  104.       Bset %1,$BFE001 : Rem led off would also work
  105.       Read DAT$ : Rem get next line of text
  106.    End If 
  107.    If DAT$="Fade Music Up" : Rem speocal command ?
  108.       If MEG=True
  109.          For A=0 To 63
  110.             Mvolume A : Wait 1 : Rem Increase from Volume 0 To Volume 63  
  111.          Next 
  112.       End If 
  113.       Read DAT$ : Rem get next line of text  
  114.    End If 
  115.    Cls 0 : Rem at this point the screen is not visible, so its ok to clear it 
  116.    L=Text Length(DAT$) : Rem find length of text to be printed
  117.    XPOS=WIDTH-L : Rem take length from screen width
  118.    XPOS=XPOS/2 : Rem and divide by 2 - this roughly centres the text
  119.    Text XPOS,12,DAT$ : Rem on the screen
  120.    For A=0 To 60
  121.       Screen Display 3,,A,, : Rem move the screen down into view 
  122.       Wait Vbl 
  123.    Next 
  124.    For PAWS=0 To 100
  125.       If Mouse Click=1 : Rem wait, checking for a mouse click 
  126.          Goto OUT
  127.       End If 
  128.       Wait Vbl 
  129.    Next 
  130.    For A=60 To 0 Step -1
  131.       Screen Display 3,,A,, : Rem scroll the screen out of view
  132.       Wait Vbl 
  133.    Next 
  134.    Goto DIZZY : Rem and get the next piece of text and repeat the above
  135.    Rem procedure until someone hits a mouse button
  136.    OUT:
  137.    Return 
  138.    Rem the data for the scroll
  139.    TXT:
  140.    Data "Welcome To "
  141.    Data "The Dragon Demo"
  142.    Data "If you only have 521k there is no music....."
  143.    Data " "
  144.    Data "You Can Also Use Imbedded Commands...."
  145.    Data "For Example...Fade The Music Down"
  146.    Rem a special command
  147.    Data "Fade Music Down"
  148.    Data "And Back Up Again"
  149.    Rem a special command
  150.    Data "Fade Music Up"
  151.    Data "Turn Filter On"
  152.    Rem a special command
  153.    Data "Filter On"
  154.    Data "And Turn The Filter Off Again"
  155.    Rem a special command
  156.    Data "Filter Off"
  157.    Data "Those Are The Only Ones I've Programmed As Yet"
  158.    Data "But The Possibilities Are Endless......"
  159.    Data "Thats All Folks........"
  160.    Rem a special command
  161.    Data "End Of Scroll"
  162.    DEMO_END:
  163.    Screen 3 : 
  164.    Fade 1 : Wait 15
  165.    Screen 0
  166.    Fade 1
  167.    If MEG=True
  168.       For A=63 To 0 Step -1
  169.          Mvolume A : Wait 1
  170.       Next : Music Off 
  171.    End If 
  172. End Proc