home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 101-125 / apd101 / autoexec.amos / autoexec.amosSourceCode
AMOS Source Code  |  1994-01-01  |  29KB  |  915 lines

  1. On Error Proc OOOPS
  2. Close Workbench 
  3. Close Editor 
  4. Global XPARAM,PAGE,RAND,W,WE,TIMEOUT,Q,Z$,A$,SPEED,VOL,CHANGED,SONG_IS_PLAYING,MOUSE$,FILTER,METERS,MUTE
  5. Break Off 
  6. 'This Version has now been changed to work with RAMOS V1.21  
  7. 'If you have any old .ABK music files then this new version of autoplayer  
  8. 'will probably not play them     
  9. 'There are two options to play your old .ABK files   
  10. '1) Reconvert your tunes by running them through soundtracker converter V1.21    
  11. 'Contact me for a copy of the converter
  12. '2) Obtain AutoPlayer V1.1 (This is V1.1b) from your P.D stockist
  13. '   V1.1 is avilable from J.T.S,17 Bit,NBS or from myself
  14. '   My address is given in the Help pages (Press HELP when music is playing) 
  15. 'Note: A large selection of AMOS prgrams are available from
  16. 'The AMOS PUBLIC DOMAIN LIBRARY (Address in the help text) 
  17. CLEAR_BANK
  18. TF_INTRO
  19. BEGIN
  20. Procedure TF_INTRO
  21.    Screen Open 0,640,256,16,Hires
  22.    Flash Off 
  23.    Curs Off : Cls 0
  24.    Screen Open 5,320,256,4096,Lowres
  25.    Flash Off 
  26.    Curs Off : Cls 0
  27.    Screen Hide 5
  28.    Screen Hide 0
  29.    Limit Mouse 128,205 To 442,281
  30.    NICEPRINT["Welcome to AutoPlayer V1.1b"]
  31.    Wait 200
  32.    NICECLOSE
  33.    NICEPRINT["Written by Paul Townsend"]
  34.    Wait 200
  35.    NICECLOSE
  36.    NICEPRINT["For Technical Fred Software"]
  37.    Wait 300
  38.    NICECLOSE
  39.    Hide On 
  40.    Screen Open 3,320,256,32,Lowres
  41.    Flash Off 
  42.    Curs Off 
  43.    Cls 0
  44.    Screen Hide 3
  45.    PAUSE_FOR_DISK["Apd101:"]
  46.    Screen 3
  47.    Load Iff "Apd101:tf_logo"
  48.    Screen Open 4,320,256,32,Lowres
  49.    Flash Off 
  50.    Curs Off 
  51.    Cls 0
  52.    Screen Hide 4
  53.    Screen 4
  54.    Hide On 
  55.    PAUSE_FOR_DISK["Apd101:"]
  56.    Load Iff "Apd101:tf_logo"
  57.    Screen Hide 4
  58.    Fade 1 : Wait 50
  59.    Screen To Front 4
  60.    Screen Show 4
  61.    Fade 4 To 3 : Wait 4*15
  62.    Wait 200
  63.    Fade 4 : Wait 4*15
  64.    Screen Close 3
  65.    Screen Close 4
  66. End Proc
  67. Procedure BEGIN
  68.    NICEPRINT["Press HELP for instructions"]
  69.    PAUSE_FOR_DISK["Apd101:"]
  70.    Screen 5
  71.    Load Iff "Apd101:guru.josh"
  72.    Screen 0
  73.    PAUSE_FOR_DISK["Apd101:"]
  74.    Load "Apd101:VUbobs.abk"
  75.    PAUSE_FOR_DISK["Apd101:"]
  76.    Load Iff "Apd101:player_screen"
  77.    Fade 1 : Wait 15
  78.    Screen Show 0
  79.    Screen 0
  80.    PICT
  81.    Hide On 
  82.    Wait 10
  83.    Led On 
  84.    BEGIN:
  85.    SPEED=17
  86.    VOL=47
  87.    MUTE=False
  88.    FILTER=False
  89.    METERS=True
  90.    TIMEOUT=1
  91.    TIMEOUT=TIMEOUT*50
  92.    TIMEOUT=TIMEOUT*60
  93.    TIMEOUT=TIMEOUT*5
  94.    Rem set timeout to 5 min 
  95.    Set Bob 1,-1,%111111,%11000000
  96.    Set Bob 2,-1,%111111,%11000000
  97.    Set Bob 3,-1,%111111,%11000000
  98.    Set Bob 4,-1,%111111,%11000000
  99.    RESTART:
  100.    PAUSE_FOR_DISK["music_disk:"]
  101.    A$=Dir First$("music_disk:*.abk")
  102.    If A$="" Then NICEPRINT["!!! no music found on that disk !!! Try a different disk "] : Wait 200 : NICECLOSE : Goto RESTART
  103.    If Left$(A$,1)="*" Then Goto GRABNEXT
  104.    EXTRACT_NAME
  105.    RAP_IT
  106.    COUNT=1
  107.    GRABNEXT:
  108.    A$=Dir Next$
  109.    If Left$(A$,1)="*" Then Goto GRABNEXT
  110.    If A$="" Then Goto RESTART
  111.    EXTRACT_NAME
  112.    TEST$="music_disk:"+Z$+".abk"
  113.    If Not(Exist(TEST$))
  114.       NICEPRINT["Disk Changed !!! Processing new disk."]
  115.       Wait 200
  116.       NICECLOSE
  117.       Goto RESTART
  118.    End If 
  119.    RAP_IT
  120.    Goto GRABNEXT
  121. End Proc
  122. Procedure PICT
  123.    PAUSE_FOR_DISK["Apd101:"]
  124.    Screen Open 1,640,256,16,Hires
  125.    Curs Off : Cls 0
  126.    Screen Hide 1
  127.    Load Iff "Apd101:player_screen"
  128.    Screen Hide 1
  129.    Screen 0
  130.    Locate 36,12
  131.    Paper 14 : Ink 10
  132.    Print "b"
  133.    Fade 5 To 1
  134.    Screen Close 1
  135.    Show On 
  136. End Proc
  137. Procedure EXTRACT_NAME
  138.    Z$=""
  139.    Erase 3
  140.    For F=2 To Len(A$)
  141.       If Lower$(Mid$(A$,F,4))=".abk" Then Pop Proc
  142.       Z$=Z$+Mid$(A$,F,1)
  143.    Next F
  144. End Proc
  145. Procedure RAP_IT
  146.    PAUSE_FOR_DISK["music_disk:"]
  147.    NICEPRINT[Z$]
  148.    Load "music_disk:"+Z$+".abk"
  149.    Music 1
  150.    Timer=0
  151.    NICECLOSE
  152.    Show On 
  153.    Clear Key 
  154.    SONG_IS_PLAYING=True
  155.    CHANGE
  156.    Repeat 
  157.       DANCE
  158.       If MOUSE$="Restart" Then Music Off : Music 1 : SONG_IS_PLAYING=True : CHANGED=True
  159.       If MOUSE$="Stop" and SONG_IS_PLAYING=True Then CHANGED=True : Music Off : SONG_IS_PLAYING=False
  160.       If MOUSE$="Play" and SONG_IS_PLAYING=False Then CHANGED=True : Music 1 : SONG_IS_PLAYING=True
  161.       If MOUSE$="Quit" Then Fade 5 : Wait 5*15 : FINISH_PROGRAM : 
  162.       If MOUSE$="Vol" Then VOL=47 : CHANGED=True
  163.       If MOUSE$="Tem" Then SPEED=17 : CHANGED=True
  164.       If MOUSE$="Filter" Then FILTER= Not FILTER : CHANGED=True
  165.       If MOUSE$="Meters" Then METERS= Not METERS
  166.       If MOUSE$="Mute" Then MUTE= Not MUTE : CHANGED=True
  167.       If MOUSE$="Volume" Then VOL_SLIDE : CHANGED=True
  168.       If MOUSE$="Balance" Then NICEPRINT["Not yet implemented"] : Wait 100 : NICECLOSE : Show On 
  169.       If MOUSE$="Tempo" Then TEM_SLIDE : CHANGED=True
  170.       If MOUSE$="Bal" Then NICEPRINT["Not yet implemented"] : Wait 100 : NICECLOSE : Show On 
  171.       If SPEED>100 Then SPEED=100
  172.       If SPEED<1 Then SPEED=1
  173.       If VOL>47 Then VOL=47
  174.       If VOL<0 Then VOL=0
  175.       If CHANGED Then CHANGE
  176.    Until MOUSE$="Next"
  177. End Proc
  178. Procedure CHANGE
  179.    If VOL<>47 Then DEF=True
  180.    If SPEED<>17 Then DEF=True
  181.    If DEF=True Then Rem highlight the default button :DEF=False
  182.    If SONG_IS_PLAYING=True Then Rem highlight stop song
  183.    If SONG_IS_PLAYING=False Then Rem highlight restart song 
  184.    Follow Off 
  185.    Tempo SPEED : Mvolume VOL
  186.    If Not MUTE Then Voice 15 Else Voice 0
  187.    CHANGED=False
  188.    RESET_SLIDERS
  189.    Wait 20
  190. End Proc
  191. Procedure DANCE
  192.    Dim A(3),Z(3)
  193.    For L=0 To 3
  194.       Z(L)=1
  195.       A(L)=1
  196.    Next L
  197.    Repeat 
  198.       Q$=Inkey$
  199.       ZX=Scancode
  200.       Clear Key 
  201.       If ZX=95 Then Fade 3 : Wait 3*15 : HELP : PICT : Rem Help key detect
  202.       If ZX=70 Then SPEEDSET : Show On : Rem Del key detect : 
  203.       If FILTER Then Led On Else Led Off 
  204.       Q=Mouse Click
  205.       If Q=2 Then TIMEUPDATE : Q=False
  206.       If Q=1 Then Q=True Else Q=False
  207.       If Q=2 Then TIMEUPDATE
  208.       Clear Key 
  209.       W=1+(TIMEOUT-(Timer)/50/60)
  210.       If W<>WE Then TIMEUPDATE : WE=W
  211.       For L=0 To 3
  212.          A(L)=Vumeter(L)/4*Abs(METERS)
  213.          If A(L)>Z(L) Then Z(L)=A(L)
  214.          Bob L+1,16+(152*L),0,Z(L)
  215.          Z(L)=Z(L)-2 : If Z(L)<1 Then Z(L)=1
  216.       Next L
  217.       If TIMEOUT=9999 Then Timer=0
  218.    Until(Q) or(Timer>TIMEOUT)
  219.    If Timer<TIMEOUT Then FIND_MOUSE Else MOUSE$="Next" : NICEPRINT["Timeout of"+Str$(TIMEOUT/60/60/10)] : Wait 100 : NICECLOSE
  220.    If(MOUSE$<>"Quit") and(MOUSE$<>"Next") Then Pop Proc
  221.    For QUIET=VOL To 0 Step -1
  222.       Mvolume QUIET
  223.       For L=0 To 3
  224.          A(L)=Vumeter(L)/4*Abs(METERS)
  225.          If A(L)>Z(L) Then Z(L)=A(L)
  226.          Bob L+1,16+(152*L),0,Z(L)
  227.          Z(L)=Z(L)-2 : If Z(L)<1 Then Z(L)=1
  228.       Next L
  229.    Next QUIET
  230.    Music Off 
  231. End Proc
  232. Procedure FIND_MOUSE
  233.    Screen 0
  234.    MOUSE$=""
  235.    If((X Mouse>334) and(X Mouse<362)) and((Y Mouse>221) and(Y Mouse<233)) Then MOUSE$="Default"
  236.    If((X Mouse>369) and(X Mouse<397)) and((Y Mouse>221) and(Y Mouse<233)) Then MOUSE$="Filter"
  237.    If((X Mouse>334) and(X Mouse<362)) and((Y Mouse>243) and(Y Mouse<256)) Then MOUSE$="Meters"
  238.    If((X Mouse>369) and(X Mouse<397)) and((Y Mouse>243) and(Y Mouse<256)) Then MOUSE$="Mute"
  239.    If((X Mouse>419) and(X Mouse<435)) and((Y Mouse>267) and(Y Mouse<274)) Then MOUSE$="Quit"
  240.    If((X Mouse>251) and(X Mouse<279)) and((Y Mouse>221) and(Y Mouse<233)) Then MOUSE$="Next"
  241.    If((X Mouse>286) and(X Mouse<314)) and((Y Mouse>221) and(Y Mouse<233)) Then MOUSE$="Restart"
  242.    If((X Mouse>251) and(X Mouse<279)) and((Y Mouse>243) and(Y Mouse<256)) Then MOUSE$="Play"
  243.    If((X Mouse>286) and(X Mouse<314)) and((Y Mouse>243) and(Y Mouse<256)) Then MOUSE$="Stop"
  244.    If((X Mouse>145) and(X Mouse<166)) and((Y Mouse>207) and(Y Mouse<216)) Then MOUSE$="Vol"
  245.    If((X Mouse>205) and(X Mouse<226)) and((Y Mouse>207) and(Y Mouse<216)) Then MOUSE$="Tem"
  246.    If((X Mouse>152) and(X Mouse<157)) and((Y Mouse>221) and(Y Mouse<271)) Then MOUSE$="Volume"
  247.    If((X Mouse>214) and(X Mouse<218)) and((Y Mouse>221) and(Y Mouse<271)) Then MOUSE$="Tempo"
  248.    Q=False
  249.    Restore 
  250.    AGAIN3:
  251.    Read WHICH$,X1,Y1,X2,Y2
  252.    X1=X1-2 : Y1=Y1-3 : X2=X2+3 : Y2=Y2+3
  253.    X1=X Screen(X1) : Y1=Y Screen(Y1) : X2=X Screen(X2) : Y2=Y Screen(Y2)
  254.    If WHICH$="" Then Pop Proc
  255.    If MOUSE$="Quit" Then NUM=15 Else NUM=14
  256.    If WHICH$=MOUSE$ Then For F=2 To NUM Step NUM-2 : Ink F : Box X1,Y1 To X2,Y2 : Wait 10 : Next F
  257.    If MOUSE$="Quit" Then Ink 10 : Paint 598,217,1
  258.    Goto AGAIN3
  259.    Data "Default",334,221,362,233
  260.    Data "Filter",369,221,397,233
  261.    Data "Meters",334,243,362,256
  262.    Data "Mute",369,243,397,256
  263.    Data "Next",258,221,286,233
  264.    Data "Restart",293,221,321,233
  265.    Data "Play",258,243,286,256
  266.    Data "Stop",293,243,321,256
  267.    Data "Vol",145,208,166,215
  268.    Data "Tem",205,208,226,215
  269.    Data "",0,0,0,0
  270. End Proc
  271. Procedure VOL_SLIDE
  272.    AGAIN:
  273.    ZX=X Mouse
  274.    ZY=Y Mouse
  275.    If(Mouse Key) and(ZY>223) and(ZY<271)
  276.       VOL=271-ZY
  277.       Ink 15
  278.       For ZX=-1 To 1 Step 2
  279.          Draw X Screen(156)+ZX,Y Screen(271) To X Screen(156)+ZX,Y Screen(223)
  280.          Draw X Screen(156)+ZX,Y Screen(271) To X Screen(156)+ZX,Y Screen(223)
  281.       Next ZX
  282.       Ink 15
  283.       Draw X Screen(156),Y Screen(223) To X Screen(156),Y Screen(ZY)
  284.       Ink 1
  285.       For ZX=-1 To 1
  286.          Draw X Screen(156)-1,Y Screen(271)-VOL-ZX To X Screen(156)+1,Y Screen(271)-ZX-VOL
  287.       Next ZX
  288.       Draw X Screen(156),Y Screen(271) To X Screen(156),Y Screen(ZY)
  289.    Else 
  290.       Pop Proc
  291.    End If 
  292.    Mvolume VOL
  293.    Goto AGAIN
  294. End Proc
  295. Procedure TEM_SLIDE
  296.    AGAIN2:
  297.    ZX=X Mouse
  298.    ZY=Y Mouse
  299.    If(Mouse Key) and(ZY>223) and(ZY<271)
  300.       SPEED=272-ZY
  301.       Rem -------------------------------------------------------------------
  302.       Ink 1
  303.       For ZX=-1 To 1
  304.          Draw X Screen(216)-1,Y Screen(271)-SPEED-ZX To X Screen(216)+1,Y Screen(271)-ZX-SPEED
  305.       Next ZX
  306.       Rem -------------------------------------------------------------------
  307.       Rem ************************************************************ 
  308.       Ink 15
  309.       For ZX=-1 To 1 Step 2
  310.          Draw X Screen(216)+ZX,Y Screen(223) To X Screen(216)+ZX,Y Screen(271)
  311.       Next ZX
  312.       Draw X Screen(216),Y Screen(223) To X Screen(216),Y Screen(ZY)
  313.       Ink 1
  314.       Draw X Screen(216),Y Screen(271) To X Screen(216),Y Screen(ZY)
  315.    Else 
  316.       Pop Proc
  317.    End If 
  318.    Tempo SPEED
  319.    Goto AGAIN2
  320. End Proc
  321. Procedure RESET_SLIDERS
  322.    Ink 15 : 
  323.    For ZX=-1 To 1
  324.       Draw X Screen(156)+ZX,Y Screen(271) To X Screen(156)+ZX,Y Screen(221) : 
  325.    Next ZX
  326.    Ink 1
  327.    Draw X Screen(156),Y Screen(271) To X Screen(156),(Y Screen(271)-VOL)
  328.    Ink 15
  329.    For ZX=-1 To 1
  330.       Draw X Screen(216)+ZX,Y Screen(271) To X Screen(216)+ZX,Y Screen(221) : 
  331.    Next ZX
  332.    Ink 1 : 
  333.    Draw X Screen(216),Y Screen(271) To X Screen(216),(Y Screen(271)-SPEED)
  334.    For ZX=-1 To 1
  335.       Draw X Screen(156)-1,Y Screen(271)-VOL-ZX To X Screen(156)+1,Y Screen(271)-VOL-ZX
  336.       Draw X Screen(216)-1,Y Screen(271)-SPEED-ZX To X Screen(216)+1,Y Screen(271)-SPEED-ZX
  337.    Next ZX
  338. End Proc
  339. Procedure TIMEUPDATE
  340.    If TIMEOUT=9999 Then Pop Proc
  341.    NICEPRINT[Str$(1+(TIMEOUT-Timer)/50/60)+" Mins before timeout"]
  342.    Wait 20
  343.    NICECLOSE
  344. End Proc
  345. Procedure SPEEDSET
  346.    Hide On 
  347.    NICEPRINT["Select timeout Value"]
  348.    Wait 100
  349.    NICECLOSE
  350.    For C=1 To 3
  351.       C$="Press F"+Right$(Str$(C),1)+" for"+Str$(C*10)+" Mins"
  352.       NICEPRINT[C$]
  353.       Wait 100
  354.       NICECLOSE
  355.    Next C
  356.    NICEPRINT["and so on up to"]
  357.    Wait 100
  358.    NICECLOSE
  359.    NICEPRINT["F10 for 100 Mins"]
  360.    Wait 100
  361.    NICECLOSE
  362.    NICEPRINT["or any other key to disable timeout"]
  363.    Wait 200
  364.    NICECLOSE
  365.    NICEPRINT["Waiting for F key"]
  366.    Clear Key 
  367.    10 A$=Inkey$
  368.    If A$="" Then Goto 10
  369.    NICECLOSE
  370.    A=Scancode
  371.    If(A>=80) and(A<=89)
  372.       TIMEOUT=(A-80)
  373.       Inc TIMEOUT
  374.       A$="Timeout of"+Str$(TIMEOUT*10)+" mins selected"
  375.       NICEPRINT[A$]
  376.       Wait 200
  377.       NICECLOSE
  378.       TIMEOUT=TIMEOUT*50
  379.       TIMEOUT=TIMEOUT*60
  380.       TIMEOUT=TIMEOUT*10
  381.       Timer=0
  382.    Else 
  383.       NICEPRINT["Timeout Disabled"]
  384.       TIMEOUT=9999
  385.       Wait 200
  386.       NICECLOSE
  387.    End If 
  388.    Show On 
  389. End Proc
  390. Procedure NICEPRINT[OUTPUT$]
  391.    Screen Open 1,600,8,2,Hires
  392.    Curs Off : Cls 0
  393.    Screen Open 2,600,8,2,Hires
  394.    Curs Off : Cls 0
  395.    Screen Display 1,132,180,,
  396.    Screen Hide 2
  397.    Screen 2
  398.    Flash Off 
  399.    Hide On 
  400.    M$=""
  401.    M$=M$+Upper$(Left$(OUTPUT$,1))
  402.    For F=2 To Len(OUTPUT$)
  403.       LOOK$=Mid$(OUTPUT$,F-1,1)
  404.       If(LOOK$="_") or(LOOK$=" ") or(LOOK$=".") or(LOOK$="-") Then M$=M$+Upper$(Mid$(OUTPUT$,F,1)) Else M$=M$+Lower$(Mid$(OUTPUT$,F,1))
  405.    Next F
  406.    Locate 0,0 : Cline 
  407.    Centre Left$(M$,60)
  408.    CHOOSE
  409.    Appear 2 To 1,RAND
  410.    Locate 0,0 : Cline 
  411.    Screen 1
  412.    Locate 0,0 : Centre Left$(M$,60)
  413.    Screen 0
  414. End Proc
  415. Procedure NICECLOSE
  416.    CHOOSE
  417.    Appear 2 To 1,RAND
  418.    Screen Close 1
  419.    Screen Close 2
  420.    Show On 
  421. End Proc
  422. Procedure HELP
  423.    Screen Open 1,640,256,2,Hires
  424.    Curs Off : Cls 0
  425.    PAGE=1
  426.    Fade 1
  427.    Hide On 
  428.    Cls 
  429.    Centre("Help Screen")
  430.    Print 
  431.    Centre("-----------")
  432.    Print 
  433.    Print 
  434.    Print 
  435.    Centre("Welcome to AutoPlayer V1.1b (C) Nov 1990")
  436.    Print 
  437.    Centre("----------------------------------------")
  438.    Print 
  439.    Print 
  440.    Print "Written by Paul Townsend for Technical Fred Software"
  441.    Print 
  442.    Print "Graphics by mARTin Heston"
  443.    Print 
  444.    Print "Additional Material by Pete Winnard"
  445.    Print 
  446.    Print "Thanks also to the Black Panther for help with the VU Meters"
  447.    Print 
  448.    Print "And last, but not least, thanks to Alphabet Al for spelchecking this texst."
  449.    Print 
  450.    Print "This Program is public domain."
  451.    Print "You are free to copy and distribute this program as long as "
  452.    Print "no charge is made for the software and no changes are made."
  453.    Print 
  454.    Print "If you find this program useful or enjoyable please consider"
  455.    Print "sending a small contribution to me for my efforts."
  456.    Print ""
  457.    Print "In return I will send you without any further cost, any updates which follow."
  458.    Print "Also I will send you details of other programs and demos which are available."
  459.    Print "Please drop me a line if you have any difficulty in using "
  460.    Print "this program or if you have any suggestions for improvements"
  461.    Print "or find any bugs in the program you would like corrected."
  462.    HELPUPDATE
  463.    If XPARAM=99 Then Goto HELP_END
  464.    Print "Please send all contributions, bug reports, suggestions etc to "
  465.    Print 
  466.    Print "Paul Townsend"
  467.    Print "117 Hilton Lane"
  468.    Print "Walkden"
  469.    Print "Worsley"
  470.    Print "Manchester"
  471.    Print "M28 5TB"
  472.    Print "England"
  473.    Print 
  474.    Print "Tel (061) 703 7842 (24 hour answerphone)"
  475.    Print "If I am not in, please leave a message and I will call you back."
  476.    Print 
  477.    Print "One last thing before the help pages."
  478.    Print 
  479.    Print "Low cost video and audio digitizing service"
  480.    Print "-------------------------------------------"
  481.    Print 
  482.    Print "If you have need for the above service,"
  483.    Print "even if you just need one picture digitizing, contact me."
  484.    Print "If you need it done yesterday - contact me."
  485.    Print "Please contact me at the above address"
  486.    Print "for a demo disk which includes digitized pictures and sound."
  487.    Print 
  488.    Print "That's all the waffle over with, now for the help pages."
  489.    HELPUPDATE
  490.    If XPARAM=99 Then Goto HELP_END
  491.    Print "This program as you may have worked out, is a music player."
  492.    Print "It is capable of playing any AMOS music file."
  493.    Print 
  494.    Print "Amos Users Please note !"
  495.    Print "Instructions for inserting your own music follow later."
  496.    Print "First a rundown of the controls."
  497.    Print 
  498.    Print "The purpose of the 'Vol' and 'Tempo' gadgets in the top left of the "
  499.    Print "control screen is to set the music volume and tempo settings back to "
  500.    Print "their default."
  501.    Print "Just below these are two sliders, the one underneath the 'Vol' gadget "
  502.    Print "is a volume slider and guess what ? The one underneath the "
  503.    Print "'tempo' gadget is a tempo slider."
  504.    Print "So if you slide the sliders and then find that you wish to put "
  505.    Print "one of them back to normal, click the gadget above the slider "
  506.    Print "you wish to reset. (Easy isn't it?)."
  507.    Print "The 'Next' button simply fades out the current song and loads in "
  508.    Print "the next one and plays it."
  509.    Print "(Note : The next button also checks if you have changed the music_disk"
  510.    Print "and if the disk has been changed the the first song on that disk"
  511.    Print "(if one exists) will be played. Future selecting of the next button"
  512.    Print "will then play the next song from the new disk."
  513.    Print "If the last song of a disk has been played the the first one will be"
  514.    Print "played again, and the sequence will be repeated.)"
  515.    Print "The 'Restart' button starts the current music from the beginning."
  516.    Print "The 'Play' button continues the current music if it has been "
  517.    Print "stopped with the 'Stop' button."
  518.    Print "The 'Stop' button halts the music."
  519.    Print "(This button may look complicated, but it isn't really, honest!)"
  520.    HELPUPDATE
  521.    If XPARAM=99 Then Goto HELP_END
  522.    Print "The 'Default' button resets all functions back to their original settings."
  523.    Print "i.e Volume to Max, Tempo to normal, mute and filter off meters on."
  524.    Print "This function also restarts music if it has been stopped."
  525.    Print "The 'Filter' button toggles the power led and audio filter."
  526.    Print "(Sorry A1000 owners, ignore that bit)."
  527.    Print "The 'Meters' button kills the VU meters,"
  528.    Print "pressing again brings them back to life."
  529.    Print "The 'Mute' button turns down the volume of the music."
  530.    Print "(Note the music is still playing, you just can't hear it)."
  531.    Print "Pressing again cancels the mute and the music will be heard again."
  532.    Print "And finally the Power button."
  533.    Print "(I am not going to tell you what this does, you'll just have to try it)."
  534.    HELPUPDATE
  535.    If XPARAM=99 Then Goto HELP_END
  536.    Centre("Inserting your own tunes")
  537.    Print 
  538.    Centre("------------------------")
  539.    Print 
  540.    Print 
  541.    Print "To do this you will need. (But see 'PLANNED UPDATES')"
  542.    Print 
  543.    Print "1) Amos The Creator  (See Later for info)."
  544.    Print "2) Some Amos compatable tunes."
  545.    Print "3) A blank disk."
  546.    Print 
  547.    Print "If you already have the tunes you want available then ignore this bit."
  548.    Print 
  549.    Print "Write or rip your tune using Soundtracker, GMC or Sonix then run it through "
  550.    Print "the converter for the music package you are using."
  551.    Print "(Soundtracker Sonix and GMC converters are supplied with Amos)."
  552.    Print 
  553.    Centre("IMPORTANT BIT")
  554.    Print 
  555.    Centre("-------------")
  556.    Print 
  557.    Print 
  558.    Print "Save your converted tune on to the blank disk. (But not in any Drawers!)"
  559.    Print "call it anything you like but"
  560.    Print "make sure that you put .ABK on the end of your filename or else "
  561.    Print "AutoPlayer just won't know that it is there."
  562.    Print "Then rename your disk to MUSIC_DISK (very important)."
  563.    Print "NOTE: the _ is the underline on shift minus."
  564.    Print 
  565.    Print "Then boot up AutoPlayer again and use the disk you have just created"
  566.    Print "instead of using the Music_Disk."
  567.    Print "That's about it, AutoPlayer will search the disk and play any tunes it finds."
  568.    HELPUPDATE
  569.    If XPARAM=99 Then Goto HELP_END
  570.    Centre("STOP PRESS")
  571.    Print 
  572.    Centre("----------")
  573.    Print 
  574.    Print "Some new functions not documented above."
  575.    Print 
  576.    Print "This version of AutoPlayer also has these extra functions."
  577.    Print 
  578.    Print "New 'Timeout' facility."
  579.    Print 
  580.    Print "Because there is at present no way to detect when a piece of music has finished"
  581.    Print "I cannot make AutoPlayer play the next tune when the previous tune finishes "
  582.    Print "so the current tune just repeats itself forever."
  583.    Print "The Timeout facility goes a little way towards solving this problem."
  584.    Print 
  585.    Print "The default setting is that the current tune will fade after 5 mins"
  586.    Print "but you can change the timeout time by pressing the DEL key while the music"
  587.    Print "is playing and a message will appear on the screen to give you instructions."
  588.    Print 
  589.    Print "Pressing the RIGHT mouse button while the music is playing displays how much"
  590.    Print "time is left before the next timeout."
  591.    Print 
  592.    Print "Pressing the help key now displays these help pages."
  593.    Print "(But you will have worked that out by now since you are now reading them.)"
  594.    Print 
  595.    Print "If you can think of any more functions you would like to see"
  596.    Print "please drop me a line and I will see what I can do."
  597.    HELPUPDATE
  598.    If XPARAM=99 Then Goto HELP_END
  599.    Centre("PLANNED UPDATES")
  600.    Print 
  601.    Centre("---------------")
  602.    Print 
  603.    Print 
  604.    Print "Some ideas I have had for future updates include"
  605.    Print 
  606.    Print "(1) Improving the disk access so that you can program the order of"
  607.    Print "    which the tunes play  (Instead of just in alpha order)"
  608.    Print 
  609.    Print "(2) Adding a new function -"
  610.    Print "    Myself and The Black Panther are currently working on making it possible"
  611.    Print "    for AutoPlayer to play SoundTracker Modules as they are rather than"
  612.    Print "    to have to keep converting them to AMOS's internal format all the time"
  613.    Print "    which is a pain to say the least, especially as the end result always"
  614.    Print "    seems to be a little out of sync and sounds terrible if there are any blank"
  615.    Print "    tracks in the original SoundTracker module"
  616.    Print 
  617.    Print "(3) Solving that stupid Timeout problem of not knowing when a tune has finished"
  618.    Print "    I have a few ideas which may work "
  619.    HELPUPDATE
  620.    If XPARAM=99 Then Goto HELP_END
  621.    Centre("AMOS")
  622.    Print 
  623.    Centre("----")
  624.    Print 
  625.    Print 
  626.    Print "Amos is the best language ever to hit the Amiga."
  627.    Print "It will allow you to create just about any program you want."
  628.    Print "It is brimming with useful commands."
  629.    Print "If you are a programmer or want a VERY FAST high level language"
  630.    Print "then this is the only one on planet Earth which provides all this."
  631.    Print 
  632.    Print "This program was written using AMOS."
  633.    Print "And this is my first program I have written with it."
  634.    Print "I am therefore only using a fraction of the power it provides."
  635.    Print 
  636.    Print "Just think what you could produce using this HIGHLY FLEXIBLE LANGUAGE."
  637.    Print 
  638.    Print "Buy it and see for yourself."
  639.    Print 
  640.    Print "AMOS is available from"
  641.    Print "Mandarin Software"
  642.    Print "Europa House"
  643.    Print "Adlington Park"
  644.    Print "Adlington"
  645.    Print "Macclesfield"
  646.    Print "Cheshire"
  647.    Print "SK10 4NP"
  648.    HELPUPDATE
  649.    If XPARAM=99 Then Goto HELP_END
  650.    Print "This is version 1.1b of Autoplayer"
  651.    Print ""
  652.    Print "Changes since 1.1"
  653.    Print 
  654.    Print "This version has been converted to use V 1.21 of ramos which"
  655.    Print "is the very latest version of ramos available at the moment"
  656.    Print "Here are some points for you to note now you've read the instructions"
  657.    Print "1. I said earlier about the converted soundtracker modules being out of sync"
  658.    Print "In this version the problem is no more !"
  659.    Print "If any Amos users out there want to convert your own modules"
  660.    Print "as mentioned earlier, you will need the new soundtracker converter,"
  661.    Print "Ramos 1.21 and Amos 1.21"
  662.    Print "Which are available on an update disk from the Offical Amos P.D Library"
  663.    Print "for the very reasonable sum of ï¿½2.50 (U.K)"
  664.    Print ""
  665.    Print "The address for this is (as of July 1990)"
  666.    Print "Amos Public Domain Library"
  667.    Print "c/o Sandra Sharkey"
  668.    Print "  25 Park Road"
  669.    Print "     Wigan"
  670.    Print "    WN6 7AA"
  671.    Print "TEL: 0942 495261"
  672.    HELPUPDATE
  673.    If XPARAM=99 Then Goto HELP_END
  674.    Print "One final Note:"
  675.    Print "The demo tunes supplied with this version of AutoPlayer were converted from"
  676.    Print "Soundtracker tunes which to the best of my knowledge are in the public domain."
  677.    Print "By that I mean that the tunes were supplied to me by P.D Libraries."
  678.    Print "I am not responsible for the copyright of them."
  679.    HELPUPDATE
  680.    HELP_END:
  681.    Cls 
  682.    Fade 3,$0,$0
  683.    Wait 3*15
  684.    Screen Close 1
  685.    Show On 
  686. End Proc
  687. Procedure HELPUPDATE
  688.    NUM=3
  689.    PAGE$="Page "+Str$(PAGE)+" of 10"
  690.    Print 
  691.    Centre(PAGE$)
  692.    Print 
  693.    Centre("Press any key or ESC to quit help")
  694.    Fade NUM,$0,$999
  695.    Wait NUM*15
  696.    Clear Key 
  697.    Repeat 
  698.       HOLD$=Inkey$
  699.    Until HOLD$<>"" or Key State(69)
  700.    If Key State(69) Then XPARAM=99 Else XPARAM=0
  701.    Fade NUM,$0,$0
  702.    Wait NUM*15
  703.    Cls 
  704.    Inc PAGE
  705. End Proc
  706. Procedure PAUSE_FOR_DISK[D$]
  707.    OH_DEAR:
  708.    If Exist(D$) Then Pop Proc
  709.    NICEPRINT["Please Insert "+D$+" into any drive or SPACE For HELP"]
  710.    Repeat 
  711.       WHAT$=Inkey$
  712.    Until(Exist(D$)) or(WHAT$=" ")
  713.    Clear Key 
  714.    NICECLOSE
  715.    If WHAT$=" " Then HELP : Goto OH_DEAR
  716.    NICEPRINT["Thank You"]
  717.    Wait 50
  718.    NICECLOSE
  719. End Proc
  720. Procedure MOUSEMOVE[XM,YM]
  721.    If X Mouse<XM Then ST=1 Else ST=-1
  722.    Y=Y Mouse
  723.    For X=X Mouse To XM Step ST
  724.       X Mouse=X
  725.       Y Mouse=Y
  726.       Wait Vbl 
  727.    Next X
  728.    If Y Mouse<YM Then ST=1 Else ST=-1
  729.    For Y=Y Mouse To YM Step ST
  730.       Y Mouse=Y
  731.       X Mouse=X
  732.       Wait Vbl 
  733.    Next Y
  734. End Proc
  735. Procedure FINISH_PROGRAM
  736.    Screen Close 0
  737.    Erase 1
  738.    Erase 3
  739.    Screen Open 0,320,256,4096,Lowres
  740.    Curs Off : Cls 0
  741.    Screen Hide 0
  742.    Get Palette 5
  743.    Flash Off 
  744.    Screen Open 6,352,280,4,Lowres
  745.    Curs Off : Cls 0
  746.    Screen Hide 6
  747.    PAUSE_FOR_DISK["Apd101:"]
  748.    Load Iff "Apd101:hand"
  749.    Flash Off 
  750.    Screen Hide 6
  751.    For ZX=11 To 15
  752.       PAUSE_FOR_DISK["Apd101:"]
  753.       Load "Apd101:sample"+Str$(ZX)
  754.    Next ZX
  755.    Screen 0
  756.    Screen Show 0
  757.    CHOOSE
  758.    Hide On 
  759.    Appear 5 To 0,RAND
  760.    Screen Close 5
  761.    For T=1 To 5
  762.       SAM
  763.    Next T
  764.    SAM
  765.    Show On 
  766.    CLEAR_BANK
  767.    Led On 
  768.    Cls 0
  769.    Screen Open 0,640,280,2,Hires
  770.    Curs Off : Cls 0
  771.    Hide On 
  772.    Screen Display 0,112,25,,
  773.    Palette 0,0
  774.    Wait 65
  775.    Palette $555,0
  776.    Wait 65
  777.    Palette $FFF,0
  778.    Wait 65
  779.    Screen Open 0,640,256,2,Hires
  780.    Curs Off : Cls 0
  781.    Palette 0,$F00
  782.    Hide On 
  783.    Get Rom Fonts 
  784.    Set Font 1
  785.    Text 40,22,"Software Failure.   Press left mouse button to continue"
  786.    Text 150,35,"Guru Meditation #00000003.00C05128"
  787.    11
  788.    For D=1 To 0 Step -1
  789.       Ink D
  790.       For F=0 To 2
  791.          Box 10+F,8+F To 630-F,43-F
  792.       Next F
  793.       If Mouse Click<>0 Then Goto FOOLED
  794.       For TY=1 To 5000
  795.          If Mouse Click<>0 Then Goto FOOLED
  796.       Next TY
  797.    Next D
  798.    If Mouse Click=0 Then Goto 11
  799.    FOOLED:
  800.    Screen Close 0
  801.    Screen Display 6,112,30,,
  802.    Hide On 
  803.    Screen Show 6
  804.    Hide On 
  805.    Screen To Front 6
  806.    Hide On 
  807.    Screen 6
  808.    Hide On 
  809.    Palette $FFF,$FFF,$FFF,$FFF
  810.    Screen Open 5,352,280,2,Lowres
  811.    Curs Off : Cls 0
  812.    Screen 5
  813.    Palette $FF0,$FF0
  814.    Screen Display 5,112,30,,
  815.    Screen To Back 5
  816.    Screen 6
  817.    Wait 25
  818.    Palette $0,$BBB,$66C,$FFF
  819.    Wait 1000
  820.    PP:
  821.    Read A$
  822.    If A$<>"..."
  823.       NICEPRINT2[A$]
  824.       Wait 200
  825.       Goto PP
  826.    End If 
  827.    For F=30 To 312
  828.       Screen Display 6,112,F,,
  829.       Wait Vbl 
  830.    Next F
  831.    Wait 100
  832.    Call $E00000
  833.    Data "And you thought I'd crashed"
  834.    Data "Well I haven't so there !"
  835.    Data "But this can be arranged"
  836.    Data "I am tired of pretending to crash"
  837.    Data "So I am going to crash for real now"
  838.    Data "Please remove all disks from drives"
  839.    Data "and wait for the Workbench hand"
  840.    Data "Your amiga will then be totally reset"
  841.    Data "..."
  842. End Proc
  843. Procedure SAM
  844.    Restore 
  845.    For ZX=11 To 15
  846.       Sam Raw 15,Start(ZX),Length(ZX),19886
  847.       FILTER= Not FILTER
  848.       If FILTER Then Led On Else Led Off 
  849.       Read DELAY
  850.       Wait DELAY
  851.    Next ZX
  852.    Data 35
  853.    Data 35
  854.    Data 35
  855.    Data 35
  856.    Data 35
  857. End Proc
  858. Procedure CLEAR_BANK
  859.    For F=1 To 15
  860.       Erase F
  861.    Next F
  862. End Proc
  863. Procedure CHOOSE
  864.    CHOOSE:
  865.    RAND=Rnd(99999)
  866.    If RAND mod 2=0 Then Goto CHOOSE
  867.    If RAND mod 5=0 Then Goto CHOOSE
  868. End Proc
  869. Procedure LEDFLASH
  870.    Hide On 
  871.    For U=1 To 10
  872.       Wait 25
  873.       Led On 
  874.       Wait 25
  875.       Led Off 
  876.    Next U
  877.    Show On 
  878. End Proc
  879. Procedure NICEPRINT2[OUTPUT$]
  880.    Pen 0
  881.    Paper 3
  882.    M$=""
  883.    M$=M$+Upper$(Left$(OUTPUT$,1))
  884.    For F=2 To Len(OUTPUT$)
  885.       LOOK$=Mid$(OUTPUT$,F-1,1)
  886.       If(LOOK$="_") or(LOOK$=" ") or(LOOK$=".") or(LOOK$="-") Then M$=M$+Upper$(Mid$(OUTPUT$,F,1)) Else M$=M$+Lower$(Mid$(OUTPUT$,F,1))
  887.    Next F
  888.    Locate 0,5 : Cline 
  889.    Centre Left$(M$,60)
  890. End Proc
  891. Procedure OOOPS
  892.    Default 
  893.    Print "An error has occured in program"
  894.    Print "Program Aborted"
  895.    Print "Please report report this bug"
  896.    Print "and how it happened"
  897.    Print "to"
  898.    Print "Paul Townsend"
  899.    Print "c/o"
  900.    Print "Technical Fred Software"
  901.    Print "117 Hilton Lane "
  902.    Print "Walkden"
  903.    Print "Worsley"
  904.    Print "Manchester"
  905.    Print "M28 5TB"
  906.    Print 
  907.    Print "Or phone"
  908.    Print "(061) 703 7843"
  909.    Print "Thank you"
  910.    Print 
  911.    Print "Press a Key"
  912.    Clear Key 
  913.    Wait Key 
  914.    End 
  915. End Proc