home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 67 / af067a.adf / ACCESS.DMS / ACCESS.adf / AMOSPro_Help / AMOSPro_Help.Txt < prev    next >
Text File  |  1993-03-16  |  314KB  |  9,439 lines

  1. The young super TV star has this to say about his football team:
  2.  
  3. Queens Park Rangers are a super team! They'll never win anything though...
  4.  
  5. Francois once let the alarm off at Europress and almost got arrested.
  6.  
  7. The fatest First Direct coloured Cat!
  8.  
  9. The real programmer!
  10.  
  11. The most patient French Woman in the world!
  12.  
  13. The only man to burn a hole in a QWERTY keyboard.
  14.  
  15. Sick and tired of the help file but proud of it.
  16.  
  17. The world's best programmer!
  18.  
  19. Double Precision info
  20.  
  21. We only got Double Precision working very near the end of the project, too
  22. late for the User Guide! So there's something else you need to know:
  23.  
  24. Single and Double don't mix!
  25. ----------------------------
  26.  
  27. Imagine you've just loaded in your favourite sine scroller and want to make
  28. it even more accurate with the new Double Precision feature of AMOS Pro.
  29. To do this you need to add the SET DOUBLE PRECISION command at the top of
  30. your program and then (and this is the new bit), you need to retokenise the
  31. program using the accessory which is available from the User menu.
  32.  
  33. The retokeniser changes all the single precision numbers in your program
  34. into double precision. This needs to be done because single to double
  35. precision conversions would have to happen during your program. These
  36. conversions are not very accurate and take longer to work out. So it's
  37. best to have the same precision throughout your program. You could run
  38. a mixture of the two precisions but you'll lose accuracy.
  39.  
  40. Configuration info
  41.  
  42. When you installed AMOS Professional, the installer set up options within
  43. the configuration that benefits your memory situation. For example the Undo
  44. buffers are set low on a 1 meg machine.
  45.  
  46. So don't use a 1 meg AMOS Pro disc on a bigger machine - just reinstall it.
  47.  
  48. Compiler and 3D Extensions
  49.  
  50. If you are a registered AMOS Compiler and/or AMOS 3D user you'll be wanting
  51. to use AMOS Professional with these two extensions. It was our plan to have
  52. the two intergrated for Pro's release. Sadly though we've had technical
  53. problems and the extensions are currently not compatible.
  54.  
  55. By the end of October we will have sorted this out and an update will be made
  56. availble. So call Europress at the start of November for information on how
  57. to upgrade your Compiler and/or 3D.
  58.  
  59.         Tel: 0625 859333   International +44 625 559333
  60.         Fax: 0625 879962   International +44 625 879962
  61.  
  62. Credits
  63.  
  64.                 Main Programmer      Francois Lionet
  65.                 User Guide Author    Mel Croucher
  66.                 Technical Author     Stephen Hill
  67.                 Demo Programmer      Ronnie Simpson
  68.                 Project Manager      Richard Vanner
  69.  
  70. Special thanks to:Alex Blagg, David Ratcliffe, Barney, Richard Peacock, Alexa
  71. Czechowski, Anna Donaldson, Stuart Davis, Donald Anderson, Peter Hickman,
  72. Dominic Ramsey, Stoo Cambridge, Darren Ithell, Syntex, Jason Holborn, Tony
  73. Dillon, Phil South, Len Tucker and everyone else who played a part in creating
  74. this monster!
  75.  
  76. Programmers and Artists Wanted!
  77.  
  78. Europress Software is always on the look-out for talented programmers and
  79. graphic artists. The productivity discs are examples of work created by
  80. freelancers, can you do better? Send us examples of your work we'd be
  81. delighted to evaluate it.
  82.  
  83. Bugs in AMOS Professional? Surely not! Well we don't think there are but
  84. they'll probably raise their ugly heads when your using Pro. If you do
  85. discover a bug or problem then please, please, please let us know. We make
  86. it our number 1 goal to have our software bug free.
  87.  
  88. If you find a bug send the program that creates the problem on disc to
  89. Richard Vanner. Comment the program so that he can easily home in on the
  90. offending command. Even try running the program through the Monitor which
  91. might pin point the problem for you.
  92.  
  93. Happy Programming
  94.  
  95. Procedures
  96.  
  97. The procedures we've supplied on Productivity disc 2 are the result of a
  98. competition we ran in the very supportive Amiga Shopper magazine. AMOS users
  99. were asked to send in useful procedures which could be supplied as a sort
  100. of library. We thank all those who took part and believe that the ones we
  101. decided to go with will suprise you all. Check out the Plasma and Sine
  102. Scroller demos - the're fun.
  103.  
  104. Perhaps you have better procedures? Why not share them, the AMOS PD library
  105. would be delighted to create Procedure discs.
  106.  
  107. Memory Considerations - 1 meg users of AMOS Professional
  108.  
  109. AMOS Professional does its best to give you as much available memory as
  110. possible. But at the end of the day AMOS Professional is a huge program with
  111. many memory requirements. So we'll point you in the right direction by
  112. offering the following advice:
  113.  
  114.  
  115. * A Multitasking machine in its own nature needs to have spare memory to
  116.   operate properly. So you must ensure that at least 32k memory is left free
  117.   for the system's own needs. Trying to grab all the memory is just too
  118.   risky.
  119.  
  120. * AMOS Professional has a built-in low memory protection system that helps you
  121.   avoid using up memory.
  122.  
  123.   If you find the Editor's drop down menus cannot be accessed, it's because
  124.   there's less than 72k available and AMOS Professional needs more to open
  125.   them. If you let this happen you are still able to use the keyboard
  126.   short-cuts.
  127.  
  128.   AMOS Professional also has a memory grabber. When Pro detects less than 72k
  129.   is available it will erase the following until more than 72k is freed:
  130.  
  131.         - the Default screen (if open).
  132.         - any open maths libraries (if they are not needed anymore)
  133.         - the Undo buffers
  134.         - the directory Stored in the File Selector
  135.  
  136.   If Pro can than access more than 72k it will allow the menus to be opened.
  137.  
  138. * You may find that some programs will fail under AMOS Pro and yet work fine
  139.   in old AMOS. Obviously AMOS Pro's new Editor and features take up more
  140.   memory. So to free up memory when your programs run try these techniques:
  141.  
  142.    - The Close Editor command will free a considerable amount of memory but
  143.      will still leave you with a 50k overhead compared to old AMOS.
  144.  
  145.    - Using the new Kill Editor command will free so much memory that you'll
  146.      have 32k more to play with than was possible in old AMOS. The bad news
  147.      is you'll have to wait for the editor to load after each run.
  148.  
  149.      Some programs that use Kill Editor may ask for lots of memory by
  150.      reserving banks and opening screens. Once the program has finished, AMOS
  151.      Pro attempts to reload the Editor. It will first ask you to insert the
  152.      System disc so that it can find the Editor files and then attempt to
  153.      load it.
  154.  
  155.      If this fails due to low memory, AMOS Pro will clear all variables, the
  156.      screens etc.
  157.  
  158.      If it still fails a small requester will appear that asks if you want to
  159.      erase the memory banks - this should be plenty for the editor to load,
  160.      if not you'll be dumped into the Workbench.
  161.  
  162.      So when you program in a low memory state, ensure your program erases the
  163.      banks before going back to the editor.
  164.  
  165. A memory expansion would be the best solution if you find yourself always
  166. programming around low memory conditions!
  167.  
  168. Losing the File Selector Stored Directories
  169. -------------------------------------------
  170. If you find the Store option has been erased this will be due to a memory
  171. flush that occured earlier in your programming.
  172.  
  173.  
  174. BORDER
  175. {[RAMOSPro_Examples:Examples/H-3/Help_31.AMOS,0,4]Border}
  176.  
  177. Sets the border style of the current text window.
  178.  
  179.         Border style,paper,pen
  180.  
  181. style  can  range  from  1 to 16, but currently only styles 1 through 3 are
  182. defined for your use.
  183.  
  184. END
  185. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]End}
  186.  
  187. Exits from the program.
  188.  
  189.       End
  190. FREE
  191. {[RAMOSPro_Examples:Examples/H-6/Help_64.amos,0,4]=Free}
  192.  
  193. Returns the number of bytes of FREE memory available to hold variables.
  194.  
  195.         Print Free
  196.  
  197. FREEZE
  198. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Freeze}
  199.  
  200. Freezes  all  object  movements  at  their  present  position.  They can be
  201. restarted again using UNFREEZE.
  202.  
  203.         Freeze
  204.  
  205. INPUT
  206. {[RAMOSPro_Examples:Examples/H-6/Help_63.AMOS,0,4]Input}
  207.  
  208. Loads information into one or more variables.
  209.  
  210.         Input variable list
  211.         Input "prompt";variable list
  212.  
  213. REM
  214. {[RAMOSPro_Examples:Examples/H-4/Help_48.amos,0,4]Rem}
  215.  
  216. Rem  is  a little REMark statement included in your programs that helps you
  217. REMember  something.   The text you use after a REM statement is ignored by
  218. the program.  The apostrophe character can also be used instead of REM.
  219.  
  220.         Rem This is where I hid my old socks data
  221.         ' And this is a rem statement too
  222. UNFREEZE
  223. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Unfreeze}
  224.  
  225. Starts your objects moving again after you've suspended them with FREEZE.
  226.  
  227.         UNfreeze
  228. X GR
  229. {[RAMOSPro_Examples:Examples/H-0/Help_6.AMOS,0,4]=X Gr}
  230.  
  231. Returns the X coordinate of the invisible graphics cursor.
  232.  
  233.         cx=Xgr
  234. Y GR
  235. {[RAMOSPro_Examples:Examples/H-0/Help_6.AMOS,0,4]=Y Gr}
  236.  
  237. Returns the Y coordinate of the invisible graphics cursor.
  238.  
  239.        cy=Ygr
  240.  
  241. Main Menu
  242.  
  243.              {[IHelphelp    ,4,3] Using Help             }  {[IHelpAudio   ,4,3] Audio                  }
  244.              {[IHelpkeyHelp ,4,3] Editor                 }  {[IHelpInterface ,4,3] AMOS Interface         }
  245.              {[IHelpDirect  ,4,3] Direct mode            }  {[IHelpIO    ,4,3] Input/Output           }
  246.              {[IHelpSyntax  ,4,3] Syntax conventions     }  {[IHelpAmigaDos ,4,3] AmigaDos               }
  247.              {[IHelpBasics  ,4,3] Basics of AMOS         }  {[IHelpDebug   ,4,3] Debugging              }
  248.              {[IHelpScreens ,4,3] Screen control         }  {[IHelpMC      ,4,3] Machine code           }
  249.              {[IHelpObjects ,4,3] Object control         }  {[IHelpTables  ,4,3] Tables                 }
  250.  
  251.  
  252.                                 {[IHelpinfo    ,4,3] Latest News}
  253.  
  254. Using Help
  255. Welcome  to  the amazing AMOS Professional Help System.  This contains full
  256. details  of all 700+ AMOS commands.  So if you get stuck, help will only be
  257. a keypress away!
  258.  
  259. You  can  use  this  system in a variety of ways.  The easiest option is to
  260. simply position the Editor`s cursor over the first character of any command
  261. you  are  unsure  of, and hit the Help key straight from the keyboard.  The
  262. Help  program  will  now  load  into memory, and you`ll be presented with a
  263. quick explanation of the command in a special `help window`.
  264.  
  265. If  the  information  is  longer  than  a  single screen it can be scrolled
  266. through  the  window  using either the Up/Down arrows from the keyboard, or
  267. via  the arrow icons to the top right of the window.  You can also drag the
  268. window through the text using the scroll bar along the right.
  269.  
  270. Along the top of the window there are four icons.
  271.  
  272. The X icon closes the help window and returns you to your basic program.
  273.  
  274. Prev.Page flicks back to the most recently displayed help screen.
  275.  
  276. Main Menu presents you with a full list of the available help topics.
  277.  
  278. Print makes a hardcopy of the current help screen onto a printer for future
  279. reference.
  280.  
  281. The individual help menus are formed  using a series of buttons which can be
  282. selected  using  the Left Mouse key  as you`d expect.  Some buttons move you 
  283. directly to the  explanation of a particular command, whereas others present
  284. you with a complete menu in their own right. Here`s an example:
  285.  
  286.                         {[IHelpItem1,4,3] Help Example 1                }
  287.                         {[IHelpItem2,4,3] Help Example 2                }
  288.                         {[IHelpItem3,4,3] Help Example 3                }
  289.  
  290. Some  of  these  menus have been permanently assigned to the main Help menu
  291. from the Editor window.  These can be brought up by simply highlighting the
  292. menu item with the mouse.
  293.  
  294. Try selecting one of these buttons with the Left mouse key.  See you there!
  295.  
  296. We`ll  finish  off  this tutorial with a brief list of all the ways you can
  297. get help from AMOS Professional.
  298.  
  299. * Pressing the Help Key when you`ve positioned the cursor over an AMOS command
  300.  
  301. * Hitting F5 from the keyboard
  302.  
  303. * Selecting the `H` icon from the top of the Editor window.
  304.  
  305. * Selecting a menu item from the Help menu.
  306.  
  307. Item 1
  308. This is an example of a help item. 
  309.  
  310. Many items also have an associated example program.  This is indicated by a
  311. line such as:
  312.  
  313. {[RAMOSPro_Examples:Examples/H-0/Help_1.AMOS,0,4] Help Example 1 }
  314.  
  315. When  you  click  on the heighlighted text, you will be given the option to
  316. load  the  selected  program  into  a  new listing window and return to the
  317. Editor.
  318.  
  319. Now  click  on  the Prev.Page button at the top of this window to return to
  320. the tutorial screen.
  321.  
  322. Item 2
  323. This is another example of a help item.
  324.  
  325. Many items also have an associated example program.  This is indicated by a
  326. line such as:
  327.  
  328. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4] Help Example 2 }
  329.  
  330. When  you  click  on the heighlighted text, you will be given the option to
  331. load  the  selected  program  into  a  new listing window and return to the
  332. Editor.
  333.  
  334. Now click on the Prev.Page button at the top of this window to return to the
  335. tutorial screen.
  336.  
  337. Item  3 
  338. This is the third example of a helpitem.
  339.  
  340. Many items also have an associated example program.  This is indicated by a
  341. line such as:
  342.  
  343. {[RAMOSPro_Examples:Examples/H-0/Help_3.AMOS,0,4] Help Example 3 }
  344.  
  345. When  you  click  on the heighlighted text, you will be given the option to
  346. load  the  selected  program  into  a  new listing window and return to the
  347. Editor.
  348.  
  349. Now click on the Prev.Page button at the top of this window to return to the
  350. tutorial screen.
  351.  
  352.  
  353. The Basics of AMOS Professional
  354.  
  355.                         {[IHelpBare    ,4,3] The Bare Bones               }
  356.                         {[IHelpStrings ,4,3] Strings                      }
  357.                         {[IHelpMaths   ,4,3] Maths                        }
  358.                         {[IHelpCS      ,4,3] Control Structures           }
  359.                         {[IHelpProcs   ,4,3] Procedures                   }
  360.                         {[IHelptext    ,4,3] Text                         }
  361.                         {[IHelpWindows ,4,3] Windows                      }
  362.                         {[IHelpFonts   ,4,3] Fonts                        }
  363.                         {[IHelpMouse   ,4,3] The mouse and joystick ports }
  364.                         {[IHelpMembank ,4,3] Memory banks                 }
  365.                         {[IHelpArray   ,4,3] Array Operations             }
  366.                         {[IHelpProgram ,4,3] Program Run commands         }
  367.                         {[IHelpMemcons ,4,3] Memory Conservation          }
  368.                         {[IHelpMisc    ,4,3] Miscellaneous commands       }
  369. Screen Control
  370.  
  371.                         {[IHelpSetup   ,4,3] Setting up screens           }
  372.                         {[IHelpSeffect ,4,3] Screen effects               }
  373.                         {[IHelpGraphic ,4,3] Graphics                     }
  374.                         {[IHelpMenus   ,4,3] Menus                        }
  375.                         {[IHelpZones   ,4,3] Screen Zones                 }
  376. Object Control
  377.  
  378.                         {[IHelpHardSP  ,4,3] Hardware Sprites             }
  379.                         {[IHelpBobs    ,4,3] Blitter objects              }
  380.                         {[IHelpUpdate  ,4,3] Updating objects             }
  381.                         {[IHelpCollide ,4,3] Detecting collisions         }
  382.                         {[IHelpIFFanim ,4,3] IFF anim                     }
  383.                         {[IHELPAMAL    ,4,3] AMAL                         }
  384.                         {[IHELPICBK    ,4,3] Icons and Blocks             }
  385.  
  386. Audio
  387.  
  388.                         {[IHelpMusic   ,4,3] Music                        }
  389.                         {[IHelpSound   ,4,3] Sound Effects                }
  390.                         {[IHelpSpeech  ,4,3] Speech                       }
  391.                         {[IHelpSamples ,4,3] Samples                      }
  392.                         {[IHelpTracker ,4,3] Tracker                      }
  393.                         {[IHelpMed     ,4,3] MED                          }
  394.  
  395. Control Structures
  396.  
  397.                       {[IDO       ,4,3] Do       } {[IEXIT IF  ,4,3] Exit If  } {[IPOP      ,4,3] Pop      }
  398.                       {[IELSE     ,4,3] Else     } {[IFOR      ,4,3] For      } {[IREPEAT   ,4,3] Repeat   }
  399.                       {[IELSE IF  ,4,3] Else If  } {[IGOSUB    ,4,3] Gosub    } {[IRETURN   ,4,3] Return   }
  400.                       {[IEND IF   ,4,3] End If   } {[IGOTO     ,4,3] Goto     } {[ISTEP     ,4,3] Step     }
  401.                       {[IEVERY    ,4,3] Every    } {[IIF       ,4,3] If       } {[ITHEN     ,4,3] Then     }
  402.                       {[IEVERY ON ,4,3] Every On } {[ILOOP     ,4,3] Loop     } {[IUNTIL    ,4,3] Until    }
  403.                       {[IEVERY OFF,4,3] Every Off} {[INEXT     ,4,3] Next     } {[IWEND     ,4,3] Wend     }
  404.                       {[IEXIT     ,4,3] Exit     } {[ION       ,4,3] On       } {[IWHILE    ,4,3] While    }
  405. DO
  406. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]Do}
  407.  
  408. Acts  as  a  marker  to  which a matching LOOP statement can return.  Press
  409. [Ctrl]+[C] to break out of one of these loops.
  410.  
  411.         Do : Print "forever" : Loop
  412. ELSE
  413. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Else}
  414.  
  415. Chooses between alternative actions in an IF...THEN structure.
  416.  
  417.         If condition Then statement1 Else statement2
  418.  
  419. ELSE IF
  420. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Else If}
  421.  
  422. This is used inside an IF..ENDIF or IF..ELSE..ENDIF structure.  It performs
  423. a  test,  and  if  it's true, executes all the AMOS commands until the next
  424. ELSEIF, ELSE or ENDIF statement.
  425.  
  426.         If A=1
  427.            Print "A=1"
  428.         Else If A=2
  429.            Print "A=2"
  430.         Else If A=3
  431.            Print "A=3"
  432.         Else
  433.            Print "Other values..."
  434.         End If
  435.  
  436. Note that you CAN'T use an ELSEIF between the ELSE and ENDIF section.
  437. END IF
  438. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Endif}
  439.  
  440. ENDs an IF condition inside a structured test.
  441.  
  442.         If test : Goto Label1 : Else Goto Label2 : Endif
  443. EVERY
  444. {[RAMOSPro_Examples:Examples/H-1/Help_14.AMOS,0,4]Every}
  445.  
  446. Calls  a  named  subroutine  or  procedure at regular intervals.  There are
  447. several different forms of this command to choose from:
  448.  
  449.         Every n Gosub label
  450.  
  451. Executes the gosub after n fiftieths of a second.
  452.  
  453.         Every n Proc name
  454.  
  455. Calls a procedure every n ticks
  456. EVERY ON
  457. {[RAMOSPro_Examples:Examples/H-1/Help_14.AMOS,0,4]Every On}
  458.  
  459. Used  to  start  up  the  ON  EVERY system.  You'll also need to perform it
  460. directly  before  leaving  your  procedure  or  gosub.  Otherwise the EVERY
  461. system will stop after the first call.
  462.  
  463.         Every On
  464. EVERY OFF
  465. {[RAMOSPro_Examples:Examples/H-1/Help_14.AMOS,0,4]Every Off}
  466.  
  467. Turns off the ON..EVERY system.
  468.  
  469.         Every Off
  470. EXIT
  471. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]Exit}
  472.  
  473. Jumps   out   of   a   program   loop  created  by  DO...LOOP,  FOR...NEXT,
  474. REPEAT...UNTIL  or  WHILE...WEND.   If  you  omit  the number of loops, the
  475. innermost loop will be terminated automatically.
  476.  
  477.         Exit
  478.         Exit loopnumbers
  479.  
  480. EXIT IF
  481. {[RAMOSPro_Examples:Examples/H-1/Help_12.AMOS,0,4]Exit If}
  482.  
  483. Exits  from  a program loop if the condition is TRUE.  Allowable loop types
  484. include DO..LOOP, FOR..NEXT and REPEAT..UNTIL.
  485.  
  486.         Exit If condition
  487.         Exit if condition,loopnumbers
  488. FOR
  489. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]For}
  490.  
  491. FOR  is  used  to  kick  off  the  repetition of a section of program FOR a
  492. specific  number of times.  It is used with the distance command TO and the
  493. counting command NEXT.
  494.  
  495.         For counter=start To end
  496.         Next
  497. GOSUB
  498. {[RAMOSPro_Examples:Examples/H-0/Help_3.AMOS,0,4]Gosub}
  499.  
  500. Jumps to subroutine in your program.  At the end of your routine you should
  501. use  a  RETURN  statement  to  return to the next instruction after the
  502. GOSUB.
  503.  
  504.         Gosub linenumber : Rem jump to subroutine at linenumber
  505.         Gosub label : Rem jump to this AMOS Professional label
  506.         Gosub expression : Rem jump to resulting label/line
  507. GOTO
  508. {[RAMOSPro_Examples:Examples/H-0/Help_3.AMOS,0,4]Goto}
  509.  
  510. Instructs the program to GO TO a specified new line number or label.
  511.  
  512.         Goto label
  513.         Goto linenumber
  514.         Goto expression
  515. IF
  516. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]If}
  517.  
  518. Selects between one of two actions, depending on a condition.
  519.  
  520.         If conditions Then statements
  521.  
  522. More advanced IF instructions can be set up that choose between alternative
  523. actions,  using  AND, OR and ELSE.  ENDIF is used to terminate this sort of
  524. structured test.
  525.  
  526.         If test : Goto Label : Else Goto Label2 : End If
  527. LOOP
  528. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]Loop}
  529.  
  530. Acts as the partner to a DO command, creating a repetitive LOOP.
  531.  
  532.        Do
  533.            Print "Eternity"
  534.        Loop
  535. NEXT
  536. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Next}
  537.  
  538. is the counting command that partners FOR, to repeat a section of program
  539. a specific number of times.
  540.  
  541.        For x=1 To 100 : Print "Professional" : Next x
  542. ON
  543. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]On}
  544.  
  545. Jumps to a particular line or procedure, depending ON the contents of a 
  546. variable.
  547.  
  548. ON can be used in conjunction with GOTO, GOSUB, or PROC
  549.  
  550. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]        On variable Goto  label1,label2...}
  551. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]        On variable Gosub label1,label2...}
  552. {[RAMOSPro_Examples:Examples/H-1/Help_12.AMOS,0,4]        On variable Proc  proc1, proc2 ...}
  553. POP
  554. {[RAMOSPro_Examples:Examples/H-0/Help_3.AMOS,0,4]Pop}
  555.  
  556. Pops the RETURN value out of a Gosub and allows you to leave it in any
  557. way you like:
  558.  
  559.         Pop : Goto ANYWHERE
  560. REPEAT
  561. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]Repeat}
  562.  
  563. Kicks off a program loop that REPEATs UNTIL a condition is satisfied.
  564.  
  565.         Repeat
  566.               list of statements
  567.         Until condition
  568. RETURN
  569. {[RAMOSPro_Examples:Examples/H-0/Help_3.AMOS,0,4]Return}
  570.  
  571. Exits  from  a subroutine and RETURNs to the AMOS Pro instruction after the
  572. original GOSUB.  Each Gosub statement can have more than one Return command
  573. at different places in the routine.
  574.  
  575.         Return
  576. STEP
  577. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Step}
  578.  
  579. Controls  the  size  of any STEPs inside a FOR...NEXT loop.  Normally steps
  580. are  counted  off  in units of one at a time, but you can choose any number
  581. you want for the size of step.
  582.  
  583.         For x=firstnumber To lastnumber STEP stepnumber
  584. THEN
  585. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Then}
  586.  
  587. Acts as a partner to an IF in a logical choice between alternative actions.
  588.  
  589.        If condition Then statement
  590. UNTIL
  591. {[RAMOSPro_Examples:Examples/H-1/Help_13.AMOS,0,4]Until}
  592.  
  593. Keeps a REPEAT loop going UNTIL a condition has been satisfied.
  594.  
  595.         Repeat
  596.               list of statements
  597.         Until condition
  598. WHILE
  599. {[RAMOSPro_Examples:Examples/H-1/Help_12.AMOS,0,4]While}
  600.  
  601. Marks  the  beginning  of  a  loop used to repeat a section of your program
  602. WHILE  a  condition  remains  true.   If the condition does not result in a
  603. value of -1 for "true", then the loop will be stopped, and the program will
  604. go on to the next instruction.
  605.  
  606.         While condition
  607.                 list of statements
  608.         Wend
  609. WEND
  610. {[RAMOSPro_Examples:Examples/H-1/Help_12.AMOS,0,4]Wend}
  611.  
  612. Marks  the  end  of a loop used to repeat a section of your program WHILE a
  613. condition  remains true.  If the condition does not result in a value of -1
  614. for  "true",  then  the loop will be stopped, and the program will go on to
  615. the next instruction.
  616.  
  617.         While condition
  618.                 list of statements
  619.         Wend
  620.  
  621. AMOS Interface
  622.  
  623.                 {[IARRAY          ,4,3] =Array              } {[IEDIALOG            ,4,3] =Edialog            }
  624.                 {[IDIALOG         ,4,3] =Dialog             } {[IRDIALOG            ,4,3] =Rdialog            }
  625.                 {[IDIALOG BOX     ,4,3] =Dialog Box         } {[IRDIALOG$           ,4,3] =Rdialog$           }
  626.                 {[IDIALOG CLOSE   ,4,3] Dialog Close        } {[IRESOURCE$          ,4,3] =Resource$          }
  627.                 {[IDIALOG CLR     ,4,3] Dialog Clr          } {[IRESOURCE BANK       ,4,3] Resource Bank       }
  628.                 {[IDIALOG FREEZE  ,4,3] Dialog Freeze       } {[IRES_EDIT            ,4,3] The Resource Editor }
  629.                 {[IDIALOG OPEN    ,4,3] Dialog Open         } {[IRESOURCE SCREEN OPEN,4,3] Resource Screen Open}
  630.                 {[IDIALOG RUN     ,4,3] =Dialog Run         } {[IRESOURCE UNPACK     ,4,3] Resource Unpack     }
  631.                 {[IDIALOG UNFREEZE,4,3] Dialog Unfreeze     } {[IVDIALOG            ,4,3] =Vdialog            }
  632.                 {[IDIALOG UPDATE  ,4,3] Dialog Update       } {[IVDIALOG$           ,4,3] =Vdialog$           }
  633.  
  634.                            {[IHelpIntins     ,4,3]   Internal  Commands   }
  635. ARRAY
  636. {[RAMOSPro_Tutorial:Tutorials/Interface/Sliders.AMOS,0,4]=Array}
  637.  
  638. Returns the address in memory of the first item in your array.
  639.  
  640.         address=ARRAY(list(0))
  641.         address=ARRAY(list$(0))
  642.         address=ARRAY(list#(0))
  643.  
  644. list is the name of your array, and can contain any data you like.
  645.  
  646. DIALOG
  647. {[RAMOSPro_Tutorial:Tutorials/Interface/Communication.AMOS,0,4]Dialog}
  648.  
  649. Checks whether the user has selected one of the options from a control panel.
  650.  
  651.         button=Dialog(channel)
  652.  
  653. The return value can take one of several values.
  654.  
  655. =0   There has been no input from the user since the last selection.
  656. >0   Holds the number of the last button highlighted by the user.
  657. DIALOG BOX
  658. {[RAMOSPro_Tutorial:Tutorials/Interface/Simple_requester.AMOS,0,4]=Dialog Box}
  659.  
  660. Displays  a  requestor  or  dialogue  box  on  the  screen  using  a set of
  661. instructions from an Interface command string or resource bank.
  662.  
  663.         button=Dialog Box(Interface$)
  664.         button=Dialog Box(program)
  665.  
  666. Interface$ is a normal AMOS string containing your Interface program.
  667.  
  668. program is the number of an Interface program from the resource bank.
  669.  
  670.         button=Dialog Box(Interface$,p0)
  671.         button=Dialog Box(program,p0)
  672.         button=Dialog Box(Interface$,p0,p1$)
  673.         button=Dialog Box(program,p0,p1$)
  674.  
  675. p0  contains  an  optional value which is loaded straight into the internal
  676. variable  array.   It  can  be  accessed  using  the 0 VA command from your
  677. dialogue box or requestor.
  678.  
  679. p1$ holds an optional string value which will be forwarded to your 
  680. Interface program.
  681.  
  682. It will be saved as item 1 of the variable array (1 VA).
  683.  
  684.         button=Dialog Box(Interface$,p0,p1$,x,y)
  685.         button=Dialog Box(program,p0,p1$,x,y)
  686.  
  687. x,y  positions  the dialogue box on the screen using a couple of coordinate
  688. values.  These coordinates can be overridden using a BA command inside your
  689. Interface program.
  690.  
  691. Note: If you want your Interface program to wait for user's input,you MUST 
  692. include a RUn command before your final EXit;
  693. DIALOG CLOSE
  694. {[RAMOSPro_Tutorial:Tutorials/Interface/Communication.AMOS,0,4]Dialog Close}
  695.  
  696. Closes  one  or  more  dialogue  channels on the screen.  If your Interface
  697. program includes an SA command, the original background areas will be pasted
  698. neatly back onto the display before it leaves.
  699.  
  700.         Dialog Close
  701.  
  702. Closes all dialogue channels.
  703.  
  704.         Dialog Close channel
  705.  
  706. Closes just a single channel.
  707. DIALOG CLR
  708. Erases all zones and totally shuts down your dialog box, leaving the channel
  709. still open. You can now re-run your Interface program from the start using a
  710. further call to the DIALOG RUN command as normal. 
  711.  
  712. As always, if the background area has been saved using the SA option, it will
  713. be restored to it's original position.
  714.  
  715.         Dialog Clr channel
  716.  
  717. channel holds number of the channel to be cleared.
  718. DIALOG FREEZE
  719. Freezes all input from one or more active dialog channels.
  720.  
  721.         Dialog Freeze
  722.  
  723. Suspends all current dialogue boxes.
  724.  
  725.         Dialog Freeze channel
  726.  
  727. Stops just a single dialogue routine.
  728.  
  729. DIALOG OPEN
  730. {[RAMOSPro_Tutorial:Tutorials/Interface/Communication.AMOS,0,4]Dialog Open}
  731.  
  732. Opens up a "communications channel" to your new AMOS interface program.
  733.  
  734.         Dialog Open channel,Interface$
  735.         Dialog Open channel,program
  736.  
  737. channel is the number of the channel to open, starting from one.
  738.  
  739. Interface$  is  an AMOS string containing one or more Interface programs to
  740. be  initialised.   If  your  string contains several programs, each routine
  741. should begin with a LAbel instruction and end with an "EXit" command.
  742.  
  743. program  holds  the number of an Interface program installed in the resource
  744. bank.  See the RESOURCE BANK command for details
  745.  
  746.         Dialog Open channel,Interface$,nvar
  747.         Dialog Open channel,program,nvar
  748.  
  749. nvar  sets  the  size of the variable array used by your Interface program.
  750. Each extra variable takes up 4 bytes of memory.
  751.  
  752.         Dialog Open channel,Interface$,nvar,buffer
  753.         Dialog Open channel,program,nvar,buffer
  754.  
  755. buffer  sets  the  size  of  an internal memory area used by your Interface
  756. programs.   As  a  default,  the  buffer is just 1k for each channel you've
  757. defined,  but  if  your interface is very complex, you may need to increase
  758. this value dramatically.
  759.  
  760. DIALOG RUN
  761. {[RAMOSPro_Tutorial:Tutorials/Interface/Communication.AMOS,0,4]=Dialog Run}
  762.  
  763. Executes an Interface program from a dialogue channel which you've previously
  764. set up with DIALOG OPEN.
  765.  
  766.         b=Dialog Run(channel)
  767.  
  768. Runs your Interface program.  If it doesn't contain a RunUntil instruction,
  769. the dialogue will occur in the background.
  770.  
  771.         b=Dialog Run(channel,label)
  772.  
  773. label  starts  the  program  from a specific label in the Interface command
  774. string.   If  it's  not  specified, the system will commence from the first
  775. program in the list.
  776.  
  777.         b=Dialog Run(channel,label,x,y)
  778.  
  779. x,y  set  the  position  of  the control panel on the screen.  All graphics
  780. coordinates will now be measured from this point.
  781.  
  782. Warning! 
  783.  
  784. If you've included a BAse command in your program, your new x,y coordinates
  785. will be totally ignored.
  786.  
  787. DIALOG UNFREEZE
  788. Used  after a DIALOG FREEZE to restart the dialog channel from the point it
  789. left off.
  790.  
  791.         Dialog Unfreeze
  792.  
  793. Starts all suspended channels.
  794.  
  795.         Dialog Unfreeze channel
  796.  
  797. Activates a single channel.
  798. DIALOG UPDATE
  799. Forces AMOS Interface to redraw the contents of an active zone on the screen.
  800.  
  801.         Dialog Update channel,zone
  802.  
  803. channel the number of an active dialogue channel to be updated.
  804.  
  805. zone enters the number of the zone to be affected.
  806.  
  807.         Dialog Update channel,zone[,param1][,param2][,param3]
  808.  
  809. The effect of these parameters depends on the type of your zone.
  810.  
  811. Param 1:
  812.  
  813. Button       Enters a new position.
  814. Active List  Sets the number of the first string displayed
  815. Slider       Moves the slider
  816. Digit        Replaces the existing number zone
  817. Edit         Inserts a new string in the edit zone
  818.  
  819. Param 2:
  820.  
  821. Active List  Changes the currently selected string
  822. Slider       Alters the size of the slider window 
  823.  
  824. Param3:
  825.  
  826. Active List  Sets the last element of the array that you can select.
  827. Slider       Changes the "total" parameter
  828.  
  829. EDIALOG
  830. Returns  the  position  of  an error in the current AMOS Interface program.
  831. It's  used  after  a  TRAP or ON ERROR statement to isolate any problems in
  832. your Interface routine.
  833.  
  834.          position=Edialog
  835. RDIALOG
  836. {[RAMOSPro_Tutorial:Tutorials/Interface/Editing_zones.AMOS,0,4]=Rdialog}
  837.  
  838. Reads the position of a particular button or selector.
  839.  
  840.         b=Rdialog(channel,zone)
  841.  
  842. channel is the number of a currently open Interface channel
  843.  
  844. zone specifies the button or zone to be tested.
  845.  
  846.         b=Rdialog(channel,zone,version)
  847.  
  848. If  you  omit  the  version number, RDIALOG will return the position of the
  849. FIRST object you've defined with the current zone number.
  850.  
  851. RDIALOG$
  852. {[RAMOSPro_Tutorial:Tutorials/Interface/Editing_zones.AMOS,0,4]=Rdialog$}
  853.  
  854. Returns  a  piece  of text assigned to a zone.  If your chosen zone doesn't
  855. actually contain any text, you'll be presented with an empty string "".
  856.  
  857.         test$=RDIALOG$(channel,zone)
  858.  
  859. channel is the number of a currently open Interface channel
  860.  
  861. zone specifies the button or zone to be tested.
  862.  
  863.         test$=RDIALOG$(channel,zone,version)
  864.  
  865. If  you  omit  the  version number, RDIALOG will return the contents of the
  866. FIRST object you've defined with the present zone number.
  867. The Resource Editor
  868. This is a seperate program on the AMOS Accessories disc which allows you to
  869. enter  the various images and messages for your resource banks.  
  870.  
  871. The  images  are  grabbed  from an IFF format picture.  Once you`ve created
  872. them,  they  can  be loaded into memory and used directly with the internal
  873. LIne,BOx, or VLine commands.  You can also enter your very own messages for
  874. use with the ME function.
  875.  
  876. See  the  Accessory  section  of  the  AMOS Professional User Guide for
  877. further details.
  878.  
  879. RESOURCE BANK
  880. {[RAMOSPro_Tutorial:Tutorials/Interface/Simple_requester.AMOS,0,4]Resource Bank}
  881.  
  882. Tells AMOS where to find the resources used by your Interface programs.
  883.  
  884.         Resource Bank banknumber
  885.  
  886. banknumber holds the number of the bank to be allocated for your resources.
  887. If  this  bank  does  not  exist,  you won't get an error, but the editor's
  888. internal resource bank will be used instead.
  889.  
  890. RESOURCE SCREEN OPEN
  891. {[RAMOSPro_Tutorial:Tutorials/Interface/Simple_requester.AMOS,0,4]Resource Screen Open}
  892.  
  893. Opens  up  a  screen using the screen settings stored in the resource bank.
  894. These  include the number of colours, the resolution, and the entire colour
  895. palette.
  896.  
  897.         Resource Screen Open n,w,h,flash
  898.  
  899. n selects a screen number from 0 to 7 to be defined.
  900.  
  901. w specifies the width of the screen in pixels.
  902.  
  903. h enters the height of your screen in lines.
  904.  
  905. flash tells AMOS whether or not to flash the cursor colour.  If it's set to
  906. zero, the flash will be turned off.  Any other value enters a colour number
  907. to be assigned to the flash effect.
  908.  
  909. The screen will be automatically installed with the colour palette held in 
  910. the resource bank
  911. RESOURCE UNPACK
  912. Unpacks a single element from the current resource bank, and displays it on
  913. the screen.
  914.  
  915.         Resource Unpack n,x,y
  916.  
  917. n holds the number of the element you wish to display.
  918.  
  919. x,y specify the position of your new image on the screen.
  920. RESOURCE$
  921. Returns one of the messages from the current resource bank, for use by your
  922. AMOS  program.   If  you  haven't  defined  one  of  these banks, you'll be
  923. presented with the standard editor messages from the configuration file.
  924.  
  925.         m$=Resource$(message)
  926.  
  927. It can also be used to get vital system information.
  928.  
  929. Message=0 returns the full pathname of the APSystem folder. 
  930.  
  931. Message between 0 and -1000 returns Interpretor_Configuration system strings.
  932.  
  933.         -1  to -9 : default file names
  934.         -10 to -36: all 26 extensions
  935.         -37 to -38: communication ports
  936.         -40:        default cursor flashing
  937.  
  938. Messages between -1000 and -2000 return Editor_Configuration system strings.
  939.  
  940. -2001 to -2044: diverse stuff used by the editor!
  941.  
  942. -2045 to -2049: editor system files
  943. VDIALOG
  944. {[RAMOSPro_Tutorial:Tutorials/Interface/Sliders.AMOS,0,4]=Vdialog}
  945.  
  946. Reads or modifies the internal variables in any active Interface program 
  947. directly from AMOS Basic.
  948.  
  949.         Vdialog(channel,var)=value
  950.  
  951. Assigns a value to an Interface variable.
  952.  
  953.         value=Vdialog(channel,var)
  954.  
  955. Reads a value from an Interface variable.
  956.  
  957. channel sets the number of an open dialogue channel.
  958.  
  959. var indicates the number of the variable to be accessed.
  960. VDIALOG$
  961. Reads  or  modifies  the  internal string variables in any active Interface
  962. program directly from AMOS Basic.
  963.  
  964.         Vdialog$(channel,var)=value$
  965.  
  966. Loads an Interface variable with a string.
  967.  
  968.         value$=Vdialog$(channel,var)
  969.  
  970. Reads an Interface string into AMOS Basic.
  971.  
  972. channel specifies the channel number.
  973.  
  974. var selects the variable.
  975.  
  976. System Commands
  977.  
  978.  
  979.                              {[IEXEC  ,4,3] Exec             }
  980.                              {[ISYSTEM,4,3] System           }
  981.  
  982. EXEC
  983. Executes an external program or CLI command.
  984.  
  985.          Exec "program_name"
  986.  
  987. As a default, AMOS sends the NIL: device to the instruction. 
  988.  
  989.          Exec "NEWCLI:"
  990.  
  991. Opens up a CLI window from your program! 
  992. SYSTEM
  993. Quits the AMOS Professional SYSTEM and returns to the Workbench or CLI.  If
  994. you've  booted  AMOS  Professional from a floppy, you'll now be left with a
  995. completely blank screen!  Time to boot up another program perhaps?
  996.  
  997.         System
  998.  
  999. Input/Output
  1000.  
  1001.                         {[IHelpKY      ,4,3] The keyboard                 }
  1002.                         {[IHelpDiscAcc ,4,3] Disc access                  }
  1003.                         {[IHelpPrinter ,4,3] Using the Printer            }
  1004.                         {[IHelpSerial  ,4,3] Serial communications        }
  1005.                         {[IHelpParallel,4,3] The Parallel port            }
  1006.  
  1007. AmigaDos
  1008.  
  1009.                         {[IHelpLibs    ,4,3] Libraries                    }
  1010.                         {[IHelpDevs    ,4,3] Devices                      }
  1011.                         {[IHelparexx   ,4,3] Arexx                        }
  1012.                         {[IHelpMT      ,4,3] Multi-tasking                }
  1013.                         {[IHelpSysReq  ,4,3] System commands              }
  1014.  
  1015. Debugging
  1016.                         {[IERR         ,4,3] =Err$                      }
  1017.                         {[IERRN        ,4,3] =Errn                      }
  1018.                         {[IERROR       ,4,3] Error                      }
  1019.                         {[IERRTRAP     ,4,3] =Errtrap                   }
  1020.                         {[ION ERROR    ,4,3] On Error                   }
  1021.                         {[IRESUME      ,4,3] Resume                     }
  1022.                         {[IRESUME LABEL,4,3] Resume Label               }
  1023.                         {[IRESUME NEXT ,4,3] Resume Next                }
  1024.                         {[ITRAP        ,4,3] Trap                       }
  1025.  
  1026. Machine Code
  1027.                    {[IAREG    ,4,3] Areg              } {[ILEEK   ,4,3] =Leek             }
  1028.                    {[IBIN$   ,4,3] =Bin$             } {[ILOKE    ,4,3] Loke              }
  1029.                    {[IBCHG    ,4,3] Bchg              } {[IPEEK   ,4,3] =Peek             }
  1030.                    {[IBTST   ,4,3] =Btst             } {[IPEEK$  ,4,3] =Peek$            }
  1031.                    {[IBCLR    ,4,3] Bclr              } {[IPLOAD   ,4,3] Pload             }
  1032.                    {[IBSET    ,4,3] Bset              } {[IPOKE    ,4,3] Poke              }
  1033.                    {[ICALL    ,4,3] Call              } {[IPOKE$   ,4,3] Poke$             }
  1034.                    {[ICOPY    ,4,3] Copy              } {[IROL.B   ,4,3] Rol.B             }
  1035.                    {[IDEEK   ,4,3] =Deek             } {[IROL.L   ,4,3] Rol.L             }
  1036.                    {[IDOKE    ,4,3] Doke              } {[IROL.W   ,4,3] Rol.W             }
  1037.                    {[IDREG    ,4,3] Dreg              } {[IROR.B   ,4,3] Ror.B             }
  1038.                    {[IFILL    ,4,3] Fill              } {[IROR.L   ,4,3] Ror.L             }
  1039.                    {[IHEX$   ,4,3] =Hex$             } {[IROR.W   ,4,3] Ror.W             }
  1040.                    {[IHUNT    ,4,3] Hunt              } {[IVARPTR ,4,3] =Varptr           }
  1041. AREG
  1042. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]=Areg}
  1043.  
  1044. AREG is an internal  array of three "pseudo" variables, used to hold copies 
  1045. of the 68000 processor chip's first three Address REGisters A0 to A2.
  1046.  
  1047.         a=Areg(r)
  1048.         Areg(r)=a
  1049. BIN$
  1050. {[RAMOSPro_Examples:Examples/H-5/Help_56.AMOS,0,4]=Bin$}
  1051.  
  1052. Converts a decimal number into an appropriate string of BINary digits
  1053.  
  1054. These digits are limited to one of the two values "0" and "1"
  1055.  
  1056.         =Bin$(number)
  1057.  
  1058. Returns the binary number using the fewest possible digits.
  1059.  
  1060.         =Bin$(number,n)
  1061.  
  1062. Returns the first n digits in the number.
  1063. BCHG
  1064. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Bchg}
  1065.  
  1066. Flips the selected bit in the number from 0 to 1 or vice versa.
  1067.  
  1068.         Bchg position,variable
  1069.  
  1070. Affects the contents of a single AMOS variable. 
  1071.  
  1072. Position holds a value from 0 to 31 which enters the bit number to be changed. 
  1073.  
  1074.         Bchg position,expression
  1075.  
  1076. If you use an expression rather than a simple variable, BGHG will treat it as
  1077. the ADDRESS in memory of a value to be changed.
  1078. BCLR
  1079. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Bclr}
  1080.  
  1081. Replaces the chosen binary bit with a value of zero.
  1082.  
  1083.         Bclr position,variable
  1084.  
  1085. Changes the bit in a normal AMOS variable.
  1086.  
  1087.         Bclr position,expression
  1088.  
  1089. Zeros the bit at the ADDRESS given by the expression.
  1090. BSET
  1091. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Bset}
  1092.  
  1093. Sets an individual binary bit in your number to 1.
  1094.  
  1095.         Bset position,variable
  1096.  
  1097. Affects the contents of a variable.
  1098.  
  1099.         Bset position,expression
  1100.  
  1101. Sets the bit at an ADDRESS in memory.
  1102. BTST
  1103. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]=Btst}
  1104.  
  1105. Tests a single bit in your number and returns a value of -1 (true) if it's a
  1106. one, or 0 (False) if it's a zero.
  1107.  
  1108.         test=Btst(position,variable)
  1109.  
  1110. Checks a bit in your selected variable. position holds a bit number ranging
  1111. from 0 to 31.
  1112.  
  1113.         test=Btst(position,expression)
  1114.  
  1115. Evaluates the expression, and tests the bit at the resulting memory ADDRESS.
  1116. The bit position is restricted to values from 0 to 7.
  1117. CALL
  1118. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]Call}
  1119.  
  1120. Executes a 68000 machine code program from either an address in memory,or a
  1121. memory  bank.  This program should have been previously installed using the
  1122. PLOAD instruction from AMOS Basic.
  1123.  
  1124.         Call address
  1125.         Call bank number
  1126.  
  1127. You  can  also  include  paramters  in  this  instruction.   These  will be
  1128. automatically pushed onto the A3 stack at the start of your routine.
  1129.  
  1130.         Call address,parameter list
  1131.         Call bank number,parameter list
  1132. COPY
  1133. {[RAMOSPro_Examples:Examples/H-5/Help_56.AMOS,0,4]Copy}
  1134.  
  1135. COPY is used to move large chunks of Amiga memory from one location to 
  1136. another.
  1137.  
  1138.         Copy start, finish To destination
  1139. DEEK
  1140. {[RAMOSPro_Examples:Examples/H-5/Help_57.AMOS,0,4]=Deek}
  1141.  
  1142. Reads a two-byte word from an EVEN memory address.
  1143.  
  1144.         Print Deek(address)
  1145. DOKE
  1146. {[RAMOSPro_Examples:Examples/H-5/Help_57.AMOS,0,4]Doke}
  1147.  
  1148. Loads a two-byte number into an EVEN memory address.
  1149.  
  1150.         Doke address,value
  1151. DREG
  1152. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]=Dreg}
  1153.  
  1154. DREG is a variable used to pass information to and from the Amiga's 68000 data
  1155. registers. (D0 to D7)
  1156.  
  1157.         d=Dreg(r)
  1158.         Dreg(r)=d
  1159. FILL
  1160. {[RAMOSPro_Examples:Examples/H-5/Help_56.AMOS,0,4]Fill}
  1161.  
  1162. Fills a selected area of memory with a four-byte FILL pattern.
  1163.  
  1164. All addresses MUST BE EVEN! 
  1165.  
  1166.         Fill start To finish, pattern
  1167.  
  1168. HEX$
  1169. {[RAMOSPro_Examples:Examples/H-5/Help_56.AMOS,0,4]=Hex$}
  1170.  
  1171. Translates a number into a list of HEXadecimal digits. 
  1172.  
  1173. These digits can take any of sixteen values from "0" to "9" and "A" through 
  1174. "F".
  1175.  
  1176.         =Hex$(number)
  1177.  
  1178. Returns the Hexadecimal number using the fewest possible digits.
  1179.  
  1180.         =Hex$(number,n)
  1181.  
  1182. Returns the first n digits in the number.
  1183. HUNT
  1184. {[RAMOSPro_Examples:Examples/H-5/Help_56.AMOS,0,4]=Hunt}
  1185.  
  1186. Hunts for a series of ASCII characters in the Amiga's memory. 
  1187.  
  1188.         first=Hunt(start To finish,s$)
  1189.  
  1190. After the search is complete test will be loaded with the first occurrence 
  1191. of the string s$ in memory.
  1192. LEEK
  1193. {[RAMOSPro_Examples:Examples/H-5/Help_57.AMOS,0,4]=Leek}
  1194.  
  1195. Reads a four-byte word stored at the even numbered memory address.
  1196.  
  1197.         Print Leek(address)
  1198. LOKE
  1199. {[RAMOSPro_Examples:Examples/H-5/Help_57.AMOS,0,4]Loke}
  1200.  
  1201. Copies a four-byte number into an even address in memory.
  1202.  
  1203.         Loke address,number
  1204.  
  1205. PEEK
  1206. {[RAMOSPro_Examples:Examples/H-5/Help_57.AMOS,0,4]=Peek}
  1207.  
  1208. Returns the contents of an 8-bit byte at the specified memory address.
  1209.  
  1210.         B=Peek(address)
  1211. PEEK$
  1212.  
  1213. PEEK$ reads length characters from your address and returns it as a normal 
  1214. AMOS string. 
  1215.  
  1216.         s$=PEEK$(address, length)
  1217.         S$=PEEK$(address, length,stop$)
  1218.  
  1219. address is the location of the first character to be read.
  1220.  
  1221. length holds the maximum number of characters to copy into the new string. 
  1222. If it's not a sensible value, the length will be assumed to be 65500.
  1223.  
  1224. stop$ sets an optional break character. If it's included, AMOS will stop 
  1225. reading the moment it encounters a stop$ character in your memory area.
  1226. PLOAD
  1227. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]Pload}
  1228.  
  1229. Reserves a memory bank and LOADs it with machine code from the disc.
  1230.  
  1231.         Pload "filename",banknumber
  1232.  
  1233. If banknumber is negative, it will be multiplied by -1 to calculate the number
  1234. of an AMOS memory bank. Your program will now be installed in CHIP RAM if it's
  1235. available. 
  1236. POKE
  1237. {[RAMOSPro_Examples:Examples/H-5/Help_57.AMOS,0,4]Poke}
  1238.  
  1239. Shoves a byte number in the range from 0 to 255 into the your chosen memory
  1240. address.
  1241.  
  1242.         Poke address,number
  1243. POKE$
  1244.  
  1245. Takes a source string and copies it directly to your chosen memory locations,
  1246. a character at a time.
  1247.  
  1248. POKE$ address, string$
  1249.  
  1250. address holds the address of the first byte to be loaded with your new string
  1251. data. The copying operation will continue until AMOS reaches the last 
  1252. character in your source string. Therefore, the end address will be:
  1253.  
  1254. address+Len(string$)-1
  1255. ROL.B
  1256. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Rol.B}
  1257.  
  1258. Rotates the first eight binary bits in a number a specific number of places 
  1259. to the left.
  1260.  
  1261.         Rol.B places,variable
  1262.         Rol.B places,expression
  1263.  
  1264. Note: If you enter an expression in this instruction, it will be treated as 
  1265. an ADDRESS.
  1266. ROL.L
  1267. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Rol.L}
  1268.  
  1269. Rotates all 32 bits in your number to the left.
  1270.  
  1271.         Rol.L places,variable
  1272.         Rol.L places,expression
  1273.  
  1274. variable is a normal AMOS variable you wish to rotate.
  1275.  
  1276. An expression is evaluated by AMOS Basic, and used as address of some data
  1277. you wish to change.
  1278. ROL.W
  1279. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Rol.W}
  1280.  
  1281. Rotates the first sixteen bits in your variable or memory location to the 
  1282. left.
  1283.         Rol.W places,variable
  1284.         Rol.W places,expression
  1285.  
  1286. If you use an expression rather than a variable, it will be treated as 
  1287. an address. 
  1288. ROR.B
  1289. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Ror.B}
  1290.  
  1291. Rotates the first binary bits in a number a specific number of places to the
  1292. right.
  1293.  
  1294.         Ror.B places,variable
  1295.         Ror.B places,expression
  1296.  
  1297. Note: If you enter an expression in this instruction, it will be treated as 
  1298. an ADDRESS. 
  1299. ROL.L
  1300. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Ror.L}
  1301.  
  1302. Rotates all the bits in your number to the right.
  1303.  
  1304.         Ror.L places,variable
  1305.         Ror.L places,expression
  1306.  
  1307. variable is a normal AMOS variable you wish to rotate.
  1308.  
  1309. An expression is evaluated by AMOS Basic, and used as address of some data 
  1310. you wish to change.
  1311. ROR.W
  1312. {[RAMOSPro_Examples:Examples/H-5/Help_55.AMOS,0,4]Ror.W}
  1313.  
  1314. Rotates the first sixteen bits in your variable or memory location to the
  1315. right.
  1316.  
  1317.         Rol.W places,variable
  1318.         Rol.W places,expression
  1319.  
  1320. If you use an expression rather than a variable, it will be treated as an 
  1321. address instead.
  1322. VARPTR
  1323. {[RAMOSPro_Examples:Examples/H-5/Help_56.AMOS,0,4]=Varptr}
  1324.  
  1325. Returns the address of an AMOS Basic VARiable in memory. Warning! 
  1326.  
  1327. The address of string variable can change dramaticaly during the course of 
  1328. your programs. So only POKE values into an address you KNOW to be correct!
  1329.  
  1330.         address=Varptr(variable)
  1331.  
  1332. See the AMOSPro User Guide for a complete explanation of this feature.
  1333.  
  1334. Tables
  1335.  
  1336.                         {[IHelpAscTab  ,4,3] Ascii table                  }
  1337.                         {[IHelpScantab ,4,3] Useful scancodes             }
  1338. Miscellaneous commands
  1339.                         {[IADD     ,4,3] Add                            }
  1340.                         {[IAND     ,4,3] And                            }
  1341.                         {[IDATA    ,4,3] Data                           }
  1342.                         {[IDEC     ,4,3] Dec                            }
  1343.                         {[IFALSE  ,4,3] =False                         }
  1344.                         {[IINC     ,4,3] Inc                            }
  1345.                         {[INOT     ,4,3] Not                            }
  1346.                         {[IOR      ,4,3] Or                             }
  1347.                         {[IREAD    ,4,3] Read                           }
  1348.                         {[IRESTORE ,4,3] Restore                        }
  1349.                         {[ITIMER   ,4,3] Timer                          }
  1350.                         {[ITRUE   ,4,3] =True                          }
  1351.                         {[IWAIT    ,4,3] Wait                           }
  1352.                         {[IMOD     ,4,3] =Mod                           }
  1353. ADD
  1354. {[RAMOSPro_Examples:Examples/H-0/Help_1.amos,0,4]Add}
  1355.  
  1356. Adds a number or expression to an integer variable at maximum speed.
  1357.  
  1358.         Add variable,expression
  1359.  
  1360. There's also a second, more powerful version of the command as well.
  1361.  
  1362.         Add variable,expression,min To max
  1363.  
  1364. Adds your expression to the variable as before. But after the result reaches
  1365. one of the limits, the variable cycles back from the start.
  1366.  
  1367. AND
  1368. Performs a logical AND operation between your two numbers.  It's often used
  1369. as part of a test to check for a number of different eventualities.
  1370.  
  1371.         Print A and B
  1372.         If T=2 and V=3 Then Print "TV"
  1373. DATA
  1374. {[RAMOSPro_Examples:Examples/H-4/Help_48.AMOS,0,4]Data}
  1375.  
  1376. Enters  a  list  of DATA items into an AMOS Professional program, which can
  1377. then be loaded into one or more variables using the READ instruction.  Each
  1378. item must be separated by a comma.
  1379.  
  1380.         Data 1,2,3,"AMOS Professional"
  1381. DEC
  1382. {[RAMOSPro_Examples:Examples/H-0/Help_1.amos,0,4]Dec}
  1383.  
  1384. Quickly subtracts one from your selected integer variable.
  1385.  
  1386.         Dec variable
  1387. FALSE
  1388. {[RAMOSPro_Examples:Examples/H-5/Help_53.AMOS,0,4]=False}
  1389.  
  1390. Returns  a  value  of  zero.   This value is used by tests to represent the
  1391. failure of a condition.
  1392.  
  1393.         If False Then Print "This will NEVER be printed!"
  1394.         Print False
  1395. INC
  1396. {[RAMOSPro_Examples:Examples/H-0/Help_1.amos,0,4]Inc}
  1397.  
  1398. Quickly adds a value of one to an integer variable.
  1399.  
  1400.         Inc variable
  1401. MOD
  1402. MOD  is  a  useful  little  function  which  allows you to cycle a variable
  1403. through a repetitive series of values.  It works by returning the remainder
  1404. after a division.
  1405.  
  1406.         r=v Mod d
  1407.  
  1408. This is equivalent to:
  1409.  
  1410.         R=v - Int(v/d)*d
  1411. NOT
  1412. {[RAMOSPro_Examples:Examples/H-5/Help_53.AMOS,0,4]Not}
  1413.  
  1414. Switches  every  binary  digit  in  your  number to a different state.  It's
  1415. commonly  used as part of a IF..THEN statement to reverse the effect of the
  1416. tests.
  1417.  
  1418.        Print Bin$(Not %1010,4)
  1419.        If Not (A=1 and B=2) Then Print "Successful"
  1420. OR
  1421. Combines two binary bit patterns together.  OR is generally used as part of
  1422. a test, to check a number of exclusive possibilities.
  1423.  
  1424.       Print 1 or 2
  1425.       If A=2 or B=3 Then Print A*B
  1426. READ
  1427. {[RAMOSPro_Examples:Examples/H-4/Help_48.AMOS,0,4]Read}
  1428.  
  1429. READs  information  from a DATA statement into a list of variables, using a
  1430. special  marker to locate the next item of data to be read.  Variables must
  1431. be  the  same  type as the data already held at the current position in the
  1432. program, and should be separated by commas.
  1433.  
  1434.         Read list of variables
  1435.  
  1436. RESTORE
  1437. {[RAMOSPro_Examples:Examples/H-4/Help_48.AMOS,0,4]Restore}
  1438.  
  1439. Changes the position of the starting point used by the next READ operation.
  1440.  
  1441.         Restore label
  1442.         Restore number
  1443. TIMER
  1444. {[RAMOSPro_Examples:Examples/H-5/Help_53.AMOS,0,4]=Timer}
  1445.  
  1446. is a reserved variable that counts off TIME in units of one 50th of a second.
  1447.  
  1448.  
  1449.         t=Timer
  1450. TRUE
  1451. {[RAMOSPro_Examples:Examples/H-5/Help_53.AMOS,0,4]=True}
  1452.  
  1453. Returns  a value of -1.  This is generated by tests such as (A=3) or (B<>4)
  1454. and denotes a successful check.
  1455.  
  1456.          If -1 Then Print "Minus 1 is True"
  1457.          If True Then Print "and True is";True
  1458. WAIT
  1459. {[RAMOSPro_Examples:Examples/H-5/Help_53.amos,0,4]Wait}
  1460.  
  1461. Pauses  an  AMOS  Professional  program and makes it WAIT for the number of
  1462. 50ths of a second you specify.
  1463.  
  1464.        Wait delay
  1465. Screen Zones
  1466.  
  1467.                         {[IHZONE      ,4,3] =Hzone                      }
  1468.                         {[IMOUSE ZONE ,4,3] =Mouse Zone                 }
  1469.                         {[IRESERVE ZONE,4,3] Reserve Zone                }
  1470.                         {[IRESET ZONE  ,4,3] Reset Zone                  }
  1471.                         {[ISET ZONE    ,4,3] Set Zone                    }
  1472.                         {[IZONE       ,4,3] =Zone                       }
  1473.  
  1474. HZONE
  1475. {[RAMOSPro_Examples:Examples/H-2/Help_23.AMOS,0,4]=Hzone}
  1476.  
  1477. Finds the screen zone at the requested HARDWARE coordinates.
  1478.  
  1479.          zone_number=Hzone(hx,hy)
  1480.  
  1481. MOUSE ZONE
  1482. {[RAMOSPro_Examples:Examples/H-2/Help_23.AMOS,0,4]=Mouse Zone}
  1483.  
  1484. Finds the screen ZONE under MOUSE pointer.
  1485.  
  1486.         zone_number=Mouse Zone
  1487. RESERVE ZONE
  1488. {[RAMOSPro_Examples:Examples/H-2/Help_21.AMOS,0,4]Reserve Zone}
  1489.  
  1490. RESERVEs enough memory for a selected number of detection ZONEs.  This must
  1491. be  set  up  before you define your zones using SET ZONE.  If you leave out
  1492. the number of zones, all current zone definitions will be wiped out.
  1493.  
  1494.         Reserve Zone zone_number
  1495.         Reserve Zone
  1496. RESET ZONE
  1497. {[RAMOSPro_Examples:Examples/H-2/Help_23.AMOS,0,4]Reset Zone}
  1498.  
  1499. Erases one or more screen ZONEs from the display.
  1500.  
  1501.         Reset Zone
  1502.  
  1503. Kills all currently defined zones. Dead!
  1504.  
  1505.         Reset Zone zone_number
  1506.  
  1507. Only resets a single zone.
  1508. SET ZONE
  1509. {[RAMOSPro_Examples:Examples/H-2/Help_21.AMOS,0,4]Set Zone}
  1510.  
  1511. SETs up a rectangular screen ZONE for testing with the ZONE functions.
  1512.  
  1513.         Set Zone number,tx,ty To bx,by
  1514.  
  1515. tx,ty hold the coordinates of the top left corner of your zone.
  1516.  
  1517. bx,by enter the point diagonally opposite.
  1518. ZONE
  1519. {[RAMOSPro_Examples:Examples/H-2/Help_23.AMOS,0,4]=Zone}
  1520.  
  1521. Returns  the  number  of  the  current  screen ZONE at the selected graphic
  1522. coordinates.
  1523.  
  1524.         Zone number=Zone(x,y)
  1525.  
  1526. You can also include a screen number with this function as well.
  1527.  
  1528.         zone number=Zone(screennumber,x,y)
  1529. Text
  1530.              {[IAT        ,4,3] =At        } {[ICLINE      ,4,3] Cline      } {[IPAPER      ,4,3] Paper      } {[ITAB$      ,4,3] =Tab$      }
  1531.              {[IBORDER$   ,4,3] =Border$   } {[IFONTDAT    ,4,3] Font Editor} {[IPAPER$    ,4,3] =Paper$    } {[IUNDER ON   ,4,3] Under On   }
  1532.              {[ICDOWN$    ,4,3] =Cdown$    } {[ICMOVE      ,4,3] Cmove      } {[IPEN        ,4,3] Pen        } {[IUNDER OFF  ,4,3] Under Off  }
  1533.              {[ICUP$      ,4,3] =Cup$      } {[IHOME       ,4,3] Home       } {[IPEN$      ,4,3] =Pen$      } {[IUSING      ,4,3] Using      }
  1534.              {[ICLEFT$    ,4,3] =Cleft$    } {[ICMOVE$     ,4,3] Cmove$     } {[IPRINT      ,4,3] Print      } {[IWRITING    ,4,3] Writing    }
  1535.              {[ICUP       ,4,3] Cup        } {[IINVERSE ON ,4,3] Inverse On } {[IREMEMBER X ,4,3] Remember X } {[IX GRAPHIC  ,4,3] =X Graphic }
  1536.              {[ICDOWN     ,4,3] Cdown      } {[ICRIGHT     ,4,3] Cright     } {[IREMEMBER Y ,4,3] Remember Y } {[IX CURS    ,4,3] =X Curs    }
  1537.              {[ICENTRE    ,4,3] Centre     } {[IINVERSE OFF,4,3] Inverse Off} {[IREPEAT$   ,4,3] =Repeat$   } {[IX TEXT    ,4,3] =X Text    }
  1538.              {[ICURS OFF  ,4,3] Curs Off   } {[ICRIGHT$    ,4,3] =Cright$   } {[ISET CURS   ,4,3] Set Curs   } {[IY TEXT    ,4,3] =Y Text    }
  1539.              {[ICURS ON   ,4,3] Curs On    } {[ILOCATE     ,4,3] Locate     } {[ISET TAB    ,4,3] Set Tab    } {[IY CURS    ,4,3] =Y Curs    }
  1540.              {[ICLEFT     ,4,3] Cleft      } {[IMEMORIZE Y ,4,3] Memorize Y } {[ISHADE ON   ,4,3] Shade On   } {[IYGRAPHIC  ,4,3] =Y Graphic }
  1541.              {[ICURS PEN  ,4,3] Curs Pen   } {[IMEMORIZE X ,4,3] Memorize X } {[ISHADE OFF  ,4,3] Shade Off  } {[IZONE$     ,4,3] =Zone$     }
  1542.  
  1543. AT
  1544. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]=At}
  1545.  
  1546. Adds  special  control  codes  to a string which allow you to move the text
  1547. cursor directly as the string is printed.
  1548.  
  1549.         T$=At(x,y)+"Moved Text"
  1550. BORDER$
  1551. {[RAMOSPro_Examples:Examples/H-2/Help_21.AMOS,0,4]=Border$}
  1552.  
  1553. Displays a border around your text when it's printed on the screen.
  1554.  
  1555.  
  1556.         b$=Border$("string",n)
  1557.  
  1558. n  can  range  between  1  and  16,  but  only  the first three borders are
  1559. currently defined.
  1560.  
  1561. Note  that Border$ needs room for an extra character for the border.  So it
  1562. should only be used if the X coordinate is larger than 0.
  1563.  
  1564. CDOWN
  1565. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]Cdown}
  1566.  
  1567. Moves the text cursor one place down.
  1568.  
  1569.         Cdown
  1570. CDOWN$
  1571. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]=Cdown$}
  1572.  
  1573. Returns  a  control  string  which moves the cursor one character downwards
  1574. when it is printed.
  1575.  
  1576.         Print Cdown$
  1577.  
  1578. CDOWN$ is also returned when you press the DOWN ARROW key from the keyboard.
  1579. CENTRE
  1580. {[RAMOSPro_Examples:Examples/H-2/Help_20.AMOS,0,4]Centre}
  1581.  
  1582. Centres your text neatly on the current cursor line.
  1583.  
  1584.         Centre "text"
  1585.  
  1586.         Centre "this is in the centre"
  1587. CLEFT
  1588. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]=Cleft}
  1589.  
  1590. Moves the text cursor one place to the left.
  1591.  
  1592.         Cleft
  1593. CLEFT$
  1594. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]=Cleft$}
  1595.  
  1596. Returns  a  control string which moves the cursor one character to the left
  1597. when it is printed.
  1598.  
  1599.         Print Cleft$
  1600.  
  1601. CLEFT$ is also returned when you press the LEFT ARROW key from the keyboard.
  1602. CLINE
  1603. {[RAMOSPro_Examples:Examples/H-2/Help_20.AMOS,0,4]Cline}
  1604.  
  1605. Clears the entire line starting from the current cursor position.
  1606.  
  1607.         Cline
  1608.  
  1609.         Cline n
  1610.  
  1611. Erases the first n characters in the line.
  1612. CMOVE
  1613. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]Cmove}
  1614.  
  1615. Moves the text cursor to a new location, relative to the current position. 
  1616.  
  1617.         Cmove unitsright,unitsdown
  1618.  
  1619. Providing you leave in the comma, either of the distances can be omitted.
  1620. CMOVE$
  1621. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]=Cmove$}
  1622.  
  1623. Generates  some  codes  which move the text cursor relative to its present
  1624. position.
  1625.  
  1626.         Print Cmove$(unitsright,unitsdown)
  1627. CRIGHT
  1628. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]Cright}
  1629.  
  1630. Moves the text cursor one place to the right.
  1631.  
  1632.         Cright
  1633. CRIGHT$
  1634. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]=Cright$}
  1635.  
  1636. Returns  a control string which moves the cursor one character to the right
  1637. when it is printed.
  1638.  
  1639.         Print Cright$
  1640.  
  1641. CRIGHT$ is also returned when you press the RIGHT ARROW key.
  1642. CUP
  1643. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]Cup}
  1644.  
  1645. Moves the text cursor one place up.
  1646.  
  1647.         Cup
  1648. CUP$
  1649. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]=Cup$}
  1650.  
  1651. Returns  a  control  string  which moves the cursor one place up when it is
  1652. printed.
  1653.  
  1654.         Print Cup$
  1655.  
  1656. CUP$ is also returned when you press the UP ARROW key.
  1657. CURS OFF
  1658. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Curs Off}
  1659.  
  1660. Disables the flashing text CURSor of the current screen
  1661.  
  1662.         Curs Off
  1663. CURS ON
  1664. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Curs On}
  1665.  
  1666. Automatically displays a flashing bar at the current cursor position.
  1667.  
  1668.         Curs On
  1669. CURS PEN
  1670. {[RAMOSPro_Examples:Examples/H-2/Help_20.AMOS,0,4]Curs Pen}
  1671.  
  1672. Changes  the  colour  of  the  text cursor when it's visible on the screen.
  1673. It's usually colour three.
  1674.  
  1675.         Curs Pen index
  1676. Font Editor
  1677. {[RAMOSPro_Accessories:Font8x8_Editor.AMOS] Font Editor}
  1678.  
  1679. The  AMOSPro  font editor allows you to generate your own 8x8 fonts for all
  1680. your  text operations.  You can also access any of the standard Amiga fonts
  1681. with the alternative `Graphic Text` commands.
  1682.  
  1683. HOME
  1684. {[RAMOSPro_Examples:Examples/H-1/Help_18.AMOS,0,4]=Home}
  1685.  
  1686. Moves  your  text  cursor  HOME  to the top-left-hand corner of the current
  1687. screen:  in other words to TEXT coordinates 0,0.
  1688.  
  1689.         Home
  1690. INVERSE ON
  1691. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Inverse On}
  1692.  
  1693. Swaps text and background colours for all future text operations.
  1694.  
  1695.         Inverse On
  1696. INVERSE OFF
  1697. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Inverse Off}
  1698.  
  1699. Deactivates inverse mode.
  1700.  
  1701.         Inverse Off
  1702. LOCATE
  1703. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]Locate}
  1704.  
  1705. Moves the text cursor to the new LOCATion on the screen.  As you are moving
  1706. a  text  cursor,  you  should  enter  the location in character coordinates
  1707. rather than pixel coordinates.
  1708.  
  1709.         Locate x,y
  1710. MEMORIZE X
  1711. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Memorize X}
  1712.  
  1713. Saves the X coordinate of the text cursor.
  1714.  
  1715.         Memorize X
  1716.  
  1717. The coordinate can be recalled using REMEMBER X
  1718. MEMORIZE Y
  1719. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Memorize Y}
  1720.  
  1721. Stores the Y coordinate of the text cursor in memory.
  1722.  
  1723.         Memorize Y
  1724. PAPER
  1725. {[RAMOSPro_Examples:Examples/H-1/Help_15.AMOS,0,4]Paper}
  1726.  
  1727. Sets the colour to be used as the background PAPER for your text PEN.
  1728.  
  1729.         Paper colournumber
  1730. PAPER$
  1731. {[RAMOSPro_Examples:Examples/H-1/Help_15.AMOS,0,4]=Paper$}
  1732.  
  1733. Returns  an  internal  code  which  changes  the paper colour whenever it's
  1734. printed on the screen.
  1735.  
  1736.         T$=Paper$(colournumber)
  1737. PEN
  1738. {[RAMOSPro_Examples:Examples/H-1/Help_15.AMOS,0,4]Pen}
  1739.  
  1740. Sets the colour of the PEN to be used for writing text in the current screen. The colour can be selected from one of 64 alternative colours, Šdepending on your current graphics mode.
  1741.  
  1742.         Pen colournumber
  1743. PEN$
  1744. {[RAMOSPro_Examples:Examples/H-1/Help_15.AMOS,0,4]=Pen$}
  1745.  
  1746. Returns a control code which changes the pen colour inside a piece of text.
  1747.  
  1748.         T$=PEN$(colour)
  1749. PRINT
  1750. {[RAMOSPro_Examples:Examples/H-5/Help_52.AMOS,0,4]Print}
  1751.  
  1752. PRINTs  items  on screen, made up from any groups of variables or constants
  1753. separated  by semi-colons or commas.  As a short-cut, the [?] character key
  1754. can be used instead.
  1755.  
  1756.         Print variable list
  1757.         ? variable list
  1758. REMEMBER X
  1759. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Remember X}
  1760.  
  1761. Moves the text cursor to the position you've previously saved with
  1762. MEMORIZE X.
  1763.  
  1764.         Remember X
  1765. REMEMBER Y
  1766. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Remember Y}
  1767.  
  1768. Restores  the  cursor  to  the  Y  coordinated you've previously saved with
  1769. MEMORIZE Y.
  1770.  
  1771.         Remember Y
  1772. REPEAT$
  1773. {[RAMOSPro_Examples:Examples/H-2/Help_20.AMOS,0,4]=Repeat$}
  1774.  
  1775. Repeats  the  string  of  characters  in  S$ n times on the screen.  Only a
  1776. single copy of S$ is kept in memory.
  1777.  
  1778.         c$=REPEAT$(s$,n)
  1779. SET CURS
  1780. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]Set Curs}
  1781.  
  1782. Alters the shape of the CURSor by changing the bit-patterns L1 to L8.
  1783.  
  1784.         Set Curs L1,L2,L3,L4,L5,L6,L7,L8
  1785. SET TAB
  1786. {[RAMOSPro_Examples:Examples/H-2/Help_20.AMOS,0,4]Set Tab}
  1787.  
  1788. Sets the distance to be moved when a TAB character is printed.
  1789.  
  1790.         Set Tab n
  1791. SHADE ON
  1792. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Shade On}
  1793.  
  1794. Starts up an attractive shading effect for all future text.
  1795.  
  1796.         Shade On
  1797.  
  1798. SHADE OFF
  1799. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Shade Off}
  1800.  
  1801. Deactivates shading effect.
  1802.  
  1803.         Shade Off
  1804. TAB$
  1805. {[RAMOSPro_Examples:Examples/H-2/Help_20.AMOS,0,4]=Tab$}
  1806.  
  1807. Returns  a  TAB character.  This will move the cursor several places to the
  1808. right when it's printed on the screen.  See SET TAB
  1809.  
  1810.         Print Tab$;"test"
  1811. USING
  1812. {[RAMOSPro_Examples:Examples/H-5/Help_52.AMOS,0,4]Using}
  1813.  
  1814. USING  is  called  after a PRINT statement for making subtle changes to the
  1815. way output is printed from a variable list.  Special characters can be used
  1816. in the format$ string, each one having a different effect.
  1817.  
  1818.         Print Using format$;variable list.
  1819.  
  1820. The format string can contain the following symbols:
  1821.  
  1822. # print a single digit from your number.  Unused digits will be replaced by
  1823.   spaces.
  1824.  
  1825. + adds a + or - sign to the number as appropriate.
  1826.  
  1827. - displays a minus sign if the number is negative.
  1828.  
  1829. . inserts a decimal point on the number and centres it.
  1830.  
  1831. ; centres the number but doesn`t output a decimal point.
  1832.  
  1833. ^ prints the number in scientific, or exponential format.
  1834. WRITING
  1835. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Writing}
  1836.  
  1837. Sets the writing mode for all future text operations.
  1838.  
  1839.         Writing w1[,w2]
  1840.  
  1841. The first value selects the actual writing style.
  1842.  
  1843. =1 REPLACE (default)
  1844. =2 OR
  1845. =3 XOR
  1846. =4 AND
  1847. =5 IGNORE (don't do any printing at all!)
  1848.  
  1849. The  second  value  allows  you  to choose which parts of your text will be
  1850. printed on the screen.
  1851.  
  1852. =0  Normal. Both Ink and Paper will be printed
  1853. =1  Paper.  Only print the background
  1854. =2  Pen     Writes the text on a background of colour zero. 
  1855.             Useful with OR mode.
  1856. X CURS
  1857. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]=X Curs}
  1858.  
  1859. Returns the X coordinate of your text CURSor, in text format.
  1860.  
  1861.         x=Xcurs
  1862. X GRAPHIC
  1863. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]=X Graphic}
  1864.  
  1865. Converts a X coordinate in TEXT format into a normal screen coordinate.
  1866.  
  1867.         tx=X Graphic(x)
  1868. X TEXT
  1869. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]=X Text}
  1870.  
  1871. Converts an X coordinate from graphic format into a TEXT format coordinate,
  1872. relative  to  the  current  screen.  If the screen coordinate is outside of
  1873. this screen then a negative result will be given.
  1874.  
  1875.         t=X Text(xcoordinate)
  1876. YCURS
  1877. {[RAMOSPro_Examples:Examples/H-1/Help_19.AMOS,0,4]=Y Curs}
  1878.  
  1879. Returns Y coordinate is of your text CURSor, in text format.
  1880.  
  1881.         y=Ycurs
  1882. Y GRAPHIC
  1883. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]=Y Graphic}
  1884.  
  1885. Converts a Y coordinate from text format to screen format.
  1886.  
  1887.         Y Graphic(ty)
  1888. Y TEXT
  1889. {[RAMOSPro_Examples:Examples/H-1/Help_17.AMOS,0,4]=Y Text}
  1890.  
  1891. Converts  a Y coordinate from graphic format into a TEXT format coordinate,
  1892. relative  to  the  current  screen.  If the screen coordinate is outside of
  1893. this screen then a negative result will be given.
  1894.  
  1895.         t=Y Text(ycoordinate)
  1896.  
  1897. UNDER ON
  1898. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Under On}
  1899.  
  1900. Underlines all future text.
  1901.  
  1902.         Under On
  1903.  
  1904. Starts underline mode
  1905. UNDER OFF
  1906. {[RAMOSPro_Examples:Examples/H-1/Help_16.AMOS,0,4]Under Off}
  1907.  
  1908. Turns off underline mode.
  1909.  
  1910.         Under Off
  1911. ZONE$
  1912. {[RAMOSPro_Examples:Examples/H-2/Help_21.AMOS,0,4]=Zone$}
  1913.  
  1914. Defines  a  screen  zone around your text.  This can be used in conjunction
  1915. with the MOUSE ZONE function to create simple buttons.
  1916.  
  1917.         t$=Zone$(button$,z)
  1918.  
  1919. Where z is the number of your new zone.
  1920. Disc Access
  1921.  
  1922.                 {[IAPPEND      ,4,3] Append        } {[IDIR/W       ,4,3] Dir/w         } {[ILOF        ,4,3] =Lof          }
  1923.                 {[IASSIGN      ,4,3] Assign        } {[IEOF        ,4,3] =Eof          } {[IMKDIR       ,4,3] Mkdir         }
  1924.                 {[ICLOSE       ,4,3] Close         } {[IEXIST      ,4,3] =Exist        } {[IOPEN IN     ,4,3] Open In       }
  1925.                 {[IDEV FIRST$ ,4,3] =Dev First$   } {[IFIELD       ,4,3] Field         } {[IOPEN OUT    ,4,3] Open Out      }
  1926.                 {[IDEV NEXT$  ,4,3] =Dev Next$    } {[IFSEL$      ,4,3] =Fsel$        } {[IOPEN RANDOM ,4,3] Open Random   }
  1927.                 {[IDFREE      ,4,3] =Dfree        } {[IGET         ,4,3] Get           } {[IPARENT      ,4,3] Parent        }
  1928.                 {[IDIR$       ,4,3] =Dir$         } {[IINPUT#      ,4,3] Input#        } {[IPOF        ,4,3] =Pof          }
  1929.                 {[IDIR FIRST$ ,4,3] =Dir First$   } {[IINPUT$     ,4,3] =Input$       } {[IPRINT#      ,4,3] Print#        }
  1930.                 {[IDIR NEXT$  ,4,3] =Dir Next$    } {[IKILL        ,4,3] Kill          } {[IPUT         ,4,3] Put           }
  1931.                 {[IDISC INFO$ ,4,3] =Disc Info$   } {[ILDIR        ,4,3] Ldir          } {[IRENAME      ,4,3] Rename        }
  1932.                 {[IDRIVE      ,4,3] =Drive        } {[ILDIR/W      ,4,3] Ldir/w        } {[ISET DIR     ,4,3] Set Dir       }
  1933.                 {[IDIR         ,4,3] Dir           } {[ILINE INPUT# ,4,3] Line Input#   } {[ISET INPUT   ,4,3] Set Input     }
  1934.  
  1935. APPEND
  1936. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]Append}
  1937.  
  1938. Adds information to the end of an existing sequential file, allowing you to
  1939. expand your file after it has been defined.
  1940.  
  1941.         Append channelnumber,name$
  1942. ASSIGN
  1943. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]Assign}
  1944.  
  1945. Assigns  a general name to a folder or device just like the normal AmigaDos
  1946. ASSIGN instruction.
  1947.  
  1948. Assign "Disc_Name:" To "Path:Name/"
  1949.  
  1950. "Disc_Name:"
  1951.  
  1952. Holds  a  string  with  the  name  of  the  assigned  disc  to create.  The
  1953. semi-colon is mandatory and no spaces are allowed.
  1954.  
  1955. "Path:Name/" 
  1956.  
  1957. This must be a valid pathname to either a directory or a file.
  1958. CLOSE
  1959. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]Close}
  1960.  
  1961. CLOSEs one or more files on the disc.
  1962.  
  1963.         Close
  1964.  
  1965. Closes ALL the current files.
  1966.  
  1967.         Close filenumber
  1968.  
  1969. Closes a single file.
  1970. DEV FIRST$
  1971. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]=Dev First$}
  1972.  
  1973. Returns  a  string containing the name of the FIRST DEVice from the current
  1974. device list.
  1975.  
  1976.         dev$=Dev First$("filter")
  1977. DEV NEXT$
  1978. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]=Dev Next$}
  1979.  
  1980. Returns  the  NEXT DEVice name that satisfies the filter used by a previous
  1981. DEV  FIRST$ call.  If the end of the device list is reached, a blank string
  1982. will be returned.
  1983.  
  1984.         dev$=Dev Next$
  1985. DFREE
  1986. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]=Dfree}
  1987.  
  1988. Reveals the amount of free Disc space on the current device,in bytes.
  1989.  
  1990.         Print Dfree
  1991. DIR
  1992. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]Dir}
  1993.  
  1994. Prints out the DIRectory of files held on your current disc.
  1995.  
  1996. Here are some typical uses.
  1997.  
  1998.         Dir "Df0:" : Rem List all files in internal drive
  1999.         Dir "Examples:" : Rem List all files on named disc
  2000.         Dir "A*" : Rem List all files starting with A
  2001.         Dir "*.*" : Rem List all files with an extension
  2002. DIR/W
  2003. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]Dir/W}
  2004.  
  2005. Displays the DIRectory of your current disc in twin columns.
  2006.  
  2007.         Dir/w "Df0:"
  2008. DIR FIRST$
  2009. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]=Dir First$}
  2010.  
  2011. Returns  a  string  containing the name and the length of the FIRST file in
  2012. the disc DIRectory.
  2013.  
  2014.         Print Dir First$("*.*")
  2015. DIR NEXT$
  2016. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]=Dir Next$}
  2017.  
  2018. Returns  the NEXT filename in the DIRectory listing created by a DIR FIRST$
  2019. command.
  2020.  
  2021.         F$=Dir Next$
  2022. DIR$
  2023. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]=Dir$}
  2024.  
  2025. Enters  or reads the name of the directory to be used as the starting point
  2026. for subsequent disc operations.
  2027.  
  2028.         s$=DIR$
  2029.         DIR$=s$
  2030. DISC INFO$
  2031. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]=Disc Info$}
  2032.  
  2033. Returns  a  string containing INFOrmation on a named file or directory in a
  2034. disc.   The  information  is  returned  in the form of the name of the disc
  2035. followed by the available free space.
  2036.  
  2037.         a$=Disc Info$("name")
  2038. DRIVE
  2039. Checks for the existence of a specific drive.
  2040.  
  2041.         test=Drive("drive")
  2042.  
  2043. If  the drive is connected to your Amiga,m you'll get a value of -1 (True),
  2044. otherwise the result will be 0 (False)
  2045.  
  2046.         Print Drive("Dh0")
  2047. EOF
  2048. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]=Eof}
  2049.  
  2050. Tests  to  see  if the End Of a File has been reached, returning -1 for yes
  2051. and 0 for a no.
  2052.  
  2053.         flag=Eof(channel)
  2054. EXIST
  2055. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]=Exist}
  2056.  
  2057. Checks  to  see  if  a specific file or directory actually exists.  If it's
  2058. available,  you'll  get  a value of True (-1).  Otherwise you'll get a zero
  2059. instead.
  2060.  
  2061.         test=Exist("pathname")
  2062.         test=Exist("filename")
  2063. FIELD
  2064. {[RAMOSPro_Examples:Examples/H-7/Help_71.AMOS,0,4]Field}
  2065.  
  2066. Defines a record up to 65535 bytes long, for a random-access file.
  2067.  
  2068.        Field channel, length As field$
  2069.  
  2070. FSEL$
  2071. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]=Fsel$}
  2072.  
  2073. Opens  an  AMOS  Professional  File  SELector allowing you to choose a file
  2074. directly from disc, starting from the search pattern in path$.
  2075.  
  2076.         f$=Fsel$(path$)
  2077.  
  2078. You  may  also enter a default filename with default$, and include optional
  2079. title strings.
  2080.  
  2081.         f$=Fsel$(path$,title1$,title2$)
  2082.  
  2083.         f$=Fsel$(path$,default$,title1$,title2$)
  2084. GET
  2085. {[RAMOSPro_Examples:Examples/H-7/Help_71.AMOS,0,4]Get}
  2086.  
  2087. Fetches  a  record  stored  in an OPENed random access file, and loads this
  2088. into a set of string variables you`ve selected with the FIELD command.
  2089.  
  2090.         Get channel,record_number
  2091. INPUT#
  2092. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]Input#}
  2093.  
  2094. Reads information from a file or a device and loads it into your variables.
  2095.  
  2096.         Input# channel,variable list
  2097. INPUT$
  2098. There are two different forms of this command.  The simplest reads a number
  2099. of characters straight from the keyboard.
  2100.  
  2101.         x$=Input$(character count)
  2102.  
  2103. {[RAMOSPro_Examples:Examples/H-4/Help_42.AMOS,0,4]=Input$}(characters)
  2104.  
  2105. You can also enter your characters directly from an open file or a device.
  2106.  
  2107.         x$=Input$(channel,character count)
  2108.  
  2109. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]=Input$}(channel,characters)
  2110.  
  2111. KILL
  2112. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]Kill}
  2113.  
  2114. Permanently deletes a selected file from the disc.
  2115.  
  2116.        Kill filename
  2117. LDIR
  2118. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]Ldir}
  2119.  
  2120. Lists out the DIRectory of your files onto the printer, if it's available.
  2121.  
  2122.           Ldir "pathname"
  2123. LDIR/W
  2124. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]Ldir/W}
  2125.  
  2126. Lists  the  DIRectory  of  your disc onto the printer, using a compact, two
  2127. column format.
  2128.  
  2129.           Ldir/w "Df0:"
  2130. LINE INPUT#
  2131. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]Line Input#}
  2132.  
  2133. INPUTs  a  list  of  variables  one  at  a  time  from the device opened to
  2134. #channel,  separated  by  your  selected  character,  instead of the normal
  2135. comma.
  2136.  
  2137.         Line Input #channel,separator$,variable list
  2138. LOF
  2139. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]=Lof}
  2140.  
  2141. Returns the Length of an Open File.
  2142.  
  2143.         length=Lof(channel)
  2144. MKDIR
  2145. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]Mkdir}
  2146.  
  2147. Creates  a  new  directory or folder on the disc, starting from the current
  2148. path.
  2149.  
  2150.       Mkdir folder$
  2151. OPEN IN
  2152. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]Open In}
  2153.  
  2154. OPENs a sequential file for INput.
  2155.  
  2156.         Open In channelnumber,filename$
  2157.  
  2158. Available channels range from 1 to 10.
  2159. OPEN OUT
  2160. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]Open Out}
  2161.  
  2162. OPENs a file for OUTput, identified via channels 1 to 10.
  2163.  
  2164.         Open Out channelnumber,filename$
  2165. OPEN RANDOM
  2166. {[RAMOSPro_Examples:Examples/H-7/Help_71.AMOS,0,4]Open Random}
  2167.  
  2168. OPENs  a RANDOM access file on the current disc.  Before using one of these
  2169. files, you should set up the record structure with the FIELD command.
  2170.  
  2171.         Open Random channelnumber,filename$
  2172. PARENT
  2173. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]Parent}
  2174.  
  2175. Moves the current search path to the parent of the present directory.
  2176. POF
  2177. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]=Pof}
  2178.  
  2179. Changes the reading or writing POsition of a File.
  2180.  
  2181.         Pof(channelnumber)=position
  2182. PRINT#
  2183. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]=Print#}
  2184.  
  2185. PRINTs a list of variables to a file or to a device.
  2186.  
  2187.         Print #channel,variable list
  2188. PUT
  2189. {[RAMOSPro_Examples:Examples/H-7/Help_71.AMOS,0,4]Put}
  2190.  
  2191. Takes  a  record from memory and PUTs it into a selected record number of a
  2192. random access file.
  2193.  
  2194.         Put channelnumber,recordnumber
  2195. RENAME
  2196. {[RAMOSPro_Examples:Examples/H-4/Help_45.AMOS,0,4]Rename}
  2197.  
  2198. Renames your selected file on the disc.
  2199.  
  2200.         Rename old$ to new$
  2201. SET DIR
  2202. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]Set Dir}
  2203.  
  2204. Controls  the  style  of  the  DIRectory  listing, by setting the number of
  2205. characters to be displayed from 1 to 100, followed by optional pathnames to
  2206. be filtered out of directory searches.
  2207.  
  2208.         Set Dir number,filter$
  2209. SET INPUT
  2210. {[RAMOSPro_Examples:Examples/H-6/Help_69.AMOS,0,4]=Set Input}
  2211.  
  2212. SETs  the  characters  you  want  to  INPUT  to  end  a line of data.  Many
  2213. computers need both a [Return] and [line feed] character at the end of each
  2214. line,  but  the  Amiga  only  needs a [line feed].  Make the second value a
  2215. negative number if you only want to use a single character.
  2216.  
  2217.         Set Input 10,-1 : Rem Standard Amiga format
  2218.         Set Input 13,10 : Rem PC or ST compatible format
  2219.  
  2220. The Bare Bones
  2221.                         {[IDEFFN       ,4,3] Def Fn                       }
  2222.                         {[IDIM         ,4,3] Dim                          }
  2223.                         {[IEND         ,4,3] End                          }
  2224.                         {[IEDIT        ,4,3] Edit                         }
  2225.                         {[IDIRECT      ,4,3] Direct                       }
  2226.                         {[IFREE        ,4,3] =Free                        }
  2227.                         {[IMONITOR     ,4,3] Monitor                      }
  2228.                         {[IREM         ,4,3] Rem                          }
  2229.                         {[IREADTEXT    ,4,3] Read Text$                   }
  2230.                         {[ISET BUFFER  ,4,3] Set Buffer                   }
  2231. DEF FN
  2232. {[RAMOSPro_Examples:Examples/H-6/Help_61.amos,0,4]Def Fn}
  2233.  
  2234. Creates  a user-DEFined FunctioN, used for the quick calculation of values.
  2235. It  must  be  given  a  name,  followed  by  a  bracketed list of variables
  2236. separated  by  commas.   The  expression  can  include  any AMOS functions,
  2237. limited to a single line of your program.  (See FN).
  2238.  
  2239.         Def Fn name(variables)=expression
  2240. DIM
  2241. {[RAMOSPro_Tutorial:Tutorials/Arrays.AMOS,0,4]Dim}
  2242.  
  2243. DIMensions  an  array  by  defining a table of variables.  The array's size
  2244. (DIMension) is set by values inside brackets.
  2245.  
  2246.         Dim variable(x,y,z)
  2247.         Dim variable#(x)
  2248.         Dim Variable$(x,y)
  2249. DIRECT
  2250. {[RAMOSPro_Examples:Examples/H-1/Help_12.AMOS,0,4]Direct}
  2251.  
  2252. Terminates your AMOS program and jumps straight to direct mode.
  2253.  
  2254.        Direct
  2255. EDIT
  2256. {[RAMOSPro_Examples:Examples/H-1/Help_11.AMOS,0,4]Edit}
  2257.  
  2258. Stops your current program and returns immediately to the editor screen.
  2259.  
  2260.       Edit
  2261.  
  2262. FN
  2263. {[RAMOSPro_Examples:Examples/H-6/Help_61.amos,0,4]=Fn}
  2264.  
  2265. Calls up and executes the user-defined FuNction by its name, followed by an
  2266. optional variable list.  (See Def Fn).
  2267.  
  2268.         Def Fn name (variable list)=expression
  2269.         Print Fn name (variable list)
  2270.  
  2271. MONITOR
  2272. Calls  up  the  AMOS  Professional  monitor  at  the  current point in your
  2273. program.   You  can  now  debug you program a line at a time using the many
  2274. powerful testing facilities provided by the monitor.
  2275.  
  2276.         Monitor
  2277.  
  2278.  
  2279. See  section  12.01.01  from  the user guide for an detailed explanation of
  2280. this system.
  2281.  
  2282. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Worked Example}
  2283.  
  2284. READ TEXT
  2285. {[RAMOSPro_Examples:Examples/H-8/Help_82.AMOS,0,4]Read Text$}
  2286.  
  2287. Displays some text from either a file, or a memory bank using an attractive,
  2288. on-screen text reader.
  2289.  
  2290.         Read Text filename$
  2291.  
  2292. Loads the file into memory, and displays it on the screen in ASCII format.
  2293.  
  2294.         Read Text title$ ,address,length
  2295.  
  2296. address: is the address of the first line of your text.
  2297.  
  2298. length: the length of the text in characters.
  2299.  
  2300. SET BUFFER
  2301. {[RAMOSPro_Examples:Examples/H-6/Help_64.amos,0,4]Set Buffer}
  2302.  
  2303. SETs the size of the BUFFER area that holds your variables in units of a 
  2304. kilobyte. (1024 bytes)
  2305.  
  2306.         Set Buffer kilobytes
  2307.  
  2308. Program run commands
  2309.  
  2310.                          {[IBREAK ON     ,4,3] Break On                  }
  2311.                          {[IBREAK OFF    ,4,3] Break Off                 }
  2312.                          {[ICOMMAND LINE$,4,3] Command Line$             }
  2313.                          {[IINCLUDE      ,4,3] Include                   }
  2314.                          {[ION BREAK     ,4,3] On Break                  }
  2315.                          {[IPRUN         ,4,3] Prun                      }
  2316.                          {[IPRG STATE   ,4,3] =Prg State                }
  2317.                          {[IPRG UNDER   ,4,3] =Prg Under                }
  2318.                          {[IRUN          ,4,3] Run                       }
  2319.                          {[ISTOP         ,4,3] Stop                      }
  2320.  
  2321. BREAK ON
  2322. {[RAMOSPro_Examples:Examples/H-1/Help_14.AMOS,0,4]Break On}
  2323.  
  2324. Turns ON the program-interrupt BREAK routine normally activated by pressing
  2325. the [Control]+[C] keys.
  2326.  
  2327.         Break On 
  2328.         Break Off
  2329. BREAK OFF
  2330. {[RAMOSPro_Examples:Examples/H-1/Help_14.AMOS,0,4]Break On}
  2331.  
  2332. Stops  anyone  from  interrupting  your  program  while it is running using
  2333. Control+C.   Only  use  this  in the FINAL versions of your programs!  Once
  2334. it's activated, YOU CAN'T RETURN TO THE AMOS EDITOR until the program exits
  2335. naturally.
  2336.  
  2337. COMMAND LINE$
  2338.  
  2339. is  a  reserved variable used to transfer parameter strings between several
  2340. AMOS  programs.   It's often used in conjunction with the RUN file$ command
  2341. to  chain  several  programs  together.   Alternatively, if your program is
  2342. called  as  an Editor Accessory, COMMAND LINE$ will be loaded with the AMOS
  2343. instruction underneath the Edit cursor.
  2344.  
  2345.         Command Line$="information"
  2346. INCLUDE
  2347.  
  2348. Loads and merges an entire AMOS program from the disc whenever your current
  2349. listing  is  executed.   This  include file can contain anything you like,
  2350. from procedure  definitions, to commonly used initialisation code.  But it
  2351. can't contain it's own INCLUDE statements.
  2352.  
  2353.         Include "File_To_Include.AMOS"
  2354.  
  2355. Your  filename  should be a constant rather than a string variable, as AMOS
  2356. merges  the  include  file  during the TESTING process.  
  2357. ON BREAK
  2358. Intercepts  the  Control-C  command  and  calls  your selected AMOS routine
  2359. whenever the user attempts to leave your program.
  2360.  
  2361.         On Break Goto label
  2362.         On Break Gosub label
  2363.  
  2364.         {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]On Break Proc name}
  2365. PRG STATE
  2366. This  handy  function  lets  you  know  how  your program was launched.  It
  2367. returns one of three possible values:
  2368.  
  2369.   0 : if your program was run under the AMOS interpreter.
  2370.   1 : if your program was run under the AMOS run-only module.
  2371.  -1 : if your program is compiled.
  2372. PRUN
  2373.  
  2374. PRUN  is a mix between calling a procedure and RUNning another program:  it
  2375. loads  and  (if  necessary),  RUNs  your  new  program, and returns to your
  2376. original calling program when it's finished.
  2377.  
  2378.         Prun "Program_name"
  2379.  
  2380. It's a sort of Gosub Program command!
  2381. PRG UNDER
  2382. Checks if an AMOS program is accessible "under" the current one.
  2383.  
  2384.         test=Prg Under
  2385.  
  2386. test=0 (false)
  2387.  
  2388. The current listing has been run directly from the Editor, as a normal AMOS
  2389. program.
  2390.  
  2391. test=1
  2392.  
  2393. Your   program   is   the   only   one  being  executed,  BUT  is  not  the
  2394. currently-edited  program.   This happens when you "run hidden program", or
  2395. use "program to menu".
  2396.  
  2397. test=-1 (true)
  2398.  
  2399. The program was PRUNned from another program.
  2400. RUN
  2401. {[RAMOSPro_Examples:Examples/H-4/Help_44.AMOS,0,4]Run}
  2402.  
  2403. RUNs an AMOS Professional program.
  2404.  
  2405.         Run file$
  2406.  
  2407. Loads and Runs  the  program  'file$'. Use  COMMAND  LINE$  to  pass
  2408. information between programs.
  2409.  
  2410. Note: Run will not work from Direct Mode.
  2411.  
  2412. STOP
  2413. Halts  your  program  and  returns immediately to your listing screen.
  2414.  
  2415.         Stop
  2416.  
  2417. Strings
  2418.  
  2419.                             {[IASC    ,4,3] =Asc     } {[IMID$   ,4,3] =Mid$    }
  2420.                             {[ICHR$   ,4,3] =Chr$    } {[IRIGHT$ ,4,3] =Right$  }
  2421.                             {[IFLIP$  ,4,3] =Flip$   } {[ISPACE$ ,4,3] =Space$  }
  2422.                             {[IINSTR  ,4,3] =Instr   } {[ISTR$   ,4,3] =Str$    }
  2423.                             {[ILEFT$  ,4,3] =Left$   } {[ISTRING$,4,3] =String$ }
  2424.                             {[ILEN    ,4,3] =Len     } {[IUPPER$ ,4,3] =Upper$  }
  2425.                             {[ILOWER$ ,4,3] =Lower$  } {[IVAL    ,4,3] =Val     }
  2426.  
  2427. ASC
  2428. {[RAMOSPro_Examples:Examples/H-1/Help_10.AMOS,0,4]=Asc}
  2429.  
  2430. Gives the Ascii code of a character.
  2431.  
  2432.         Print Asc("A")
  2433. CHR$
  2434. {[RAMOSPro_Examples:Examples/H-1/Help_10.AMOS,0,4]=Chr$}
  2435.  
  2436. Creates  a  String  containing  one  CHaRacter  whose  Ascii code number is
  2437. specified in brackets.
  2438.  
  2439.         s$=CHR$(number)
  2440. FLIP$
  2441. {[RAMOSPro_Examples:Examples/H-1/Help_10.AMOS,0,4]=Flip$}
  2442.  
  2443. FLIP$  reverses the order of the characters in your string.  So your string
  2444. is flipped from right to left.
  2445.  
  2446.          Print Flip$("AMOS Basic")
  2447. INSTR
  2448. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4]=Instr}
  2449.  
  2450. Searches out the occurrences of a string INside another STRing.  The result
  2451. is the location of the first character in your destination string, starting
  2452. from the left.
  2453.  
  2454. If search has been unsuccessful, you`ll get zero.
  2455.  
  2456.          test=Instr("source string","search characters")
  2457.  
  2458.          Print Instr("AMOS Professional","AMOS")
  2459.  
  2460. You  can  also  start  off  the  search  from a specific position, using an
  2461. optional start parameter.
  2462.  
  2463.          test=Instr("source string","search characters",start)
  2464.  
  2465. LEFT$
  2466. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4]=Left$}
  2467.  
  2468. Returns the specified number of characters from the LEFT of a string.
  2469.  
  2470.        l$=Left$("characters",number)
  2471. LEN
  2472. {[RAMOSPro_Examples:Examples/H-0/Help_4.AMOS,0,4]=Len}
  2473.  
  2474. Reads the number in characters in a string.
  2475.  
  2476.        length=Len("String")
  2477. LOWER$
  2478. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4]=Lower$}
  2479.  
  2480. Converts all the characters in a string to LOWER case.
  2481.  
  2482.         low$=Lower$("CHARACTERS")
  2483.  
  2484.         Print Lower$("AMOS Professional")
  2485. MID$
  2486. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4]=Mid$}
  2487.  
  2488. Returns a string of characters from the MIDdle of a string.
  2489.  
  2490.         middlebit$=Mid$("string",numbercharacters)
  2491.  
  2492.         Mid$(A$,position,numbercharacters)=middlebit$
  2493.  
  2494. RIGHT$
  2495. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4]=Right$}
  2496.  
  2497. Returns a series of characters from the right-hand side of an AMOS string.
  2498.  
  2499.        r$=Right$("sourcestring",numbercharacters)
  2500.        Right$("sourcestring",numbercharacters)=r$
  2501. SPACE$
  2502. {[RAMOSPro_Examples:Examples/H-1/Help_10.AMOS,0,4]=Space$}
  2503.  
  2504. Generates a string of n spaces.
  2505.  
  2506.         s$=Space$(n)
  2507. STR$
  2508.  
  2509. {[RAMOSPro_Examples:Examples/H-0/Help_4.AMOS,0,4]=Str$}
  2510.  
  2511. Converts  a  number  into  a  STRing.   This  is handy for use with certain
  2512. functions  that  do  not  allow  numbers  to be used as parameters, such as
  2513. CENTRE and TEXT.
  2514.  
  2515.         a$=Str$(number)
  2516. STRING$
  2517. {[RAMOSPro_Examples:Examples/H-1/Help_10.AMOS,0,4]=String$}
  2518.  
  2519. Creates  a  new string made up of a number of copies of the original source
  2520. string.
  2521.  
  2522.         newstring$= String$("sourcestring",numbercharacters)
  2523. UPPER$
  2524. {[RAMOSPro_Examples:Examples/H-0/Help_2.AMOS,0,4]=Upper$}
  2525.  
  2526. Converts a string of text into nothing but UPPER case (CAPITAL) letters.
  2527.  
  2528.         capital$=Upper$("source")
  2529. VAL
  2530. {[RAMOSPro_Examples:Examples/H-0/Help_4.AMOS,0,4]=Val}
  2531.  
  2532. Converts a list of decimal digits stored in a string into a number
  2533.  
  2534.         x=Val(v$)
  2535. Array Operations
  2536.  
  2537.                                {[IMATCH ,4,3] =Match         }
  2538.                                {[ISORT  ,4,3] Sort           }
  2539. MATCH
  2540. {[RAMOSPro_Examples:Examples/H-0/Help_4.AMOS,0,4]=Match}
  2541.  
  2542. Searches  through  a  sorted array for your chosen value.  If the search is
  2543. successful,  you'll  get it's index number as the return value.  But if the
  2544. search  fails,  you'll get a NEGATIVE result instead.  This holds the index
  2545. number of the item which came closest to your search parameter muliplied by
  2546. -1.
  2547.  
  2548. Match works equally well with all types of arrays.  However, you'll need to
  2549. SORT the array before you make the test.  See the SORT function.
  2550.  
  2551.          item=Match(t(0),s)
  2552.          item=Match(t#(0),s#)
  2553.          item=Match(t$(0),s$)
  2554.  
  2555. SORT
  2556. {[RAMOSPro_Examples:Examples/H-0/Help_4.AMOS,0,4]Sort}
  2557.  
  2558. Sorts  an array in ascending order.  This array can contain either strings,
  2559. integers, or floating point numbers.
  2560.  
  2561.         Sort A(0)
  2562.         Sort A$(0)
  2563.         Sort A#(0)
  2564.  
  2565. Mathematical functions
  2566.  
  2567.                       {[IABS   ,4,3] Abs      } {[IHSIN,4,3] Hsin     } {[IRADIAN   ,4,3] Radian   }
  2568.                       {[IACOS  ,4,3] Acos     } {[IHTAN,4,3] Htan     } {[IRANDOMIZE,4,3] Randomize}
  2569.                       {[IATAN  ,4,3] Atan     } {[IINT ,4,3] Int      } {[IRND      ,4,3] Rnd      }
  2570.                       {[ICOS   ,4,3] Cos      } {[ILN  ,4,3] Ln       } {[ISGN      ,4,3] Sgn      }
  2571.                       {[IDEGREE,4,3] Degree   } {[ILOG ,4,3] Log      } {[ISIN      ,4,3] Sin      }
  2572.                       {[IEXP   ,4,3] Exp      } {[IMAX ,4,3] Max      } {[ISQR      ,4,3] Sqr      }
  2573.                       {[IFIX   ,4,3] Fix      } {[IMIN ,4,3] Min      } {[ISWAP     ,4,3] Swap     }
  2574.                       {[IHCOS  ,4,3] Hcos     } {[IPI# ,4,3] Pi#      } {[ITAN      ,4,3] Tan      }
  2575. DEGREE
  2576. {[RAMOSPro_Examples:Examples/H-5/Help_58.AMOS,0,4]DEGREE}
  2577.  
  2578. Allows you to enter your angles in DEGREEs rather than RADIANS.
  2579.  
  2580.         Degree : Print Sin(45)
  2581. RADIAN
  2582. {[RAMOSPro_Examples:Examples/H-5/Help_58.AMOS,0,4]RADIAN}
  2583.  
  2584. Enters all future angles using radians. 
  2585.  
  2586.         Radian
  2587.  
  2588. {[Iradtheory   ,4,3] More information}
  2589. Radians and angles
  2590. In  trigonometry, a radian is the angle subtended by an arc whose length is
  2591. equal  to  the  radius of a circle.  This angle is formed by two radii of a
  2592. circle  that cut off an arc on the circumference that is equal in length to
  2593. the  radius.   One radian is equal to 57.296 degrees.  The Amiga prefers to
  2594. use  radians  instead  of  degrees, but you can change that with the DEGREE
  2595. command.
  2596.  
  2597. PI#
  2598. {[RAMOSPro_Examples:Examples/H-5/Help_58.AMOS,0,4]=PI#}
  2599.  
  2600. Returns the number PI.  It's equal to the ratio of the diameter of a circle
  2601. to its circumference.
  2602.  
  2603.         Print Pi#
  2604. SIN
  2605. {[RAMOSPro_Examples:Examples/H-5/Help_58.AMOS,0,4]=SIN}(angle)
  2606.  
  2607. Calculates the SINe of an angle, resulting in a floating point number.
  2608.  
  2609.         a=sin(angle)
  2610.  
  2611. COS
  2612. {[RAMOSPro_Examples:Examples/H-5/Help_58.AMOS,0,4]=COS}(angle)
  2613.  
  2614. Returns the COSine of your angle.
  2615.  
  2616.         Print Cos(angle)
  2617.  
  2618. TAN
  2619. {[RAMOSPro_Examples:Examples/H-5/Help_58.AMOS,0,4]=TAN}(angle)
  2620. Calculates the TANgent of an angle.
  2621.  
  2622.         a=Tan(angle)
  2623.  
  2624. ACOS
  2625. {[RAMOSPro_Examples:Examples/H-5/Help_59.AMOS,0,4]=ACOS}(value)
  2626.  
  2627. Returns the inverse cosine of the number. 
  2628.  
  2629.         angle=acos(a)
  2630.  
  2631. You can get the Inverse SIN using:
  2632.  
  2633.         angle=1.5708-acos(a)
  2634. or      angle=90-acos(a) : Rem In degrees
  2635.        
  2636. ATAN
  2637. {[RAMOSPro_Examples:Examples/H-5/Help_59.AMOS,0,4]=ATAN}(value)
  2638.  
  2639. Returns the inverse TAN of a number
  2640.  
  2641.        angle=atan(a)
  2642.  
  2643. LOG
  2644. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=LOG}(value)
  2645.  
  2646. Generates the Logarithm to the Base 10 of your number or expression.
  2647.  
  2648.         l=log(number)
  2649. LN
  2650. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=LN}(value)
  2651.  
  2652. Provides the natural or naperian logarithm
  2653.  
  2654.         n=ln(number)
  2655.  
  2656. EXP
  2657. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=EXP}(value)
  2658.  
  2659. Generates the exponenial function
  2660.  
  2661.         e=EXP(number)
  2662.  
  2663. HSIN
  2664. {[RAMOSPro_Examples:Examples/H-5/Help_59.AMOS,0,4]=HSIN}(value)
  2665.  
  2666. Returns the hyperbolic Sine
  2667.  
  2668.         h=hsin(n)
  2669.  
  2670. HCOS
  2671. {[RAMOSPro_Examples:Examples/H-5/Help_59.AMOS,0,4]=HCOS}(value)
  2672.  
  2673. Hyperbolic cosine
  2674.  
  2675.         h=hcos(n)
  2676. HTAN
  2677. {[RAMOSPro_Examples:Examples/H-5/Help_59.AMOS,0,4]=HTAN}(value)
  2678.  
  2679. Gets the hyperbolic tangent
  2680.  
  2681.         h=htan(n)
  2682. RND
  2683. {[RAMOSPro_Examples:Examples/H-2/Help_24.AMOS,0,4]=RND}(value)
  2684.  
  2685. Generates  a  RaNDom  integer  between zero and your chosen number.  If you
  2686. enter a zero, the previous random value will be returned instead.
  2687.  
  2688.         x=Rnd(number)
  2689.  
  2690. RANDOMIZE
  2691. {[RAMOSPro_Examples:Examples/H-2/Help_24.AMOS,0,4]RANDOMIZE }value
  2692.  
  2693. Sets  the  seed of the random number generated by RND.  Each seed defines a
  2694. particular sequence of values.  Use RANDOMIZE TIMER for a really random set
  2695. of numbers
  2696.  
  2697.         randomize seed
  2698.         randomize timer
  2699. ABS
  2700. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=ABS}(value)
  2701.  
  2702. Gives the ABSolute value of a number, taking no account of whether it has a
  2703. positive or negative sign.  The number must be in brackets.
  2704.  
  2705.         Print Abs(-5)
  2706. INT
  2707. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=INT}(value)
  2708.  
  2709. Rounds  down  a floating point number to the nearest whole INTeger, so that
  2710. decimal numbers are changed into the nearest lower round number.
  2711.  
  2712.         Print Int(-6.9)
  2713. MAX
  2714. {[RAMOSPro_Examples:Examples/H-2/Help_24.AMOS,0,4]=MAX}(value)
  2715.  
  2716. Compares  expressions  made  up  of  strings, integers or real numbers, and
  2717. returns the one with the MAXimum value.
  2718.  
  2719.         Print Max(variable1,variable2)
  2720.  
  2721. MIN
  2722. {[RAMOSPro_Examples:Examples/H-2/Help_24.AMOS,0,4]=MIN}(value)
  2723.  
  2724. Compares  expressions  made  up  of  strings, integers or real numbers, and
  2725. returns the one with the MINimum value.
  2726.  
  2727.         Print Min$(variable1,variable2)
  2728.  
  2729. SGN
  2730. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=SGN}(value)
  2731.  
  2732. Finds the SiGN of a number:
  2733.  
  2734. Depending on the number, you'll get one of three possible values:
  2735.  
  2736. -1  if the number is negative
  2737.  0  if it's zero 
  2738.  1  if the number is positive
  2739.  
  2740.         s=Sgn(number)
  2741.         s=Sgn(number#)
  2742.  
  2743. SWAP
  2744. {[RAMOSPro_Examples:Examples/H-2/Help_24.AMOS,0,4]=SWAP}value1,value2
  2745.  
  2746. Swaps the contents of any two variable around.  Both variables should be of
  2747. exactly the same type.
  2748.  
  2749.         swap number1,number2
  2750.         swap float1#,float2#
  2751.         swap string1$,string2$
  2752. SQR
  2753. {[RAMOSPro_Examples:Examples/H-6/Help_60.AMOS,0,4]=SQR}(value)
  2754.  
  2755. Calculates  the  SQuare  Root  of  a  number,  that is the number that when
  2756. multiplied by itself results in the number you have selected in brackets.
  2757.  
  2758.         a#=Sqr(number)
  2759.  
  2760. FIX
  2761. {[RAMOSPro_Examples:Examples/H-2/Help_24.AMOS,0,4]=FIX}(value)
  2762.  
  2763. FIXes the precision of floating point numbers, set by the number of decimal
  2764. points wanted, specified inside brackets.
  2765.  
  2766.         Fix(numberdecimals) : Print Pi#
  2767.  
  2768. Procedures
  2769.  
  2770.                         {[IEND PROC  ,4,3] End Proc                     }
  2771.                         {[IGLOBAL    ,4,3] Global                       }
  2772.                         {[IPARAM    ,4,3] =Param                       }
  2773.                         {[IPARAM#   ,4,3] =Param#                      }
  2774.                         {[IPARAM$   ,4,3] =Param$                      }
  2775.                         {[IPOP PROC  ,4,3] Pop Proc                     }
  2776.                         {[IPROC      ,4,3] Proc                         }
  2777.                         {[IPROCEDURE ,4,3] Procedure                    }
  2778.                         {[ISET STACK ,4,3] Set Stack                    }
  2779.                         {[ISHARED    ,4,3] Shared                       }
  2780. END PROC
  2781. {[RAMOSPro_Tutorial:Tutorials/Procedures_1.AMOS,0,4]End Proc}
  2782.  
  2783. Marks  the  END  of  a  PROCedure.   Like PROCEDURE, it must occupy its own
  2784. separate line in your program.
  2785.  
  2786.         Procedure NAME
  2787.         : : :   Amos instructions go here
  2788.         End Proc
  2789.  
  2790. You can also return a value from the procedure like so:
  2791.  
  2792.         Endproc[number]
  2793.         Endproc[real#]
  2794.         Endproc[s$]
  2795.  
  2796. These  values  can be subsequently read by your program with PARAM, PARAM#,
  2797. and PARAM$ respectively.
  2798.  
  2799. GLOBAL
  2800. {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]Global}
  2801.  
  2802. Defines  a  list  of  GLOBAL  variables  that can be accessed from anywhere
  2803. inside your AMOS Professional program.
  2804.  
  2805.         Global variable list
  2806.  
  2807. You  can  also define your global variables using STRINGS which can contain
  2808. the wildcards "*" or "?".
  2809.  
  2810. "*" means "Use any group of characters up to the next letter or number"
  2811.  
  2812. "?" means "Use any single character in the current position"
  2813.  
  2814.         Global "string"
  2815.  
  2816. Only string constants can used for this purpose.
  2817. PARAM
  2818. {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]=Param}
  2819.  
  2820. Returns an integer value from the most recent AMOS procedure called by your
  2821. program.
  2822.  
  2823.         A=Param
  2824.  
  2825. The value should be returned using the ENDPROC statement in your procedure:
  2826.  
  2827.         Endproc[1] 
  2828. PARAM#
  2829. {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]=Param#}
  2830.  
  2831. Returns a floating point number from the last AMOS procedure called by your
  2832. program.
  2833.  
  2834.         A=Param#
  2835.  
  2836. The value should be returned using the ENDPROC statement in your procedure:
  2837.  
  2838.         Endproc[1.23] 
  2839. PARAM$
  2840. {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]=Param$}
  2841.  
  2842. Returns a string from the last AMOS procedure called by your program.
  2843.  
  2844.         A=Param$
  2845.  
  2846. The value should be returned using the ENDPROC statement in your procedure:
  2847.  
  2848.         Endproc["info"] 
  2849. PROC
  2850. {[RAMOSPro_Tutorial:Tutorials/Procedures_1.AMOS,0,4]Proc}
  2851.  
  2852. Calls  a  named procedure from your program.  It can normally be omitted.
  2853.  
  2854.         Proc name
  2855.  
  2856. Proc is often used in conjunction with the ON command to select a procedure
  2857. depending on a value entered by the user.
  2858.  
  2859. POP PROC
  2860. {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]Pop Proc}
  2861.  
  2862. POPs out of a PROCedure in a hurry.
  2863.  
  2864.         Pop Proc
  2865.  
  2866. PROCEDURE
  2867. {[RAMOSPro_Tutorial:Tutorials/Procedures_1.AMOS,0,4]Procedure}
  2868.  
  2869. Creates an AMOS Professional PROCEDURE,identified by a string of characters
  2870. which make up its name.
  2871.  
  2872.         Procedure NAME
  2873.  
  2874. Procedures  make  programming  easier.  They are stand-alone program chunks
  2875. that  perform  a  task  without  affecting  the  main  program.  
  2876.  
  2877. SET STACK
  2878. Sets  the  maximum  number  of  recursive  procedure calls.  Recursion is a
  2879. clever  technique  which allows you to call a procedure from INSIDE its own
  2880. definition.   Every  time you call a procedure, AMOS allocates a set amount
  2881. of  memory  to  hold  the  local  variables.   So  if you attempt to nest a
  2882. procedure  call  more than about fifty times, you`ll run out of space.  You
  2883. can  increase this allocation with SET STACK.  Use it if you get an "out of
  2884. stack space" message.
  2885.  
  2886.         Set Stack maximum_no_of_recursive_procedure_calls
  2887.  
  2888. SHARED
  2889. {[RAMOSPro_Tutorial:Tutorials/Procedures_2.AMOS,0,4]Shared}
  2890.  
  2891. Called inside a procedure to allow you to access a variable from your main
  2892. program.
  2893.  
  2894.         Shared variable list.
  2895.  
  2896. You can also define your shared variables using STRINGS containing wildcards
  2897. such as "*" or "?".
  2898.  
  2899. "*" means "Use any group of characters up to the next letter or number"
  2900.  
  2901. "?" means "Use any single character in the current position"
  2902.  
  2903.         Shared "string"
  2904.  
  2905. Only string CONSTANTS can used for this purpose.
  2906.  
  2907.  
  2908. The Mouse and Joystick ports
  2909.  
  2910.                         {[ICHANGE MOUSE ,4,3] Change Mouse } {[ILIMIT MOUSE  ,4,3] Limit Mouse  }
  2911.                         {[IFIRE         ,4,3] =Fire        } {[IMOUSE CLICK  ,4,3] =Mouse Click }
  2912.                         {[IJDOWN        ,4,3] =Jdown       } {[IMOUSE KEY    ,4,3] =Mouse Key   }
  2913.                         {[IJLEFT        ,4,3] =Jleft       } {[IMOUSE SCREEN ,4,3] =Mouse Screen}
  2914.                         {[IJOY          ,4,3] =Joy         } {[IMOUSE ZONE   ,4,3] =Mouse Zone  }
  2915.                         {[IJRIGHT       ,4,3] =Jright      } {[ISHOW         ,4,3] Show         }
  2916.                         {[IJUP          ,4,3] =Jup         } {[ISHOW ON      ,4,3] Show On      }
  2917.                         {[IHIDE         ,4,3] Hide         } {[IX MOUSE       ,4,3] =X Mouse     }
  2918.                         {[IHIDE ON      ,4,3] Hide On      } {[IY MOUSE       ,4,3] =Y Mouse     }
  2919. CHANGE MOUSE
  2920. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]Change Mouse}
  2921.  
  2922. Alters  the  MOUSE  pointer  on  screen to a predefined numbered shape of 1
  2923. (arrow)  2  (crosshairs)  or 3 (clock).  Numbers 4 and over use images from
  2924. the object bank.
  2925.  
  2926.         Change Mouse shapenumber
  2927. FIRE
  2928. {[RAMOSPro_Examples:Examples/H-6/Help_68.AMOS,0,4]=Fire}
  2929.  
  2930. Tests  the  state  of  a joystick FIRE-button, returning -1 if a particular
  2931. button number has been pressed.
  2932.  
  2933.         x=Fire(number)
  2934. HIDE
  2935. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]Hide}
  2936.  
  2937. HIDEs  the mouse pointer from your screen, depending on the number of times
  2938. specified by a SHOW command.
  2939.  
  2940.         Hide
  2941. HIDE ON
  2942. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]Hide On}
  2943.  
  2944. Ensures  the  mouse  pointer  is  hidden  no  matter how many times SHOW is
  2945. called.
  2946.         Hide On
  2947. JOY
  2948. {[RAMOSPro_Examples:Examples/H-6/Help_68.AMOS,0,4]=Joy}
  2949.  
  2950. Reads the current status of a JOYstick.
  2951.  
  2952.         status=Joy(portnumber)
  2953.  
  2954. Portnumber number=0  checks a joystick in the mouse port.
  2955.                  =1  tests a stick in the normal joystick port.
  2956.  
  2957. The  status is rerurned in the form of a bitmap.If a bit is set to one, the
  2958. joystick has been moved in the relevant direction.
  2959.  
  2960. Here's a list of the possible return values.
  2961.  
  2962.             Normal              With Fire Button pressed
  2963.  
  2964.                1                       17
  2965.            5       9               21      25
  2966.  
  2967.          4     0     8           20    16     24
  2968.  
  2969.            6       10              22       26
  2970.                2                       18
  2971. JLEFT
  2972. {[RAMOSPro_Examples:Examples/H-6/Help_68.AMOS,0,4]=Jleft}
  2973.  
  2974. Returns  a  value  of True(-1) if the joystick has been pulled to the left,
  2975. otherwise zero.
  2976.  
  2977.         Print Jleft(portnumber)
  2978.  
  2979. portnumber=1 for the joystick socket, or 0 for the mouse port.
  2980. JRIGHT
  2981. {[RAMOSPro_Examples:Examples/H-6/Help_68.AMOS,0,4]=Jright}
  2982.  
  2983. Returns  a  value of True(-1) if the joystick has been pulled to the right,
  2984. otherwise zero.
  2985.  
  2986.         Print Jright(portnumber)
  2987.  
  2988. portnumber=1 for the joystick socket, or 0 for the mouse port.
  2989. JUP
  2990. {[RAMOSPro_Examples:Examples/H-6/Help_68.AMOS,0,4]=Jup}
  2991.  
  2992. Returns  a  value of True(-1) if the joystick has been yanked up, otherwise
  2993. zero.
  2994.  
  2995.         Print Jup(portnumber)
  2996.  
  2997. portnumber=1 for the joystick socket, or 0 for the mouse port.
  2998.  
  2999. JDOWN
  3000. {[RAMOSPro_Examples:Examples/H-6/Help_68.AMOS,0,4]=Jdown}
  3001.  
  3002. Returns a value of True(-1) if the joystick has been pushed down, otherwise
  3003. zero.
  3004.  
  3005.         Print Jdown(portnumber)
  3006.  
  3007. portnumber=1 for the joystick socket, or 0 for the mouse port.
  3008.  
  3009. LIMIT MOUSE
  3010. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]Limit Mouse}
  3011.  
  3012. Restricts the MOUSE movements to the LIMITs of a given rectangle on screen.
  3013. You set up the size of this rectangle by giving its coordinates.
  3014.  
  3015.         Limit Mouse x1,y1 To x2,y2
  3016. MOUSE CLICK
  3017. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]=Mouse Click}
  3018.  
  3019. Checks  if  the  user  has  clicked  on  the  mouse buttons.  The result is
  3020. returned in the form of a bit pattern.
  3021.  
  3022. Bit 0: Set to one if the left button has been pressed. Normally zero.
  3023.  
  3024. Bit 1: If the Right button has ben pressed, you'll get a one in this
  3025.        position. Otherwise, zero.
  3026.  
  3027. After  the mouse has been tested, the bits are automatically reset to zero.
  3028. So you can only use this command to check for a SINGLE click.
  3029.  
  3030. Use the MOUSE KEY function if you want to test the status continuously.
  3031. MOUSE KEY
  3032. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]=Mouse Key}
  3033.  
  3034. Reads the status of the MOUSE buttons, and tells you the result in the form
  3035. of a bit-pattern.
  3036.  
  3037. Bit 0: Set to one if the left button has been pressed. Normally zero.
  3038.  
  3039. Bit 1: If the Right button has ben pressed, you'll get a one in this
  3040.        position. Otherwise, zero.
  3041.  
  3042.         T=Mouse Key
  3043. MOUSE SCREEN
  3044. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]=Mouse Screen}
  3045.  
  3046. Checks to see which SCREEN the MOUSE pointer is currently occupying.
  3047.  
  3048.         screen number=Mouse Screen
  3049. SHOW
  3050. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]Show}
  3051.  
  3052. SHOWs  a previously hidden mouse pointer on the screen, whenever the number
  3053. of SHOWs becomes greater than the number of HIDEs already programmed.
  3054.  
  3055.         Show
  3056. SHOW ON
  3057. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]Show On}
  3058.  
  3059. Immediately  SHOWs  a  hidden  mouse  pointer on screen, no matter how many
  3060. HIDEs have been commanded.
  3061.  
  3062.         Show On
  3063. X MOUSE
  3064. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]=X Mouse}
  3065.  
  3066. Tells  you  the  hardware  X  coordinate of the MOUSE pointer.  If you give
  3067. XMOUSE  a  value then this function can also be used to move the mouse to a
  3068. specific screen position.
  3069.  
  3070.         X1=X Mouse
  3071.         Mouse=X1
  3072. Y MOUSE
  3073. {[RAMOSPro_Examples:Examples/H-4/Help_49.AMOS,0,4]=Y Mouse}
  3074.  
  3075. Tells  you  the  hardware  Y  coordinate of the MOUSE pointer.  If you give
  3076. YMOUSE  a value, then this function can also be used to move the mouse to a
  3077. specific screen position.
  3078.  
  3079.         Y1=Y Mouse
  3080.         Y Mouse=Y1
  3081.  
  3082.  
  3083. Memory banks
  3084.  
  3085.       {[IM_AS         ,4,3] As                  } {[IBSAVE      ,4,3] Bsave               } {[ILOAD                ,4,3] Load                }
  3086.       {[IBANK SHRINK,4,3] Bank Shrink         } {[IBSEND      ,4,3] Bsend               } {[IRESERVE AS CHIP DATA,4,3] Reserve As Chip Data}
  3087.       {[IBANK SWAP  ,4,3] Bank Swap           } {[IERASE      ,4,3] Erase               } {[IRESERVE AS CHIP WORK,4,3] Reserve As Chip Work}
  3088.       {[IBGRAB      ,4,3] Bgrab               } {[IERASE ALL  ,4,3] Erase All           } {[IRESERVE AS DATA     ,4,3] Reserve As Data     }
  3089.       {[IBLOAD      ,4,3] Bload               } {[IERASE TEMP ,4,3] Erase Temp          } {[IRESERVE AS WORK     ,4,3] Reserve As Work     }
  3090.       {[IBLENGTH   ,4,3] =Blength            } {[ILENGTH    ,4,3] =Length             } {[ISAVE                ,4,3] Save                }
  3091.       {[IBSTART    ,4,3] =Bstart             } {[ILIST BANK  ,4,3] List Bank           } {[ISTART              ,4,3] =Start              }
  3092.  
  3093. AS
  3094. {[RAMOSPro_Examples:Examples/H-7/Help_71.AMOS,0,4]As}
  3095.  
  3096. Used in conjunction with the RESERVE AS command.
  3097.  
  3098.         Reserve As Chip 1,1000
  3099.  
  3100. BANK SHRINK
  3101.  
  3102. Reduces  the size of a previously defined memory bank, returning any unused
  3103. memory to your Basic program.
  3104.  
  3105.         Bank Shrink bank_no To new_length
  3106.  
  3107. bank_no  is  an already reserved memory bank.  Note:  This instruction does
  3108. not work with object and icon banks
  3109.  
  3110. new_length = the new size of the bank.
  3111. It must be smaller than the Current length..
  3112. BANK SWAP
  3113. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Bank Swap}
  3114.  
  3115. Swaps the numbers of any two memory banks.
  3116.  
  3117.         Bank Swap bank1, bank2
  3118.  
  3119. BGRAB
  3120.  
  3121. Grabs  a memory bank from the previous program.The bank is now removed from
  3122. the  original  program,  and  appears  in  the  current  program bank-list,
  3123. replacing  any  bank  with the same number.  After you've finished, you can
  3124. return the bank to it's owner using BSEND.
  3125.  
  3126.         Bgrab bank
  3127. BLENGTH
  3128.  
  3129. Returns the length of a bank from program UNDERNEATH the present one.  It's
  3130. used  by  accessories  such  as  the  object editor to access the users bob
  3131. images.
  3132.  
  3133. You'll get a zero if the bank has not been defined in the previous program,
  3134. or there's no other program in memory.  (PRG UNDER=0)
  3135.  
  3136.         l=Blength(bank)
  3137. BLOAD
  3138. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Bload}
  3139.  
  3140. LOADs Binary data into a specified address or bank number.
  3141.  
  3142.         Bload file$,address 
  3143. BSAVE
  3144. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Bsave}
  3145.  
  3146. SAVEs a block of memory stored between a start and end location, to a named
  3147. file.  The data is saved as it stands with no special formatting.
  3148.  
  3149.         Bsave file$, start TO end   
  3150. BSEND
  3151.  
  3152. Transfers  a  bank from the current program to the previous program.  It is
  3153. the  exact opposite of BGRAB.  The bank disappears from the current program
  3154. bank-list, and appears in the previous program list, replacing any existing
  3155. data.
  3156.  
  3157.         Bsend bank 
  3158. BSTART
  3159.  
  3160. Returns the address of a bank from a previous program, if possible.  You'll
  3161. get  an error if a bank hasn't been reserved in the previous program.  (PRG
  3162. UNDER=0)
  3163.  
  3164.         address =Bstart(bank)   
  3165. ERASE
  3166. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Erase}
  3167.  
  3168. Deletes the contents of the memory bank whose number you specify.
  3169.  
  3170.         Erase banknumber
  3171. ERASE ALL
  3172.  
  3173. Clears ALL banks from memory
  3174.  
  3175.         Erase All 
  3176. ERASE TEMP
  3177.  
  3178. Erases ALL temprorary or WORK banks in your current program
  3179.  
  3180.         Erase Temp
  3181. LENGTH
  3182. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]=Length}
  3183.  
  3184. Returns  the LENGTH of a memory bank in bytes.  If it contains images, then
  3185. the number of objects in the bank will be given instead.
  3186.  
  3187.         Print Length(banknumber)
  3188. LIST BANK
  3189. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]=Listbank}
  3190.  
  3191. Provides  a  detailed  LISTing of the memory BANKs currently reserved.  The
  3192. following  information will be shown about each bank:  its number, the type
  3193. of bank, its start address in hexadecimal and its length.
  3194.  
  3195.         List Bank
  3196. LOAD
  3197. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Load}
  3198.  
  3199. LOADs one or more memory banks from the disc.  An optional destination bank
  3200. can be included if required.
  3201.  
  3202.         Load "filename.abk"
  3203.  
  3204. Loads all the banks from filename.abk
  3205.  
  3206.         Load "filename.abk",number
  3207.  
  3208. Loads just a single bank.
  3209.  
  3210. RESERVE AS CHIP DATA
  3211. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Reserve As Chip Data}
  3212.  
  3213. Creates a permanent memory bank using CHIP ram.
  3214.  
  3215.         Reserve As Chip Data banknumber,length
  3216.  
  3217. This bank will be automatically saved with your program.
  3218. RESERVE AS CHIP WORK
  3219. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Reserve As Chip Work}
  3220.  
  3221. Creates a temporary memory bank of the required length using CHIP ram.
  3222.  
  3223.         Reserve As Chip Work banknumber,length
  3224.  
  3225. RESERVE AS DATA
  3226. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Reserve As Data}
  3227.  
  3228. RESERVEs a permanent bank of memory using FAST ram if it's available.
  3229.  
  3230.         Reserve As Data banknumber,length
  3231.  
  3232. This bank will be automatically saved with your program.
  3233.  
  3234. RESERVE AS WORK
  3235. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Reserve As Work}
  3236.  
  3237. RESERVEs a temporary memory bank using FAST ram where possible.
  3238.  
  3239.         Reserve As Work banknumber,length
  3240. SAVE
  3241. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]Save}
  3242.  
  3243. SAVEs all memory banks onto disc.  If an optional bank number is specified,
  3244. only that bank number will be saved.
  3245.  
  3246.         Save "filename.abk",number
  3247. START
  3248. {[RAMOSPro_Examples:Examples/H-7/Help_78.AMOS,0,4]=Start}
  3249.  
  3250. Returns the START address of your chosen memory bank.
  3251.  
  3252.         Print Start(banknumber)
  3253. Hardware Sprites
  3254.  
  3255.                   {[IDEL SPRITE        ,4,3] Del Sprite        } {[ISPRITE PRIORITY   ,4,3] Sprite Priority   }
  3256.                   {[IGET SPRITE        ,4,3] Get Sprite        } {[ISPRITE UPDATE     ,4,3] Sprite Update     }
  3257.                   {[IGET SPRITE PALETTE,4,3] Get Sprite Palette} {[ISPRITE UPDATE OFF ,4,3] Sprite Update Off }
  3258.                   {[IHOT SPOT          ,4,3] Hot Spot          } {[ISPRITE UPDATE ON  ,4,3] Sprite Update On  }
  3259.                   {[II SPRITE          ,4,3] I Sprite          } {[IX SPRITE         ,4,3] =X Sprite         }
  3260.                   {[IINS SPRITE        ,4,3] Ins Sprite        } {[IX HARD           ,4,3] =X Hard           }
  3261.                   {[ISET SPRITE BUFFER ,4,3] Set Sprite Buffer } {[IX SCREEN         ,4,3] =X Screen         }
  3262.                   {[ISPRITE            ,4,3] Sprite            } {[IY SPRITE         ,4,3] =Y Sprite         }
  3263.                   {[ISPRITE BASE       ,4,3] Sprite Base       } {[IY HARD           ,4,3] =Y Hard           }
  3264.                   {[ISPRITE OFF        ,4,3] Sprite Off        } {[IY SCREEN         ,4,3] =Y Screen         }
  3265.  
  3266. DEL SPRITE
  3267. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Del Sprite}
  3268.  
  3269. Deletes one or more sprite images completely from the object bank.
  3270.  
  3271.         Del Sprite n
  3272.  
  3273. n is the number of the image you wish to remove from the bank.
  3274.  
  3275. If  you  want to erase several objects, you can use the second form of this
  3276. instruction.
  3277.  
  3278.         Del Sprite f To l
  3279.  
  3280. The command will now delete all the images from f to l.
  3281. GET SPRITE
  3282. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]Get Sprite}
  3283.  
  3284. Grabs  a  section  from a screen of given coordinates and loads it into the
  3285. Object  bank.   An  optional  screen  number  can be given before the image
  3286. number.  This allows you to grab your images from any existing AMOS screen.
  3287.  
  3288.         Get Sprite screen number,image number,x1,y1 To x2,y2
  3289.  
  3290. GET SPRITE PALETTE
  3291. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]Get Sprite Palette}
  3292.  
  3293. Copies  the  colour  values  used  by  your sprite images straight into the
  3294. current screen.
  3295.  
  3296.         Get Sprite Palette
  3297.  
  3298. The  optional  mask  allows  you  to  limit yourself to just a selection of
  3299. colours.
  3300.  
  3301.         Get sprite Palette bitmask
  3302.  
  3303. Each  colour is represented by a single digit in a 32 digit "bit mask".  If
  3304. the digit's set to 1, then the appropriate colour value will be copied over
  3305. from the sprite bank.
  3306.  
  3307. HOT SPOT
  3308. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]Hot Spot}
  3309.  
  3310. Positions the reference point for all coordinate calculations.
  3311.  
  3312.         Hot Spot image,x,y
  3313.  
  3314. Automatically adds x and y to the sprite coordinates before use.
  3315.  
  3316.         Hot Spot image,p
  3317.  
  3318. p moves the hotspot to one of of 9 pre-set positions
  3319.  
  3320. $00  $10  $20
  3321. $01  $11  $21
  3322. $02  $21  $22
  3323. I SPRITE
  3324. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]=I Sprite}
  3325.  
  3326. Returns the current Image number used by sprite s.
  3327.  
  3328. The result will be zero if the sprite is not visible on the current display.
  3329.  
  3330.         Image=I Sprite(s)
  3331. INS SPRITE
  3332. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Ins Sprite}
  3333.  
  3334.         Ins Sprite n
  3335.  
  3336. Inserts  a  blank  image at position n in the current object bank.  All the
  3337. images after this number are moved down a place.
  3338.  
  3339.         Ins Sprite f To l
  3340.  
  3341. Creates  several  image  slots  in  a  single operation.  A series of blank
  3342. spaces will now be created between image number f and image l.
  3343.  
  3344. SET SPRITE BUFFER
  3345.  
  3346. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]Set Sprite Buffer}
  3347.  
  3348. Allocates extra memory for the hardware and computed sprites to work with.
  3349.  
  3350. AMOS  initially  reserves  just  enough  memory for a maximum of 128 lines.
  3351. This can be easily increased to a larger value, such as 256.
  3352.  
  3353.         Set Sprite Buffer lines
  3354. SPRITE
  3355. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]Sprite}
  3356.  
  3357.         Sprite s,hx,hy,image
  3358.  
  3359. Loads  sprite  s with your image and positions it at your selected HARDWARE
  3360. coordinates x,y.
  3361.  
  3362. The sprite number s can be anything from 0 to 63. 
  3363.  
  3364. Sprites 0 to 7 generate hardware sprites
  3365.  
  3366. numbers 8 through 63 use computed sprites.
  3367.  
  3368. SPRITE BASE
  3369.  
  3370.         n=Sprite Base(number)
  3371.  
  3372. Provides the address of the internal data list for Sprite number.
  3373.  
  3374. SPRITE OFF
  3375. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]Sprite Off}
  3376.  
  3377. Removes one or more sprites from the screen.
  3378.  
  3379.         Sprite Off
  3380.  
  3381. Kills ALL active sprites
  3382.  
  3383.        Sprite Off s
  3384.  
  3385. Turns off sprite number s
  3386. SPRITE PRIORITY
  3387.  
  3388. Controls the way your sprites are displayed on a Dual playfield screen.
  3389.  
  3390.         Sprite Priority n
  3391.  
  3392. n sets the priority of the sprites relative to the two playfields.
  3393.  
  3394. The  following  table  should  make  this clearer.  Objects with the higher
  3395. order value are always displayed in front of those with a lower one.
  3396.  
  3397. n         Playfield Sprites 0/1  Sprites 2/3  Sprites 4/5  Sprites 6/7
  3398. 0  Order     4         3            2            1             0
  3399. 1            3         4            2            1             0
  3400. 2            2         4            3            1             0
  3401. 3            1         4            3            2             0
  3402. 4            0         4            3            2             1
  3403. SPRITE UPDATE
  3404. {[RAMOSPro_Tutorial:Tutorials/Computed_Sprites.AMOS,0,4]Sprite Update}
  3405.  
  3406. Performs  all  sprite  movements  in  a  single  burst.   Before using this
  3407. command, you'll need to switch off the automatic display system with SPRITE
  3408. UPDATE OFF.
  3409.  
  3410.         Sprite Update
  3411.         Wait Vbl
  3412.  
  3413. The  WAIT VBL command is important, as it synchronises the sprite movements
  3414. with the screen updates.
  3415.  
  3416. SPRITE UPDATE OFF 
  3417. {[RAMOSPro_Tutorial:Tutorials/Computed_Sprites.AMOS,0,4]Sprite Update Off}
  3418.  
  3419. Stops  sprites  from  being redisplayed on the screen immediately when they
  3420. are  moved  to  a  new  position.  Use it with the SPRITE UPDATE command to
  3421. generate exceptionally smooth object movements.
  3422.  
  3423.         Sprite Update Off
  3424. SPRITE UPDATE ON
  3425. {[RAMOSPro_Tutorial:Tutorials/Computed_Sprites.AMOS,0,4]Sprite Update On}
  3426.  
  3427. Reverses the effect of a previous SPRITE UPDATE OFF command and forces your
  3428. sprites to be automatically redrawn when they are moved.
  3429.  
  3430.         Sprite Update On
  3431. X HARD
  3432. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]=X Hard}
  3433.  
  3434. Converts  an  X  coordinate  relative to the current screen into a HARDware
  3435. coordinate.
  3436.  
  3437.          hx=X Hard(xcoordinate)
  3438.  
  3439. If  an  optional  screen  number  is  given,  then  all coordinates will be
  3440. relative to the selected screen.
  3441.  
  3442.         hx=X Hard(screen number,xcoordinate)
  3443.  
  3444. X SCREEN
  3445. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]=X Screen}
  3446.  
  3447. Converts  a  hardware X coordinate into a SCREEN coordinate relative to the
  3448. present screen.
  3449.  
  3450.         sx=X Screen(hx)
  3451.  
  3452. If  you  include  an  optional  screen  number  in  this  function, the new
  3453. coordinate will be relative to your chosen screen.
  3454.  
  3455.         sx=X Screen(screen number,hx)
  3456. X SPRITE
  3457. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]=X Sprite}
  3458.  
  3459. Returns  the  X  coordinate  of  one of your AMOS Basic sprites in Hardware
  3460. format.
  3461.           hx=X Sprite(s)
  3462. Y HARD
  3463. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]=Y Hard}
  3464.  
  3465. Converts  a  Y  coordinate  relative to the current screen into a HARDware
  3466. coordinate.
  3467.  
  3468.         hy=Y Hard(ycoordinate)
  3469.  
  3470. If  an  optional  screen  number  is  given,  then  all coordinates will be
  3471. relative to the selected screen.
  3472.  
  3473.         hy=Y Hard(screen number,ycoordinate)
  3474.  
  3475. Y SCREEN
  3476. {[RAMOSPro_Examples:Examples/H-5/Help_50.AMOS,0,4]=Y Screen}
  3477.  
  3478. Converts  a  Y  coordinate  in  hardware  format  into  a SCREEN coordinate
  3479. relative to the present screen.
  3480.  
  3481.         sy=Y Screen(hy)
  3482.  
  3483. If  you  include  an  optional  screen  number  in  this  function, the new
  3484. coordinate will be relative to your chosen screen.
  3485.  
  3486.         sy=Y Screen(screen number,hy)
  3487. Y SPRITE
  3488. {[RAMOSPro_Tutorial:Tutorials/Hardware_Sprites.AMOS,0,4]=Y Sprite}
  3489.  
  3490. Returns  the  Y  coordinate  of  one of your AMOS Basic sprites in Hardware
  3491. format.
  3492.  
  3493.         hy=Y Sprite(s)
  3494.  
  3495.  
  3496. Blitter Objects
  3497.  
  3498.                 {[IBOB                  ,4,3] Bob                  } {[IPASTE BOB            ,4,3] Paste Bob            }
  3499.                 {[IBOB OFF              ,4,3] Bob Off              } {[IPRIORITY OFF         ,4,3] Priority Off         }
  3500.                 {[IDEL BOB              ,4,3] Del Bob              } {[IPRIORITY ON          ,4,3] Priority On          }
  3501.                 {[IDOUBLE BUFFER        ,4,3] Double Buffer        } {[IPRIORITY REVERSE OFF ,4,3] Priority Reverse Off }
  3502.                 {[IGET BOB              ,4,3] Get Bob              } {[IPRIORITY REVERSE ON  ,4,3] Priority Reverse On  }
  3503.                 {[IGET BOB PALETTE      ,4,3] Get Bob Palette      } {[IREV                 ,4,3] =Rev                 }
  3504.                 {[IHREV                ,4,3] =Hrev                } {[IPUT BOB              ,4,3] Put Bob              }
  3505.                 {[II BOB               ,4,3] =I Bob               } {[ISET BOB              ,4,3] Set Bob              }
  3506.                 {[IINS BOB              ,4,3] Ins Bob              } {[IVREV                ,4,3] =Vrev                }
  3507.                 {[ILIMIT BOB            ,4,3] Limit Bob            } {[IX BOB               ,4,3] =X Bob               }
  3508.                 {[INO MASK              ,4,3] No Mask              } {[IY BOB               ,4,3] =Y Bob               }
  3509.  
  3510. BOB
  3511. {[RAMOSPro_Examples:Examples/H-2/Help_26.AMOS,0,4]Bob}
  3512.  
  3513. Draws a Blitter OBject at the given coordinates on the current screen. 
  3514.  
  3515.         Bob number,x,y,imagenumber
  3516. BOB OFF
  3517. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Bob Off}
  3518.  
  3519. Removes  a  numbered Blitter OBject from the screen, or removes all Bobs if
  3520. you leave out the individual number.
  3521.  
  3522.         Bob Off bobnumber
  3523. DEL BOB
  3524. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Del Bob}
  3525.  
  3526. Deletes one or more bob images completely from the object bank.
  3527.  
  3528.         Del Bob n
  3529.  
  3530. n is the number of the image you wish to remove from the bank.
  3531.  
  3532. If  you  want  to  erase several objects, you can use a second form of this
  3533. instruction.
  3534.  
  3535.         Del Bob f To l
  3536.  
  3537. The command will now delete all the images from f to l.
  3538. DOUBLE BUFFER
  3539. {[RAMOSPro_Examples:Examples/H-2/Help_26.AMOS,0,4]Double Buffer}
  3540.  
  3541. Creates a DOUBLE screen BUFFER, as an invisible copy of the current screen.
  3542. It's vital for flicker free animation!
  3543.  
  3544. See SCREEN SWAP, LOGIC and PHYSIC.
  3545.  
  3546.         Double Buffer
  3547. GET BOB
  3548. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Get Bob}
  3549.  
  3550. Grabs  a  section  from a screen of given coordinates and loads it into the
  3551. Object  bank.   An  optional  screen  number  can be given before the image
  3552. number.  This allows you to grab your images from any existing AMOS screen.
  3553.  
  3554.         Get Bob screen number,image number,x1,y1 To x2,y2
  3555. GET BOB PALETTE
  3556.  
  3557. Loads  all  of  your  Blitter  OBject  colours  to  the current screen.  An
  3558. optional mask can be used to load a selection of these colours at a time.
  3559.  
  3560.         Get Bob Palette,mask
  3561. HREV
  3562. {[RAMOSPro_Examples:Examples/H-2/Help_29.AMOS,0,4]=Hrev}
  3563.  
  3564. Flips a Bob image from left to right. Any hot spots will also be reversed.
  3565.  
  3566.         Bob number,x,y,image number : Rem Normal image
  3567.         Rem Now flip this image number horizontally
  3568.         Bob number,x,y,HREV(image number)
  3569. I BOB
  3570. {[RAMOSPro_Examples:Examples/H-2/Help_27.AMOS,0,4]= I Bob}
  3571.  
  3572. Returns  the  current  Image  number  used by Blitter OBject number b.  The
  3573. result will be zero if the bob is not visible on the current display.
  3574.  
  3575.         Image=I Bob(b)
  3576. INS BOB
  3577. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Ins Bob}
  3578.  
  3579. Inserts  a  blank  image at position n in the current object bank.  All the
  3580. images after this number will be moved down a place.
  3581.  
  3582.         Ins Bob n
  3583.  
  3584.         Ins Bob f To l
  3585.  
  3586. Creates  several  image  slots  in  a  single operation.  A series of blank
  3587. spaces will now be created between image number f and image l.
  3588.  
  3589. LIMIT BOB
  3590. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Limit Bob}
  3591.  
  3592. Restricts  the  visibility  of a numbered Blitter OBject to the LIMITs of a
  3593. rectangle  on  screen.   You  set  up  the size of this rectangle by simply
  3594. entering its coordinates.
  3595.  
  3596.         Bob 1,100,100,1
  3597.         Limit Bob number,x1,y1 To x2,y2
  3598. NO MASK
  3599. {[RAMOSPro_Examples:Examples/H-2/Help_26.AMOS,0,4]No Mask}
  3600.  
  3601. Removes the blitter mask around one or all bobs.  Without a mask, the Bob's
  3602. entire image will be displayed on screen, including any transparent bits in
  3603. colour zero.
  3604.  
  3605.          No Mask : Rem Removes ALL blitter masks
  3606.          No Mask object : Rem Kills the mask around the selected bob
  3607. PASTE BOB
  3608. {[RAMOSPro_Examples:Examples/H-2/Help_29.AMOS,0,4]Paste Bob}
  3609.  
  3610. Gets  an  image  from the OBject bank, then PASTEs it on the screen at your
  3611. chosen coordinates.
  3612.  
  3613.         Paste Bob x,y,imagenumber
  3614. PRIORITY ON
  3615. {[RAMOSPro_Examples:Examples/H-3/Help_30.AMOS,0,4]Priority On}
  3616.  
  3617. Normally  Bobs  barge  in  front  of  any  objects with a lower Bob number.
  3618. PRIORITY  ON  gives  the  greatest  priority  to objects with the highest y
  3619. coords on the screen.
  3620.  
  3621.         Priority On
  3622.  
  3623. PRIORITY OFF
  3624. {[RAMOSPro_Examples:Examples/H-3/Help_30.AMOS,0,4]Priority Off}
  3625.  
  3626. Displays  all  Bobs  on  the  screen  in  strict order of their Bob number.
  3627. (default)
  3628.  
  3629.         Priority Off
  3630.  
  3631. PRIORITY REVERSE ON
  3632. {[RAMOSPro_Examples:Examples/H-3/Help_30.AMOS,0,4]Priority Reverse On}
  3633.  
  3634. Activates  the  REVERSE  effect  of the PRIORITY command for the display of
  3635. Bobs on screen.  PRIORITY REVERSE OFF is the normal mode, but by turning it
  3636. ON  Bobs  with  the lowest y coordinates will appear in front of those with
  3637. higher y coordinates.
  3638.  
  3639.         Priority Reverse On
  3640.  
  3641. PRIORITY REVERSE OFF
  3642. {[RAMOSPro_Examples:Examples/H-3/Help_30.AMOS,0,4]Priority Reverse Off}
  3643.  
  3644. Resets the Priority system to normal.
  3645.  
  3646.         Priority Reverse Off
  3647. PUT BOB 
  3648. {[RAMOSPro_Examples:Examples/H-2/Help_28.AMOS,0,4]Put Bob}
  3649.  
  3650. Fixes  a  copy  of  the bob n at it's current position on the screen.  Your
  3651. copy  will  remain  firmly in place when the bob moves away.  Always follow
  3652. this command with a WAIT VBL.
  3653.  
  3654.        Put Bob n
  3655. REV
  3656. {[RAMOSPro_Examples:Examples/H-2/Help_29.AMOS,0,4]=Rev}
  3657.  
  3658. REVerses a Bob image completely, by flipping it over its own horizontal and
  3659. vertical axis.  Any hot spots will also be reversed.
  3660.  
  3661.         Bob number,x,y,image number : Rem Normal image
  3662.         Rem Now flip this image number completely
  3663.         Bob number,x,y,REV(image number)
  3664. SET BOB
  3665. {[RAMOSPro_Examples:Examples/H-2/Help_27.AMOS,0,4]Set Bob}
  3666.  
  3667. SETs the mode for drawing a Blitter OBject on screen.
  3668.  
  3669.         Set Bob number,background,screenplanes,mask
  3670.  
  3671. number is the number of the bob you want to affect.
  3672.  
  3673. background can take one of three values:
  3674.  
  3675.              0  replaces the background whenever the bob is moved. (Default)
  3676.  
  3677. Greater than 0  replaces the area with a block of colour background-1
  3678.  
  3679.    Less than 0  doesn't redraw the background at all.
  3680.  
  3681. screenplanes  is  a bit-pattern which specifies which planes are to be used
  3682. by the bob.  A value of 1 draws the bob in plane, a zero doesn't.
  3683.  
  3684. mask selects the blitter mode using a set of minterms.
  3685. VREV
  3686. {[RAMOSPro_Examples:Examples/H-2/Help_29.AMOS,0,4]=Vrev}
  3687.  
  3688. Turns a Bob image upside down. Any hot spots will also be reversed.
  3689.  
  3690.         Bob number,x,y,image number : Rem Normal image
  3691.         Rem now flip this image number vertically
  3692.         Bob number,x,y,VREV(imagenumber)
  3693. X BOB
  3694. {[RAMOSPro_Examples:Examples/H-2/Help_27.AMOS,0,4]=X Bob}
  3695.  
  3696. Returns the X coordinate of your bob on the current screen.
  3697.  
  3698.         x1=X Bob(number)
  3699. Y BOB
  3700. {[RAMOSPro_Examples:Examples/H-2/Help_27.AMOS,0,4]=Y Bob}
  3701.  
  3702. Returns the Y coordinate of your bob on the current screen.
  3703.  
  3704.         y1=Y Bob(number)
  3705.  
  3706. Detecting Collisions
  3707.                           {[IBOB COL      ,4,3] =Bob Col                 }
  3708.                           {[IBOBSPRITE COL,4,3] =Bobsprite Col           }
  3709.                           {[ICOL          ,4,3] =Col                     }
  3710.                           {[IHARDCOL      ,4,3] =Hardcol                 }
  3711.                           {[ISET HARDCOL   ,4,3] Set Hardcol              }
  3712.                           {[ISPRITE COL   ,4,3] =Sprite Col              }
  3713.                           {[ISPRITEBOB COL,4,3] =Spritebob Col           }
  3714.                           {[IMAKE MASK     ,4,3] Make Mask                }
  3715.  
  3716. COL
  3717. {[RAMOSPro_Tutorial:Tutorials/Collision_Detection.AMOS,0,4]=Col}
  3718.  
  3719. Checks  for  the other objects involved in a collision you've just detected
  3720. using one of the BOB COL,SPRITE COL, BOBSPRITE COL and SPRITEBOB COL
  3721. functions.
  3722.  
  3723. target is the number of the object you wish to test.  If it's collided with
  3724. your source object, you'll get a value of -1, otherwise 0 will be returned.
  3725.  
  3726.         c=Col(target)
  3727.  
  3728. If  you  enter  a  target  of  -1, AMOS will return the number of the FIRST
  3729. object which has collided with your source object.
  3730.  
  3731. BOB COL
  3732. {[RAMOSPro_Tutorial:Tutorials/Collision_Detection.AMOS,0,4]=Bob Col}
  3733.  
  3734. Detects  COLlisions between one or more blitter objects.  If a collision is
  3735. detected,  BOB  COL  will  return  a value of -1.  Otherwise you'll get a 0
  3736. instead.
  3737.  
  3738.         c=Bob Col(source)
  3739.  
  3740. If  you  want  to  restrict  your test to just a selection of bobs, you can
  3741. optionally extend the BOB COL command like so:
  3742.  
  3743.         c=Bob Col(source,first TO last)
  3744. BOB SPRITE COL
  3745. {[RAMOSPro_Tutorial:Tutorials/Collision_Detection.AMOS,0,4]=Bobsprite Col}
  3746.  
  3747. Tests  a single BOB for a collision with a group of sprites.  A value of -1
  3748. signifies  that the test was successful.  You can now immediately check for
  3749. the other objects involved in the collision using the COL function.
  3750.  
  3751.         c=Bob Sprite Col(bobnumber)
  3752.  
  3753. Note  that ALL the sprites you are testing MUST have a blitter mask.  These
  3754. are created using the MAKE MASK command.
  3755.  
  3756. You can also use a second version of this function.
  3757.  
  3758.          c=Bob Sprite Col(bobnumber,first TO last)
  3759.  
  3760. Tests for collisions between the source Bob and Sprites from first to last.
  3761.  
  3762. HARD COL
  3763. Returns the result of the hardware collision detector you've activated with
  3764. the  SET  HARDCOL command.  If the test is successful you'll get a value of
  3765. True (-1).  Otherwise the result will be False (0).
  3766.  
  3767. You can now find the identification number of any other sprites involved in
  3768. the collision using the COL function as normal.
  3769.  
  3770.         test=Hardcol(spritenumber)
  3771. MAKE MASK
  3772. {[RAMOSPro_Tutorial:Tutorials/Collision_Detection.AMOS,0,4]Make Mask}
  3773.  
  3774. Makes  a blitter mask for all the objects on the screen, including sprites.
  3775. This  command  should  be  used  before  any  collision  detection routines
  3776. involving sprites.
  3777.  
  3778.           Make Mask
  3779.           Make Mask n : Rems Makes a mask around sprite n
  3780. SET HARDCOL
  3781. Activate the Amiga's built-in hardware collision detector.  This allows you
  3782. to  check  for the collison between a Hardware sprite (0 to 7) and any part
  3783. of the screen background.
  3784.  
  3785.          Set Hardcol enablebits,comparisonbits
  3786. SPRITE COL
  3787. {[RAMOSPro_Tutorial:Tutorials/Collision_Detection.AMOS,0,4]=Sprite Col}
  3788.  
  3789. Looks for collisions between several sprites.  These sprites MUST have been
  3790. previously initialised with the MAKE MASK option.
  3791.  
  3792.         c=Sprite Col(source)
  3793.  
  3794. If  another sprite has collided with your source object, you'll get a value
  3795. of -1.  Otherwise the result will be zero.
  3796.  
  3797. There's also a more selective version of this function.
  3798.  
  3799.         c=Sprite Col(source,first TO last)
  3800.  
  3801. Only checks for collisions between the source object and sprites from first
  3802. to last.  (See COL,MAKE MASK)
  3803.  
  3804. SPRITEBOB COL
  3805. {[RAMOSPro_Tutorial:Tutorials/Collision_Detection.AMOS,0,4]=Spritebob Col}
  3806.  
  3807. Checks  a  single  SPRITE  for collisions between several bobs.  The source
  3808. sprite MUST have been assigned a mask with the MAKE MASK option before use.
  3809.  
  3810. If the test is successful, you'll get a result of -1.  You can now find the
  3811. other objects in the collision with a call to the COL function.
  3812.  
  3813.         c=Sprite Bob Col(spritenumber)
  3814.  
  3815. There's also an extended version of this function.
  3816.  
  3817.         c=Sprite Bob Col(spritenumber,first To last)
  3818.  
  3819. Tests for collisions between the source object and bobs from first to last.
  3820. (See COL,MAKE MASK)
  3821.  
  3822. Setting up screens
  3823.  
  3824.    {[IAUTOVIEW ON     ,4,3] Autoview On     } {[IDISPLAY HEIGHT ,4,3] =Display Height } {[ISCREEN          ,4,3] Screen          } {[ISCREEN HIDE     ,4,3] Screen Hide     }
  3825.    {[IAUTOVIEW OFF    ,4,3] Autoview Off    } {[IDUAL PLAYFIELD  ,4,3] Dual Playfield  } {[ISCIN           ,4,3] =Scin           } {[ISCREEN OFFSET   ,4,3] Screen Offset   }
  3826.    {[ICLS             ,4,3] Cls             } {[IDUAL PRIORITY   ,4,3] Dual Priority   } {[ISCREEN         ,4,3] =Screen         } {[ISCREEN OPEN     ,4,3] Screen Open     }
  3827.    {[ICOLOUR          ,4,3] Colour          } {[IGET PALETTE     ,4,3] Get Palette     } {[ISCREEN COLOUR  ,4,3] =Screen Colour  } {[ISCREEN SHOW     ,4,3] Screen Show     }
  3828.    {[ICOLOUR          ,4,3] =Colour         } {[ILOAD IFF        ,4,3] Load Iff        } {[ISCREEN CLONE    ,4,3] Screen Clone    } {[ISCREEN TO BACK  ,4,3] Screen To Back  }
  3829.    {[ICOLOUR BACK     ,4,3] Colour Back     } {[INTSC           ,4,3] =Ntsc           } {[ISCREEN CLOSE    ,4,3] Screen Close    } {[ISCREEN TO FRONT ,4,3] Screen To Front }
  3830.    {[IDEFAULT         ,4,3] Default         } {[IPALETTE         ,4,3] Palette         } {[ISCREEN DISPLAY  ,4,3] Screen Display  } {[ISCREEN WIDTH   ,4,3] =Screen Width   }
  3831.    {[IDEFAULT PALETTE ,4,3] Default Palette } {[ISAVE iFF        ,4,3] Save Iff        } {[ISCREEN HEIGHT  ,4,3] =Screen Height  } {[IVIEW            ,4,3] View            }
  3832.  
  3833. AUTOVIEW ON
  3834. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]Autoview On}
  3835.  
  3836. Restarts  the  normal  automatic  viewing  mode for your screens.  Your new
  3837. screens  will  now be displayed straight after they've been created, at the
  3838. next vertical blank.
  3839.  
  3840.         Auto View On
  3841. AUTOVIEW OFF
  3842. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]Autoview Off}
  3843.  
  3844. Activates  manual  viewing mode.  In manual mode, your new screens are only
  3845. displayed  when  you  specifically request an update using VIEW.  Use it as
  3846. part  of your programs initialisation procedure to generate your display in
  3847. the background.
  3848.  
  3849.        Auto View Off
  3850. CLS
  3851. {[RAMOSPro_Examples:Examples/H-3/Help_39.AMOS,0,4]Cls}
  3852.  
  3853. CLears all or part of a Screen in one of three ways:
  3854.  
  3855.         Cls
  3856.  
  3857. Clears entire screen using the current paper colour.
  3858.  
  3859.         Cls colour
  3860.  
  3861. Clears screen using the selected colour index.
  3862.  
  3863.         Cls colour,tx,ty To bx,yb
  3864.  
  3865. Erases the block from tx,ty to bx,by
  3866. COLOUR
  3867. {[RAMOSPro_Examples:Examples/H-0/Help_5.AMOS,0,4]Colour}
  3868.  
  3869. Reads or changes the colour value assigned to one of your colour indexes.
  3870.  
  3871.         Colour indexnumber,$RGB
  3872.  
  3873. Changes  a colour in the palette, by setting the strength of its Red, Green
  3874. and Blue components.
  3875.  
  3876.         c=Colour(index)
  3877.  
  3878. Returns  the hexadecimal colour value held in one of your colour indexes as
  3879. a proportion of Red, Blue amd Green components.
  3880.         
  3881.         Print Hex$(Colour(Index))
  3882.  
  3883. COLOUR BACK
  3884. {[RAMOSPro_Examples:Examples/H-0/Help_5.AMOS,0,4]Colour Back}
  3885.  
  3886. Changes the colour of the display where no screens exist (dead area).
  3887.  
  3888.         Colour Back $RGB
  3889. DEFAULT
  3890. {[RAMOSPro_Examples:Examples/H-3/Help_38.AMOS,0,4]Default}
  3891.  
  3892. Resets  the  display  screen  to its original DEFAULT setting of 320 pixels
  3893. wide, 200 pixels high and 16 colours, and closes any other open screens.
  3894.  
  3895. DEFAULT PALETTE
  3896. {[RAMOSPro_Examples:Examples/H-3/Help_38.AMOS,0,4]Default Palette}
  3897.  
  3898. Defines  a list of colours which will be used by each new screen you create
  3899. with SCREEN OPEN.
  3900.  
  3901.         Default Palette c1,c2,c3,c4,,,,
  3902.  
  3903. DISPLAY HEIGHT
  3904. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]=Display Height}
  3905.  
  3906. Returns the HEIGHT of your screen DISPLAY in pixels.
  3907.  
  3908.         Print Display Height
  3909.  
  3910. DUAL PLAYFIELD
  3911. {[RAMOSPro_Examples:Examples/H-3/Help_37.AMOS,0,4]Dual Playfield}
  3912.  
  3913. Displays  two  screens  on top of each  other.   Colour  zero is treated as
  3914. transparent,  so  anything  drawn in it to the first screen will reveal the
  3915. appropriate region of the second.
  3916.  
  3917.        Dual playfield screen1,screen2 
  3918.  
  3919. Each screen can use up to eight colours. 
  3920. DUAL PRIORITY
  3921. {[RAMOSPro_Examples:Examples/H-3/Help_37.AMOS,0,4]Dual Priority}
  3922.  
  3923. Allows  you to reverse the order of the two screens used to generate a dual
  3924. playfield.
  3925.  
  3926.        Dual Priority screen1,screen2
  3927.  
  3928. Displays screen 1 over screen 2
  3929. GET PALETTE
  3930. {[RAMOSPro_Examples:Examples/H-3/Help_38.AMOS,0,4]Get Palette}
  3931.  
  3932. Copies  the PALETTE of colours from a numbered screen and loads them to the
  3933. current screen.
  3934.  
  3935.         Get Palette sourcescreen
  3936.  
  3937. An  optional mask can be used to load a selection of these colours from the
  3938. source.
  3939.  
  3940.         Get Palette sourcescreen,mask
  3941. LOAD IFF
  3942. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]Load Iff}
  3943.  
  3944. LOADs an IFF format graphic to your current screen.If you want to choose an
  3945. alternative destination screen, simply enter its number after the filename.
  3946.  
  3947.         Load iff "filename"
  3948.         Load Iff "filename",screen number
  3949.  
  3950. NTSC
  3951. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]=Ntsc}
  3952.  
  3953. Reports back which screen mode AMOS Professional is running under.
  3954.  
  3955. 0 means PAL is active and -1 means NTSC is being used.
  3956. PALETTE
  3957. {[RAMOSPro_Examples:Examples/H-0/Help_5.AMOS,0,4]Palette}
  3958.  
  3959. Sets  any combination of current screen colours from the available PALETTE.
  3960. Colours  are made up using hexadecimal notation, making it easier to define
  3961. the RGB of a colour.
  3962.  
  3963.         Palette $RGB,$RGB,$RGB
  3964. SAVE IFF
  3965. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]Save Iff}
  3966.  
  3967. SAVEs the current screen as an IFF picture on your disc.
  3968.  
  3969.         Save Iff "filename"
  3970.  
  3971. A  compression  code  can  be  used  as an option for compacting the screen
  3972. before  it is saved.  This code is set to zero to save the screen as it is,
  3973. or set to 1 to use the standard file compression system for saving memory.
  3974.  
  3975.         Save Iff "filename",compressioncode
  3976. SCIN
  3977. {[RAMOSPro_Examples:Examples/H-3/Help_36.AMOS,0,4]=SCIN}
  3978.  
  3979. Returns the number of an AMOS screen at your selected hardware coordinates.
  3980.  
  3981.         s=SCIN(hx,hy)
  3982.  
  3983. If a screen isn't defined at these coordinates, you'll get a value of zero.
  3984. SCREEN
  3985. {[RAMOSPro_Examples:Examples/H-3/Help_39.AMOS,0,4]Screen}
  3986.  
  3987. This comes in two flavours:
  3988.  
  3989.         Screen number
  3990.  
  3991. Selects  a  SCREEN for all future graphics and text operations, even if the
  3992. screen is hidden away in the background.
  3993.  
  3994.         s=Screen
  3995.  
  3996. Returns  the  number  of the current screen you are using for your text and
  3997. graphics operations.
  3998.  
  3999. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]=Screen}
  4000.  
  4001. SCREEN CLONE
  4002. {[RAMOSPro_Examples:Examples/H-3/Help_36.AMOS,0,4]Screen Clone}
  4003.  
  4004. Makes  an  exact  CLONEd copy of the current SCREEN and assigns it to a new
  4005. screen number.
  4006.  
  4007.         Screen Clone number
  4008. SCREEN CLOSE
  4009. {[RAMOSPro_Examples:Examples/H-3/Help_34.AMOS,0,4]Screen Close}
  4010.  
  4011. Erases your SCREEN and frees up its memory for the rest of your program.
  4012.  
  4013.         Screen Close number
  4014. SCREEN COLOUR
  4015. {[RAMOSPro_Examples:Examples/H-3/Help_36.AMOS,0,4]=Screen Colour}
  4016.  
  4017. Returns the maximum number of colours available from the current screen.
  4018.  
  4019.         Print Screen Colour 
  4020.  
  4021. SCREEN DISPLAY
  4022. {[RAMOSPro_Examples:Examples/H-3/Help_34.AMOS,0,4]Screen Display}
  4023.  
  4024. Sets the position of your SCREEN on the display.
  4025.  
  4026.         Screen Display number,x,y,width,height
  4027.  
  4028. x,y enter the position in hardware coordinates
  4029.  
  4030. width,height specify the size of the screen area to be displayed.
  4031. SCREEN HEIGHT
  4032. {[RAMOSPro_Examples:Examples/H-3/Help_36.AMOS,0,4]=Screen Height}
  4033.  
  4034. Returns the height of the current screen in lines.
  4035.  
  4036.        Print Screen Height
  4037. SCREEN HIDE
  4038. {[RAMOSPro_Examples:Examples/H-3/Help_37.AMOS,0,4]Screen Hide}
  4039.  
  4040. HIDEs a SCREEN invisibly away in the background.
  4041.  
  4042.         Screen Hide
  4043.  
  4044. Hides the current screen
  4045.  
  4046.         Screen Hide screennumber
  4047.  
  4048. Hides screennumber
  4049.  
  4050. The screen can be redisplayed using the SCREEN SHOW command.
  4051. SCREEN OFFSET
  4052. {[RAMOSPro_Examples:Examples/H-3/Help_34.AMOS,0,4]Screen Offset}
  4053.  
  4054. Changes  the  position  of  the  first pixel to be displayed on the screen.
  4055. This allows you to scroll a large screen neatly through the display area.
  4056.  
  4057.         Screen Offset number,x,y
  4058. SCREEN OPEN
  4059. {[RAMOSPro_Examples:Examples/H-3/Help_34.AMOS,0,4]Screen Open}
  4060.  
  4061. OPENs a new AMOS SCREEN on the display. 
  4062.  
  4063.         Screen Open number,width,height,colours,mode
  4064.  
  4065. number ranges from 0 to 7.
  4066.  
  4067. width and height set the size of the screen in pixels.
  4068.  
  4069. colours enter the number of colours to be used.
  4070.  
  4071. mode sets the screen mode. Allowable options include Lowres,Hires, and Laced.
  4072. SCREEN SHOW
  4073.  
  4074. {[RAMOSPro_Examples:Examples/H-3/Help_37.AMOS,0,4]Screen Show}
  4075.  
  4076. SHOWs a SCREEN that has been previously hidden from view with SCREEN HIDE.
  4077.  
  4078.         Screen Show number
  4079. SCREEN TO BACK
  4080. {[RAMOSPro_Examples:Examples/H-3/Help_39.AMOS,0,4]Screen To Back}
  4081.  
  4082. Moves a SCREEN to the back of your display.
  4083.  
  4084.         Screen To Back
  4085.  
  4086. Affects the current screen
  4087.  
  4088.         Screen To Back number
  4089.  
  4090. Moves another screen to the back instead.
  4091. SCREEN TO FRONT
  4092.  
  4093. {[RAMOSPro_Examples:Examples/H-3/Help_39.AMOS,0,4]Screen To Front}
  4094.  
  4095. Moves a SCREEN to the front of your display.
  4096.  
  4097.         Screen To Front
  4098.  
  4099. Affects the current screen
  4100.  
  4101.         Screen To Front number
  4102.  
  4103. Moves another screen to the front instead.
  4104. SCREEN WIDTH
  4105. {[RAMOSPro_Examples:Examples/H-3/Help_36.AMOS,0,4]Screen Width}
  4106.  
  4107. Returns the width in pixels of the current screen.
  4108.  
  4109.         Print Screen Width
  4110. VIEW
  4111. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]View}
  4112.  
  4113. VIEWs  all  screens which have changed since the last update.  This is used
  4114. with  the  AUTO  VIEW  OFF  feature  to  display your new AMOS screens at a
  4115. particular point in your program.
  4116.  
  4117.         View
  4118. Screen effects
  4119.  
  4120.                 {[IAPPEAR       ,4,3] Appear        } {[IFLASH        ,4,3] Flash         } {[ISCREEN SWAP  ,4,3] Screen Swap   }
  4121.                 {[ICOP LOGIC    ,4,3] =Cop Logic    } {[IFLASH OFF    ,4,3] Flash Off     } {[ISCREEN BASE ,4,3] =Screen Base  }
  4122.                 {[ICOP MOVE     ,4,3] Cop Move      } {[ILOGBASE     ,4,3] =Logbase      } {[ISCROLL       ,4,3] Scroll        }
  4123.                 {[ICOP MOVEL    ,4,3] Cop Movel     } {[ILOGIC       ,4,3] =Logic        } {[ISET RAINBOW  ,4,3] Set Rainbow   }
  4124.                 {[ICOP RESET    ,4,3] Cop Reset     } {[IPACK         ,4,3] Pack          } {[ISHIFT DOWN   ,4,3] Shift Down    }
  4125.                 {[ICOP SWAP     ,4,3] Cop Swap      } {[IPHYBASE     ,4,3] =Phybase      } {[ISHIFT OFF    ,4,3] Shift Off     }
  4126.                 {[ICOP WAIT     ,4,3] Cop Wait      } {[IPHYSIC      ,4,3] =Physic       } {[ISHIFT UP     ,4,3] Shift Up      }
  4127.                 {[ICOPPER OFF   ,4,3] Copper Off    } {[IRAIN        ,4,3] =Rain         } {[ISPACK        ,4,3] Spack         }
  4128.                 {[ICOPPER ON    ,4,3] Copper On     } {[IRAINBOW      ,4,3] Rainbow       } {[IUNPACK       ,4,3] Unpack        }
  4129.                 {[IDEF SCROLL   ,4,3] Def Scroll    } {[IRAINBOW DEL  ,4,3] Rainbow Del   } {[IWAIT VBL     ,4,3] Wait Vbl      }
  4130.                 {[IFADE         ,4,3] Fade          } {[ISCREEN COPY  ,4,3] Screen Copy   } {[IZOOM         ,4,3] Zoom          }
  4131.  
  4132.  
  4133. APPEAR
  4134. {[RAMOSPro_Tutorial:Tutorials/Appear.AMOS,0,4]Appear}
  4135.  
  4136. Slowly fades from one screen to another using a range of fancy effects.
  4137.  
  4138.         Appear source To destination,effect
  4139.  
  4140. effect  sets  the  type of fade ranging from 1 to the maximum number of the
  4141. pixels on your screen.
  4142.  
  4143.         Appear source To destination,effect,pixels
  4144.  
  4145. pixels  enters  the  number of screen points to be affected by the command.
  4146. It defaults to the entire screen area.
  4147.  
  4148. COP  LOGIC
  4149. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Cop  Logic}
  4150.  
  4151. Returns the absolute address of the logical copper list in memory.
  4152.  
  4153.         address=Cop Logic
  4154. COP MOVE
  4155. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Cop Move}
  4156.  
  4157. Inserts a "MOVE" command into the current logical copper list.
  4158.  
  4159.         Cop Move addr,value
  4160. COP MOVEL
  4161. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Cop Movel} 
  4162.  
  4163. Generates a matched pair of "MOVE" commands in the new copper list.
  4164.  
  4165.         Cop Movel addr,value
  4166.  
  4167. COP RESET
  4168. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Cop Reset}
  4169.  
  4170. Adds a pair of "Move" commands which forces the copper list to restart from
  4171. the very first instruction.  You can use this to generate simple loops.
  4172.  
  4173.         Cop Reset
  4174.  
  4175. COP SWAP 
  4176. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Cop Swap}
  4177.  
  4178. Switches  the  logical  and  physical copper lists around.  Your new copper
  4179. list  will  now be flicked neatly into place.  You'll see the results after
  4180. the next vertical blank.
  4181.  
  4182.         Cop Swap
  4183.         Wait Vbl
  4184. COPPER OFF
  4185. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Copper Off}
  4186.  
  4187. Freezes  the  automatic  copper  generation which forms the mainstay of the
  4188. AMOS Graphics system.  Once it's turned off, you're on your own!
  4189.  
  4190.         Copper OfF
  4191. COPPER ON
  4192. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Copper On}
  4193.  
  4194. Restarts the standard copper calculations and returns your AMOS screen back
  4195. to normal.
  4196.  
  4197. COP WAIT
  4198. {[RAMOSPro_Examples:Examples/H-6/Help_62.AMOS,0,4]Cop Wait}
  4199.  
  4200. Enters a "WAIT" instruction at the current point in your copper list.
  4201.  
  4202.         Cop Wait x,y
  4203.  
  4204. x can be a hardware coordinate from 0 to 448. 
  4205. y can be any value from 0 to 312.
  4206.  
  4207.          Cop Wait x,y,xmask,ymask
  4208.  
  4209. xmask  and  ymask  are  bitmasks  which  allow you to wait until the screen
  4210. coordinates satisfy a specific combination of bits.  They default to $1FF.
  4211.  
  4212. DEF SCROLL
  4213. {[RAMOSPro_Examples:Examples/H-3/Help_38.AMOS,0,4]Def Scroll}
  4214.  
  4215. Defines  a scrolling zone on the current screen.  This zone can be scrolled
  4216. through the display using the SCROLL command.
  4217.  
  4218.         Def Scroll z,tx,ty to bx,by,dx,dy
  4219.  
  4220. z is the scroll zone from 1 to 16.
  4221.  
  4222. tx,ty are the coordinates of the top left hand corner of the zone.
  4223.  
  4224. bx,y hold the coordinates of the point dialogonally opposite.
  4225.  
  4226. dx,dy enters the distance in pixels to be moved right or down in each scroll.
  4227. FADE
  4228. {[RAMOSPro_Tutorial:Tutorials/fade.AMOS,0,4]Fade}
  4229.  
  4230. Fades a selected range of colours onto the screen.
  4231.  
  4232.         Fade speed
  4233.  
  4234. Slowly reduces all the colour values down to zero (black).
  4235.  
  4236. speed holds the delay in 50th of a second between each step.
  4237.  
  4238.         Fade Speed To $RGB,$RGB...
  4239.  
  4240. Fades  using a list of colour values, separated by commas.  You can include
  4241. as  many  values  as  you  like.   Providing  you  keep the commas in their
  4242. original positions, you can also omit colours from the fade. Eg. 
  4243. Fade 10 To 1,,3, : Rem only affects colours 0 and 2
  4244.  
  4245.   
  4246.         Fade speed To screen number 
  4247.  
  4248.  
  4249. Fades the colours into the colour palette used by the selected AMOS Screen. 
  4250. A value of -1 fades the colours from the Sprite Palette instead.
  4251.  
  4252.         Fade speed To screen,number,mask 
  4253.  
  4254. mask is an optional bit-pattern specifying which colours are to be changed.
  4255. Bit 0 affects the first colour, bit 1 the second etc.
  4256.  
  4257. FLASH
  4258. {[RAMOSPro_Examples:Examples/H-2/Help_25.AMOS,0,4]Flash}
  4259.  
  4260. FLASH  automatically  flicks  a  selected  colour through a range of values
  4261. using interrupts.
  4262.  
  4263.         Flash index,"(RGB,delay)(RGB,delay)"
  4264.  
  4265. index enters the  colour to be changed.
  4266.  
  4267. RGB holds a new colour value in Red Green Blue format.
  4268.  
  4269. delay  sets the period this colour will be held on the screen in 50ths of a
  4270. second.              
  4271.  
  4272. FLASH OFF
  4273. {[RAMOSPro_Examples:Examples/H-2/Help_25.AMOS,0,4]Flash Off}
  4274.  
  4275. Turns off an animated colour sequence created with the FLASH command.
  4276.  
  4277.         Flash Off
  4278. LOGBASE
  4279. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]=Logbase}
  4280.  
  4281. Returns  the  address  of  one of the six possible bit-planes making up the
  4282. current  LOGical  screen.   If  the  plane  does  not exist, a zero will be
  4283. returned.
  4284.  
  4285.         address=Logbase(planenumber)
  4286. =LOGIC
  4287. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]=Logic}
  4288.  
  4289. Returns  the  identification number of the LOGICal screen.  This number can
  4290. be used in conjunction with SCREEN COPY,APPEAR or ZOOM.
  4291.  
  4292.         Print Logic
  4293. PACK
  4294. {[RAMOSPro_Examples:Examples/H-4/Help_41.AMOS,0,4]Pack}
  4295.  
  4296. Compresses any part of an AMOS screen into a memory bank.
  4297.  
  4298.         Pack screennumber To banknumber,tx,ty,bx,by
  4299.  
  4300. tx,ty hold the coordinates of the top left of the area to be packed.
  4301.  
  4302. bx,by specify the point diagonally opposite. 
  4303. =PHYBASE
  4304. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]=Phybase}
  4305.  
  4306. Returns  the  address  of  one of the six possible bit-planes making up the
  4307. current  PHYsical  screen.   If  the  plane  does  not  exist, zero will be
  4308. returned.
  4309.  
  4310.         address=Phybase(planenumber)
  4311. PHYSIC
  4312. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]=Physic}
  4313.  
  4314. Returns  the identification number of the PHYSICal screen.  This number can
  4315. be used in conjunction with SCREEN COPY,APPEAR or ZOOM.
  4316.  
  4317.         I=Physic
  4318. RAIN
  4319. {[RAMOSPro_Tutorial:Tutorials/Rainbows.AMOS,0,4]Rain}
  4320.  
  4321. Sets the colour of an individual RAINbow line on the screen. 
  4322.  
  4323.         A=Rain(rnumber,line)
  4324.  
  4325. rnumber is the number of a rainbow created with the SET RAINBOW command.
  4326.  
  4327. line is the number of the rainbow line you wish to change, from 0 to 270.
  4328. RAINBOW
  4329. {[RAMOSPro_Tutorial:Tutorials/Rainbows.AMOS,0,4]Rainbow}
  4330.  
  4331. Creates an attractive RAINBOW effect using the values you've defined using 
  4332. SET RAINBOW or the RAIN function.
  4333.  
  4334.         Rainbow rnumber,base,y,height
  4335.  
  4336. rnumber is the number of the rainbow from 0 to 3.
  4337.  
  4338. base  is an offset to the first colour in the rainbow table to be displayed
  4339. on the screen.
  4340.  
  4341. y enters the vertical position of the rainbow as a hardware coordinate.
  4342.  
  4343. height sets the height of the rainbow in scan lines.
  4344. RAINBOW DEL
  4345. {[RAMOSPro_Tutorial:Tutorials/Rainbows.AMOS,0,4]Rainbow Del}
  4346.  
  4347. DELetes one or more RAINBOWs.
  4348.  
  4349.         Rainbow Del
  4350.  
  4351. Erases ALL current rainbow definitions,
  4352.  
  4353.         Rainbow Del rnumber
  4354.  
  4355. Deletes a single rainbow.
  4356. SCREEN BASE
  4357. {[RAMOSPro_Examples:Examples/H-6/Help_64.AMOS,0,4]Screen Base}
  4358.  
  4359. Returns the BASE address of the SCREEN table that is used to hold a list of
  4360. dimensions and statistics about your AMOS Professional screens.
  4361.  
  4362.         table=Screen Base
  4363. SCREEN COPY
  4364. {[RAMOSPro_Examples:Examples/H-3/Help_39.AMOS,0,4]Screen Copy}
  4365.  
  4366. Copies  a  selected area of the screen from one place to another, using the
  4367. Amiga's amazing Blitter Chip.
  4368.  
  4369.         Screen Copy screen1 To screen2
  4370.  
  4371. Copies an entire screen.
  4372.  
  4373. screen1 holds the source image
  4374.  
  4375. screen2 sets the number of the destination screen.  
  4376.  
  4377.  
  4378.         Screen Copy screen1,tx,ty,bx,by To screen2,sx,sy,mode
  4379.  
  4380. Copies just part of a screen.
  4381.  
  4382. tx,ty enter the coordinates of the top left of the source image
  4383.  
  4384. bx,by specify the point diagonally opposite. 
  4385.  
  4386. sx,sy choose the top left-hand coordinates of the destination.
  4387.  
  4388.  
  4389.         Screen Copy screen1,tx,ty,bx,by To screen2,sx,sy,mode
  4390.  
  4391. Copies using a special blitter mode.
  4392.  
  4393. Try mode values like: %11100000, %00110000, %01100000
  4394. SCREEN SWAP
  4395. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]Screen Swap}
  4396.  
  4397. SWAPs  the display between the current logical and physical components of a
  4398. double  buffered screen.  The old physical screen is hidden away in memory,
  4399. and the logical one is flicked onto the display.
  4400.  
  4401.         Screen Swap
  4402.  
  4403. If  you  have  several  double  buffered  screens,  you can use an extended
  4404. version of this command.
  4405.  
  4406.         Screen Swap screennumber
  4407. SCROLL
  4408. {[RAMOSPro_Examples:Examples/H-3/Help_38.AMOS,0,4]Scroll}
  4409.  
  4410. Scrolls  the screen using the settings you have previously specified in the
  4411. DEF SCROLL command.
  4412.  
  4413.         Scroll z
  4414.  
  4415. Where z is the number of your scrolling zone.
  4416. SET RAINBOW
  4417. {[RAMOSPro_Tutorial:Tutorials/Rainbows.AMOS,0,4]Set Rainbow}
  4418.  
  4419. SETs up a RAINBOW effect for later display.
  4420.  
  4421.         Set Rainbow rnumber,colour,length,r$,g$,b$
  4422.  
  4423. rnumber is the number of your rainbow from 0 to 3
  4424.  
  4425. colour is an index to be assigned to your effect.
  4426.  
  4427. length enters the size of the table used to store your rainbow colours from
  4428. 16 to 65500.
  4429.  
  4430. R$,G$,B$  give  the red, green and blue intensities of your colour bands in
  4431. the format (lines,step,count)
  4432.  
  4433. SHIFT UP
  4434. {[RAMOSPro_Examples:Examples/H-2/Help_25.AMOS,0,4]Shift Up}
  4435.  
  4436. Rotates a colour upwards through the current screen palette.
  4437.  
  4438.         Shift Up delay,first,last,flag
  4439.  
  4440. first  and last choose the range of colour indexes which will be rotated by
  4441. your instruction.
  4442.  
  4443. delay sets the delay in fiftieths of a second between each colour shift. 
  4444.  
  4445. type =1 cycles the colours continuosly.
  4446.      =0 discard the colour value of index last after each rotation.
  4447. SHIFT DOWN
  4448. {[RAMOSPro_Examples:Examples/H-2/Help_25.AMOS,0,4]Shift Down}
  4449.  
  4450. Rotates a colour downwards through the current screen palette.
  4451.  
  4452.         Shift Down delay,first,last,flag
  4453.  
  4454. first  and last choose the range of colour indexes which will be rotated by
  4455. your instruction.
  4456.  
  4457. delay sets the delay in fiftieths of a second between each colour shift. 
  4458.  
  4459. type =1 cycles the colours continuosly.
  4460.      =0 discard the colour value of index first after each rotation.
  4461.  
  4462. SHIFT OFF
  4463. {[RAMOSPro_Examples:Examples/H-2/Help_25.AMOS,0,4]Shift Off}
  4464.  
  4465. Turns off a colour rotation generated by the SHIFT UP or SHIFT DOWN 
  4466. commands.
  4467.  
  4468.         Shift Off
  4469. SPACK
  4470. {[RAMOSPro_Examples:Examples/H-4/Help_41.AMOS,0,4]Spack}
  4471.  
  4472. Performs  a  Screen  PACK  and  saves it into a memory bank.  The graphics,
  4473. screen  modes  and  all  location  details  are saved together, ready to be
  4474. unpacked at a later date.
  4475.  
  4476.         Spack screennumber To Banknumber
  4477.  
  4478. Packs an entire screen
  4479.  
  4480.         Spack screennumber To banknumber,tx,ty,bx,by
  4481.  
  4482. Compresses the region from tx,ty to bx,by
  4483. UNPACK
  4484. {[RAMOSPro_Examples:Examples/H-4/Help_41.AMOS,0,4]Unpack}
  4485.  
  4486. UNPACKs a compacted screen in one of three ways.
  4487.  
  4488.         Unpack banknumber To screennumber
  4489.  
  4490. Opens a screen and restore its image from the memory bank.
  4491.  
  4492.         Unpack banknumber
  4493.  
  4494. Unpacks a screen at its original position.
  4495.  
  4496.         Unpack banknumber,x,y
  4497.  
  4498. Unpacks an image and redraws it starting at coordinates x,y
  4499. WAIT VBL
  4500. {[RAMOSPro_Examples:Examples/H-4/Help_40.AMOS,0,4]Wait Vbl}
  4501.  
  4502. Stops  and WAITs until the next Vertical BLank period, the 50th of a second
  4503. it takes to update a screen.  This is ideal for synchronising animation and
  4504. screen swaps.
  4505.  
  4506.         Wait Vbl
  4507. ZOOM
  4508. {[RAMOSPro_Examples:Examples/H-7/Help_77.AMOS,0,4]Zoom}
  4509.  
  4510. Magnifies or reduces a section of the screen by ZOOMing in or out.
  4511.  
  4512.         Zoom source,stx,sty,sbx,sby To destination,dtx,dty,dbx,dby
  4513.  
  4514. Takes  an image from stx,sty to sby,sby and copies it to the region dtx,dty
  4515. to  dbx,dby.   If the destination area is larger than the source, the image
  4516. will  be  expanded  in  order  to  fit.  If it's smaller, the image will be
  4517. reduced.
  4518.  
  4519.  
  4520. Graphics
  4521.                    {[IBAR        ,4,3] Bar               } {[IPLOT       ,4,3] Plot              }
  4522.                    {[IBOX        ,4,3] Box               } {[IPOLYGON    ,4,3] Polygon           }
  4523.                    {[ICIRCLE     ,4,3] Circle            } {[IPOLYGON TO ,4,3] Polygon To        }
  4524.                    {[ICLIP       ,4,3] Clip              } {[IPOLYLINE   ,4,3] Polyline          }
  4525.                    {[IDRAW       ,4,3] Draw              } {[IPOLYLINE TO,4,3] Polyline To       }
  4526.                    {[IDRAW TO    ,4,3] Draw To           } {[ISET LINE   ,4,3] Set Line          }
  4527.                    {[IELLIPSE    ,4,3] Ellipse           } {[ISET PAINT  ,4,3] Set Paint         }
  4528.                    {[IGR LOCATE  ,4,3] Gr Locate         } {[ISET PATTERN,4,3] Set Pattern       }
  4529.                    {[IGR WRITING ,4,3] Gr Writing        } {[ISET SLIDER ,4,3] Set Slider        }
  4530.                    {[IHSLIDER    ,4,3] Hslider           } {[ISET TEMPRAS,4,3] Set Tempras       }
  4531.                    {[IINK        ,4,3] Ink               } {[IVSLIDER    ,4,3] Vslider           }
  4532.                    {[IPAINT      ,4,3] Paint             } {[IX GR       ,4,3] =X Gr             }
  4533.                    {[IPOINT      ,4,3] =Point            } {[IY GR       ,4,3] =Y Gr             }
  4534. BAR
  4535. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Bar}
  4536.  
  4537. Draws a filled rectangle at your chosen screen coordinates.
  4538.  
  4539.         Bar x1,y1 To x2,y2
  4540. BOX
  4541. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Box}
  4542.  
  4543. Draws a hollow rectangle from x1,y1 to x2,y2
  4544.  
  4545.         Box x1,y1 To x2,y2
  4546. CIRCLE
  4547. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Circle}
  4548.  
  4549. Draws an empty CIRCLE with its centre at coordinates x,y and with a radius r.
  4550.  
  4551.         Circle x,y,r
  4552. CLIP
  4553. {[RAMOSPro_Examples:Examples/H-0/Help_9.AMOS,0,4]Clip}
  4554.  
  4555. Limits all drawing operations to a specified screen area.
  4556.  
  4557.        Clip x1,y1 To x2,y2
  4558.  
  4559. DRAW
  4560. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Draw}
  4561.  
  4562. Draws  a  line between the starting and ending coordinates.  Parameters can
  4563. be omitted if required.
  4564.  
  4565.         Draw x1,y1 To x2,y2
  4566. DRAW TO
  4567. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Draw To}
  4568.  
  4569. Draws  a  line  from  the  current  graphic  cursor  location  to  your new
  4570. coordinates.
  4571.  
  4572.         Draw To x3,y3
  4573. ELLIPSE
  4574. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Ellipse}
  4575.  
  4576. Draws  an  outlined  ELLIPSE at your chosen coordinates, with the specified
  4577. horizontal and vertical radii.
  4578.  
  4579.         Ellipse x,y,radius1,radius2
  4580.  
  4581. GR LOCATE
  4582. {[RAMOSPro_Examples:Examples/H-0/Help_6.AMOS,0,4]Gr Locate}
  4583.  
  4584. Positions  the  GRaphics  cursor at your new coordinates before you start a
  4585. drawing operation.
  4586.  
  4587.         Gr Locate x,y
  4588. GR WRITING
  4589. {[RAMOSPro_Examples:Examples/H-0/Help_9.AMOS,0,4]Gr Writing}
  4590.  
  4591. Gives a choice of several alternative GRaphics WRITING modes.
  4592.  
  4593.         Gr Writing bitpattern
  4594.  
  4595. Bit 0
  4596.  
  4597. =0, only the graphics set to the current ink colour will be drawn.
  4598. =1, new images will completely replace existing images.
  4599.     This is the normal setting. 
  4600.  
  4601. Bit 1
  4602.  
  4603. =1, new images will be combined with existing images. 
  4604.  
  4605. Bit 2
  4606.  
  4607. =1, all new images will be drawn in "inverse video", which means that 
  4608.     the current ink colour will appear as the current paper colour and 
  4609.     vice versa.
  4610. HSLIDER
  4611. {[RAMOSPro_Examples:Examples/H-3/Help_33.AMOS,0,4]Hslider}
  4612.  
  4613. Draws  a  horizontal  slider  bar  on the screen.  With a little work, it's
  4614. possible  to  animate  this  to  generate  attractive  scroll bars for your
  4615. program.
  4616.  
  4617.         Hslider tx,ty To bx,by,total,pos,size
  4618.  
  4619. total sets  the number of units the bar is divided into.
  4620.  
  4621. pos specifies the postion of the slider box relative to the start of 
  4622.     the bar, in the units your entered in total.
  4623.  
  4624. size fixes the size of the slider box.
  4625. INK
  4626. {[RAMOSPro_Examples:Examples/H-0/Help_5.AMOS,0,4]Ink}
  4627.  
  4628. Defines  the colour to be used by all future drawing operations. 
  4629.  
  4630.         Ink colournumber
  4631.  
  4632. There are two optional parameters that you can tack on, a background colour
  4633. and a border colour.
  4634.           
  4635.         Ink colournumber,backgroundnumber
  4636.  
  4637.         Ink colournumber,backgroundnumber,bordernumber
  4638. PAINT
  4639. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Paint}
  4640.  
  4641. Fills  an  area  starting at coordinates x,y with your chosen INK colour or
  4642. pattern.
  4643.  
  4644.         Paint x,y
  4645.  
  4646.         Paint x,y,mode
  4647.  
  4648.  
  4649. mode = 0 painting stops wherever the current border colour is found.
  4650.      = 1 stops at the first pixel different from the current INK.
  4651. PLOT
  4652. {[RAMOSPro_Examples:Examples/H-0/Help_6.AMOS,0,4]Plot}
  4653.  
  4654. Draws  a point in the current ink colour at your choice of coordinates.  If
  4655. you  want,  a  new colour can be specified, which will be used for this and
  4656. all further drawing operations.
  4657.  
  4658.         Plot x,y,colour
  4659. POINT
  4660. {[RAMOSPro_Examples:Examples/H-0/Help_6.AMOS,0,4]=Point}
  4661.  
  4662. Returns  the  colour index of a single screen POINT.  You'll get a NEGATIVE
  4663. value if the point lies outside the current screen area.
  4664.  
  4665.         Print Point(x,y)
  4666. POLYGON
  4667. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Polygon}
  4668.  
  4669. Draws  a  filled POLYGON, or many sided shape using the current ink colour.
  4670. The shape of the polygon is set up with a list of screen coordinates.
  4671.  
  4672.         Polygon x1,y1 To x2,y2 To x3,y3 To ...
  4673. POLYGON TO
  4674. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Polygon To}
  4675.  
  4676. Draws a filled polygon starting from the current graphics cursor position.
  4677.  
  4678.          Plot x1,y1
  4679.          Polygon To x2,y2 To x3,y3 To ...
  4680. POLYLINE
  4681. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Polyline}
  4682.  
  4683. Draws  a  hollow  polygon  using  the current ink colour.  The shape of the
  4684. polygon is set up with a list of screen coordinates.
  4685.  
  4686.         Polyline x1,y1 To x2,y2 To x3,y3 To ...
  4687. POLYLINE TO
  4688. {[RAMOSPro_Examples:Examples/H-0/Help_7.AMOS,0,4]Polyline To}
  4689.  
  4690. Draws a hollow polygon starting from the current graphics cursor position.
  4691.  
  4692.          Plot x1,y1
  4693.          Polyline To x2,y2 To x3,y3 To ...
  4694. SET LINE
  4695. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Set Line}
  4696.  
  4697. SETs  the  appearance of all straight LINEs to be drawn using DRAW and BOX.
  4698. A mask must be set after SET LINE in the form of a 16-bit binary number.
  4699.  
  4700.         Set Line %1111000011110000 : Rem Dotted line
  4701.         Set Line %1111111111111111 : Rem Normal line
  4702. SET PAINT
  4703. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Set Paint}
  4704.  
  4705. SETs the outline mode for shapes drawn using BAR and POLYGON.  A mode value
  4706. of  1  creates  a  border  line of the last INK colour, and a value of zero
  4707. turns the outline off again.
  4708.  
  4709.         Set Paint modenumber
  4710. SET PATTERN
  4711. {[RAMOSPro_Examples:Examples/H-0/Help_8.AMOS,0,4]Set Pattern}
  4712.  
  4713. SETs  the  PATTERN  to  be  used  for  filling shapes by choosing a pattern
  4714. number.   A  value  of  zero  is the normal setting, which completely fills
  4715. shapes  with the current INK colour.  If the pattern number is greater than
  4716. zero,  one  of  the  built-in patterns is used.  If it is less than zero, a
  4717. clipped version of one of your Bobs will be adapted as your fill pattern.
  4718.  
  4719.         Set Pattern number
  4720. SET SLIDER
  4721. {[RAMOSPro_Examples:Examples/H-3/Help_33.AMOS,0,4]Set Slider}
  4722.  
  4723. Sets the style of a slider bar created with VSLIDER or HSLIDER.
  4724.  
  4725.         Set Slider bink,bpaper,bout, bpatt,sink, spaper,sout,spatt
  4726.  
  4727. bink,bpaper,bout  enter  the  colours for the ink,paper, and outline of the
  4728. slider.
  4729.  
  4730. bpattern specifies the fill pattern to be used.
  4731.  
  4732. sink,spaper,sout,spatt define the appearance of the slider box inside.
  4733. SET TEMPRAS
  4734. {[RAMOSPro_Examples:Examples/H-0/Help_9.AMOS,0,4]Set Tempras}
  4735.  
  4736. Sets the location and size of the temporary memory area used by your graphics
  4737. operations.
  4738.  
  4739.         Set Tempras address,size
  4740. VSLIDER
  4741. {[RAMOSPro_Examples:Examples/H-3/Help_33.AMOS,0,4]Vslider}
  4742.  
  4743. Draws a vertical slider bar on the screen.
  4744.  
  4745.         Vslider tx,ty To bx,by,total,pos,size
  4746.  
  4747. total sets the number of units the bar is divided into.
  4748.  
  4749. pos  specifies  the position of the slider box relative to the start of the
  4750. bar, in the units you've entered in total.
  4751.  
  4752. size fixes the size of the slider box.
  4753.  
  4754. Menus
  4755.   {[IBANK TO MENU     ,4,3] Bank To Menu     } {[IMENU DEL         ,4,3] Menu Del         } {[IMENU MOUSE ON    ,4,3] Menu Mouse On    } {[IMENU TO BANK     ,4,3] Menu To Bank     }
  4756.   {[ICHOICE          ,4,3] =Choice          } {[IMENU INACTIVE    ,4,3] Menu Inactive    } {[IMENU MOVABLE     ,4,3] Menu Movable     } {[ION MENU          ,4,3] On Menu          }
  4757.   {[IMENU$           ,4,3] =Menu$=          } {[IMENU ITEM MOVABLE,4,3] Menu Item Movable} {[IMENU OFF         ,4,3] Menu Off         } {[ION MENU DEL      ,4,3] On Menu Del      }
  4758.   {[IMENU ACTIVE      ,4,3] Menu Active      } {[IMENU ITEM STATIC ,4,3] Menu Item Static } {[IMENU ON          ,4,3] Menu On          } {[ION MENU OFF      ,4,3] On Menu Off      }
  4759.   {[IMENU BAR         ,4,3] Menu Bar         } {[IMENU KEY         ,4,3] Menu Key         } {[IMENU ONCE        ,4,3] Menu Once        } {[ION MENU ON       ,4,3] On Menu On       }
  4760.   {[IMENU BASE        ,4,3] Menu Base        } {[IMENU LINE        ,4,3] Menu Line        } {[IMENU SEPARATE    ,4,3] Menu Separate    } {[ISET MENU         ,4,3] Set Menu         }
  4761.   {[IMENU CALC        ,4,3] Menu Calc        } {[IMENU LINK        ,4,3] Menu Link        } {[IMENU STATIC      ,4,3] Menu Static      } {[IX MENU          ,4,3] =X Menu          }
  4762.   {[IMENU CALLED      ,4,3] Menu Called      } {[IMENU MOUSE OFF   ,4,3] Menu Mouse Off   } {[IMENU TLINE       ,4,3] Menu Tline       } {[IY MENU          ,4,3] =Y Menu          }
  4763.  
  4764.  
  4765.                            {[IHelpEmbeddedmenu,4,3] Embedded Menu Commands }
  4766. BANK TO MENU
  4767. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_8.AMOS,0,4]Bank To Menu}
  4768.  
  4769. Restores a menu definition you've previously set up in the menu bank.
  4770.  
  4771.         Bank To Menu bank number
  4772.  
  4773. You can activate your menu using the MENU ON instruction.
  4774. CHOICE
  4775. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_1.AMOS,0,4]=Choice}
  4776.  
  4777. If  you use CHOICE on it's own, it returns a value of True (-1) if the user
  4778. has selected a menu item, or false if the menu hasn't been accessed.
  4779.  
  4780.          test=Choice
  4781.  
  4782. There's  also  a  second  version  which allows you to read the actual item
  4783. which has been chosen.
  4784.  
  4785.          test=Choice(level)
  4786.  
  4787. test  holds  the number of the item which has been highlighted by the user.
  4788. level is the "dimension" of the menu to be tested.
  4789.  
  4790. Level 1 = the title line
  4791.  
  4792. Levels 2 through 8 read a submenu at the appropriate level.
  4793. MENU ACTIVE
  4794. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Active}
  4795.  
  4796. Re-activates  a  set of menu items which have been greyed out with the MENU
  4797. INACTIVE instruction.
  4798.  
  4799.         Menu Active level
  4800.  
  4801. Activates an entire level.
  4802.  
  4803.         Menu Active(a,b,c)
  4804.  
  4805. Activates  a single item.  The position of the item in the menu tree is set
  4806. with  a list of index numbers such as 1,2,3.  Depending on the type of your
  4807. menu, you can include as many as eight parameters.
  4808.  
  4809.         Menu Active(1,2)
  4810.         Menu Active(1,2,3,4,5)
  4811. MENU BAR
  4812. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Bar}
  4813.  
  4814. Displays  your menu as a vertical BAR, with each item in your list directly
  4815. below the previous one.
  4816.  
  4817.         Menu Bar level
  4818.  
  4819. Sets an entire level.
  4820.  
  4821.         Menu Bar(a,b,...)
  4822.  
  4823. Sets an individual menu item.
  4824. MENU BASE
  4825. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_7.AMOS,0,4]Menu Base}
  4826.  
  4827. Moves your menu to a new position on the screen.
  4828.  
  4829.         Menu Base x,y
  4830.  
  4831. MENU CALC
  4832. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_8.AMOS,0,4]Menu Calc}
  4833.  
  4834. Calculates  the  new  state  of your menu after it's been changed.  This is
  4835. normally  automatic,  but you can take control using MENU OFF to perform it
  4836. directly at the most convenient point in your program.
  4837.  
  4838.         Menu Calc
  4839.  
  4840. After the calculation has been performed you can now safely restart the menu
  4841. with MENU ON.
  4842. MENU CALLED
  4843. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_7.AMOS,0,4]Menu Called}
  4844.  
  4845. Redraws  your  menu  fifty  times  a  second whenever it's displayed on the
  4846. screen.   It's  used  in  conjunction  with  the  embedded menu commands to
  4847. generate terrific animated menu items.
  4848.  
  4849.         Menu Called(a,b...)
  4850. MENU DEL
  4851. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_4.AMOS,0,4]Menu Del}
  4852.  
  4853. Erases the selected menu items from the Amiga's memory.
  4854.  
  4855.         Menu Del
  4856.  
  4857. Deletes the Entire menu.
  4858.  
  4859.         Menu Del(a,b..)
  4860.  
  4861. Erases a single menu item.
  4862. MENU INACTIVE
  4863. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Inactive}
  4864.  
  4865. "greys  out"  a  series of options from the menu.  These items can still be
  4866. selected, but they won't return a value to your AMOS program.
  4867.  
  4868.         Menu Inactive level
  4869.  
  4870. Disables an entire level of your menu.
  4871.  
  4872.        Menu Inactive(a,b,..)
  4873.  
  4874. Turns off a single menu item.
  4875. MENU ITEM MOVABLE
  4876. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Item Movable}
  4877.  
  4878. Re-positions  individual  menu  items  anywhere  on the display.  It's used
  4879. after a MENU MOVABLE command to add extra flexibility to your menus.
  4880.  
  4881.       Menu Item Movable level
  4882.  
  4883. Makes all items at the current level movable
  4884.  
  4885.       Menu Item Movable(a,b,..)
  4886.  
  4887. Makes a single item movable.
  4888. MENU ITEM STATIC
  4889. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Item Static}
  4890.  
  4891. Locks  a menu item firmly into position, so that it can't be dragged by the
  4892. user.  These static menus are just like the standard AMOS Editor menu.
  4893.  
  4894.       Menu Item Static level
  4895.  
  4896. Fixes all items at the current level
  4897.  
  4898.       Menu Item Static(a,b,..)
  4899.      
  4900. Locks a single item into place. 
  4901. MENU KEY
  4902. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_4.AMOS,0,4]Menu Key}
  4903.  
  4904. Assigns  a  key-press  to any individual menu item.  This is interpreted by
  4905. the  Menu  system  exactly as if the user had selected the option directly
  4906. from the menu.
  4907.  
  4908.  
  4909.         Menu Key(a,b,..) To c$
  4910.  
  4911. Assign a single key-press in c$ to the item at a,b,..
  4912.  
  4913.         Menu Key(a,b,..) To scancode
  4914.  
  4915.         Menu Key(a,b,..) To scancode,shift
  4916.  
  4917. See KEY SHIFT for a list of the various shift options.
  4918. MENU LINE
  4919. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Line}
  4920.  
  4921. Displays  your  menu items in the form of a horizontal line stretching from
  4922. the  top left hand corner of the first menu item to the bottom right of the
  4923. last one.
  4924.  
  4925.        Menu Line level
  4926.  
  4927. Displays the current level as a line
  4928.  
  4929.        Menu Line(a,b,..)
  4930.  
  4931. Displays individual elements of a sub-menu as a line.
  4932. MENU LINK
  4933. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Link}
  4934.  
  4935. Links one or more menu items together, so that they are moved or display as
  4936. a group.
  4937.  
  4938.        Menu Link level
  4939.        Menu Link(a,b,..)
  4940. MENU MOUSE OFF
  4941. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Mouse Off}
  4942.  
  4943. Deactivates the automatic menu movements generated by MENU MOUSE ON.
  4944.  
  4945.       Menu Mouse Off
  4946. MENU MOUSE ON
  4947. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Mouse On}
  4948.  
  4949. From  now  on, the menu will be positioned directly under the mouse pointer
  4950. whenever  it's  displayed on the screen.  This mode can be deactivated with
  4951. MENU MOUSE OFF.
  4952.  
  4953.         Menu Mouse On
  4954. MENU MOVABLE
  4955. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Movable}
  4956.  
  4957. Allows  you to move selected menus directly with the mouse.  If you wish to
  4958. manipulate  the individual menu items directly, you'll need to use the MENU
  4959. ITEM MOVABLE command as well.
  4960.  
  4961.         Menu Movable Level
  4962.  
  4963. Makes an entire level movable
  4964.  
  4965.         Menu Movable(a,b,..)
  4966.  
  4967. Makes a single sub-menu movable
  4968. MENU OFF
  4969. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_1.AMOS,0,4]Menu Off}
  4970.  
  4971. Temporarily freezes the action of your entire menu.  Any attempt to display
  4972. it on the screen will be ignored.
  4973.  
  4974.         Menu Off
  4975.  
  4976. The menu can be restarted with a call to MENU ON.
  4977. MENU ON
  4978. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_1.AMOS,0,4]Menu On}
  4979.  
  4980. Activates  a  menu which has been previously defined in your program.  This
  4981. menu  will  be  displayed  on the screen when the user holds down the RIGHT
  4982. mouse button.
  4983.  
  4984.         Menu On
  4985.  
  4986. Starts up a menu created with MENU$
  4987.  
  4988.         Menu On bank
  4989.  
  4990. Activates a menu held in a menu bank.
  4991. MENU ONCE
  4992. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_7.AMOS,0,4]Menu Once}
  4993.  
  4994. Deactivates  the  automatic  redrawing  process  started using MENU CALLED.
  4995. From  now on, the menu item will only be display ONCE when it's called onto
  4996. the screen.
  4997.  
  4998.         Menu Once(a,b,..)
  4999. MENU SEPARATE
  5000. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Separate}
  5001.  
  5002. Tells  AMOS  to  separate all the menu items at the current level.  So each
  5003. item is treated independently of any of it's neighbours.
  5004.  
  5005.         Menu Separate Level
  5006.         Menu Separate(a,b,..)
  5007. MENU STATIC
  5008. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Static}
  5009.  
  5010. Fixes the current menu firmly into it's present position.
  5011.  
  5012.         Menu Static level
  5013.  
  5014. Makes all the menus at the selected level completely immovable.
  5015.  
  5016.         Menu Static(a,b,..)
  5017.  
  5018. Affects a single sub-menu.
  5019. MENU TLINE
  5020. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_6.AMOS,0,4]Menu Tline}
  5021.  
  5022. Displays a section of the menu on a horizontal bar stretching from the left
  5023. of the screen to the far right.  It's just like a normal title line.
  5024.  
  5025.         Menu Tline level
  5026.  
  5027. Displays the entire level as a TLINE
  5028.  
  5029.         Menu Tline(a,b,..)
  5030.  
  5031. Sets a single sub-menu.
  5032. MENU TO BANK
  5033. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_8.AMOS,0,4]Menu To Bank}
  5034.  
  5035. Saves  all the current menu definitions into the selected AMOS memory bank.
  5036. This  bank  can  be subsequently saved on the disc, and reloaded to provide
  5037. you  with instant access to your menu.  It can be started up using the MENU
  5038. ON command.
  5039.  
  5040.         Menu To Bank banknumber
  5041.  
  5042. These banks can also be created using the Menu_Bank_Editor.AMOS utility
  5043. on the AMOSPro Productivity disc 1.
  5044. MENU$
  5045. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_1.AMOS,0,4]=Menu$}
  5046.  
  5047. MENU$  is  a  special  pseudo-variable which allows you to create your AMOS
  5048. Menus directly inside one of your programs.
  5049.  
  5050.         Menu$(,,)=normal$
  5051.         Menu$(,,)=normal,selected$
  5052.         Menu$(,,)=normal,selected$,inactive$
  5053.         Menu$(,,)=normal,selected$,inactive$,background$
  5054.  
  5055. normal$ holds the description of the normal menu item.
  5056.  
  5057. selected$ sets appearance of an item when it's highlighted by the user.
  5058.  
  5059. inactive$ enters the description of an inactive item.
  5060.  
  5061. background$ defines the background area of your items.
  5062.  
  5063. These strings can contain either plain text or embedded Menu commands.
  5064.  
  5065.  
  5066. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_2.AMOS,0,4] Menu Hierarchy}
  5067. ON MENU
  5068. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_3.AMOS,0,4]On Menu}
  5069.  
  5070. Automatically  jumps to an appropriate Procedure, or Label depending on the
  5071. menu  title selected by the user.  This routine can then check out the item
  5072. number using the CHOICE function.
  5073.  
  5074. There are three separate forms of this command.
  5075.  
  5076.         On Menu Proc proc1,proc2..
  5077.  
  5078.         On Menu Gosub label1,label2...
  5079.  
  5080.         On Menu Goto label1,label2...
  5081.  
  5082. This  feature  needs  to be activated using the ON MENU ON command prior to
  5083. use.   Also  note  that  before  returning to AMOS Basic, your procedure or
  5084. routine  MUST  perform an  ON MENU ON  to  restart  the  testing process.
  5085. Otherwise the menus will be deactivated after the first menu call.
  5086.  
  5087. ON MENU DEL
  5088. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_3.AMOS,0,4]On Menu Del}
  5089.  
  5090. Deletes the internal labels used by ON MENU and allows you to redirect your
  5091. menus  to  another  part  of  your program.  Before using this command, you
  5092. should  turn  off  the Menu selection with ON MENU OFF.  You can then use a
  5093. further ON MENU command to set up your new menu actions.
  5094.  
  5095.         On Menu Del
  5096. ON MENU OFF
  5097. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_3.AMOS,0,4]On Menu Off}
  5098.  
  5099. Temporarily  halts  the  automatic  menu selection generated by the ON MENU
  5100. commands.  Your menus can be restarted again with a call to ON MENU ON.
  5101.  
  5102.         On Menu Off
  5103. ON MENU ON
  5104. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_3.AMOS,0,4]On Menu On}
  5105.  
  5106. Activates  the  automatic  menu  system created by the ON MENU instruction.
  5107. This  function  should  always  be  used  just  before  leaving  your  menu
  5108. procedures  or  sub-routines.  Otherwise the menus will be turned off after
  5109. the initial call.
  5110.  
  5111.         On Menu On
  5112. SET MENU
  5113. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_7.AMOS,0,4]Set Menu}
  5114.  
  5115. SET MENU sets the position of any movable menu item on the screen.
  5116.  
  5117.         Set Menu(a,b,..) To x,y
  5118.  
  5119. All coordinates are measured relative to the previous menu level.
  5120. X MENU
  5121. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_7.AMOS,0,4]=X Menu}
  5122.  
  5123. Returns the X coordinate of a menu item relative to the previous menu level.
  5124.  
  5125.         xc=X Menu(a,b,,)
  5126. Y MENU
  5127. {[RAMOSPro_Tutorial:Tutorials/Menus/Menus_7.AMOS,0,4]=Y Menu}
  5128.  
  5129. Returns the Y coordinate of a menu item relative to the previous menu level.
  5130.  
  5131.         yc=Y Menu(a,b,,)
  5132.  
  5133.  
  5134.  
  5135. Updating Objects
  5136.  
  5137.                            {[IAUTOBACK        ,4,3] Autoback               }
  5138.                            {[IBOB CLEAR       ,4,3] Bob Clear              }
  5139.                            {[IBOB DRAW        ,4,3] Bob Draw               }
  5140.                            {[IBOB UPDATE      ,4,3] Bob Update             }
  5141.                            {[IBOB UPDATE OFF  ,4,3] Bob Update Off         }
  5142.                            {[IBOB UPDATE ON   ,4,3] Bob Update On          }
  5143.                            {[IFREEZE          ,4,3] Freeze                 }
  5144.                            {[IUPDATE          ,4,3] Update                 }
  5145.                            {[IUPDATE OFF      ,4,3] Update Off             }
  5146.                            {[IUPDATE ON       ,4,3] Update On              }
  5147.                            {[IUNFREEZE        ,4,3] Unfreeze               }
  5148. AUTOBACK
  5149. {[RAMOSPro_Tutorial:Tutorials/Autoback_&_Update.AMOS,0,4]Autoback}
  5150.  
  5151. Sets the automatic screen copying mode used by double buffered screens.
  5152.  
  5153. Mode number 0 sends all graphics to the logical screen.
  5154.  
  5155. Mode  1  performs each graphical operation to both the physical and logical
  5156. screens.
  5157.  
  5158. Mode 2 (default) combines all drawing operations with the Bob updates.
  5159.  
  5160.         Autoback modenumber
  5161.  
  5162. BOB CLEAR
  5163. {[RAMOSPro_Tutorial:Tutorials/Autoback_&_Update.AMOS,0,4]Bob Clear}
  5164.  
  5165. Removes  all  active  bobs  from  the  screen,  and  redraws the background
  5166. graphics on the display.  It is used with BOB DRAW.
  5167.  
  5168.         Bob Clear
  5169. BOB DRAW
  5170. {[RAMOSPro_Tutorial:Tutorials/Autoback_&_Update.AMOS,0,4]Bob Draw}
  5171.  
  5172. Called  after  a  BOB CLEAR command, which removes all active Bobs from the
  5173. logical  screen.   BOB  DRAW  then lists all Bobs that have moved since the
  5174. previous  update,  saves  the background beneath the new screen coordinates
  5175. and  then  redraws  all  active  Bobs at their new positions on the logical
  5176. screen.
  5177.  
  5178.         Bob Draw
  5179. BOB UPDATE
  5180. {[RAMOSPro_Tutorial:Tutorials/Autoback_&_Update.AMOS,0,4]Bob Update}
  5181.  
  5182. Redraws  all the Bobs at their new positions, in one smooth operation.  The
  5183. affect will only be seen after the next vertical blank.
  5184.  
  5185.         Bob Update : Wait Vbl
  5186. BOB UPDATE OFF
  5187. {[RAMOSPro_Tutorial:Tutorials/Autoback_&_Update.AMOS,0,4]Bob Update Off}
  5188.  
  5189. Turns  off any automatic screen operations and allows Bobs to be redrawn at
  5190. the required timing using BOB UPDATE.(See SCREEN SWAP and WAIT VBL)
  5191.  
  5192.          Bob Update Off
  5193. BOB UPDATE ON
  5194. {[RAMOSPro_Tutorial:Tutorials/Autoback_&_Update.AMOS,0,4]Bob Update On}
  5195.  
  5196. Activates the automatic bob operations.
  5197.  
  5198.         Bob Update On
  5199.  
  5200.  
  5201. UPDATE
  5202. {[RAMOSPro_Examples:Examples/H-2/Help_26.AMOS,0,4]Update}
  5203.  
  5204. Redraws  all  the objects on the screen in a single go.  It's really just a
  5205. combination  of  BOB  UPDATE  and  SPRITE  UPDATE commands.  Add a WAIT VBL
  5206. command to ensure a smooth effect.
  5207.  
  5208.         Update
  5209. UPDATE OFF
  5210. {[RAMOSPro_Examples:Examples/H-2/Help_26.AMOS,0,4]Update Off}
  5211.  
  5212. Turns  off  the  automatic  redrawing  system.   Any Bob commands or Sprite
  5213. operations will now appear to be totally ignored!  But never fear.  They're
  5214. still going on in the background.
  5215.  
  5216.         Update Off
  5217.  
  5218. UPDATE ON
  5219. {[RAMOSPro_Examples:Examples/H-2/Help_26.AMOS,0,4]Update}
  5220.  
  5221. Returns the object movement system back to it's original, automatic mode.
  5222.  
  5223.         Update On
  5224.  
  5225.  
  5226. IFF animation
  5227.  
  5228.                           {[IFRAME LENGTH,4,3] =Frame Length             }
  5229.                           {[IFRAME LOAD  ,4,3] =Frame Load               }
  5230.                           {[IFRAME PARAM ,4,3] =Frame Param              }
  5231.                           {[IFRAME PLAY  ,4,3] =Frame Play               }
  5232.                           {[IFRAME SKIP  ,4,3] =Frame Skip               }
  5233.                           {[IIFF ANIM    ,4,3] =Iff Anim                 }
  5234.                           {[IMASK IFF     ,4,3] Mask Iff                  }
  5235.                           {[IPICTURE     ,4,3] =Picture                  }
  5236.  
  5237. FRAME LENGTH
  5238. {[RAMOSPro_Tutorial:Tutorials/Iff_Animation.AMOS,0,4]=Frame Length}
  5239.  
  5240. Calculates  the  amount of memory which will be needed to hold the selected
  5241. frames of an IFF animation file.
  5242.  
  5243.           size=Frame Length(file)
  5244.  
  5245. file  is  the  channel number of an IFF file which you've previously opened
  5246. with the OPEN IN command.
  5247.  
  5248.           size=Frame Length(file,n)
  5249.  
  5250. n  specifies the number of frames which should be taken into consideration.
  5251. If it's omitted, AMOS will only check out the first frame in the animation.
  5252. And  if the number's too large, AMOS will return the memory required for all
  5253. the frames in the current file.
  5254.  
  5255. FRAME LOAD
  5256. {[RAMOSPro_Tutorial:Tutorials/Iff_Animation.AMOS,0,4]Frame Load}
  5257.  
  5258. Loads one or more IFF frames straight into the Amiga's memory.
  5259.  
  5260. frames=Frame Load(file TO bank/address,n)
  5261.  
  5262. file  is  the channel number of a currently open animation file.  This MUST
  5263. have previously been opened using the OPEN IN command.
  5264.  
  5265. bank / address is either a bank number (1-65535) or a memory address. 
  5266.  
  5267. n  chooses  the number of animation frames which are to be loaded.  If your
  5268. request  is  greater  than  the total number of available frames, AMOS will
  5269. automatically load all the images in the current file.
  5270.  
  5271. FRAME PARAM
  5272. {[RAMOSPro_Tutorial:Tutorials/Iff_Animation.AMOS,0,4]=Frame Param}
  5273.  
  5274. Returns the amount of time which will be needed to successfully display the
  5275. animation  on the screen, measured in 1/50ths of a second.  It's used after
  5276. a  FORM  PLAY  or  FORM SKIP to delay the program until the screen has been
  5277. totally redrawn.
  5278.  
  5279.         param=Frame Param
  5280.  
  5281.         Wait Frame Param+1
  5282. FRAME PLAY
  5283. {[RAMOSPro_Tutorial:Tutorials/Iff_Animation.AMOS,0,4]Frame Play}
  5284.  
  5285. Plays selected frames of a previously loaded IFF animation on the screen.
  5286.  
  5287.         next=Frame Play(bank/address,n[,screen])
  5288.  
  5289. bank/address  is  a  memory  address  (or  bank  number) containing an IFF
  5290. animation  sequence  which  has  been previously loaded with the FRAME LOAD
  5291. instruction.
  5292.  
  5293. n is the number of frames you wish to play.
  5294.  
  5295.          next=Frame Play(bank/address,n,screen])
  5296.  
  5297. screen enters a new screen to be created for your animation.
  5298. FRAME SKIP
  5299. {[RAMOSPro_Tutorial:Tutorials/Iff_Animation.AMOS,0,4]Frame Skip}
  5300.  
  5301. Skips  past the selected frames, and returns the address of the next one in
  5302. the animation sequence.
  5303.  
  5304.        next=Frame Skip(bank/address)
  5305.  
  5306. bank/address  is  number  of a bank or the address of a valid IFF animation
  5307. frame.
  5308.  
  5309.        next=Frame Skip(bank/address,n)
  5310.  
  5311. n holds the number of frames to be skipped. It defaults to one.
  5312.  
  5313. next returns the address of the following animation frame.
  5314. IFF ANIM
  5315. {[RAMOSPro_Tutorial:Tutorials/Iff_Animation.AMOS,0,4]=Iff Anim}
  5316.  
  5317. Loads an IFF animation sequence from the disc and plays it on the screen.
  5318.  
  5319.         Iff Anim "filename" To screen
  5320.  
  5321. "filename" is the name of the animation file you wish to display. 
  5322.  
  5323. screen  chooses a new AMOS screen which will be created especially for your
  5324. animation  sequence.   If  the  requested  screen  already  exists, it will
  5325. automatically be replaced by your new definition.
  5326.  
  5327.         Iff Anim "filename" To screen,times
  5328.  
  5329. times  sets  the  number  of  times you wish to repeat the animation on the
  5330. screen.  If it's omitted, the animation will be displayed exactly once.
  5331.  
  5332. MASK IFF
  5333. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]Mask Iff}
  5334.  
  5335. Masks  your  IFF  picture data, setting the parts of the file which will be
  5336. loaded  from  your animation.  It's normally used with the LOAD IFF command
  5337. like so:
  5338.  
  5339.         Mask Iff bitmap
  5340.         Load Iff "animation"
  5341. PICTURE
  5342. {[RAMOSPro_Examples:Examples/H-3/Help_35.AMOS,0,4]=Picture}
  5343.  
  5344. Returns the mask defined by the current IFF image.
  5345.  
  5346.         bitmask=Picture : Rem Read the mask details
  5347.         Mask Iff Picture : Rem Use it for the the present animation
  5348.  
  5349. Using the AMOS Animation Language (AMAL)
  5350.                 {[IAMAL         ,4,3] Amal                 } {[ICHANAN      ,4,3] =Chanan              }
  5351.                 {[IAMAL FREEZE  ,4,3] Amal Freeze          } {[ICHANMV      ,4,3] =Chanmv              }
  5352.                 {[IAMAL OFF     ,4,3] Amal Off             } {[IMOVE FREEZE  ,4,3] Move Freeze          }
  5353.                 {[IAMAL ON      ,4,3] Amal On              } {[IMOVE OFF     ,4,3] Move Off             }
  5354.                 {[IAMALERR      ,4,3] Amalerr              } {[IMOVE ON      ,4,3] Move On              }
  5355.                 {[IAMPLAY       ,4,3] Amplay               } {[IMOVON       ,4,3] =Movon               }
  5356.                 {[IAMREG        ,4,3] Amreg                } {[IMOVE X       ,4,3] Move X               }
  5357.                 {[IANIM         ,4,3] Anim                 } {[IMOVE Y       ,4,3] Move Y               }
  5358.                 {[IANIM FREEZE  ,4,3] Anim Freeze          } {[ISYNCHRO      ,4,3] Synchro              }
  5359.                 {[IANIM OFF     ,4,3] Anim Off             } {[ISYNCHRO OFF  ,4,3] Synchro Off          }
  5360.                 {[IANIM ON      ,4,3] Anim On              } {[ISYNCHRO ON   ,4,3] Synchro On           }
  5361.                 {[ICHANNEL      ,4,3] Channel              } {[IUPDATE EVERY ,4,3] Update Every         }
  5362.  
  5363.                             {[IHelpAmalins,4,3] Amal Instructions }
  5364. AMAL
  5365. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_1.AMOS,0,4]Amal}
  5366.  
  5367. Assigns  a  list  of  instructions  to  an  AMAL  animation channel.  These
  5368. channels  can  be  independantly  assigned to either a Sprite, a Bob, or an
  5369. entire screen using the CHANNEL command.
  5370.  
  5371.         Amal channel number,"instruction string"
  5372.  
  5373. Takes your instructions from a string.
  5374.  
  5375.         Amal channel number,program
  5376.  
  5377. Reads an AMAL program from a special AMAL memory bank.
  5378.  
  5379.         Amal channel number,address
  5380.  
  5381. Loads the animation commands from the chosen address.
  5382.  
  5383.         Amal channel number,"instruction string" To address
  5384.  
  5385. Sends the output of your animation string to your chosen address.
  5386. AMALERR
  5387. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]=Amalerr}
  5388.  
  5389. Returns the position of an error in one of your animation strings.
  5390.  
  5391.         Print Amalerr
  5392. AMAL FREEZE 
  5393. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]Amal Freeze}
  5394.  
  5395. Suspends your AMAL programs and stops them running on the screen.  They can
  5396. be restarted again using the AMAL ON command.
  5397.  
  5398.         Amal Freeze
  5399.  
  5400. Freezes ALL current AMAL programs.
  5401.  
  5402.         Amal Freeze channel number
  5403.  
  5404. Halts just a single animation channel.
  5405. AMAL OFF
  5406. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]Amal Off}
  5407.  
  5408. Stops  one or more AMAL programs PERMANENTLY.  You'll have to redefine them
  5409. from scratch with AMAL to get them running again.
  5410.  
  5411.         Amal Off
  5412. AMAL ON
  5413. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_1.AMOS,0,4]Amal On}
  5414.  
  5415. Starts an AMAL program you've set up previously with the AMAL directive.
  5416.  
  5417.         Amal On
  5418.  
  5419. Activates ALL AMAL programs simultaneously.
  5420.  
  5421.         Amal On channel number
  5422.  
  5423. Fires up a single animation sequence.
  5424.  
  5425. AMPLAY
  5426. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Amplay}
  5427.  
  5428. Controls  a  movement pattern generated by the AMAL PLay instruction.  This
  5429. pattern  should  have been previously created from the AMAL EDITOR utility,
  5430. and should be ready and waiting in memory
  5431.  
  5432.         Amplay speed,direction
  5433.  
  5434. speed sets the playback speed in movements per second. Default=1.
  5435.  
  5436. direction >0 for the original setting
  5437.           =0 to reverse the movement
  5438.           -1 to stop the animation at the next movement
  5439.  
  5440.         Amplay speed,direction,first channel To last channel
  5441.  
  5442. Changes the settings in a range of animation sequences simultaneously.
  5443. AMREG
  5444. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_3.AMOS,0,4]=Amreg}
  5445.  
  5446. Reads or writes to an AMAL register variable.
  5447.  
  5448.         value=Amreg(global register)
  5449.         Amreg(global register)=value
  5450.  
  5451. Accesses  a global register from RA to RZ.  The register number is entered
  5452. using a simple code.  RA is checked using a 0, RB=1 and so on until RZ=25.
  5453.  
  5454. You  can  also  use  an  extended form of this function to get at the local
  5455. variables.
  5456.  
  5457.         value=Amreg(channel number,local variable)
  5458.         Amreg(channel number,local variable)=value
  5459.  
  5460. local variable is the number of your variable from 0 (R0) to 9 (R9)
  5461. ANIM
  5462. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Anim}
  5463.  
  5464. Generates a STOS compatible animation sequence.
  5465.  
  5466.         Anim channel number,"(image,delay)..(image,delay)"
  5467.  
  5468. image = the number of an image from the object bank.
  5469.  
  5470. delay = the period it should be displayed in units of a 50th of a sec.
  5471.  
  5472. The animation will only take effect when it's activated using ANIM ON.
  5473. ANIM FREEZE
  5474. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Anim Freeze}
  5475.  
  5476. Suspends  one  or  more  ANIM sequences.  They can be restarted again using
  5477. ANIM ON.
  5478.  
  5479.         Anim Freeze
  5480.  
  5481. Halts ALL STOS compatible animations.
  5482.  
  5483.         Anim Freeze channel number
  5484.  
  5485. Freezes a single animation sequence.
  5486. ANIM OFF
  5487. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Anim Off}
  5488.  
  5489. Terminates an animation sequence created with the ANIM command.
  5490.  
  5491.         Anim Off
  5492.  
  5493. Kills ALL Anim sequences.
  5494.  
  5495.         Anim Off channel number
  5496.  
  5497. Stops a single sequence.
  5498. ANIM ON
  5499. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Anim On}
  5500.  
  5501. Starts an animation sequence you've defined using the ANIM instruction.
  5502.  
  5503.         Anim On
  5504. CHANAN
  5505. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]=Chanan}
  5506.  
  5507. Checks if an AMAL animation sequence is still running.
  5508.  
  5509.         test=Chanan(channel number)
  5510.  
  5511. Returns True (-1) is the animation is still active, and False (0) if it has
  5512. finished.
  5513. CHANMV
  5514. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]=Chanmv}
  5515.  
  5516. Checks if an object assigned to one of your AMAL channels is currently moving.
  5517.  
  5518.         test=Chanmv(channel number)
  5519.  
  5520. Gives a value of True (-1) it the object is moving, and False if it 
  5521. has stopped.
  5522. CHANNEL
  5523. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]=Channel}
  5524.  
  5525. Assigns  an  animation  channel  to anobject  type.   Allowable object types
  5526. include sprites, bobs, screens or rainbows!
  5527.  
  5528.         Channel channelnumber To Sprite s
  5529.  
  5530. Nominates an AMAL  channel to sprite number s.
  5531.  
  5532.         Channel channelnumber To Bob b
  5533.  
  5534. Appoints an AMAL channel to Bob b
  5535.  
  5536.         Channel channelnumber To Screen Display d
  5537.  
  5538. Moves the position of screen d using an AMAL channel. These screens CAN'T be
  5539. animated using Anim or the A register. They can only be repositioned.
  5540.  
  5541.         Channel channelnumber To Screen Offset h
  5542.  
  5543. Installs  the channel for use with Hardware Scrolling.  Screen h can now be
  5544. scrolled  directly  using  the  X  and  Y registers, or using the AMAL Move
  5545. command.
  5546.  
  5547.         Channel channelnumber to Screen Size z
  5548.  
  5549. Sets up your AMAL channel to change the size of your chosen AMOS screen.
  5550.  
  5551.         Channel channelnumber To Rainbow r
  5552.  
  5553. Scrolls a rainbow created using SET RAINBOW from inside an AMAL program.  X
  5554. holds the number of the first colour in the table to be displayed, Y stores
  5555. the position of the rainbow on the screen, and A contains the height.
  5556.  
  5557. MOVE FREEZE
  5558. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Move Freeze}
  5559.  
  5560. Temporarily  halts a STOS compatible MOVE command in its tracks.  It can be
  5561. restarted again with MOVE ON.
  5562.  
  5563.         Move Freeze
  5564.  
  5565. Freezes ALL movements.
  5566.  
  5567.         Move Freeze channel number
  5568.  
  5569. Stops just a single movement sequence.
  5570. MOVE OFF
  5571. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Move Off}
  5572.  
  5573. Permanently  erases a STOS compatible movement sequence created with MOVE X
  5574. or MOVE Y.
  5575.  
  5576.         Move Off
  5577.  
  5578. Kills ALL movements.
  5579.  
  5580.         Move Off Channel
  5581.  
  5582. Terminates just a single movement.
  5583. MOVE ON
  5584. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]Move On}
  5585.  
  5586. Starts  a  movement  sequence  created using the STOS compatible MOVE X and
  5587. MOVE Y instructions.
  5588.  
  5589.         Move On
  5590.  
  5591. Activates ALL movements.
  5592.  
  5593.         Move On Channel
  5594.  
  5595. Fires off a single channel.
  5596. MOVON
  5597. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]=Movon}
  5598.  
  5599. Checks  if  a  STOS  compatible  movement  sequence  is still active on the
  5600. selected  channel  number.  You'll get a value of True (-1) if the object`s
  5601. still moving, and a zero if it's finished.
  5602.  
  5603.         x=Movon(channel number)
  5604. MOVE X
  5605. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]=Move X}
  5606.  
  5607. Move  an  object horizontally using a STOS compatible command sequence.  As
  5608. with AMAL, the object is chosen with the CHANNEL command.
  5609.  
  5610.         Move X channel number,"(speed,step,count)..."
  5611.  
  5612. speed sets the delay in fiftieths of a second between the operations.
  5613.  
  5614. step enters the distance to be moved in each step.
  5615.  
  5616. count  specifies  the  number  of  steps which should be performed in every
  5617. operation.
  5618.  
  5619. You can also include the L or E directives at the end of your commands.
  5620.  
  5621. L
  5622.  
  5623. Loops the sequence continuously on the screen.
  5624.  
  5625. E x coord
  5626.  
  5627. Stops the sequence when the chosen coordinate value is reached.
  5628. MOVE Y
  5629. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_5.AMOS,0,4]=Move Y}
  5630.  
  5631. Move  an  object  vertically  using a STOS compatible command sequence.  As
  5632. with AMAL, the object is chosen with the CHANNEL command.
  5633.  
  5634.         Move Y channelnumber,"(speed,step,count)..."
  5635.  
  5636. speed sets the delay in fiftieths of a second between the operations.
  5637.  
  5638. step enters the distance to be moved in each step.
  5639.  
  5640. count  specifies  the  number  of  steps which should be performed in every
  5641. operation.
  5642.  
  5643. You can also include the L or E directives at the end of your commands.
  5644.  
  5645. L
  5646.  
  5647. Loops the sequence continuously on the screen.
  5648.  
  5649. E y coord
  5650.  
  5651. Stops the sequence when the chosen coordinate value is reached.
  5652.  
  5653. SYNCHRO
  5654. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_6.AMOS,0,4]Synchro}
  5655.  
  5656. Performs  all  your  AMAL programs in a single large burst.  It's used with
  5657. SYNCHRO  OFF  to allow you to control up to 63 objects at a time.  For best
  5658. results, add a WAIT VBL command at the end.
  5659.  
  5660.         Synchro
  5661.         Wait Vbl
  5662. SYNCHRO OFF 
  5663.  
  5664. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_6.AMOS,0,4]Synchro Off}
  5665.  
  5666. Turns  off  the  automatic  AMAL movement system.  You can now execute your
  5667. AMAL programs directly at the most appropriate point in your program, using
  5668. the SYNCHRO command.
  5669.  
  5670.         Synchro Off
  5671.  
  5672. Note:   SYNCHRO  OFF  increases  the number of available animation channels
  5673. from 16 to 63, and lets you call up the =C,=SC,=BC functions from AMAL for
  5674. use with collision detection.
  5675.  
  5676. SYNCHRO ON
  5677. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_6.AMOS,0,4]Synchro On}
  5678.  
  5679. Restarts  the interrupt driven AMAL movement system, and executes your AMAL
  5680. programs in the background, fifty times a second.
  5681.  
  5682.         Synchro On
  5683. UPDATE EVERY
  5684. {[RAMOSPro_Tutorial:Tutorials/Amal/Amal_4.AMOS,0,4]Update Every}
  5685.  
  5686. Slows  down  the  object  movements  to provide plenty of time for even the
  5687. largest object to be displayed on the screen.
  5688.  
  5689.         Update Every delay
  5690.  
  5691. delay is the number of vertical blanks (VBL's) between each screen update.
  5692.  
  5693. Icons and Blocks
  5694.  
  5695.                    {[IDEL BLOCK       ,4,3] Del Block         } {[IICON BASE       ,4,3] =Icon Base        }
  5696.                    {[IDEL CBLOCK      ,4,3] Del Cblock        } {[IINS ICON        ,4,3] Ins Icon          }
  5697.                    {[IDEL ICON        ,4,3] Del Icon          } {[IMAKE ICON MASK  ,4,3] Make Icon Mask    }
  5698.                    {[IGET BLOCK       ,4,3] Get Block         } {[INO ICON MASK    ,4,3] No Icon Mask      }
  5699.                    {[IGET CBLOCK      ,4,3] Get Cblock        } {[IPASTE ICON      ,4,3] Paste Icon        }
  5700.                    {[IGET ICON        ,4,3] Get Icon          } {[IPUT BLOCK       ,4,3] Put Block         }
  5701.                    {[IGET ICON PALETTE,4,3] Get Icon Palette  } {[IPUT CBLOCK      ,4,3] Put Cblock        }
  5702.                    {[IHREV BLOCK      ,4,3] Hrev Block        } {[IVREV BLOCK      ,4,3] Vrev Block        }
  5703.  
  5704. DEL BLOCK
  5705. {[RAMOSPro_Examples:Examples/H-6/Help_66.AMOS,0,4]Del Block}
  5706.  
  5707. DELetes one or more screen BLOCKs from memory.
  5708.  
  5709.         Del Block
  5710.  
  5711. Kills off ALL blocks.
  5712.  
  5713.         Del Block n
  5714.  
  5715. Erases block number n.
  5716. DEL CBLOCK
  5717. {[RAMOSPro_Examples:Examples/H-6/Help_66.AMOS,0,4]Del Cblock}
  5718.  
  5719. DELetes one or more compressed screen BLOCKs from memory.
  5720.  
  5721.         Del Cblock
  5722.  
  5723. Kills off ALL compressed blocks.
  5724.  
  5725.         Del Cblock n
  5726.  
  5727. Erases compressed block number n.
  5728. DEL ICON
  5729. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]Del Icon}
  5730.  
  5731. Deletes one or more icon images from the Icon Bank (bank 2).
  5732.  
  5733.         Del icon n
  5734.  
  5735. Erases Image number n
  5736.  
  5737.         Del Icon n To m
  5738.  
  5739. Wipes all images from n to m.
  5740. GET BLOCK
  5741. {[RAMOSPro_Examples:Examples/H-6/Help_66.AMOS,0,4]Get Block}
  5742.  
  5743. Grabs a rectangular screen BLOCK from the screen, and saves it into memory.
  5744. An  optional  blitter  mask  can  be  created for your block as well.  This
  5745. ensures  that  colour zero will be treated as transparent when the block is
  5746. pasted onto the screen.
  5747.  
  5748.         Get Block n,x,y,width,height
  5749.  
  5750. Gets a block with number n from x,y to x+w,y+h on the current screen.
  5751.  
  5752.         Get Block n,x,y,width,height,mask
  5753.  
  5754. If mask=1 then a mask will be generated for your block. 
  5755. GET CBLOCK
  5756. {[RAMOSPro_Examples:Examples/H-6/Help_66.AMOS,0,4]Get CBlock}
  5757.  
  5758. Gets  a rectangular screen BLOCK from the screen, and compresses it as much
  5759. as possible as it's being saved into memory.
  5760.  
  5761.         Get Cblock n,x,y,width,height
  5762.  
  5763. Grabs  a  block  with  number  n from x,y to x+w,y+h on the current screen.
  5764. Note that x and w are automatically rounded down to the nearest multiple of
  5765. eight.
  5766.  
  5767. GET ICON
  5768. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]Get Icon}
  5769.  
  5770. Loads  an  icon  image  from  the screen, and saves it into the Icon bank.
  5771. (Bank 2)
  5772.  
  5773.         Get Icon i,tx,ty To bx,by
  5774.  
  5775. Grabs image number i from tx,ty to bx,by on the current screen.
  5776.  
  5777.         Get Icon s,i,tx,ty To bx,by
  5778.  
  5779. Gets an icon of the requested dimensions from screen s.
  5780. GET ICON PALETTE
  5781. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]Get Icon Palette}
  5782.  
  5783.         Get Icon Palette
  5784.  
  5785. Loads all of your Icon colours to the current screen. 
  5786.  
  5787. An optional mask can be used to load a selection of these colours at a time.
  5788.  
  5789.  
  5790.         Get Icon Palette,mask
  5791.  
  5792. HREV BLOCK
  5793. {[RAMOSPro_Examples:Examples/H-2/Help_29.AMOS,0,4]Hrev Block}
  5794.  
  5795. Switches a block from left to right, just like a mirror.
  5796.  
  5797.         Hrev Block block number
  5798.  
  5799. ICON BASE
  5800. {[RAMOSPro_Examples:Examples/H-6/Help_64.AMOS,0,4]=Icon Base}
  5801.  
  5802. Returns the address of the Icon structure in memory.
  5803.  
  5804.         address=Icon Base
  5805. INS ICON
  5806. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]Ins Icon}
  5807.  
  5808.         Ins Icon n
  5809.  
  5810. Inserts  a  blank  image  at  position n in the current icon bank.  All the
  5811. images after this number are moved down a place.
  5812.  
  5813. Ins Icon f To l
  5814.  
  5815. Creates several image slots in a single operation. 
  5816.  
  5817. A  series  of  blank  spaces will now be created between image number f and
  5818. image l.
  5819.  
  5820. MAKE ICON MASK
  5821. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]Make Icon Mask}
  5822.  
  5823. Sets colour zero to transparent on selected images from the Icon bank.
  5824.  
  5825.         Make Icon Mask
  5826.  
  5827. Affects all currently defined Icon images.
  5828.  
  5829.         Make Icon Mask i
  5830.  
  5831. Creates a blitter mask for image number i. 
  5832. NO ICON MASK
  5833. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]No Icon Mask}
  5834.  
  5835. Removes  one  or  more Icon Masks which you've previously created using the
  5836. MAKE ICON MASK command.
  5837.  
  5838.         No Icon Mask
  5839.  
  5840. Removes all currently defined Icon masks.
  5841.  
  5842.         No Icon Mask i
  5843.  
  5844. Removes the mask for icon i.
  5845. PASTE ICON
  5846. {[RAMOSPro_Examples:Examples/H-6/Help_65.AMOS,0,4]Paste Icon}
  5847.  
  5848. Pastes an image from the Icon bank (2) onto the current screen.
  5849.  
  5850.         Paste Icon x,y,image number
  5851. PUT BLOCK
  5852. {[RAMOSPro_Examples:Examples/H-6/Help_66.AMOS,0,4]Put Block}
  5853.  
  5854. Draws  a previously defined memory block on the screen.  If the coordinates
  5855. are ommitted, it will be replaced at it's original position.
  5856.  
  5857.         Put Block n
  5858.         Put Block n,x,y
  5859.  
  5860. There  are  also a couple of extended versions of this command for advanced
  5861. users.
  5862.  
  5863.         Put Block n,x,y,planes
  5864.  
  5865. Puts a block on the selected screen planes. 
  5866.  
  5867. planes is a bitmap containing a list of planes to be affected.
  5868.  
  5869.         Put Block n,x,y,planes,minterms
  5870.  
  5871. Puts  a  block  on  the selected screen planes using a writing mode entered
  5872. using in minterms.  See SET BOB for more info.
  5873.  
  5874. PUT CBLOCK
  5875. {[RAMOSPro_Examples:Examples/H-6/Help_66.AMOS,0,4]Put Cblock}
  5876.  
  5877. Redraws a compressed memory block on the screen.
  5878.  
  5879. If  the  coordinates  are  ommitted,  it  will be replaced at it's original
  5880. position.
  5881.  
  5882.         Put Cblock n
  5883.         Put Cblock,x,y
  5884. VREV BLOCK
  5885. {[RAMOSPro_Examples:Examples/H-2/Help_29.AMOS,0,4]Vrev Block}
  5886.  
  5887. Flips a BLOCK of graphics upside down.
  5888.  
  5889.         Vrev Block number
  5890.  
  5891. Sound Effects
  5892.                       {[IBELL     ,4,3] Bell          } {[IPLAY OFF ,4,3] Play Off      }
  5893.                       {[IBOOM     ,4,3] Boom          } {[ISAMPLE   ,4,3] Sample        }
  5894.                       {[IDEL WAVE ,4,3] Del Wave      } {[ISET ENVEL,4,3] Set Envel     }
  5895.                       {[ILED ON   ,4,3] Led On        } {[ISET WAVE ,4,3] Set Wave      }
  5896.                       {[ILED OFF  ,4,3] Led Off       } {[ISHOOT    ,4,3] Shoot         }
  5897.                       {[INOISE TO ,4,3] Noise To      } {[IVOLUME   ,4,3] Volume        }
  5898.                       {[IPLAY     ,4,3] Play          } {[IWAVE     ,4,3] Wave          }
  5899. BELL
  5900. {[RAMOSPro_Examples:Examples/H-7/Help_73.AMOS,0,4]Bell}
  5901.  
  5902. Rings  a  bell.  It plays pure tone from a low pitch of 1 up to a very high
  5903. pitch of 96.
  5904.  
  5905.         Bell
  5906.         Bell pitchvalue
  5907. BOOM
  5908. {[RAMOSPro_Examples:Examples/H-7/Help_73.AMOS,0,4]Boom}
  5909.  
  5910. Generates an explosive sound effect.
  5911.  
  5912.         Boom
  5913. DEL WAVE
  5914. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Del Wave}
  5915.  
  5916. DELetes  any  numbered  sound  WAVE,  except  0 and 1 which are permanently
  5917. programmed.
  5918.  
  5919.         Del Wave number
  5920. NOISE TO
  5921. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Noise To}
  5922.  
  5923. Assigns white NOISE TO a voice of your choice.
  5924.  
  5925.         Noise To voicenumber
  5926. LED ON
  5927. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Led On}
  5928.  
  5929. Activates a high frequency sound filter and turns on the power Light on the
  5930. computer.
  5931.  
  5932.         Led On
  5933. LED OFF
  5934. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Led Off}
  5935.  
  5936. Switches off the sound filter, and blanks out the power LED.
  5937.  
  5938.        Led Off
  5939. PLAY
  5940. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Play}
  5941.  
  5942. PLAYs  a note or waveform with your selected pitch and delay.  You can also
  5943. enter an optional combination of voices.
  5944.  
  5945.         Play voice
  5946.         Play voice,delay
  5947.         Play voice,pitch,delay
  5948. PLAY OFF
  5949. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Play Off}
  5950.  
  5951. Stops  a  note  or waveform previously set in action by a PLAY command.  An
  5952. optional voice or voices may be included.
  5953.  
  5954.         Play Off
  5955.         Play Off voices
  5956. SAMPLE
  5957. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Sample}
  5958.  
  5959. Assigns  a  SAMPLE  to  the  current  sound  wave.   The range of voices is
  5960. selected using a standard bit-map.
  5961.  
  5962.         Sample number To voices
  5963. SET ENVEL
  5964. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Set Envel}
  5965.  
  5966. Defines a sound ENVELope.
  5967.  
  5968. Set Envel wave,phase To duration,volume
  5969.  
  5970. wave = the number of the waveform,
  5971.  
  5972. phase = a phase number from 1 to 6
  5973.  
  5974. duration = length of the current step in units of a 50th of a second.
  5975.  
  5976. volume  =  the  intensity  of  the note at the end of the phase.  Allowable
  5977. values range from 0 to 63.
  5978.  
  5979. SET WAVE
  5980. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Set Wave}
  5981.  
  5982. Selects  a  WAVEform for your sound.  Waves 0 and 1 are permanently set up.
  5983. So  start  new  wave numbers from 2 upwards.  You can then set the shape of
  5984. the waveform from a list of 256 sample values in shape$.
  5985.  
  5986.         Set Wave number,shape$
  5987. SHOOT
  5988. {[RAMOSPro_Examples:Examples/H-7/Help_73.AMOS,0,4]Shoot}
  5989.  
  5990. Triggers a SHOOTing sound. Great for your missiles!
  5991.  
  5992.         Shoot
  5993. VOLUME
  5994. {[RAMOSPro_Examples:Examples/H-7/Help_73.AMOS,0,4]Volume}
  5995.  
  5996. Changes the VOLUME of all future effects. 
  5997.  
  5998. intensity  ranges  from  0  (silent)  up to 63 (very loud).  You can select
  5999. which voices are to be affected by setting their individual bits to 1.
  6000.  
  6001.         Volume intensity 
  6002.         Volume voices,intensity
  6003. WAVE
  6004. {[RAMOSPro_Examples:Examples/H-7/Help_76.AMOS,0,4]Wave}
  6005.  
  6006. Assigns  the wave number you select to one or more sound channels.  Set the
  6007. bit of any voices you wish to use to 1.
  6008.  
  6009.        Wave number To voices
  6010.  
  6011. Music
  6012.                         {[IMUSIC     ,4,3] Music                        }
  6013.                         {[IMUSIC OFF ,4,3] Music Off                    }
  6014.                         {[IMUSIC STOP,4,3] Music Stop                   }
  6015.                         {[IMVOLUME   ,4,3] Mvolume                      }
  6016.                         {[ITEMPO     ,4,3] Tempo                        }
  6017.                         {[IVOICE     ,4,3] Voice                        }
  6018.                         {[IVUMETER   ,4,3] Vumeter                      }
  6019. MUSIC
  6020. {[RAMOSPro_Examples:Examples/H-7/Help_75.AMOS,0,4]Music}
  6021.  
  6022. Starts playing a piece of MUSIC from the music bank (3).
  6023.  
  6024.         Music number
  6025. MUSIC OFF
  6026. {[RAMOSPro_Examples:Examples/H-7/Help_75.AMOS,0,4]Music Off}
  6027.  
  6028. Switches OFF all the current MUSIC.
  6029.  
  6030.         Music Off
  6031. MUSIC STOP
  6032. {[RAMOSPro_Examples:Examples/H-7/Help_75.AMOS,0,4]Music Stop}
  6033.  
  6034. STOPS  the  current  piece  of  MUSIC and starts up any other music that is
  6035. still active.
  6036.  
  6037.         Music Stop
  6038. MVOLUME
  6039. {[RAMOSPro_Examples:Examples/H-7/Help_75.AMOS,0,4]Mvolume}
  6040.  
  6041. Sets  the Music VOLUME by giving it a number from 0 for silent up to 63 for
  6042. very loud.
  6043.  
  6044.         Mvolume number
  6045. TEMPO   
  6046. {[RAMOSPro_Examples:Examples/H-7/Help_75.AMOS,0,4]Tempo}
  6047.  
  6048. Changes the speed or TEMPO of a current piece of music, from 1 (lentissimo)
  6049. to 100 (presto furioso.)
  6050.  
  6051.         Tempo speed
  6052. VOICE
  6053. {[RAMOSPro_Examples:Examples/H-7/Help_75.AMOS,0,4]Voice}
  6054.  
  6055. Selects  one or more voices ready to perform, by setting its individual bit
  6056. mask to 1.
  6057.  
  6058.         Voice bitmap
  6059.  
  6060.         Voice %1111 : Rem Activate all four voices
  6061.  
  6062. Four  voices  can be used to play your sound.  Each voice to be played must
  6063. have its associated bit set to 1.
  6064.  
  6065. Bit0-> Voice 0
  6066. Bit1-> Voice 1
  6067. Bit2-> Voice 2
  6068. Bit3-> Voice 3
  6069.  
  6070. VUMETER
  6071. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]=Vumeter}
  6072.  
  6073. Returns  the  volume of current note in your music.  v selects the voice to
  6074. be tested.
  6075.  
  6076.         vol=Vumeter(voice)
  6077.  
  6078. Samples
  6079.                          {[ISAM BANK    ,4,3] Sam Bank                   }
  6080.                          {[ISAM LOOP ON ,4,3] Sam Loop On                }
  6081.                          {[ISAM LOOP OFF,4,3] Sam Loop Off               }
  6082.                          {[ISLOAD       ,4,3] Sload                      }
  6083.                          {[ISAM PLAY    ,4,3] Sam Play                   }
  6084.                          {[ISAM RAW     ,4,3] Sam Raw                    }
  6085.                          {[ISSAVE       ,4,3] Ssave                      }
  6086.                          {[ISAMSTOP     ,4,3] Sam Stop                   }
  6087.                          {[ISAMSWAP     ,4,3] Sam Swap                   }
  6088.                          {[ISAM SWAPPED ,4,3] =Sam Swapped               }
  6089.  
  6090. SAM BANK
  6091. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Bank}
  6092.  
  6093. Assigns a new numbered SAMple memory BANK for use in your program.
  6094.  
  6095.         Sam Bank number
  6096. SLOAD
  6097. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sload}
  6098.  
  6099. Loads part of a sample file into memory.
  6100.  
  6101.         Sload File_Number,Length To Address
  6102.  
  6103. File_Number  is the number of a file you've opened previously with the OPEN
  6104. IN File_Number,"Name" instruction.
  6105.  
  6106. Length  is  the number of bytes to load.  If this number is bigger than the
  6107. actual size of the file, then only the remaining bytes will be loaded.
  6108.  
  6109. Address is the destination address.
  6110.  
  6111. Your data is loaded from the current file postion, as set by POF.
  6112. SAM LOOP OFF
  6113. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Loop Off}
  6114.  
  6115. Disables the looping system generated by the SAM LOOP ON instruction
  6116.  
  6117.         Sam Loop Off
  6118. SAM LOOP ON
  6119. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Loop On}
  6120.  
  6121. Enables   sample  looping.   All  future  samples  will  now  be  repeated
  6122. continuously through your loudspeaker.
  6123.  
  6124.         Sam Loop On
  6125. SAM PLAY
  6126. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Play}
  6127.  
  6128. PLAYs the numbered sound SAMple through your loudspeaker.
  6129.  
  6130.         Sam Play sample_number
  6131.  
  6132. You can also extend this command like so:
  6133.  
  6134.         Sam Play voice_bitmap,sample_number
  6135.  
  6136. Each voice to be played is selected by setting its bit in the map to 1
  6137.  
  6138.         Sam Play voice_bitmap,sample_number,frequency
  6139.  
  6140. frequency  sets  the playback speed in samples per second.  Sensible values
  6141. range from 4000 for noises to 10000 for speech and music.
  6142. SAM RAW
  6143. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Raw}
  6144.  
  6145. Plays  a  sound SAMple from anywhere in memory.  Each voice to be played is
  6146. set  by  a  standard bit-pattern.  The address of the sample is then given,
  6147. followed  by  the  length of the sample to be played, then its frequency in
  6148. samples per second.
  6149.  
  6150.         Sam Raw voice,address,length,frequency
  6151. SAM STOP
  6152. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Stop}
  6153.  
  6154. Stops  a  sound  SAMple  previously set by a SAM PLAY command.  An optional
  6155. voice or voices may be given.
  6156.  
  6157.         Sam Stop voices
  6158.  
  6159. SAM SWAP
  6160. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]Sam Swap}
  6161.  
  6162. Initialises double buffered sample playing.  The actual swapping will only
  6163. occur when the sample has been totally played through the speaker.
  6164.  
  6165.         Sam Swap Voices To address,length
  6166.  
  6167. voice  is  a  bit pattern to define the voices to be affected,just like the
  6168. SAM RAW instruction.
  6169.  
  6170. address  is  the  address of the next section of your sample to play.  This
  6171. must be in chip memory.
  6172.  
  6173. length is the number of bytes to be played.
  6174.  
  6175. SAM SWAPPED
  6176. {[RAMOSPro_Examples:Examples/H-7/Help_74.AMOS,0,4]=Sam Swapped}
  6177.  
  6178. Returns  TRUE (-1) if the sample swapping has occurred, and the new buffer
  6179. you have initialised with the SAM SWAP instruction is being played through
  6180. your loudspeaker. Otherwise you'll get a value of FALSE (0).
  6181.  
  6182.         test=Sam Swapped(voice_number)
  6183.  
  6184. voice_number is the number of the voice you want to check (0 to 3).
  6185.  
  6186. SSAVE
  6187. Saves a section of memory at a specific point in a file.
  6188.  
  6189.         Ssave channelnumber, startaddress to endaddress
  6190.  
  6191. Channel  number  is  the number of a file you've opened previously with the
  6192. OPEN IN File_Number,"Name" instruction.
  6193.  
  6194. startaddress is the address of the first byte to be transferred.
  6195.  
  6196. endaddress is the address of the final one.
  6197.  
  6198. The  data  is saved starting from the current file position, as returned by
  6199. the POF function.
  6200.  
  6201. Tracker
  6202.                          {[ITRACK LOAD    ,4,3] Track Load                }
  6203.                          {[ITRACK LOOP ON ,4,3] Track Loop On             }
  6204.                          {[ITRACK LOOP OFF,4,3] Track Loop Of             }
  6205.                          {[ITRACK PLAY    ,4,3] Track Play                }
  6206.                          {[ITRACK STOP    ,4,3] Track Stop                }
  6207.  
  6208. TRACK LOAD
  6209. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Track Load}
  6210.  
  6211. Loads  a  Tracker  sound module into the memory bank number of your choice,
  6212. erasing  any existing data in this bank number before loading the new data.
  6213. The new bank will be called "Tracker".
  6214.  
  6215. Bank number 6 is used as a default.
  6216.  
  6217. Normal  AMOS  Professional  sound commands should NOT be used while Tracker
  6218. music is being played.
  6219.  
  6220.         Track Load "modulename",banknumber
  6221. TRACK LOOP ON
  6222. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Track Loop On}
  6223.  
  6224. Causes the current Tracker module to loop.
  6225.  
  6226.        Track Loop On
  6227.  
  6228. TRACK LOOP OF
  6229. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Track Loop Of}
  6230.  
  6231. Turns off a looping Tracker module.
  6232.  
  6233.        Track Loop Of
  6234. TRACK PLAY
  6235. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Track Play}
  6236.  
  6237. Starts your Tracker music playing through your loudspeaker.
  6238.  
  6239.         Track Play banknumber
  6240.  
  6241. bank  number  is  the  number  of  the  memory bank containing your tracker
  6242. module.  If it's omitted AMOS defaults to bank 6.
  6243.  
  6244.         Track Play, banknumber,patternnumber
  6245.  
  6246. A  pattern  number  can  also  be  added as a starting point from which the
  6247. Tracker module is to be played.
  6248.  
  6249. TRACK STOP
  6250. {[RAMOSPro_Examples:Examples/H-7/Help_72.AMOS,0,4]Track Stop}
  6251.  
  6252. Stops your music in its tracks!
  6253.  
  6254.         Track Stop
  6255.  
  6256. Med
  6257.                         {[IMED CONT   ,4,3] Med Cont                    }
  6258.                         {[IMED LOAD   ,4,3] Med Load                    }
  6259.                         {[IMED MIDI ON,4,3] Med Midi On                 }
  6260.                         {[IMED PLAY   ,4,3] Med Play                    }
  6261.                         {[IMED STOP   ,4,3] Med Stop                    }
  6262. MED CONT
  6263. {[RAMOSPro_Examples:Examples/H-8/Help_80.AMOS,0,4]Med Cont}
  6264.  
  6265. Re-starts  a  song  you've  previously halted with MED STOP.  The music now
  6266. continues from the point it left off.
  6267.  
  6268.        Med Cont
  6269.  
  6270. MED LOAD
  6271. {[RAMOSPro_Examples:Examples/H-8/Help_80.AMOS,0,4]Med Load}
  6272.  
  6273.  
  6274. Loads a selected MED music module into a selected memory bank.  Only "MMD0"
  6275. and "MMD1" type modules are allowed.
  6276.  
  6277.        Med Load "Med_Module",bank
  6278. MED MIDI ON
  6279. {[RAMOSPro_Examples:Examples/H-8/Help_80.AMOS,0,4]Med Midi On}
  6280.  
  6281. This  instruction  should be used if you've connected a MIDI synthesizer to
  6282. your  Amiga,  and wish to play a MED module containing MIDI commands.  Call
  6283. it before the MED ON command.
  6284.  
  6285.          Med Midi On
  6286.  
  6287. MED STOP
  6288. {[RAMOSPro_Examples:Examples/H-8/Help_80.AMOS,0,4]Med Stop}
  6289.  
  6290. Stops  the MED music currently being played through your loudspeaker.  This
  6291. song can be re-started again using the MED CONT instruction.
  6292.  
  6293.         Med Stop
  6294. MED PLAY
  6295. {[RAMOSPro_Examples:Examples/H-8/Help_80.AMOS,0,4]Med Play}
  6296.  
  6297. Plays  a  MED  music module which has been previously loaded with MED LOAD.
  6298. If  you  don't include a parameter, the most recently loaded module will be
  6299. played instead.
  6300.  
  6301.         Med play
  6302.  
  6303. If  you've  several  modules  installed  in  memory, you can enter the bank
  6304. number like so:
  6305.  
  6306.        Med Play bank
  6307.  
  6308. You can also specify a song number if required.
  6309.  
  6310.        Med Play bank,song
  6311.  
  6312.  
  6313. The Keyboard
  6314.                         {[ICLEAR KEY  ,4,3] Clear Key                    }
  6315.                         {[IINKEY$    ,4,3] =Inkey$                      }
  6316.                         {[IINPUT$    ,4,3] =Input$                      }
  6317.                         {[IINPUT      ,4,3] Input                        }
  6318.                         {[IKEY$=     ,4,3] =Key$=                       }
  6319.                         {[IKEY STATE ,4,3] =Key State                   }
  6320.                         {[IKEY SHIFT ,4,3] =Key Shift                   }
  6321.                         {[IKEY SPEED  ,4,3] Key Speed                    }
  6322.                         {[ILINE INPUT ,4,3] Line Input                   }
  6323.                         {[IPUT KEY    ,4,3] Put Key                      }
  6324.                         {[ISCAN$     ,4,3] =Scan$                       }
  6325.                         {[ISCANCODE   ,4,3] =Scancode                    }
  6326.                         {[ISCANSHIFT  ,4,3] =Scanshift                   }
  6327.                         {[IWAIT KEY   ,4,3] Wait Key                     }
  6328.  
  6329. CLEAR KEY
  6330. {[RAMOSPro_Examples:Examples/H-4/Help_42.AMOS,0,4]Clear Key}
  6331.  
  6332. Clears  any  keypresses from the keyboard buffer, leaving it totally empty.
  6333. Any earlier keypresses will be discarded.
  6334.  
  6335.         Clear Key
  6336. INKEY$
  6337. {[RAMOSPro_Examples:Examples/H-4/Help_43.AMOS,0,4]=Inkey$}
  6338.  
  6339. Checks  to  see if you have pressed a particular KEY, and returns its value
  6340. in a String.
  6341.  
  6342.         x$=Inkey$ : If x$<>" " Then Print x$
  6343. KEY$
  6344. {[RAMOSPro_Examples:Examples/H-5/Help_54.AMOS,0,4]Key$}
  6345.  
  6346. Assigns  or  reads a keyboard macro.  These macros can be accessed from the
  6347. keyboard  by  pressing  the  Amiga  key  along with one of the ten possible
  6348. function keys.
  6349.  
  6350. Left Amiga generates macros from 1-10 depending on the function key.
  6351.  
  6352. Right Amiga reads macros from 11 to 20.
  6353.  
  6354.         Key$(m)="string"
  6355.  
  6356. Defines  your  macro.   "string"  now  will be automatically typed into the
  6357. keyboard when you call up macro m.
  6358.  
  6359.         s$=Key$(m)
  6360.  
  6361. Reads the current macro assigned to function m.  
  6362. KEY SPEED
  6363. {[RAMOSPro_Examples:Examples/H-4/Help_42.AMOS,0,4]Key Speed}
  6364.  
  6365. Changes the SPEED of KEYboard action.  Lag is the time in 50ths of a second
  6366. before  characters  are  repeated  while  a key is held down.  Speed is the
  6367. delay in 50ths of a second between each successive character.
  6368.  
  6369.         Key Speed lag,speed
  6370. KEY STATE
  6371. {[RAMOSPro_Examples:Examples/H-4/Help_43.AMOS,0,4]=Key State}
  6372.  
  6373. Tests a specific key to see if it has been pressed by the user.  A value of
  6374. -1 indicates that the key has been hit.
  6375.  
  6376.         Test=Keystate(scancode)
  6377.         If Key State(69) Then Print "Escape pressed"
  6378.  
  6379. KEYSHIFT
  6380. {[RAMOSPro_Examples:Examples/H-4/Help_43.AMOS,0,4]=Key Shift}
  6381.  
  6382. Returns the status of special keys such as CNTRL,SHIFT,and ALT.  The result
  6383. is given as a bit-map in the following format.
  6384.  
  6385.         keys=Key Shift
  6386.  
  6387. Bit    Key Tested
  6388.  0     Left Shift
  6389.  1     Right Shift
  6390.  2     Caps Lock
  6391.  3     Cntrl
  6392.  4     Left Alt
  6393.  5     Right Alt
  6394.  6     Left Amiga
  6395.  7     Right Amiga
  6396. LINE INPUT
  6397. {[RAMOSPro_Examples:Examples/H-6/Help_63.AMOS,0,4]Line Input}
  6398.  
  6399. INPUTs  a  list  of  variables one at a time, separated by the [Return] key
  6400. instead of the comma used in the normal INPUT command.
  6401.  
  6402.         Line Input "Prompt";variable list
  6403. PUT KEY
  6404. {[RAMOSPro_Examples:Examples/H-4/Help_42.AMOS,0,4]Put Key}
  6405.  
  6406. Loads  a  string  of  characters  directly  into the keyboard buffer.  AMOS
  6407. treats these characters just as if they had been typed in straight from the
  6408. keyboard.
  6409.  
  6410.         Put Key "characters"
  6411. SCAN$
  6412. {[RAMOSPro_Examples:Examples/H-5/Help_54.AMOS,0,4]=Scan$}
  6413.  
  6414. Returns an internal code for use with the keyboard macros defined with KEY$.
  6415.  
  6416.         c$=Scan$(n)
  6417.  
  6418. Generates the code for scancode n.
  6419.  
  6420.         c$=Scan$(n,m)
  6421.  
  6422. m  enters  an optional mask for the special keys such as ALT or SHIFT.  See
  6423. SHIFT KEY for more details.
  6424.  
  6425. SCANCODE
  6426. {[RAMOSPro_Examples:Examples/H-4/Help_43.AMOS,0,4]=Scancode}
  6427.  
  6428. Returns  the  SCANCODE of the last key-press recognised by INKEY$.  As well
  6429. as  character  keys,  this function can also check for keys like [Help] and
  6430. [Tab].
  6431.  
  6432.         s=Scancode
  6433.  
  6434. SCANSHIFT
  6435. Returns  the status of the shift keys after you`ve tested the keyboard with
  6436. INKEY$. 
  6437.  
  6438.         s=Scanshift
  6439.  
  6440. Depending on the situation, you`ll get one of the following values.
  6441.  
  6442.           =0      no [Shift]
  6443.           =1      [Left Shift]
  6444.           =2      [Right Shift]
  6445.           =3      both [Shift] keys set
  6446.  
  6447. WAIT KEY
  6448. {[RAMOSPro_Examples:Examples/H-4/Help_42.AMOS,0,4]Wait Key}
  6449.  
  6450. WAITs for any single KEY to be pressed.
  6451.  
  6452.         Wait Key
  6453.  
  6454.  
  6455. Serial Communications
  6456.                 {[ISERIAL ABORT   ,4,3] =Serial Abort        } {[ISERIAL CLOSE    ,4,3] Serial Close         }
  6457.                 {[ISERIAL BASE    ,4,3] =Serial Base         } {[ISERIAL FAST     ,4,3] Serial Fast          }
  6458.                 {[ISERIAL CHECK   ,4,3] =Serial Check        } {[ISERIAL OPEN     ,4,3] Serial Open          }
  6459.                 {[ISERIAL ERROR   ,4,3] =Serial Error        } {[ISERIAL OUT      ,4,3] Serial Out           }
  6460.                 {[ISERIAL GET     ,4,3] =Serial Get          } {[ISERIAL PARITY   ,4,3] Serial Parity        }
  6461.                 {[ISERIAL INPUT$  ,4,3] =Serial Input$       } {[ISERIAL SEND     ,4,3] Serial Send          }
  6462.                 {[ISERIAL STATUS  ,4,3] =Serial Status       } {[ISERIAL SLOW     ,4,3] Serial Slow          }
  6463.                 {[ISERIAL BITS     ,4,3] Serial  Bits         } {[ISERIAL SPEED    ,4,3] Serial Speed         }
  6464.                 {[ISERIAL BUF      ,4,3] Serial  Buf          } {[ISERIAL X        ,4,3] Serial X             }
  6465.  
  6466. SERIAL ABORT
  6467.  
  6468. Winds  up  any  serial  operations  you've  started with the SERIAL SEND or
  6469. SERIAL OUT instructions and leaves the lines clear.
  6470.  
  6471.  
  6472.         Serial Abort channel_no
  6473. SERIAL BASE
  6474. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]=Serial Base}
  6475.  
  6476. Returns the base  address of the IO structure of the current serial channel.
  6477.  
  6478.         address=SERIAL BASE(channel_no)
  6479. SERIAL BITS
  6480. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial Bits}
  6481.  
  6482. Assigns  the  number  of  bits  which  will  be used for each character you
  6483. transmit.
  6484.  
  6485.         Serial Bits channel_no,nbits,stopbits
  6486.  
  6487. channel holds the chaneel number
  6488.  
  6489. nbits is the number of bits
  6490.  
  6491. stopbits is the number of STOP bits
  6492. SERIAL BUF
  6493. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial Buf}
  6494.  
  6495. Allocates  the  amount  of buffer space to be used for your for your serial
  6496. channel.   Note  that  the  default  value  is  512  bytes  and the minimum
  6497. allocation  is  64 bytes.  It's a good idea to increase the buffer size for
  6498. high speed transfers.
  6499.  
  6500.         Serial Buf channel_no, Length
  6501. SERIAL CHECK
  6502. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]=Serial Check}
  6503.  
  6504. Asks  the  device  for a read-out of its current status.  You can use it to
  6505. check whether all the information you've transferred with a previous SERIAL
  6506. SEND command has been correctly sent.
  6507.  
  6508.         test=Serial Check(channel)
  6509.  
  6510. test = FALSE (0) -> the last serial command is still being executed.
  6511.      = TRUE (-1) -> All done!
  6512. SERIAL CLOSE
  6513. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]Serial Close}
  6514.  
  6515. Close one or more serial channels.
  6516.  
  6517.         Serial Close
  6518.  
  6519. Closes ALL active channels
  6520.  
  6521.         Serial Close channel
  6522.  
  6523. Closes a single channel
  6524. SERIAL ERROR
  6525. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial Error}
  6526.  
  6527. Looks  for  the ERROR byte in the serial device.  A value of zero indicates
  6528. that everything is fine.  Otherwise, the last transmission was faulty.
  6529.  
  6530.         test=Serial Error(channel)
  6531.  
  6532. SERIAL FAST
  6533. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]Serial Fast}
  6534.  
  6535. Sets  a  special  fast  flag  in  the  current device and disables a lot of
  6536. internal  checking  which  would  otherwise  slow  down  the  communication
  6537. process.  Use it for high speed transfers such as MIDI.  Warning:  When you
  6538. call  this  command,  the  protocol  will  be  changed  to:  
  6539.  
  6540. PARITY EVEN,NOXON/XOFF and 8 bits.
  6541.  
  6542.         Serial Fast channel
  6543. SERIAL GET
  6544. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]=Serial Get}
  6545.  
  6546. Reads  a  single  byte  from  the serial device.  If nothing is available a
  6547. value of -1 will be returned.
  6548.  
  6549.         v=Serial Get(channel)
  6550. SERIAL INPUT$
  6551. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]=Serial Input$}
  6552.  
  6553. Reads  an  entire string of characters from the serial port.  If there's no
  6554. data,  the  command  will  return an empty string "".  Otherwise the string
  6555. will  contain all the bytes which have been sent over the serial line up to
  6556. the present time.
  6557.  
  6558.         s$=Serial Input$(channel)
  6559. SERIAL OPEN
  6560. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]Serial Open}
  6561.  
  6562. Opens a communication channel to a serial device.
  6563.  
  6564. Serial Open channel, port_no
  6565.  
  6566. channel holds the channel number from 0 to 3.
  6567.  
  6568. port_no  specifies the logical device number of the serial port.  Normally,
  6569. it should be set to zero.
  6570.  
  6571. If  you  need  additiona control over the serial port, you can also call an
  6572. extended version of this instruction.
  6573.  
  6574. Serial Open channel, port_no,shared, xdisabled, 7wires
  6575. SERIAL OUT
  6576. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]Serial out}
  6577.  
  6578. Transmits  a  block  of  memory  over  the  serial  port  using the current
  6579. settings.
  6580.  
  6581. Serial Out channel,address,length
  6582.  
  6583. Address is the address of your data in memory.
  6584.  
  6585. Length is the number of bytes to be transmitted.
  6586. SERIAL PARITY
  6587. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial Parity}
  6588.  
  6589. Sets the parity checking you are using for the current serial channel.
  6590.  
  6591.         Serial Parity channel, parity
  6592.  
  6593. Here's a list of the available options.
  6594.  
  6595.    -1 : no parity
  6596.     0 : EVEN parity
  6597.     1 : ODD parity
  6598.     2 : SPACE parity
  6599.     3 : MARK parity
  6600.  
  6601. See the Commodore documentation for a full explanation of this system.
  6602. SERIAL SEND
  6603. {[RAMOSPro_Examples:Examples/H-4/Help_46.AMOS,0,4]Serial Send}
  6604.  
  6605. Sends  a string of characters straight to the specified serial channel.  It
  6606. doesn't  wait  for  the  data  to  be  transmitted through the actual port.
  6607. You'll  therefore need to use the =SERIAL CHECK(Channel) function to detect
  6608. when the transmission has been successfully completed.
  6609.  
  6610. Serial Send channel,t$ 
  6611. SERIAL SLOW
  6612. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial Slow}
  6613.  
  6614. Slows  the serial device back to normal speed and reactivates all the error
  6615. checks.
  6616.  
  6617.         Serial Slow channel
  6618.  
  6619. SERIAL SPEED
  6620. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial Speed}
  6621.  
  6622. Sets  the current transfer rate of the appropriate channel.  The same value
  6623. will  be used for both reading and writing operations.  You can't set split
  6624. baud rates for a single channel.
  6625.  
  6626. If the baud rate you have specified is not supported by the current device,
  6627. it may be rejected.
  6628.  
  6629.         Serial Speed channel, baud rate
  6630.  
  6631. SERIAL STATUS
  6632. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]=Serial Status}
  6633.  
  6634. Provides  you  with  detailed  information  about  the current state of the
  6635. serial port.
  6636.  
  6637.         s=Serial Status(channel)
  6638.  
  6639. s is a bit-map holding the state of fifteen different parameters.  
  6640.  
  6641. If  the  bit  is  set to the value under "active", the associated event has
  6642. been successfully detected.
  6643.  
  6644. Bit Active Function
  6645.  
  6646.  0-1   -   reserved
  6647.  2     1   Parallel "select" on the A1000
  6648.  3     0   DSR (Data Set Ready)
  6649.  4     0   CTS (Clear To Send)
  6650.  5     0   Carrier Detect
  6651.  6     0   RTS (Ready To Send)
  6652.  7     0   DTR (Data Terminal Ready)
  6653.  8     1   hardware overrun
  6654.  9     1   break sent (most recent output)
  6655. 10     1   break received (as latest input)
  6656. 11     1   transmit x-OFF
  6657. 12     1   receive x-OFF
  6658. 13-15  -   reserved 
  6659. SERIAL X
  6660. {[RAMOSPro_Examples:Examples/H-4/Help_47.AMOS,0,4]Serial X}
  6661.  
  6662. Activates/deactivates the XON/XOFF handshaking system. 
  6663.  
  6664.         Serial X channel,xmode 
  6665.  
  6666. A  value  of TRUE for Xmode disables handshaking.  Any other value turns it
  6667. on.   Xmode  should  be  loaded with the correct control characters.  These
  6668. must be specified in the following format:
  6669.  
  6670.         Xmode=XON*$10000000+XOFF*$10000
  6671.  
  6672. Check Commodore's documentation for more information.
  6673.  
  6674. Using the Printer
  6675.                           {[ILPRINT        ,4,3] Lprint                   }
  6676.                           {[IPRINTER ABORT ,4,3] Printer Abort            }
  6677.                           {[IPRINTER BASE  ,4,3] Printer Base             }
  6678.                           {[IPRINTER CHECK ,4,3] Printer Check            }
  6679.                           {[IPRINTER CLOSE ,4,3] Printer Close            }
  6680.                           {[IPRINTER DUMP  ,4,3] Printer Dump             }
  6681.                           {[IPRINTER ERROR ,4,3] Printer Error            }
  6682.                           {[IPRINTER ONLINE,4,3] Printer Online           }
  6683.                           {[IPRINTER OPEN  ,4,3] Printer Open             }
  6684.                           {[IPRINTER OUT   ,4,3] Printer Out              }
  6685.                           {[IPRINTER SEND  ,4,3] Printer Send             }
  6686. LPRINT
  6687. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]Lprint}
  6688.  
  6689. Sends a List of variables to a PRINTer instead of the screen.
  6690.  
  6691.         Lprint variable list
  6692. PRINTER ABORT
  6693. {RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]Printer Abort}
  6694.  
  6695. Halts  a  printing operation in it's tracks.  If your printer's got a large
  6696. memory  buffer,  you  may need to wait a while before the printing actually
  6697. stops.  If in doubt, turn it off!
  6698.  
  6699.         Printer Abort
  6700. PRINTER BASE
  6701.  
  6702. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]=Printer Base}
  6703.  
  6704. Returns the address of the IO structure used to control the printer.
  6705.  
  6706.         address=Printer Base
  6707.  
  6708. PRINTER CHECK
  6709. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]=Printer Check}
  6710.  
  6711. Returns  a  value  of  TRUE  (-1)  if  the printer is available for use, or
  6712. FALSE(0) if it's in the middle of an operation.
  6713.  
  6714.         c=Printer Check
  6715. PRINTER CLOSE
  6716. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]Printer Close}
  6717.  
  6718. Close  the  printer  port  you've  previously  set up with the PRINTER OPEN
  6719. command.
  6720.  
  6721.         Printer Close
  6722. PRINTER DUMP
  6723. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]Printer Dump}
  6724.  
  6725. PRINTER  DUMP  sends the current screen straight to the printer, just as it
  6726. appears on your TV set.
  6727.  
  6728.         Printer Dump
  6729.  
  6730. Dumps the entire screen in a single operation.
  6731.  
  6732.         Printer Dump x1,y1 to x2,y2
  6733.  
  6734. Transmits  a  selected  area  of  your screen to the printer, retaining the
  6735. present aspect ratio and the screen size.
  6736.  
  6737. x1,y1  hold the position of the top left corner of your image
  6738.  
  6739. x2,y2  set the location of the point diagonally opposite.
  6740.  
  6741.          Printer Dump x1,y1 to x2,y2,px,py,s
  6742.  
  6743. Prints  a  section  of  the  screen  using  your own aspect ratios and size
  6744. parameters.
  6745.  
  6746. x1,y1  define the top left corner of the area to be printed.
  6747.  
  6748. x2,y2  enter the coordinates of the bottom right of the image.
  6749.  
  6750. px,py  specify  the  dimensions  of  the  final printout.  These values are
  6751. measured  in  "printer pixels" rather than normal screen points.  They vary
  6752. depending on the command options you've set with s.
  6753.  
  6754. s  is  a special command parameter which tells the printer precisely how to
  6755. draw  your image onto the paper.  See the AMOS Pro User Guide for a list of
  6756. the various options.
  6757.  
  6758. PRINTER ERROR
  6759. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]=Printer Error}
  6760.  
  6761. Checks  whether  the  current operation is proceeding normally.  A value of
  6762. zero suggests that everything's ok.  Any other value indicates an error.
  6763.  
  6764.         e=Printer Error
  6765.  
  6766. PRINTER ONLINE
  6767. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]=Printer Online}
  6768.  
  6769. Checks  whether  your printer is connected and ready for use.  It returns a
  6770. value  of  TRUE  (-1)  if  the printer is online, and FALSE(0) if it is not
  6771. available.
  6772.  
  6773.         test=Printer Online
  6774. PRINTER OPEN 
  6775. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]Printer Open}
  6776.  
  6777. Opens  the  printer  device  using your current preferences.  Only a single
  6778. printer  device  can  be  open  at  any  one  time.  So we haven't bothered
  6779. including a channel number.
  6780.  
  6781.         Printer Open
  6782. PRINTER OUT
  6783. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]Printer Out}
  6784.  
  6785. Prints  some  data  directly from the memory locations starting at address.
  6786. This  data  is not processed in any way, and any embedded control sequences
  6787. are totally ignored.  You should only use this instruction to send graphics
  6788. or simple text.
  6789.  
  6790.         Printer Out address, length
  6791.  
  6792. address is the address of the first character to be output.
  6793.  
  6794. length  holds the number of characters you wish to print. 
  6795. PRINTER SEND
  6796. {[RAMOSPro_Examples:Examples/H-5/Help_51.AMOS,0,4]Printer Send}
  6797.  
  6798. Sends a string to the printer using multitasking. 
  6799.  
  6800. The instruction returns immediately back to AMOS Basic, without waiting for
  6801. the  text to be actually printed.  Instead, all printing operations will be
  6802. performed invisibly in the background.  If the printer is not ready, you'll
  6803. get an appropriate requester.
  6804.  
  6805.         Printer Send a$
  6806.  
  6807. The Parallel Port
  6808.                           {[IPARALLEL BASE  ,4,3] =Parallel Base         }
  6809.                           {[IPARALLEL CHECK ,4,3] =Parallel Check        }
  6810.                           {[IPARALLEL ERROR ,4,3] =Parallel Error        }
  6811.                           {[IPARALLEL INPUT$,4,3] =Parallel Input$       }
  6812.                           {[IPARALLEL STATUS,4,3] =Parallel Status       }
  6813.                           {[IPARALLEL ABORT  ,4,3] Parallel Abort         }
  6814.                           {[IPARALLEL CLOSE  ,4,3] Parallel Close         }
  6815.                           {[IPARALLEL OPEN   ,4,3] Parallel Open          }
  6816.                           {[IPARALLEL OUT    ,4,3] Parallel Out           }
  6817.                           {[IPARALLEL SEND   ,4,3] Parallel Send          }
  6818.  
  6819. PARALLEL ABORT
  6820. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]Parallel Abort}
  6821.  
  6822. Stops  the  PARALLEL  SEND  or  PARALLEL OUT commands from transmitting any
  6823. additional  information  over  the parallel port.  Any characters which are
  6824. currently in transit will be completely lost.
  6825.  
  6826.         Parallel Abort
  6827. PARALLEL BASE
  6828. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]=Parallel Base}
  6829.  
  6830. Returns the address of the internal memory area used to handle the parallel
  6831. port.
  6832.  
  6833.         address=Parallel Base
  6834. PARALLEL CHECK
  6835. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]=Parallel Check}
  6836.  
  6837. Returns  a  value  of  TRUE  (-1) if the parallel port is ready for use, or
  6838. FALSE(0) if it's not available.
  6839.  
  6840.         c=Parallel CHECK
  6841. PARALLEL CLOSE
  6842. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]Parallel Close}
  6843.  
  6844. Closes the parallel port, and frees up any memory back to the system. 
  6845.  
  6846.         Parallel Close
  6847. PARALLEL ERROR
  6848. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]=Parallel Error}
  6849.  
  6850. Checks  for  an  error  in  the  current  transmission.  If it's proceeding
  6851. normally,  you get a value of zero.  Any other value indicates a problem of
  6852. some sort.
  6853.  
  6854.         e=Parallel Error
  6855. PARALLEL INPUT$
  6856. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]=Parallel Input$}
  6857.  
  6858. Waits for a specific number of characters from the parallel port.
  6859.  
  6860.         d=Parallel Input$(length)
  6861.  
  6862. Since  the parallel port doesn't have an internal buffer area, your program
  6863. will  halt  completely  until the characters are successfully received.  If
  6864. the  requested  bytes  haven't  arrived  after a reasonable amount of time,
  6865. you'll get a time-out error.
  6866.  
  6867.         d=Parallel Input$(length ,stop)
  6868.  
  6869. stop  enters  an  optional a stop character which will end the transmission
  6870. the moment it's recieved.
  6871.  
  6872. PARALLEL OPEN
  6873. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]Parallel Open}
  6874.  
  6875. Initialises the parallel port for use by your AMOS program.
  6876.  
  6877.         Parallel Open
  6878. PARALLEL OUT
  6879. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]Parallel Out}
  6880.  
  6881. Transmits  some  characters  through  the  parallel  port  starting  from a
  6882. specific memory address.
  6883.  
  6884.         Parallel Out address, length
  6885. PARALLEL SEND
  6886. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]Parallel Send}
  6887.  
  6888. Sends  a  string  to the parallel port using multitasking.  The instruction
  6889. returns  immediately back to AMOS Basic, without waiting for the text to be
  6890. actually transmitted.
  6891.  
  6892.         Parallel Send a$
  6893.  
  6894. PARALLEL STATUS
  6895. {[RAMOSPro_Examples:Examples/H-8/Help_81.AMOS,0,4]=Parallel Status}
  6896.  
  6897. Returns   information   about  the  parallel  port.   Each  possibility  is
  6898. represented by a single bit in the result.
  6899.  
  6900.         s=Parallel Status
  6901.  
  6902. Bit     Function
  6903.  0      Printer selected
  6904.  1      Paper out
  6905.  2      Printer busy
  6906.  3      Direction (read=0 / write=1)
  6907.  
  6908. Using the AmigaDos Libraries
  6909.                           {[IDOSCALL       ,4,3] =Doscall                }
  6910.                           {[IEQU           ,4,3] =Equ                    }
  6911.                           {[IEXECALL       ,4,3] =Execall                }
  6912.                           {[IGFXCALL       ,4,3] =Gfxcall                }
  6913.                           {[IINTCALL       ,4,3] =Intcall                }
  6914.                           {[ILIB BASE      ,4,3] =Lib Base               }
  6915.                           {[ILIB CALL      ,4,3] =Lib Call               }
  6916.                           {[ILVO           ,4,3] =Lvo                    }
  6917.                           {[ISTRUC=        ,4,3] =Struc=                 }
  6918.                           {[ILIB CLOSE      ,4,3] Lib Close               }
  6919.                           {[ILIB OPEN       ,4,3] Lib Open                }
  6920.                           {[ISET EQUATE BANK,4,3] Set Equate Bank         }
  6921. DOSCALL
  6922. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]=Doscall}
  6923.  
  6924. Calls a routine from the DOS library.
  6925.  
  6926. As  with  LIB  CALL, you'll first need to set up the control registers into
  6927. D0-D7 and A0-A3 using the AREG() and DREG() functions.
  6928.  
  6929. After  the  command  has  been executed, the return value will be available
  6930. from D0 as the result.
  6931.  
  6932.         result=Doscall(function_offset)
  6933.  
  6934. function_offset  enters  the  offset to the relevant library function.  The
  6935. offset  can  be  either a simple number, or a named function (using the LVO
  6936. command).
  6937.  
  6938. EXECALL
  6939. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]=Execall}
  6940.  
  6941. Calls the EXEC library with the selected offset value.
  6942.  
  6943. On  entry,  registers D0 to D7 and A0 to A2 MUST be loaded with the control
  6944. settings required by your function.  At the end, the contents of D0 will be
  6945. returned to AMOS Basic.
  6946.  
  6947.         result=Execall(function_offset)
  6948.  
  6949. GFXCALL
  6950. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]=Gfxcall}
  6951.  
  6952. Executes  your  chosen  function straight from the Graphics library, taking
  6953. the parameters from the DREG() and AREG() arrays.
  6954.  
  6955. function_offset enters the offset to the function you wish to call.  It can
  6956. also be set using the LVO function if required.
  6957.  
  6958.         result=Gfxcall(function_offset)
  6959. INTCALL
  6960. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]=Intcall}
  6961.  
  6962. Calls a command directly from the Intuition library. 
  6963.  
  6964. Before  using  this  function,  it's  vital to load the appropriate control
  6965. parameters  into  the  registers D0-D7 and A0-A3.  This can be accomplished
  6966. with the AREG() and DREG() variables from AMOS Basic.
  6967.  
  6968. When  the  function terminates, the contents of D0 will be returned back to
  6969. your program.
  6970.  
  6971.         result=Intcall(function_offset)
  6972. LIB BASE
  6973. Returns  the  base  address  of  the  selected  library.  It can be used in
  6974. conjunction  with  the  STRUC  command  to  manipulate  the  internal  data
  6975. structures directly.
  6976.  
  6977.         address=Lib Base(channel)
  6978. LIB CALL
  6979. Calls  your  chosen  library  command, and returns the result to your Basic
  6980. program.
  6981.  
  6982. function_offset  holds  the  offset  to  the  library  function you want to
  6983. execute.  It can be entered by name using the LVO function.
  6984.  
  6985. Before calling this function, you'll need to load the appropriate parameter
  6986. values  into  the  Address  and  Data  registers  with  AREG()  and DREG().
  6987. Similarly,  after  the  function has been successfully executed, any return
  6988. values will be available immediately from the AREG and DREG variables.
  6989.  
  6990.         result=Lib Call(channel,function_offset)
  6991. LIB CLOSE
  6992.  
  6993. Closes one or all of the currently open libraries
  6994.  
  6995.         Lib Close 
  6996.  
  6997. Closes ALL libraries in a single operation.
  6998.  
  6999.         Lib Close channel
  7000.  
  7001. Closes a single Amiga library
  7002. LIB OPEN
  7003.  
  7004. Calls  the OPEN LIBRARY function from EXEC.  If the library is external, it
  7005. will  be  loaded  into memory from the LIBS folder of your present start-up
  7006. disc.
  7007.  
  7008.         Lib Open channel,"name.library",version
  7009.  
  7010. version specifies the minimum version number of the library to be installed
  7011. into memory.  Use a value of zero if you're unsure.
  7012.  
  7013. SET EQUATE BANK
  7014.  
  7015. Allocates  a memory bank for use by the automatic equate system.  It should
  7016. be  called  up BEFORE the first equate in your program, preferably near the
  7017. beginning.
  7018.  
  7019. bank_number   is  the  number  of  a  memory  bank  to  be  used  for  your
  7020. equates,ranging from 1 to 65535.  Beware!  Any bank of the same number WILL
  7021. BE ERASED when the equates are installed in memory, WITHOUT warning!
  7022.  
  7023.         Set Equate Bank bank_number
  7024.  
  7025. LVO
  7026.  
  7027. Returns the Library Vector Offset associated with the selected function.
  7028.  
  7029. The  function  name  will  be translated automatically when your program is
  7030. first  tested,  and  placed in a memory bank for future use.  If it doesn't
  7031. exist, you'll get an "Equate not found error" from the Editor.
  7032.  
  7033. Before  using this function, you'll need to set up a memory bank with a SET
  7034. EQUATE BANK command.  Otherwise, you'll get an appropriate error message.
  7035.  
  7036.         offset=LVO("Name_of_the_function")
  7037.  
  7038. EQU
  7039.  
  7040. EQU returns any standard equate value used by the Amiga system libraries.
  7041.  
  7042. The  equate  can  represent  anything from the offset to a structure,to the
  7043. names  of  your various bit masks.  Providing it's supplied on the standard
  7044. Amiga include files, it will be immediately available from AMOS Basic.
  7045.  
  7046. The  only  exception  to this rule, are the library offsets.These should be
  7047. obtained with the =LVO() function.
  7048.  
  7049. It's  important  to  emphasise  that  the  name  string MUST be a constant.
  7050. Expressions are NOT allowed!
  7051.  
  7052.         equate=Equ("name_of_the_equate")
  7053.  
  7054. STRUC
  7055.  
  7056. STRUC provides you with a simple way of assigning a value to any one of the
  7057. elements of a system structure.
  7058.  
  7059.         value=Struc(address,"offset_name")
  7060.  
  7061.         Struc(address,"offset_name")=value
  7062.  
  7063. address  holds  the address of your structure in memory.  This will usually
  7064. be returned by either a LIB BASE or a DEV BASE function.
  7065.  
  7066. Offset_Name  is  the  name of the relevant data object from the appropriate
  7067. manual.
  7068.  
  7069. The  name  will  be converted into the offset number by AMOS Basic using
  7070. the powerful auto-equate system.  You'll therefore need to include a SET
  7071. EQUATE BANK  command  near  the  start of your program in order to
  7072. initialise this feature.
  7073.  
  7074. Devices
  7075.  
  7076.                         {[IDEV ABORT  ,4,3] Dev Abort                   }
  7077.                         {[IDEV BASE  ,4,3] =Dev Base                   }
  7078.                         {[IDEV CHECK ,4,3] =Dev Check                  }
  7079.                         {[IDEV CLOSE  ,4,3] Dev Close                   }
  7080.                         {[IDEV DO     ,4,3] Dev Do                      }
  7081.                         {[IDEV OPEN   ,4,3] Dev Open                    }
  7082.                         {[IDEV SEND   ,4,3] Dev Send                    }
  7083.                         {[IOPEN PORT ,4,3] =Open Port                  }
  7084.                         {[IPORT      ,4,3] =Port                       }
  7085.  
  7086. DEV ABORT
  7087.  
  7088. Executes an AbortIO and a WaitIO command to clear all pending action of the
  7089. specified  device.   You  can  use this instruction to exit directly from a
  7090. multitasking operation, without waiting for it to complete normally.
  7091.  
  7092.         Dev Abort channel
  7093. DEV BASE
  7094.  
  7095. Returns  the  base  address  of  the  IO  structure assigned to the current
  7096. device.   This  structure can now be manipulated directly using the STRUC()
  7097. instructions as required.
  7098.  
  7099.         address=Dev Base(channel)
  7100. DEV CHECK
  7101.  
  7102. Performs  a  CheckIO  on the specified channel, and passes the return value
  7103. back to AMOS Basic.
  7104.  
  7105. DEV CLOSE
  7106.  
  7107. Closes  one  or more opened devices, as initialised with DEV OPEN.  It then
  7108. returns  the  memory  used  by  the  IO  structure  back to AMOS Basic, and
  7109. releases the message port for subsequent use.
  7110.  
  7111.         Dev Close
  7112.  
  7113. Closes all devices
  7114.  
  7115.         Dev Close channel
  7116.  
  7117. Channel selects a single device to be shut down.
  7118. DEV DO
  7119.  
  7120. Executes a DOIO operation on the specified channel.
  7121.  
  7122. You  should  of course, set the proper internal parameters of the structure
  7123. using the STRUC() command before calling this option.
  7124.  
  7125.         Dev Do channel,command
  7126.  
  7127. channel is the number of a previously opened device channel
  7128.  
  7129. command  holds  the number the IO command you wish to DO.  This command can
  7130. be entered directly using it's name using the built in EQU function.
  7131.  
  7132. DEV OPEN
  7133.  
  7134. Opens  a  communication  port, and prepares the device for use by your AMOS
  7135. programs.    If   this   device  is  not  already  installed,  it  will  be
  7136. automatically loaded from the DEVS folder of your current start-up disc.
  7137.  
  7138.         Dev Open(channel,"name.device",iolength,unitnumber,flags)
  7139. DEV SEND
  7140.  
  7141. Calls  the  SendIO  command  from  Exec,  and runs your operation using the
  7142. Amiga's  built-in  multitasking  system.   Your  new  process  will now run
  7143. invisibly   in   the  background.   So  your  AMOS  program  will  continue
  7144. immediately from the next instruction.
  7145.  
  7146.         Dev Send channel,command
  7147.  
  7148. OPEN PORT
  7149. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]Open Port}
  7150.  
  7151. Provides  a  simple  way of accessing the various devices connected to your
  7152. Amiga.
  7153.  
  7154.         Open Port channel number,"PAR:"
  7155.  
  7156. For the Parallel port.
  7157.  
  7158.         Open Port channel number,"SER:"
  7159.  
  7160. For the RS232 (serial) port.
  7161.  
  7162.         Open Port  channel number,"PRT:"
  7163.  
  7164. For the Printer port.
  7165.  
  7166. Once  you've  opened  your  channel,  you  can  access  it using any of the
  7167. INPUT#,INPUT$,PRINT#  or  LINE  INPUT# commands, just as if it was a normal
  7168. disc channel.
  7169.  
  7170. PORT
  7171. {[RAMOSPro_Examples:Examples/H-6/Help_67.AMOS,0,4]Port}
  7172.  
  7173. Tests  a  port you've previous initialised with OPEN PORT, and sees if it's
  7174. waiting for you to read it.
  7175.  
  7176.         test=PORT(channel number)
  7177.  
  7178. You'll get a value of True (-1) if there's  some data ready, otherwise 
  7179. False (0).
  7180. Arexx
  7181.  
  7182.                         {[IAREXX      ,4,3] =Arexx                      }
  7183.                         {[IAREXX$     ,4,3] =Arexx$                     }
  7184.                         {[IAREXX ANSWER,4,3] Arexx Answer                }
  7185.                         {[IAREXX CLOSE ,4,3] Arexx Close                 }
  7186.                         {[IAREXX EXIST ,4,3] Arexx Exist                 }
  7187.                         {[IAREXX OPEN  ,4,3] Arexx Open                  }
  7188.                         {[IAREXX WAIT  ,4,3] Arexx Wait                  }
  7189. AREXX
  7190. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]=Arexx}
  7191.  
  7192. Performs   a  GET  MESSAGE  command  from  the  Amiga's  operating  system.
  7193. Depending on the result, you'll get one of the following values.
  7194.  
  7195. 0   There's no message. Try again later.
  7196.  
  7197. 1   A message has just arrived. But it doesn't need a response.
  7198.  
  7199. 2   A message has been received. Please answer immediately with an
  7200.     appropriate return string.
  7201.  
  7202.         status=Arexx
  7203. AREXX$
  7204. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]=Arexx$}
  7205.  
  7206. After  a  message  has  been successfully received from an AREXX compatible
  7207. program, you can read it's contents with the AREXX$ function.
  7208.  
  7209.         message$=Arexx$(arg_number)
  7210.  
  7211. arg_number  is  the number of the argument you wish to read, ranging from 0
  7212. to 15.  If it's not included, you'll get an empty string "".
  7213.  
  7214. AREXX ANSWER
  7215. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]Arexx Answer}
  7216.  
  7217. Replies  to  a  message  passed  from another AREXX program running on your
  7218. Amiga.
  7219.  
  7220.         Arexx Answer error
  7221.         Arexx Answer error,return$
  7222. AREXX CLOSE
  7223. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]Arexx Close}
  7224.  
  7225. Closes a previously opened AREXX communications port.
  7226.  
  7227.         Arexx Close
  7228. AREXX EXIST
  7229. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]Arexx Exist}
  7230.  
  7231. Checks  for  the  presence  of  a  named  communication port in the Amiga's
  7232. memory.   You'll get a value of TRUE(-1) if it's available, and a FALSE (0)
  7233. if there's some sort of problem.
  7234.  
  7235.         test=Arexx Exist("PORT_NAME")
  7236. AREXX OPEN
  7237. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]Arexx Open}
  7238.  
  7239. Sets up an AREXX communication port ready for immediate use.
  7240.  
  7241.         Arexx Open "PORT_NAME"
  7242.  
  7243. AREXX WAIT
  7244. {[RAMOSPro_Examples:Examples/H-8/Help_84.AMOS,0,4]Arexx Wait}
  7245.  
  7246. Halts your AMOS program completely until a message arrives from one of your
  7247. concurrent programs.
  7248.  
  7249.         Arexx Wait
  7250.  
  7251. Memory Conservation
  7252.  
  7253.                          {[ICHIP FREE       ,4,3] =Chip Free             }
  7254.                          {[IFAST FREE       ,4,3] =Fast Free             }
  7255.                          {[ICLOSE EDITOR    ,4,3] Close Editor           }
  7256.                          {[ICLOSE WORKBENCH ,4,3] Close Workbench        }
  7257.                          {[IKILL EDITOR     ,4,3] Kill Editor            }
  7258. CLOSE EDITOR
  7259. {[RAMOSPro_Examples:Examples/H-5/Help_54.AMOS,0,4]Close Editor}
  7260.  
  7261. CLOSEs  the  EDITOR  window  while  your  program is running, saving 55k of
  7262. memory.
  7263.  
  7264.         Close Editor
  7265. CLOSE WORKBENCH
  7266. {[RAMOSPro_Examples:Examples/H-5/Help_54.AMOS,0,4]Close Workbench}
  7267.  
  7268. Closes  the  Workbench  and kills off any multi-tasking programs, saving at
  7269. least 40k of memory for your AMOS Basic programs.
  7270.  
  7271.         Close Workbench
  7272.  
  7273. CHIP FREE
  7274. {[RAMOSPro_Examples:Examples/H-6/Help_64.AMOS,0,4]=Chip Free}
  7275.  
  7276. Returns  the  amount  of FREE CHIP memory.  This memory can be used to hold
  7277. screens, objects and sound samples.
  7278.  
  7279.         Print Chip Free
  7280. FAST FREE
  7281. {[RAMOSPro_Examples:Examples/H-6/Help_64.AMOS,0,4]=Fast Free}
  7282.  
  7283. Returns  the  number of bytes of FAST memory FREE for use.  Fast memory can
  7284. be used for static items like variables and AMAL animation sequences.
  7285.  
  7286.         Print Fast Free
  7287. KILL EDITOR
  7288.  
  7289. Stores  the  programs  you  are  editing on the disc and removes the Editor
  7290. completely  from  memory,  saving  at least 40K of extra space!  The Editor
  7291. will  be  reloaded  after  your  program  has finished, along with all your
  7292. current program listings.
  7293.  
  7294.         Kill Editor
  7295.  
  7296.  
  7297. Fonts
  7298.                         {[IFONT$       ,4,3] =Font$                     }
  7299.                         {[ITEXTBASE    ,4,3] =Text Base                 }
  7300.                         {[ITEXTLENGTH  ,4,3] =Text Length               }
  7301.                         {[ITEXTSTYLES  ,4,3] =Text Styles               }
  7302.                         {[IGETDISCFONTS,4,3] Get Disc Fonts             }
  7303.                         {[IGETFONTS    ,4,3] Get Fonts                  }
  7304.                         {[IGETROMFONTS ,4,3] Get Rom Fonts              }
  7305.                         {[ISETFONT     ,4,3] Set Font                   }
  7306.                         {[ISETTEXT     ,4,3] Set Text                   }
  7307.                         {[ITEXT        ,4,3] Text                       }
  7308.  
  7309.  
  7310. FONT$
  7311. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]=Font$}
  7312.  
  7313. FONT$  returns details about the chosen text style.  The result is a string
  7314. of exactly 38 characters, in the following format.
  7315.  
  7316. 1  - 29  Font name
  7317. 30 - 33  Font height
  7318. 34 - 37  Identifier (Rom or Disc)
  7319.  
  7320.         a$=Font$(font_number)
  7321.  
  7322. GET FONTS
  7323. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]Get Fonts}
  7324.  
  7325. Creates  an  internal  list  of  all  available  text fonts.  These include
  7326. built-in  ROM  fonts,  and the DISC fonts on your start-up disc.  GET FONTS
  7327. should  be called once at the start of your program, before you select your
  7328. font  with  the SET TEXT command.  You can scan through the available fonts
  7329. using the FONT$ function.
  7330.  
  7331.         Get Fonts
  7332.  
  7333. GET DISC FONTS
  7334. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]Get Disc Fonts}
  7335.  
  7336. Creates  an internal list of the fonts provided in the FONTS:  directory of
  7337. your  current start-up disc.  This command can be used as an alternative to
  7338. GET FONTS.
  7339.  
  7340.          Get Disc Fonts
  7341.  
  7342. If  you  want  to  read the fonts from another disc, use the ASSIGN command
  7343. like so:
  7344.  
  7345.          Assign "FONTS:" To "Df1:FONTS"
  7346. GET ROM FONTS
  7347. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]Get Rom Fonts}
  7348.  
  7349. Generates an internal list of the Rom fonts provided by Amiga's Hardware. 
  7350.  
  7351.         Get Rom Fonts
  7352. SET FONT
  7353. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]Set Font}
  7354.  
  7355. Selects  the  FONT  to  be used by the next TEXT command, and loads it into
  7356. memory  if  required.   Before using this command, you'll need to create an
  7357. internal font list with either GET FONTS, GET DISC FONTS or GET FONT FONTS.
  7358.  
  7359.         Set Font number
  7360. SET TEXT
  7361. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]Set Text}
  7362.  
  7363. Selects the style of the current graphics font.
  7364.  
  7365.         Set Text stylenumber
  7366.  
  7367. Stylenumber is a bit-pattern with the format:
  7368.  
  7369. Bit 0 = underlined
  7370. Bit 1 = bold 
  7371. Bit 2 = italic.
  7372. TEXT
  7373. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]Text}
  7374.  
  7375. Prints some graphic TEXT at your chosen SCREEN coordinates.
  7376.  
  7377.         Text x,y,t$
  7378.  
  7379. Note:   t$  must  be  a string.  If you want to use a number you must first
  7380. convert it into a string with the STR$ function.
  7381.  
  7382. TEXT BASE
  7383. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]=Text Base}
  7384.  
  7385. Returns  the  position of the coordinate BASEline used by your present TEXT
  7386. font.  It's similar to the Hot Spot of a Sprite.
  7387.  
  7388.         b=Text Base
  7389. TEXT LENGTH
  7390. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]=Text Length}
  7391.  
  7392. Returns the LENGTH of a section of a graphic character string in pixels.
  7393.  
  7394.         w=Text Length(t$)
  7395. TEXT STYLES
  7396. {[RAMOSPro_Examples:Examples/H-7/Help_79.AMOS,0,4]=Text Styles}
  7397.  
  7398. Returns the current TEXT STYLES you've assigned with SET TEXT.
  7399.  
  7400.         s=Text Styles
  7401.  
  7402. Speech
  7403.                           {[IMOUTHHEIGHT,4,3] Mouth Height              }
  7404.                           {[IMOUTHREAD   ,4,3] Mouth Read                }
  7405.                           {[IMOUTHWIDTH ,4,3] =Mouth Width              }
  7406.                           {[ISAY         ,4,3] Say                       }
  7407.                           {[ISETTALK     ,4,3] Set Talk                  }
  7408.                           {[ITALKMISC    ,4,3] Talk Misc                 }
  7409.                           {[ITALKSTOP    ,4,3] Talk Stop                 }
  7410. MOUTH WIDTH
  7411. {[RAMOSPro_Examples:Examples/H-8/Help_83.AMOS,0,4]=Mouth Width}
  7412.  
  7413. Returns  the  current  width  of  the "mouth" used to generate your speech.
  7414. You'll get a NEGATIVE value if the speech is over.
  7415.  
  7416.         Print Mouth Width
  7417.  
  7418. MOUTH HEIGHT
  7419. {[RAMOSPro_Examples:Examples/H-8/Help_83.AMOS,0,4]=Mouth Height}
  7420.  
  7421. Returns  the  height of the imaginary mouth used to create your speech at a
  7422. given instant.  You'll get get a NEGATIVE value if the speech has finished.
  7423.  
  7424.         Print Mouth Height
  7425.  
  7426. MOUTH READ
  7427. {[RAMOSPro_Examples:Examples/H-8/Help_83.AMOS,0,4]Mouth Read}
  7428.  
  7429. Waits for a movement of the mouth, and reads the new position directly into
  7430. =MOUTH WIDTH and =MOUTH HEIGHT.
  7431.  
  7432. SAY
  7433. {[RAMOSPro_Examples:Examples/H-7/Help_73.AMOS,0,4]Say}
  7434.  
  7435. SAY commands allow your Amiga to speak!
  7436.  
  7437.         Say speech$
  7438.  
  7439. SET TALK
  7440. {[RAMOSPro_Examples:Examples/H-7/Help_73.AMOS,0,4]Set Talk}
  7441.  
  7442. SETs the style of synthetic speech which is generated by the SAY command.
  7443.  
  7444.         Set Talk sex,mode,pitch,rate
  7445.  
  7446. sex  =1 for female 
  7447.      =0 for male.
  7448.  
  7449. mode  toggles  the intonation system.  A value of one activates it and zero
  7450. turns it off.
  7451.  
  7452. pitch sets the tone of the speech from a low of 65 to a high of 320.
  7453.  
  7454. rate  enters the speed of the speech in words per minute.  Allowable values
  7455. range from 40 and 400.
  7456.  
  7457. TALK MISC
  7458. {[RAMOSPro_Examples:Examples/H-8/Help_83.AMOS,0,4]Talk Misc}
  7459.  
  7460. Set  the  volume  and  the  frequency  of  the  voice  used by the next SAY
  7461. instruction.
  7462.  
  7463.         Talk Misc volume,frequency
  7464.  
  7465. volume   : 0 to 64
  7466.  
  7467. frequency: 5000 to 25000.
  7468. TALK STOP
  7469. {[RAMOSPro_Examples:Examples/H-8/Help_83.AMOS,0,4]Talk Stop}
  7470.  
  7471. If you're using SAY in multitask mode, this shuts the Amiga up!
  7472.  
  7473.         Talk Stop
  7474.  
  7475. Multi-tasking
  7476.  
  7477.                           {[IAMOS HERE     ,4,3] Amos Here               }
  7478.                           {[IAMOS LOCK     ,4,3] Amos Lock               }
  7479.                           {[IAMOS TO BACK  ,4,3] Amos To Back            }
  7480.                           {[IAMOS TO FRONT ,4,3] Amos To Front           }
  7481.                           {[IAMOS UNLOCK   ,4,3] Amos Unlock             }
  7482.                           {[IMULTI WAIT    ,4,3] Multi Wait              }
  7483. AMOS HERE
  7484. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]=Amos Here}
  7485.  
  7486. AMOS  HERE  returns  a value of True (-1) if AMOS Professional is currently
  7487. displayed on the screen, and 0 if another Workbench application is visible.
  7488.  
  7489.         test=Amos Here 
  7490. AMOS LOCK
  7491. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]Amos Lock}
  7492.  
  7493. Stops  you  from  flicking  between  the  AMOS Professional display and the
  7494. Workbench screen using the Amiga+A keys.
  7495.  
  7496.         Amos Lock
  7497. AMOS TO BACK
  7498. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]Amos To Back}
  7499.  
  7500. Hides  the  AMOSPro  screen and allows you to access any other applications
  7501. which are running on your Amiga.
  7502.  
  7503.         Amos To Back
  7504. AMOS TO FRONT
  7505. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]Amos to Front}
  7506.  
  7507. Removes  the current application from the display, and replaces it with the
  7508. present AMOS screen.
  7509.  
  7510.         Amos To Front
  7511. AMOS UNLOCK
  7512. {[RAMOSPro_Examples:Examples/H-7/Help_70.AMOS,0,4]Amos Unlock}
  7513.  
  7514. Reverses  the  effect of the AMOS LOCK command and allows you to flick back
  7515. and  forth  between  AMOS  Professional  and  your  current  application by
  7516. pressing Amiga+A
  7517.  
  7518.         Amos Unlock
  7519. MULTI WAIT
  7520. {[RAMOSPro_Examples:Examples/H-5/Help_53.AMOS,0,4]Multi Wait}
  7521.  
  7522. Holds  your AMOS program, freeing time for the other applications which are
  7523. running   in   the   background.   It  should  not  be  used  for  accurate
  7524. synchronisation  effects  as  the  number of Vbl's depends on the number of
  7525. applications which are being executed using multi-tasking.
  7526.  
  7527.         Multi Wait
  7528. System Requesters
  7529.  
  7530.                         {[IREQUEST OFF,4,3] Request Off                  }
  7531.                         {[IREQUEST ON ,4,3] Request On                   }
  7532.                         {[IREQUEST WB ,4,3] Request Wb                   }
  7533.  
  7534. REQUEST OFF
  7535.  
  7536. Does  not  allow  the  AMOS  system  to  display the requester screens that
  7537. occasionally  pop  up  in  front  of  the current screen and REQUEST you to
  7538. perform an action, like inserting a disc.
  7539.  
  7540.         Request Off
  7541.  
  7542. REQUEST ON
  7543.  
  7544. Returns you to the normal or default REQUESTer mode. 
  7545.  
  7546.         Request On
  7547. REQUEST WB
  7548.  
  7549. Uses the standard Workbench Requestor for all messages.
  7550.  
  7551.         Request Wb
  7552.  
  7553. ERR$
  7554. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_2.AMOS,0,4]=Err$}
  7555.  
  7556. Returns  a string containing the chosen error message.  If the error number
  7557. is out of range, =ERR$() will return an empty string "" instead.
  7558.  
  7559.         s$=ERR$(Error_Number)
  7560.  
  7561. Note:  =ERR$() will only return a string if the error messages are actually
  7562. loaded in memory.
  7563.  
  7564. ERRN
  7565. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_1.AMOS,0,4]=Errn}
  7566.  
  7567. Returns the identification number of a last error in your program.
  7568.  
  7569.         Print Errn
  7570. ERROR
  7571. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_1.AMOS,0,4]Error}
  7572.  
  7573. Simulates an error and exits your program with an error message.
  7574.  
  7575.         Error n
  7576. ERRTRAP
  7577. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_2.AMOS,0,4]=Errtrap}
  7578.  
  7579. Returns   the   error  number  which  occurred  during  the  previous  TRAP
  7580. instruction.  If no error has been detected, you'll get a value of zero.
  7581.  
  7582.         test=Errtrap
  7583. ON ERROR
  7584. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_1.AMOS,0,4]On Error}
  7585.  
  7586. ON  ERROR  can be used to detect and trap an ERROR without having to return
  7587. to the editor window.
  7588.  
  7589.         On Error Goto label
  7590.         On Error Proc name
  7591. RESUME
  7592. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_1.AMOS,0,4]Resume}
  7593.  
  7594. Returns back to the statement that originally caused an error, after it has
  7595. been  dealt  with  by one of your ON ERROR routines.  If you specify a line
  7596. number the program will jump to that point instead.
  7597.  
  7598.         Resume linenumber
  7599.  
  7600. Also check out the RESUME LABEL and RESUME NEXT instructions.
  7601. RESUME LABEL
  7602. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_1.AMOS,0,4]Resume Label}
  7603.  
  7604. Restarts your program after an error from the named LABEL.
  7605.  
  7606.         Resume Label labelname
  7607. RESUME NEXT
  7608. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_1.AMOS,0,4]Resume Next}
  7609.  
  7610. Resumes  your  program  after an error.  The program returns to the command
  7611. just after the instruction which generated it.
  7612.  
  7613.         Resume Next
  7614. TRAP
  7615. {[RAMOSPro_Tutorial:Tutorials/Error_Handling_2.AMOS,0,4]Trap}
  7616.  
  7617. TRAP executes a single instruction, and traps any errors which occur.  If a
  7618. problem  crops  up  during  this instruction, your program will continue as
  7619. normal.  You can now find the number of the error using =ERRTRAP
  7620.  
  7621.         Trap Normal_Instruction
  7622.  
  7623. Stop..Press
  7624.                        {[IHelpMemory   ,4,3] 1 Meg Users Read This!         }
  7625.                        {[IHelp3DCOMP   ,4,3] Compiler/3D Extensions         }
  7626.                        {[IHelpConfig   ,4,3] Important Configuration info   }
  7627.                        {[IHelpAdvert   ,4,3] Programmers/Artists read this  }
  7628.                        {[IHelpPecision ,4,3] Single and Double Precision    }
  7629.                        {[IHelpDithell  ,4,3] Procedures Library             }
  7630.                        {[IHelpCredits  ,4,3] Credits                        }
  7631.  
  7632. AMOS Interface Instructions
  7633.                        {[IHelpIops     ,4,3] Arithmetic Operations          }
  7634.                        {[IHelpIzones   ,4,3] Buttons and Edit Zones         }
  7635.                        {[IHelpIactive  ,4,3] Lists and Sliders              }
  7636.                        {[IHelpIgeneral ,4,3] General purpose commands       }
  7637.                        {[IHelpIgraphics,4,3] Text and Graphics              }
  7638.                        {[IHelpIbox     ,4,3] Resource commands              }
  7639.  
  7640.  
  7641. Interface Operations
  7642.         {[II!,4,3] ! String addition  } {[II/,4,3] / Divide           } {[II|,4,3] | Logical Or       }
  7643.         {[II#,4,3] # Number to string } {[II<,4,3] < Less than        } {[II-,4,3] - Minus            }
  7644.         {[II&,4,3] & Logical And      } {[II>,4,3] > Greater than     } {[II_MA,4,3] =MAx               }
  7645.         {[II*,4,3] * Multiply         } {[II=,4,3] = Equals           } {[II_MI,4,3] =MInimum           }
  7646.         {[II+,4,3] + Add              } {[II\,4,3] \ Not Equals       } {[II_NE,4,3] =NEgate            }
  7647.  
  7648.                     {[IHelpIntins,4,3] Return to Interface Instruction Menu }
  7649. Buttons and Edit Zones
  7650.  
  7651.                   {[II_BC,4,3] Button Change      } {[II_KY,4,3] KeYboard short-cut }
  7652.                   {[II_BP,4,3] =ButtonPosition    } {[II_NW,4,3] NoWait             }
  7653.                   {[II_BQ,4,3] ButtonQuit         } {[II_SZ,4,3] SetZonevar         }
  7654.                   {[II_BR,4,3] =ButtonReturn      } {[II_ZC,4,3] Zone Change        }
  7655.                   {[II_BU,4,3] create BUtton      } {[II_ZN,4,3] =Zone Number       }
  7656.                   {[II_DI,4,3] enter DIgits       } {[II_ZP,4,3] =Zone Position     }
  7657.                   {[II_ED,4,3] EDit zone          } {[II_ZV,4,3] =ZoneVar           }
  7658.  
  7659.                     {[IHelpIntins,4,3] Return to Interface Instruction Menu }
  7660. Lists and Sliders
  7661.  
  7662.                     {[II_AL,4,3] Active List                          }
  7663.                     {[II_AR,4,3] Array Read                           }
  7664.                     {[II_AS,4,3] Array Size                           }
  7665.                     {[II_IL,4,3] Inactive List                        }
  7666.                     {[II_HS,4,3] Horizontal Slider                    }
  7667.                     {[II_HT,4,3] HyperText                            }
  7668.                     {[II_SS,4,3] Set Slider                           }
  7669.                     {[II_VS,4,3] Vertical Slider                      }
  7670.  
  7671.                     {[IHelpIntins,4,3] Return to Interface Instruction Menu }
  7672. General purpose interface commands
  7673.         {[II_BA,4,3] BAse coordinates   } {[II_P3,4,3] =Parameter 3       } {[II_SM,4,3] Screen Move        }
  7674.         {[II_BX,4,3] =Base X            } {[II_P4,4,3] =Parameter 4       } {[II_SV,4,3] Set Variable       }
  7675.         {[II_BY,4,3] =Base Y            } {[II_P5,4,3] =Parameter 5       } {[II_SW1,4,3] =Screen Width      }
  7676.         {[II_CA,4,3] CAll machine code  } {[II_P6,4,3] =Parameter 6       } {[II_SX,4,3] =Size in X         }
  7677.         {[II_CX,4,3] =Center on X       } {[II_P7,4,3] =Parameter 7       } {[II_SY,4,3] =Size in Y         }
  7678.         {[II_EX,4,3] EXit program       } {[II_P8,4,3] =Parameter 8       } {[II_UI,4,3] =User Instruction  }
  7679.         {[II_IF,4,3] If..               } {[II_P9,4,3] =Parameter 9       } {[II_VA,4,3] =VAriable          }
  7680.         {[II_JP,4,3] JumP (goto)        } {[II_RT,4,3] Return (from JS)   } {[II_XA,4,3] =XA                }
  7681.         {[II_JS,4,3] Jump to Subroutine } {[II_RU,4,3] Run Until          } {[II_XB,4,3] =XB                }
  7682.         {[II_LA,4,3] LAbel              } {[II_SA,4,3] SAve block         } {[II_XY,4,3] XY                 }
  7683.         {[II_P1,4,3] =Parameter 1       } {[II_SH,4,3] =Screen Height     } {[II_YA,4,3] =YA                }
  7684.         {[II_P2,4,3] =Parameter 2       } {[II_SI,4,3] define block SIze  } {[II_YB,4,3] =YB                }
  7685.  
  7686.                     {[IHelpIntins,4,3] Return to Interface Instruction Menu }
  7687. Interface Text and Graphics commands
  7688.  
  7689.                   {[II_GB,4,3] Graphic Box        }  {[II_SF,4,3] Set Font           }
  7690.                   {[II_GE,4,3] Graphic Ellipse    }  {[II_SL,4,3] Set Line           }
  7691.                   {[II_GL,4,3] Graphic Line       }  {[II_SP,4,3] Set Pattern        }
  7692.                   {[II_GP,4,3] Graphic Plot       }  {[II_SW2,4,3] Set Writing        }
  7693.                   {[II_GS,4,3] Graphic Square     }  {[II_VT,4,3] Vertical Text      }
  7694.                   {[II_IN,4,3] INk                }  {[II_TH,4,3] =Text Height       }
  7695.                   {[II_PO,4,3] Print Outline text }  {[II_TL,4,3] =Text Length       }
  7696.                   {[II_PR,4,3] PRint text         }  {[II_TW,4,3] =Text Width        }
  7697.  
  7698.                     {[IHelpIntins,4,3] Return to Interface Instruction Menu }
  7699. Resource commands
  7700.  
  7701.                     {[II_BO,4,3] BOx                                  }
  7702.                     {[II_LI,4,3] LIne                                 }
  7703.                     {[II_ME,4,3] =MEssage                             }
  7704.                     {[II_PU,4,3] PUsh                                 }
  7705.                     {[II_UN,4,3] UNpack image                         }
  7706.                     {[II_VL,4,3] Vertical Line                        }
  7707.  
  7708.                     {[IHelpIntins,4,3] Return to Interface Instruction Menu }
  7709. String addition
  7710. Adds two strings together, leaving the address of the result.
  7711.  
  7712.    'string1' 'string2' !
  7713.  
  7714. Generates 'string1string2' and places it's address onto the stack.
  7715. Number to string
  7716. Converts a number into a string.  It can be used to print numbers using the
  7717. PR,PO, or VT commands.
  7718.  
  7719.    number1 #
  7720.  
  7721. Generates the string 'number1' and places it's address on the stack.
  7722. And
  7723. Performs a logical AND operation on two values from the stack.
  7724.  
  7725.    number1 number2 &
  7726. Mul
  7727. Multiplies the top two numbers on the stack, and leaves the result.
  7728.  
  7729.    number1 number2 *
  7730. Plus
  7731. Adds two numbers from the stack and returns the result.
  7732.  
  7733.    number1 number2 +
  7734. Div
  7735. Divides the second number on the stack by the top number.
  7736.  
  7737.    number1 number2 /
  7738. Less than
  7739. Compares  two  numbers on the stack, and returns a value of True(-1) if the
  7740. first is less than the second.
  7741.  
  7742.    number1 number2 <
  7743. Greater than
  7744. Compares  two  numbers  on the stack, and returns a value of True(-1) if the
  7745. first is greater than the second.
  7746.  
  7747.    number1 number2 >
  7748. Equals
  7749. Compares  two  numbers  on the stack, and returns a value of True(-1) if the
  7750. first is equal to the second.
  7751.  
  7752.    number1 number2 =
  7753. Not equals
  7754. Compares  two  numbers  on the stack, and returns a value of True(-1) if the
  7755. first is NOT equal to the second.
  7756.  
  7757.    number1 number2 \
  7758. Or
  7759. Performs a logical OR operation on two values from the stack.
  7760.  
  7761.    number1 number2 |
  7762. Subtract
  7763. Subtracts the second value from the first.
  7764.  
  7765.    number1 number2 -
  7766. Active List
  7767. Generates  a  selection  box which can be used to produce a wide variety of
  7768. file-selectors, or slider boxes.
  7769.  
  7770. AL zone,x,y,width,height,array address,first item,flag,paper,pen;[changes]
  7771.  
  7772. x,y  are  the coordinates of the window on the screen.  x is rounded to the
  7773. nearest 16.
  7774.  
  7775. width,height enter the width and height of the list window in characters.
  7776.  
  7777. array  address  holds  the  address  of  an  array  which you've previously
  7778. installed  into your Interface program using the ARRAY and VDIALOG commands
  7779. from Basic.
  7780.  
  7781. first item is the number of the first item in the list to be displayed.
  7782.  
  7783. flag is a bitmap containing three bits.
  7784.  
  7785.      Bit 0: If it's one AMOS adds a number to each item before it's
  7786.             displayed. Normally the count starts from zero.
  7787.  
  7788.      Bit 1: Used with bit 0. It starts the count from one.
  7789.  
  7790.      Bit 2: If this is zero, the item will be selected the moment it's
  7791.             highlighted with the mouse. If it's set to one, you'll need
  7792.             to click on the item first.
  7793.  
  7794. paper,pen hold the colours of the item text and the window background.
  7795.  
  7796. [changes]   is  a  list  of  Interface  commands  which  will  be  executed
  7797. automatically whenever an item is selected from the box.
  7798.  
  7799. Array Read
  7800. Reads a  value from an AMOS array. The address of this array should already
  7801. have  been  loaded  into  your Interface program using a combination of the
  7802. ARRAY,and VDIALOG commands.
  7803.  
  7804.    address_of_array element_number AR
  7805. Array Size
  7806. Returns the number of elements in an array stored at the specified address.
  7807.  
  7808.    address_of_array AS
  7809. BAse
  7810. {[RAMOSPro_Tutorial:Tutorials/Interface/Simple_requester.AMOS,0,4]BA}
  7811.  
  7812. Set the origin point of all future coordinate calculations.
  7813.  
  7814.    BA x,y;
  7815. Button Change
  7816. {[RAMOSPro_Tutorial:Tutorials/Interface/Working_buttons.AMOS,0,4]BC}
  7817.  
  7818. Changes the position of any active button.
  7819.  
  7820.    BC button number,new position;
  7821. BOx
  7822. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]BO}
  7823.  
  7824. Draws  a  rectangular bar out of an assortment of packed pictures found in
  7825. the resource bank.
  7826.  
  7827.    BOx x,y,first image,width,height;
  7828.  
  7829. x,y  define the position of the top left corner of the box.  As with the LI
  7830. command, the X coordinate will be rounded to the nearest multiple of eight.
  7831.  
  7832. first  image  is  the number of first of the 9 packed images to be used for
  7833. your box.
  7834.  
  7835. width and height set the dimensions of the box on the screen. The width must
  7836. be a multiple of the image width, but the height can be anything you like.
  7837.  
  7838. Button position
  7839.  
  7840. {[RAMOSPro_Tutorial:Tutorials/Interface/Working_buttons.AMOS,0,4]BP}
  7841.  
  7842. Returns the current position of your button.  It's normally used as part of
  7843. a button drawing routine to click the button down when it's selected.
  7844.  
  7845.    BP
  7846. Button Quit
  7847. {[RAMOSPro_Tutorial:Tutorials/Interface/Working_buttons.AMOS,0,4]BQ}
  7848.  
  7849. Makes  the  current  button  definition  an  EXIT button.  It's used in the
  7850. change  brackets  of  a  BU  function  to  trigger  a forced exit from your
  7851. dialogue box when your button is selected.
  7852.  
  7853.    BQ;
  7854. Button Return
  7855. {[RAMOSPro_Tutorial:Tutorials/Interface/Working_buttons.AMOS,0,4]BR}
  7856.  
  7857. Moves the current button to a new setting.
  7858.  
  7859.    BR new position;
  7860.  
  7861. It's normally called from inside a change routine to flip the button into a
  7862. new state when it's selected by the user.
  7863.  
  7864. BUtton
  7865. Defines a button for your dialogue boxes or control panels.
  7866.  
  7867. {[RAMOSPro_Tutorial:Tutorials/Interface/Working_buttons.AMOS,0,4]BU}
  7868.  
  7869. BU number,x,y,width,height,setting,minimum,maximum;[draw][change]
  7870.  
  7871. number  is  the  number of the button you wish to create starting from one.
  7872. If you want to link several button together you can assign them all to the
  7873. same ID number.
  7874.  
  7875. x,y  set  the  coordinates  of  the  top  left  hand corner of your button,
  7876. relative to the BAse point.
  7877.  
  7878. width,height hold the size of the button in pixels.
  7879.  
  7880. setting enters the initial position for your button.
  7881.  
  7882. minimum,maximum hold the smallest and highest values the setting can take.
  7883.  
  7884. [draw]  is  a  list of Interface instructions which will be used to display
  7885. your button on the screen.  These instructions will be called automatically
  7886. whenever the position value changes.
  7887.  
  7888. [change]  is a list of instructions which will be called up when the button
  7889. is  selected by the user.  If these commands change the position value, the
  7890. button will be redrawn using the previous [draw] routine.
  7891.  
  7892. =Base X
  7893. Returns the X coordinate of the origin point used for all future coordinate
  7894. calculations.   This value can be set up using either the BAse command from
  7895. AMOS Interface or directly from your Basic program.
  7896.  
  7897.    BX
  7898. =Base Y
  7899. Gets  the  Y  coordinate  of  the  origin  point used by the AMOS Interface
  7900. graphics commands.
  7901.  
  7902.    BY
  7903. CAll
  7904. Calls a machine code program from an interface routine.
  7905.  
  7906.    CAll address;
  7907.  
  7908. address  is  the  address of a machine code program in memory.  The easiest
  7909. way to load it, is to place it into a DBL variable from AMOS Basic:
  7910.  
  7911. Vdialog(1,0)=Start(6) :Rem Load 0 VA of channel 1 with the address of bank 6
  7912.  
  7913. You can now run your routine using a line like: CAll 0VA;
  7914.  
  7915. Your machine code can modify ALL registers, and should return with an RTS.
  7916. Centre Text
  7917. Finds  the  X  coordinate  needed  to  centre a piece of text neatly on the
  7918. screen.
  7919.  
  7920.    'text' CX
  7921. DIgit
  7922. {[RAMOSPro_Tutorial:Tutorials/Interface/Editing_Zones.AMOS,0,4]DI}
  7923.  
  7924. Creates a simple editing zone especially for numbers.  This zone allows you
  7925. to enter your numbers on the screen, and edit them directly with the cursor
  7926. keys.  Hitting Return will enter the value into memory.  It can now be read
  7927. using the RDIALOG function from your Basic program.
  7928.  
  7929. DI zone number,x,y,width,default,flag,paper,pen
  7930.  
  7931. zone number = the number of your zone.
  7932.  
  7933. x,y  are  the  coordinates  of  the start of your zone ralative to the BAse
  7934. point.  x will be rounded down to the nearest 16.
  7935.  
  7936. width enter the width of your zone in CHARACTERS.
  7937.  
  7938. default holds a value which will be returned as a default.
  7939.  
  7940. flag  selects  whether the default setting should be displayed in the zone.
  7941. If  it's  zero,  the  value  will  be  invisible,  and if flag=1 it will be
  7942. displayed as normal.
  7943.  
  7944. paper,pen are the colours of your text and background respectively.
  7945. EDit Ascii
  7946.  
  7947. {[RAMOSPro_Tutorial:Tutorials/Interface/Editing_Zones.AMOS,0,4]ED}
  7948.  
  7949. Creates  a  text  editing  zone  which  lets  you  enter  your  text on the
  7950. screen, and edit  it  directly  with  the cursor keys.  Hitting Return will
  7951. enter  the  value  into  memory.   It  can  now  be read using the RDIALOG$
  7952. function from your Basic program.
  7953.  
  7954. ED zone number,x,y,width,maxlength,'default',paper,pen
  7955.  
  7956. zone number = the number of your zone.
  7957.  
  7958. x,y  hold  the  coordinates  of the start of your zone ralative to the BAse
  7959. point.  x will be rounded down to the nearest 16.
  7960.  
  7961. width enters  the  width of your zone in CHARACTERS, rounded to the nearest
  7962. EVEN number.
  7963.  
  7964. maxlength sets  the  maximum number of characters which can be entered into
  7965. your string.
  7966.  
  7967. 'default' is a string which will be returned as a default.
  7968.  
  7969. paper,pen are the colours of your text and background respectively
  7970. EXit
  7971. Ends an AMOS Interface program.  This should always be the LAST instruction
  7972. in your routine.
  7973.  
  7974.    EX;
  7975. Graphic Box
  7976. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]GB}
  7977.  
  7978. Draws  a  filled box in the present ink colour.  GB is ideal for generating
  7979. your buttons and dialogue boxes.
  7980.  
  7981.    GB tx,ty,bx,by;
  7982.  
  7983. Displays  a  box  from  tx,ty  to bx,by.  The colour of this box can be set
  7984. using  the  INk  command,  and  it's  fill  pattern  can be changed with SP
  7985. (SetPattern).
  7986.  
  7987. Graphic Ellipse
  7988. Draws a hollow ellipse, or circle at the appropriate point in your dialogue
  7989. box.
  7990.  
  7991.    GE x,y,radius1,radius2;
  7992.  
  7993. If  you  use  the  same  values for both radius1, and radius2, you'll get a
  7994. circle instead.
  7995.  
  7996. Graphic Line
  7997. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]GL}
  7998.  
  7999. Draws  a  line  on  the  screen  between  any two points in the current ink
  8000. colour.  The line style can be set using SL.
  8001.  
  8002.    GL x1,y1,x2,y2;
  8003.  
  8004. All coordinates are measured relative to the BAse point.
  8005. Graphic Plot
  8006. Plots a single point on the screen.
  8007.  
  8008.    GP x,y,colour number;
  8009.  
  8010. x,y are both measured relative to the BAse of the current dialogue box.
  8011. Graphic Square
  8012. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]GS}
  8013.  
  8014. Draws a hollow box on the screen in the current ink colour.
  8015.  
  8016.    GS tx,ty,bx,by;
  8017.  
  8018. All coordinates are measured relative to the BAse point.
  8019. Horizontal Slider
  8020. Draws a working horizontal slider bar on the screen.
  8021.  
  8022. {[RAMOSPro_Tutorial:Tutorials/Interface/Sliders.AMOS,0,4]HS}
  8023.  
  8024. HS zone number,x,y,width,height,position,trigger,total,step;[changes];
  8025.  
  8026. x,y = coordinates of the top left of the slider bar relative to the 
  8027. screen BAse.
  8028.  
  8029. width,height are the dimensions of the slider bar in pixels.
  8030.  
  8031. position  set the initial position.  Allowable position values range from 0
  8032. to "total"
  8033.  
  8034. trigger  enters  the  size  of  the movable block inside your slider bar in
  8035. units of total/width pixels.
  8036.  
  8037. total sets the maximum value which will be returned by the slider.
  8038.  
  8039. Allowable  positions range from 1 to total, with each "step" representing a
  8040. movement of total/width pixels.
  8041.  
  8042. step  controls the distance which will be moved whenever the user clicks on
  8043. the background area of the slider.
  8044.  
  8045. [changes]  holds  a  list  of  Interface  commands  which  will be executed
  8046. whenever the slider is moved by the user.
  8047.  
  8048. HyperText
  8049. Generates  a  hypertext  window, similar to the help system.  Your text can
  8050. include  either  normal  ascii characters, or "hypertext zones".  Each zone
  8051. consists of the following;
  8052.  
  8053.    {[ value ] highlighted text}
  8054. or
  8055.    {[value,paper,pen] highlighted text}
  8056.  
  8057. HT zone,x,y,width,height,textaddress,startline,buffer,paper,pen;[changes]
  8058.  
  8059. zone = number of your zone
  8060.  
  8061. x,y  set the coordinates of top left hand corner of text window.  x will be
  8062. rounded down to the nearest multiple of 16.
  8063.  
  8064. width,height = the size of the display window in characters.
  8065.  
  8066. textaddress = address in memory of the first character in your text.
  8067.  
  8068. startline = the number of the first line to be displayed in your text.
  8069.  
  8070. buffer  sets  the  size  of  an  internal buffer area.  Each hypertext zone
  8071. requires eight bytes.
  8072.  
  8073. paper,pen are the colour of the ink and paper colours used by your text.
  8074.  
  8075. [changes] is a routine which will be called whenever the user clicks on one
  8076. of your hypertext zones.
  8077.  
  8078. If..then
  8079. Executes  an  Interface routine if the result of an expression is True (non
  8080. zero).
  8081.  
  8082.    IF expression;[do if true]
  8083.  
  8084. expression can contain the following operations:
  8085.  
  8086. = equals
  8087. \ not equals
  8088. > greater than
  8089. & and
  8090. | or
  8091.  
  8092. The routine between the brackets [] can be as long as you like.  You're not
  8093. just limited to a single line.
  8094.  
  8095. Inactive List
  8096.  
  8097. Generates  a  window full of items which CANNOT be selected with the mouse.
  8098. These windows are fine for displaying lists of information on the screen.
  8099.  
  8100. IL zone number,x,y,width,height,array address,first item,flag,paper,pen;
  8101.  
  8102. x,y  hold the coordinates of the window on the screen.  x is rounded to the
  8103. nearest 16.
  8104.  
  8105. width,height set the width and height of the list window in characters.
  8106.  
  8107. array  address  enters  the  address  of  an  array which you've previously
  8108. installed  into your Interface program using the ARRAY and VDIALOG commands
  8109. from AMOS Basic.
  8110.  
  8111. first item = the number of the first item in the list to be displayed.
  8112.  
  8113. flag = a bitmap containing two bits.
  8114.  
  8115.    Bit 0: If it's one AMOS adds a number to each item before it's
  8116.           displayed. Normally the count starts from zero.
  8117.  
  8118.    Bit 1: Used with bit 0. It starts the count from one.
  8119.  
  8120. paper,pen are the colours of the item text and the window background.
  8121. INk
  8122. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]IN}
  8123.  
  8124. Set ink,paper and outline colours used by your graphics.
  8125.  
  8126.    IN pen,paper,outline;
  8127. Jump
  8128. Jumps to a label in your Interface program.  This must have been previously
  8129. set up using the LAbel instruction.
  8130.  
  8131.    JP labelnumber;
  8132. Jump to Subroutine
  8133. Calls a subroutine in your AMOS Interface program.
  8134.  
  8135.    JS label number;
  8136.  
  8137. The label should have been previously defined using the LA command.  At the
  8138. end  of  your  subroutine,  you  can  return  to  your main program with RT
  8139. (ReTurn)
  8140.  
  8141. KeY
  8142. Set a keyboard short-cut.  Assigns a control key combination to the current
  8143. button definition.
  8144.  
  8145.    KY ascii,shift;
  8146.  
  8147. ascii  enters  the  ASCII code of your chosen key.  Values from 128 onwards
  8148. represent scan codes instead.
  8149.  
  8150. shift specifies on option list of shift,alt,or control settings.  These are
  8151. entered using a simple bit-map.  See KEY SHIFT for more details.
  8152.  
  8153. Label
  8154. Creates  a  label  in  your  Interface  program for use with the JUmp or JS
  8155. commands
  8156.  
  8157.    LA label number;
  8158.  
  8159. Allowable label numbers range from 0 to 65535.
  8160. LIne
  8161. Draws  a  line  of  images  from  a  series of three components held in the
  8162. resource  bank.   These  components  can  be  created  with the help of the
  8163. resource  editor,and  used  to produce attractive buttons for your dialogue
  8164. boxes.
  8165.  
  8166.    LI x,y,first image,width;
  8167.  
  8168. width  should  be  an  exact  multiple  of  the  width  of your components.
  8169. Otherwise, you may get some pretty strange effects.
  8170.  
  8171. Also  note  that  the  x  coordinate  will  be automatically rounded to the
  8172. nearest multiple of eight.
  8173.  
  8174. MAximum
  8175. Reads two values from the calculation stack, and returns the largest one.
  8176.  
  8177.    value1 value 2 MA
  8178. MEssage
  8179. Takes a message from the resource bank, and places it on the stack.
  8180.  
  8181.    number ME
  8182.  
  8183. MInimum
  8184. Grabs two values from the calculation stack, and returns the smallest one.
  8185.  
  8186.    value1 value2 MI
  8187. NEg
  8188. Flicks a number from positive to negative.
  8189.  
  8190.    number1 NEg
  8191.  
  8192. Returns a value of -number1.
  8193. NoWait
  8194. Used inside the Bchange part of a button definition to ensure that commands
  8195. take effect the moment the button has been selected.  So there's no need to
  8196. wait for the mouse key to be released.
  8197.  
  8198.    NW;
  8199. Param 1
  8200. Reads  the  first  parameter  value  entered  into User defined instruction
  8201. created with UI.
  8202.  
  8203.    P1
  8204. Param 2
  8205. Gets the second parameter from a User defined instruction created by UI.
  8206.  
  8207.    P2
  8208. Param 3
  8209. Returns the third parameter from a User defined instruction created by UI.
  8210.  
  8211.    P3
  8212. Param 4
  8213. Gets  the fourth parameter value from a User defined instruction created by
  8214. UI.
  8215.  
  8216.    P4
  8217. Param 5
  8218. Reads  the fifth parameter value from a User defined instruction created by
  8219. UI.
  8220.  
  8221.    P5
  8222. Param 6
  8223. Returns  the  sixth parameter value from a User defined instruction created
  8224. by UI.
  8225.  
  8226.    P6
  8227. Param 7
  8228. Reads  the  seventh parameter value from a User defined instruction created
  8229. by UI.
  8230.  
  8231.    P7
  8232. Param 8
  8233.  
  8234. Grabs the eighth parameter value from a User defined instruction created by
  8235. UI
  8236.  
  8237.    P8
  8238. Param 9
  8239. Returns  the  final parameter value from a User defined instruction created
  8240. by UI.
  8241.  
  8242.    P9
  8243. Print Outline
  8244. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]PO}
  8245.  
  8246. Displays some outlined text on the screen.
  8247.  
  8248.    PO x,y,'text',outline colour,text colour;
  8249. PRint
  8250. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]PR}
  8251.  
  8252. Prints some TEXT on the screen.
  8253.  
  8254.    PR x,y,'text',ink;
  8255.  
  8256. x,y are the coordinates, relative to the screen base.
  8257.  
  8258. 'text' holds your text. You can also use a variable in this position.
  8259. PUsh
  8260. Sets an offset to the first image in the resource bank.
  8261.  
  8262.    PU start;
  8263.  
  8264. start is a number to be added to all future image numbers.
  8265.  
  8266. RTs
  8267. Returns from a subroutine you've previously entered with the JS command.
  8268.  
  8269.    RTs;
  8270. Run Until
  8271.  
  8272. {[RAMOSPro_Tutorial:Tutorials/Interface/Simple_requester.AMOS,0,4]RU}
  8273.  
  8274. Holds  the  dialogue box on the screen until a specified list of conditions
  8275. have been met.
  8276.  
  8277.    RU delay,flags;
  8278.  
  8279. delay  is  a  time  period  in  50th's  of  a second.  If it's greater than
  8280. zero,the  Interface  program  will automatically terminate after your chosen
  8281. interval.
  8282.  
  8283. flags set the condition to be tested, using a simple bitmap.
  8284.  
  8285. Bit 0  Clears all current keypresses
  8286. Bit 1  Clears the status of the mouse buttons
  8287. Bit 2  Exits whenever a key is pressed on the keyboard
  8288. Bit 3  Quits when a mousekey is clicked
  8289. SAve
  8290.  
  8291. {[RAMOSPro_Tutorial:Tutorials/Interface/Autocentering.AMOS,0,4]SA}
  8292.  
  8293. Saves the background area underneath your dialogue box using a numbered memory
  8294. block.
  8295.  
  8296.    SA block number;
  8297.  
  8298. The  size  of this block is defined using the SI; command.  If you omit the
  8299. block  number,  AMOS  will automatically use the first free block available
  8300. from  memory.  So if you've a lot of dialogue boxes, you don't have to keep
  8301. track of all the block numbers.
  8302.  
  8303. SetFont
  8304. Sets  the  text  font  used by the PR,PO,ME, and VT commands.  Before using
  8305. this  option,  you should examine the fonts on the disc with GET FONTS from
  8306. AMOS Basic.
  8307.  
  8308.    SF font,style;
  8309.  
  8310. Use a value of zero for the font if you just want to set the style.
  8311. Screen Height
  8312. Returns the height of the current AMOS screen.
  8313.  
  8314.    SH
  8315. SIze
  8316. Defines the size of the area to be saved underneath the dialogue box.
  8317.  
  8318. {[RAMOSPro_Tutorial:Tutorials/Interface/Autocentering.AMOS,0,4]SI}
  8319.  
  8320.  
  8321.    SI width,height;
  8322.  
  8323. Specifies a save area from the coordinate base (x,y) to (x+width,y+height).
  8324. The area can now be set up with a SA command.
  8325.  
  8326. SetLine
  8327. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]SL}
  8328.  
  8329. Sets the line style used by the GraphicLine command.
  8330.  
  8331.    SL bit-pattern;
  8332.  
  8333. bit-pattern  is  a  list  of  16  binary  noughts and ones which define the
  8334. appearence of the lines.  See the SET LINE command from AMOS Basic.
  8335.  
  8336. Screen Move
  8337. Called  as  part  of  a  button  change  routine to drag the current screen
  8338. whenever the item is selected.
  8339.  
  8340.    SM;
  8341. Set Pattern
  8342. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]SP}
  8343.  
  8344. Sets the fill pattern used by the GraphicBox command.
  8345.  
  8346.    SP pattern number,outline mode;
  8347.  
  8348. pattern is the number of a fill pattern from 0 to 34.
  8349.  
  8350. outline =1 for an outline or 0 to remove it.
  8351. Set Var
  8352. Sets an internal Interface variable.
  8353.  
  8354.    SV index number,value;
  8355.  
  8356. value can be either a number, or string enclosed by single quotes. ''
  8357.  
  8358. Screen Width
  8359. Gets  the  width  of  the current AMOS screen.  It's used to create general
  8360. purpose  dialogue  boxes  which  automatically  tailor  themselves  to your
  8361. display.
  8362.  
  8363.    SW
  8364. SetWriting
  8365. {[RAMOSPro_Tutorial:Tutorials/Interface/Graphics.AMOS,0,4]SW}
  8366.  
  8367. Sets the writing mode use for all future graphics operations.
  8368.  
  8369.    SW mode;
  8370.  
  8371. See the AMOS SET WRITING command for a list of the available modes.
  8372. Size in X
  8373. Returns  the width of your dialogue box which you've previously set up with
  8374. the SI command.
  8375.  
  8376.    SX
  8377. Size Y
  8378. Returns  the  height  of  your  present  dialogue box.  This must have been
  8379. entered previously using the SIze command.
  8380.  
  8381.    SY
  8382. SetZonevar
  8383. Sets  an internal "zone variable" which can be accessed from your next zone
  8384. definition.   It  can  be  exploited  as  part  of  a  User  Instruction to
  8385. permanently poke vital data into a user defined button type.
  8386.  
  8387.    SZ value;
  8388.  
  8389. Also see the ZV function.
  8390. SetSlider
  8391. Sets the appearance of the slider bars created with HS,or VS.
  8392.  
  8393.    SS b1,b2,b3,pb,s1,s2,s3,ps;
  8394.  
  8395. b1,b2,b3 enter the ink,paper and outline colours for the background of the
  8396. slider.  bp specifies the fill pattern to be use.
  8397.  
  8398. s1,s2,s3,sp  define  the  ink,paper,outline and fill pattern of the slider
  8399. box.
  8400.  
  8401. Text Height
  8402. Returns the height of the present text font, measured in pixels.
  8403.  
  8404.    TH
  8405. Text Length
  8406. Returns the number of characters in a piece of text.
  8407.  
  8408.    'text' TL
  8409. Text Width
  8410. Returns the width in pixels of a piece of text.
  8411.  
  8412.    'text' TW
  8413. User Instruction
  8414. Defines a brand new Interface instruction for use with your program.
  8415.  
  8416. UI XX,number of parameters;[instruction definition]
  8417.  
  8418. XX = the name of your command using two UPPERCASE characters.  The new name
  8419. must  be  unique.   You can't use the name of any of the original Interface
  8420. instructions.
  8421.  
  8422. number  of parameters = a number from 1 to 9 which tells Interface how many
  8423. values will be entered into the instruction.  These values can be read from
  8424. your UI routine using the functions P1 to P9.
  8425.  
  8426. [instruction  definition] = a list of Interface commands which will be used
  8427. to define your new instruction.  This list can be as long as you like.
  8428.  
  8429. UNpack
  8430. Unpacks an image from the resource bank, and displays it on the screen.
  8431.  
  8432.    UN x,y,image;
  8433.  
  8434. Displays  the requested image at coordinates x,y RELATIVE TO THE COORDINATE
  8435. BASE.
  8436.  
  8437. Variable
  8438. Reads a value from an internal variable.
  8439.  
  8440.    index number VA
  8441.  
  8442. index  number  normally ranges from 0 to 16, but if you increase the number
  8443. of  variables  using  the DIALOG OPEN command, you can obviously use larger
  8444. ranges.
  8445.  
  8446. VLine
  8447. Draws  a  vertical  line  out  of  a series of three components held in the
  8448. resource bank.
  8449.  
  8450.    VLine x,y,first image,height;
  8451.  
  8452. x,y enter the coordinates of the top left corner of your line.
  8453.  
  8454. first  image  sets  the first of the three components which will be used to
  8455. display your line on the screen.
  8456.  
  8457. height  specifies  the height of your line in pixels.  This should an exact
  8458. multiple of three.
  8459.  
  8460. Vertical Slider
  8461. {[RAMOSPro_Tutorial:Tutorials/Interface/Sliders.AMOS,0,4]VS}
  8462.  
  8463. Draws a working vertical slider bar on the screen.
  8464.  
  8465. VS zone number,x,y,width,height,position,trigger,total,step;[changes];
  8466.  
  8467. x,y = coordinates of the top left of the slider bar relative to the screen 
  8468. BAse.
  8469.  
  8470. width,height are the dimensions of the slider bar in pixels.
  8471.  
  8472. position  set the initial position.  Allowable position values range from 0
  8473. to "total"
  8474.  
  8475. trigger  enters  the  size  of  the movable block inside your slider bar in
  8476. units of total/height pixels.
  8477.  
  8478. total  sets  the  maximum  value  which  will  be  returned  by the slider.
  8479. Allowable  positions range from 1 to total, with each "step" representing a
  8480. movement of total/height pixels.
  8481.  
  8482. step  controls the distance which will be moved whenever the user clicks on
  8483. the background area of the slider.
  8484.  
  8485. [changes]  holds  a  list  of  Interface  commands  which  will be executed
  8486. whenever the slider is moved by the user.
  8487.  
  8488. VText
  8489. VT prints your text downwards on the screen.
  8490.  
  8491. VerText x,y,'text',pen;
  8492.  
  8493. x,y hold the coordinates of the first character in your string.  All future
  8494. characters will be neatly positioned below the initial letter, allowing you
  8495. to create effective vertical buttons.
  8496.  
  8497.     O
  8498.     K
  8499.     ?
  8500.  
  8501. 'text' enters your message to be displayed.
  8502.  
  8503. pen sets the colour of your characters.
  8504.  
  8505. XA
  8506. Gets the X coordinate of the graphics cursor BEFORE the most recent drawing
  8507. operation was performed.  It's used to line up the various elements on your
  8508. display.
  8509.  
  8510.    XA
  8511. XB
  8512. Returns  the  X  coordinate  of  the  graphics cursor AFTER the most recent
  8513. drawing operation was performed.
  8514.  
  8515.    XB
  8516. XY
  8517. Sets  the  internal  variables  XA,YA,XB,YB.   It's  called  as  part  of a
  8518. UserInstruction to mimic the behaviour of the built-in graphics commands.
  8519.  
  8520.    XY xa,ya,xb,yb;
  8521.  
  8522. YA
  8523. Finds  the  Y  coordinate  of  the graphics cursor BEFORE the most recent
  8524. drawing operation was performed.  It's used to line up the various elements
  8525. on your display.
  8526.  
  8527.    YA
  8528. YB
  8529. Gives  you  the  Y  coordinate of the graphics cursor AFTER the most recent
  8530. drawing operation was performed.
  8531.  
  8532.    YB
  8533.  
  8534. Zone change
  8535. Changes  the position value of another zone.  It's used as part of a change
  8536. routine to link several objects together.
  8537.  
  8538.    ZC zone_or_button_number,new data;
  8539.  
  8540. If  several zones have the same number, they can all be changed by a single
  8541. operation.
  8542.  
  8543. ZoneNumber
  8544. Returns the number of the current zone.  It's used to allow the creation of
  8545. user defined button types with UI.
  8546.  
  8547.    ZN
  8548.  
  8549. A typical example would be:
  8550.  
  8551.    ZC ZN 1+,ZP load the next zone with the present position
  8552. Zone Position
  8553. Returns  the  position  of  the current zone.  Depending on the type of the
  8554. zone  the  position  could  be  a  number (buttons,sliders,DIgit zone) or a
  8555. string (EDit zones).
  8556.  
  8557.    ZP
  8558.  
  8559. ZP is generally used as part of a zone change routine to redraw your object
  8560. as the position changes.
  8561.  
  8562. ZoneVar
  8563. ZV  can  only  be  used  inside  the  draw  or  change  brackets  of a zone
  8564. definition.  It reads the contents of the internal zone variable, and pokes
  8565. it permanently into your definition.
  8566.  
  8567.    ZV
  8568. The Amos Animation Language (AMAL)
  8569.             {[IA_A ,4,3] Anim       } {[IA_J ,4,3] Jump       } {[IA_O ,4,3] On         } {[IA_EX,4,3] =eXit      }
  8570.             {[IA_AU,4,3] AUtotest   } {[IA_J0,4,3] Joy(0)     } {[IA_P ,4,3] Pause      } {[IA_XH,4,3] =XHard     }
  8571.             {[IA_BC,4,3] =BobCol    } {[IA_J1,4,3] Joy(1)     } {[IA_PL,4,3] PLay       } {[IA_XM,4,3] =XMouse    }
  8572.             {[IA_C ,4,3] =Col       } {[IA_K1,4,3] =mouseKey 1} {[IA_R ,4,3] Register   } {[IA_XS,4,3] =XScreen   }
  8573.             {[IA_D ,4,3] Direct     } {[IA_K2,4,3] =mouseKey 2} {[IA_SC,4,3] =SpriteCol } {[IA_YH,4,3] =YHard     }
  8574.             {[IA_E ,4,3] End        } {[IA_L ,4,3] Let        } {[IA_T ,4,3] To         } {[IA_YM,4,3] =YMouse    }
  8575.             {[IA_F ,4,3] For        } {[IA_M ,4,3] Move       } {[IA_V ,4,3] VUmeter    } {[IA_YS,4,3] =YScreen   }
  8576.             {[IA_I ,4,3] If         } {[IA_N ,4,3] Next       } {[IA_W ,4,3] Wait       } {[IA_Z ,4,3] =Zandom    }
  8577.  
  8578.  
  8579.             {[IA_X ,4,3] =X coord   } {[IA_Y ,4,3] =Y coord   } {[IA_AR,4,3] =A image no} {[IA_ED,4,3] Amal Editor}
  8580. Anim
  8581. Animate an object through a number of different images.
  8582.  
  8583.         Anim times,(image,delay)(image delay)....
  8584.  
  8585. times = the number of times the animation will be repeated. 
  8586.         A value of zero means repeat forever.
  8587.  
  8588. image = the number of an image from the object bank to be displayed.
  8589.  
  8590. delay = the period of time the image will be held on the screen, in
  8591.         fiftieths of a second.
  8592. A register
  8593. This  special  AMAL  register holds the current object image which is being
  8594. displayed  on the screen.  Alternatively, if you`re animating a raindow, it
  8595. stores the height of your rainbow instead.
  8596.  
  8597.         
  8598.  
  8599.  
  8600. Autotest
  8601. Adds  a  special  test  at  the start of your AMAL program which is checked
  8602. automatically every VBL before your AMAL commands are executed.
  8603.  
  8604.         AU(list of AMAL instructions)
  8605. BobCol
  8606. Checks for a collision between one or more Blitter objects.  It can only be
  8607. used in conjunction with the SYNCHRO system.
  8608.  
  8609.         =BC(target,first,last)
  8610.  
  8611. Tests bob number TARGET for collisions between objects FIRST and LAST.  The
  8612. result will be -1 if a collision has occurred, otherwise 0.
  8613.  
  8614. Col 
  8615.  
  8616. Tests the status of an object after a collision has been detected using =SC
  8617. or =BC.
  8618.  
  8619.         =C(object)
  8620.  
  8621. object  is  the  number of your Sprite or Bob.  If this object has collided
  8622. with the target object, you'll get a value of -1, otherwise 0.
  8623.  
  8624. Direct
  8625. Selects the point to restart your AMAL instructions to be executed after an
  8626. Autotest.
  8627.  
  8628.         Direct Label
  8629.  
  8630. Label is an AMAL Label you've defined in your main AMAL program.
  8631. End
  8632. Terminates  your  AMAL program, and stops the Autotest feature if it's been
  8633. activated.
  8634.  
  8635.         End
  8636. AMAL Editor
  8637. The  AMAL  Editor  is a utility program which allows you to enter your AMAL
  8638. programs directly on the screen, and save them into an AMAL memory bank for
  8639. future  use. 
  8640.  
  8641. It  also  includes  a powerful debugging system which lets you step through
  8642. your AMAL programs a line at a time.
  8643.  
  8644. Last,  but  not  least, there`s a Path Definer for creating smooth movement
  8645. patterns for use with the AMAL PLay command.
  8646.  
  8647. See  the  Accessory  section  of  the  AMOS Professional User Guide for
  8648. further details.
  8649.  
  8650. For
  8651. Used  as  part of a For..To..Next loop.  This allows you to repeat parts of
  8652. your AMAL program a set number of times.
  8653.  
  8654.         For reg=start To end
  8655.         :AMAL  instructions:
  8656.         Next
  8657.  
  8658. reg can be any AMAL register from R0 to R9 and RA through RZ.
  8659.  
  8660. start and end can be any AMAL expression you wish.
  8661. If 
  8662. Performs a simple test in your AMAL programs.
  8663.  
  8664.         If expression Jump Label
  8665.  
  8666. Evaluates  the  expression  and  jumps  to  Label  if it returns a value of
  8667. TRUE(-1).
  8668.  
  8669.         If expression Direct Label
  8670.  
  8671. Chooses the part of your program to be executed after an Autotest. 
  8672.  
  8673.         If expression eXit
  8674.  
  8675. Leaves an Autotest immediately.
  8676.  
  8677. mouse Key 1
  8678. Checks  the Left mouse button for a keypress.  If it's been clicked, you'll
  8679. get a value of of -1, otherwise 0
  8680.  
  8681.         If K1 Jump Label
  8682. mouse Key 2
  8683. Examines  the  Right  mouse  button  for a keypress.  If it's been clicked,
  8684. you'll get a value of of -1, otherwise 0
  8685.  
  8686.         If K2 Jump Label
  8687. Jump
  8688. Jumps to a label in your AMAL program. 
  8689.  
  8690.         Jump Label  
  8691. Joy(0)
  8692. Tests  the  Right  joystick  and  returns a bit-map containing it's current
  8693. status.  See the AMOS JOY command for more details.
  8694.  
  8695.         If J0=1 Jump Up
  8696. Joy(1)
  8697. Monitors  the  Right joystick and returns a bit-map containing it's current
  8698. status.  See the AMOS JOY command for more details.
  8699.  
  8700.         If J1=1 Jump Up
  8701.  
  8702. Let
  8703. Assigns a value to an AMAL register.
  8704.  
  8705.         Let Rn=expression
  8706.  
  8707. n can be 0 to 9 for local registers, and A through Z for global ones.
  8708.  
  8709. You can also use the special registers A,X, and Y.
  8710. Move
  8711. Moves an object through a fancy pattern.
  8712.  
  8713.         Move horizontal distance,vertical distance,steps
  8714.  
  8715. horizontal distance is the total distance to be moved across the display.
  8716.  
  8717. vertical distance holds the total distance to be moved down.
  8718.  
  8719. Negative values reverse the direction!
  8720.  
  8721. steps enters the number of stages the movement will be divided up into.
  8722. Next
  8723. Used  after  a  For..To..statement to jump back to the first instruction in
  8724. the loop.
  8725.  
  8726.         For reg=start To end
  8727.         :AMAL  instructions:
  8728.         Next
  8729. On
  8730. Restarts your main AMAL program after a Wait command.
  8731.  
  8732.         On
  8733.  
  8734. Pause
  8735. Halts your AMAL program until the next vertical blank, just like the Basic
  8736. WAIT VBL command.
  8737.  
  8738.         Pause
  8739. Play 
  8740. Plays  a recorded movement pattern stored in the AMAL bank.  These patterns
  8741. are set up using the AMAL EDITOR accessory.
  8742.  
  8743.         PLay path number
  8744.  
  8745. R0 holds the time between each movement step, and R1 stores the direction.
  8746.  
  8747. R1=0   reverses the pattern.
  8748. R1=-1  stops it.
  8749. Registers 
  8750. Represents one of the AMAL variables. There are two different sorts.
  8751.  
  8752. Local registers: R0 to R9
  8753.  
  8754. Each  AMAL  channel  has  it's  own  set  of  Local  registers,  completely
  8755. independantly.
  8756.  
  8757. Global registers: RA through RZ
  8758.  
  8759. These  retain  the  same values between all AMAL programs.  So there's just
  8760. one set for the entire system.
  8761.  
  8762. Sprite Col
  8763. Tests  for a collision between one or more Sprites.  It can only be used in
  8764. conjunction with the SYNCHRO system.
  8765.  
  8766.         =SC(target,first,last)
  8767.  
  8768. Inspects  sprite  number  TARGET  for  collisions between objects FIRST and
  8769. LAST.  The result will be -1 if a collision has occurred, otherwise 0.
  8770.  
  8771. To
  8772. Used in a For..To..Next structure.
  8773.  
  8774.         For reg=start To end
  8775.         :AMAL  instructions:
  8776.         Next
  8777. VUmeter
  8778. Gets  the  intensity  of  a  voice  in  some  music which is running in the
  8779. background.  The intensity varies from 0 (silent) to 63 (very loud).
  8780.  
  8781.         Let Rn=VU(voice)
  8782.     
  8783. voice is the number for the voice to be tested from 0 to 3.
  8784. Wait
  8785. Freezes your AMAL program completely, and only executes an Autotest.
  8786.  
  8787.         Wait
  8788. X
  8789. Holds the X coordinate of your object on the screen.
  8790.  
  8791.         =X
  8792.  
  8793. In  the  case  of  rainbows, the X register stores the BASE of your rainbow
  8794. effect.
  8795.  
  8796. XHard
  8797. Converts  a  screen  coordinate  into  a  Hardware  coordinate for use with
  8798. sprites or screens.
  8799.  
  8800.         =XH(screen,x)
  8801.  
  8802. screen is the number of the screen to be used as the coordinate base.
  8803. eXit
  8804. Leaves an Autotest and returns to the main AMAL program.
  8805.  
  8806.         eXit
  8807. XMouse
  8808. Returns the X coordinate of the mouse pointer in HARDWARE format.
  8809.  
  8810.         Let X=XM
  8811. XScreen
  8812. Translates an X coordinate from Hardware format to screen format.
  8813.  
  8814.         =XS(screen,xh)
  8815.  
  8816. screen is the number of the screen to be used as the coordinate base.
  8817. Y
  8818. Holds the Y coordinate of your object on the screen.
  8819.  
  8820.         =Y
  8821.  
  8822. If  you`ve assigned your AMAL channel to a Rainbow, Y contains the hardware
  8823. coordinate of the first Rainbow line on the screen.
  8824.  
  8825.  
  8826. YHard
  8827. Turns  a Y coordinate relative to the screen into a Hardware coordinate for
  8828. use with sprites or screens.
  8829.  
  8830.         =XH(screen,x)
  8831.  
  8832. screen is the number of the screen to be used as the coordinate base.
  8833. YMouse
  8834. Returns the Y coordinate of the mouse pointer in HARDWARE format.
  8835.  
  8836.         Let Y=YM
  8837. YScreen
  8838. Transforms a Y coordinate from Hardware format to screen format.
  8839.  
  8840.  
  8841.         =YS(screen,yh)
  8842.  
  8843. screen is the number of the screen to be used as the coordinate base.
  8844. Zandom number
  8845. Generates  a  random number from -32767 to 32768.  The range of the numbers
  8846. is  set  via  a  bit-mask,  which is combined with the return value using a
  8847. logical AND  operation.  It's  easiest to enter the range as just less than
  8848. an  exact  power  of  two,  such as 31, 63, 127, or 255.  This will provide
  8849. you with random numbers from 0-31, 0-61, etc.
  8850.  
  8851.         Let X=Z(255)
  8852.  
  8853. The  reason  for the odd name, is that we ran out of letters!  If we`ve had
  8854. the option, it would have been called R for random!
  8855.  
  8856. Embedded Menu Commands
  8857.                         {[IM_BA ,4,3] BAr                                }
  8858.                         {[IM_BO ,4,3] BOb                                }
  8859.                         {[IM_EL ,4,3] ELipse                             }
  8860.                         {[IM_IC ,4,3] ICon                               }
  8861.                         {[IM_IN ,4,3] INk                                }
  8862.                         {[IM_LI ,4,3] LIne                               }
  8863.                         {[IM_LO ,4,3] LOcate                             }
  8864.                         {[IM_OU ,4,3] OUtline                            }
  8865.                         {[IM_PA ,4,3] PAttern                            }
  8866.                         {[IM_PR ,4,3] PRoc                               }
  8867.                         {[IM_RE ,4,3] REserve                            }
  8868.                         {[IM_SF ,4,3] Set Font                           }
  8869.                         {[IM_SL ,4,3] Set Line                           }
  8870.                         {[IM_SS ,4,3] Set Style                          }
  8871.  
  8872.  
  8873. Embedded  menu  commands  define  the  appearance of a menu item when it is
  8874. selected  on  the  screen.   You can include them as part of the definition
  8875. string entered into the MENU$ function.
  8876.  
  8877. All embedded commands consist of just two letters entered in UPPER or lower
  8878. case.   Any  other  characters will be ignored.  Most commands also require
  8879. parameter  values as well.  Parameters should be entered as simple numbers,
  8880. since expressions will NOT be evaluated.
  8881. BAr
  8882. Draws a rectangular Bar at the current cursor coordinates.
  8883.  
  8884.         BA x,y
  8885.  
  8886. The bar is drawn from the existing graphics cursor to coordinates x,y.  The
  8887. colour  of  this  bar  is  set with INk, and the style is defined using the
  8888. OUtline and PAttern commands.
  8889. BOb
  8890.  
  8891. Displays a bob in the menu item starting at the current cursor position.
  8892.  
  8893.         BO bob number
  8894.  
  8895. The  bob  is drawn from the top left corner of your image, totally ignoring
  8896. the Hot Spot.
  8897.  
  8898. ELlipse
  8899.  
  8900. Draws an ellipse centred at the present cursor postion.
  8901.  
  8902.         EL r1,r2
  8903.  
  8904. r1,r2  enter  the  radii  of  the  ellipse.   Set them to the same value to
  8905. generate  a  circle.   The  colour of your ellipse is defined using the INk
  8906. instruction.
  8907.  
  8908. ICon
  8909.  
  8910. Draws an Icon in the item at the current cursor position
  8911.  
  8912.         IC icon number
  8913. INk
  8914.  
  8915. Sets the colours used by all future text and graphics operation in your menu.
  8916.  
  8917.         IN mode,index
  8918.  
  8919. mode is a value from 1 to 3.
  8920.  
  8921. Mode =1 Set TEXT colour
  8922. Mode =2 Set BACKGROUND colour
  8923. Mode =3 Set OUTLINE colour
  8924. LIne
  8925. Draws a line from the current cursor position to x,y
  8926.  
  8927.         LI x,y
  8928. LOcate 
  8929. Moves  the  graphics cursor used as the position for your text and graphics
  8930. operations.
  8931.  
  8932.         LO x,y
  8933.  
  8934. x,y  are the new coordinates of the cursor measured RELATIVE to the top left
  8935. corner of the present menu line.
  8936. OUtline
  8937.  
  8938. Draws a border in the current OUTLINE colour around any bars created with the
  8939. BA command.
  8940.  
  8941.         OU 1 
  8942.  
  8943. Activates outline.
  8944.  
  8945.         OU 0
  8946.  
  8947. Turns it off.
  8948. PAttern
  8949. Sets the fill pattern used by the BAr command.
  8950.  
  8951.         PA fill pattern
  8952.  
  8953. Allowable fill patterns range from 1 to 34. 
  8954. PRoc
  8955. Calls an AMOS PRocedure whenever the item is selected by the user.
  8956.  
  8957.         PR name
  8958.  
  8959. See the AMOSPro User Guide for more information. It's quite involved!    
  8960. REserve
  8961. RE allocates n bytes of workspaces for use with the PRoc command.
  8962.             
  8963.         RE n
  8964.  
  8965. SFont
  8966.  
  8967. Changes the graphics font used by your menu text. Before using this command,
  8968. you'll need to call GET FONTS from your AMOS Basic program.
  8969.  
  8970.         SF font
  8971. SLine
  8972. Enters  a  16  digit  bit  pattern  which  redefines  the appearance of any
  8973. subsequent lines which are drawn on the screen.
  8974.  
  8975.         SL bitpattern
  8976.  
  8977. Check out the AMOS SET LINE command for more details.
  8978. SStyle
  8979. Sets the style used by the current text font.
  8980.  
  8981.         SS style
  8982.  
  8983. style is a bitmap which controls the appearence of your text. 
  8984.  
  8985. Each  bit  changes a specific attribute.  If it's set to one, the attribute
  8986. is selected.
  8987.  
  8988. Bit 0    Set Underline        
  8989. Bit 1    Set Bold
  8990. Bit 2    Set Italics 
  8991. Editor key commands
  8992.                         {[IHelpEditC ,4,3] Cursor keys                  }
  8993.                         {[IHelpEditE ,4,3] Editing keys                 }
  8994.                         {[IHelpEditV ,4,3] Cut and paste                }
  8995.                         {[IHelpEditF ,4,3] Function keys                }
  8996.                         {[IHelpEditMk,4,3] Marker keys                  }
  8997.                         {[IHelpEditS ,4,3] Search and replace           }
  8998.                         {[IHelpEditT ,4,3] Tabulation keys              }
  8999.                         {[IHelpEditP ,4,3] Program control keys         }
  9000.  
  9001.  
  9002.                         {[IHelpEditH ,4,3] Help Keys                    }
  9003.  
  9004. Cursor keys
  9005. Here  is a list of all the AMOS Professional control keys available when in
  9006. the  Main  Editor  and their usage.  If you've changed the key combinations
  9007. that select your menu items, this list will be wrong.
  9008.  
  9009. [Left]                  Move cursor one space left.
  9010. [Right]                 Move cursor one space right.
  9011. [Up]                    Move cursor up to next available line.
  9012. [Down]                  Move cursor down to next available line.
  9013.  
  9014. [Shift]+[Left]          Move cursor to previous word.
  9015. [Shift]+[Right]         Move cursor to next word.
  9016. [Shift]+[Up]            Move cursor to top line of current page.
  9017. [Shift]+[Down]          Move cursor to bottom line of current page.
  9018.  
  9019. [Ctr]+[Up]              Display previous page.
  9020. [Ctr]+[Down]            Display next page.
  9021.  
  9022. [Shift]+[Ctr]+[Up]      Jump to start of program.
  9023. [Shift]+[Ctr]+[Down]    Jump to end of program.
  9024.  
  9025. Editing keys
  9026. [Backspace]             Delete character to the left of cursor.
  9027. [Del]                   Delete character at cursor current location.
  9028. [Return]                Enter current line/Split existing line.
  9029. F10                     Insert a line at current position.
  9030. [Control]+[Q]           Clear current line.
  9031. [Control]+[Y]           Clear line and move up text to fill gap.
  9032. [Control]+[Del]         Delete to end of line.
  9033. [Control]+[Backspace]   Delete to start of line.
  9034. [Shift]+[Backspace]     Delete word to left.
  9035. [Shift]+[Del]           Delete word to right.
  9036.  
  9037. Function Keys
  9038. F1                      Run program
  9039. F2                      Test program
  9040. F3                      Indent program
  9041. F4                      Enter Monitor
  9042. F5                      Help
  9043. F6                      Previous window
  9044. F7                      Next Window
  9045. F8                      Toggle Insert mode
  9046. F9                      Open/Close Procedure
  9047. F10                     Insert line
  9048.  
  9049. These keys are also available from the icons at the top of the Editor screen
  9050. Cut and paste
  9051. [Control]+[B]           Activate/Deactivate block mode.
  9052. [Control]+[A]           Select entire program.
  9053.  
  9054. [Control]+[S]           Store block in memory and leave block on screen.
  9055. [Control]+[C]           Cut block.  Erase from screen and  load  into memory.
  9056. [Control]+[P]           Paste block at current cursor position.  
  9057. [Control]+[F]           Deselect block, remove highlighting.
  9058.  
  9059. [Control]+[Shift]+[P]   Print block
  9060. [Control]+[Shift]+[S]   Save block.
  9061. [Control]+[Shift]+[A]   Save block in Ascii format.
  9062.  
  9063. Marker keys
  9064. [Shift]+[Ctrl]+[number] Set a marker at current cursor position, with number
  9065.                         between 0 and 9 from numeric keypad.
  9066.  
  9067. [Ctrl]+[number]         Jump to previously set marker numbered 0 to 9 from
  9068.                         numeric keypad.
  9069. Search and replace
  9070. [Amiga]+[F]             Find first occurrence of selected text from cursor.
  9071. [Amiga]+[N]             Find next occurrence of selected text.
  9072. [Amiga]+[P]             Find previous ocurrence of selected text.
  9073.  
  9074. [Amiga]+[Shift]+[F]     Replace text with new text and jump to next
  9075.                         occurrence.
  9076. [Amiga]+[Shift]+[N]     Find next occurrance of text and replace it.
  9077. [Amiga]+[Shift]+[P]     Replace last occurrence of your text.
  9078.  
  9079. [Alt]+[Up]              Search back through program to last label or procedure
  9080.                         definition.
  9081. [Alt]+[Down]            Search forward in program to next label or procedure
  9082.                         definition.
  9083. Tabulation keys
  9084. [Ctrl]+[Tab arrows]     Set Tab stop.
  9085. [Tab arrows]            Move whole line at current cursor position to next
  9086.                         Tab.
  9087. [Shift]+[Tab arrows]    Move whole line at current cursor position to last
  9088.                         Tab.
  9089. Program control keys
  9090. [Amiga]+[Shift]+[S]     Save program under new name.
  9091. [Amiga]+[S]             Save program under existing name.
  9092. [Amiga]+[L]             Load program
  9093.  
  9094. [Esc]                   Go to direct Mode.
  9095.  
  9096. Help Keys
  9097. [Help]            Open Help Window.
  9098. F5                Open Help Window.
  9099.  
  9100. Esc               Leave Help Window.
  9101. [Up Arrow]        Scroll Window up.
  9102. [Down Arrow]      Scroll Window down.
  9103. Direct mode editing keys
  9104. Here is a list of the editing keys and their effects when in Direct Mode.
  9105.  
  9106. [Backspace]             Delete character to the left of cursor.
  9107. [Del]                   Delete character at cursor current location.
  9108. [Return]                Execute current line of commands.
  9109. [Left]                  Move cursor one space left.
  9110. [Right]                 Move cursor one space right.
  9111. [Shift]+[Left]          Move cursor to previous word.
  9112. [Shift]+[Right]         Move cursor to next word.
  9113. [Up]                    Moves the history buffer to the previous line
  9114. [Down]                  Scrolls the next line from the history buffer
  9115. [Esc]                   Leave Direct Mode.  Go to main editing window.
  9116. [Control]+[Up]          Moves the entire direct mode window up.
  9117. [Control]+[Down]        Moves the direct mode window down.
  9118. [Shift]+[Up]            Reduces the size of the direct mode window.
  9119. [Shift]+[Down]          Expands the direct mode window
  9120.  
  9121. Note:Run does not work from direct mode.
  9122.  
  9123. AMOS Professional Syntax conventions
  9124.  
  9125.                         {[IHelpData ,4,3] Datatypes                     }
  9126.                         {[IHelpInstr,4,3] Instructions                  }
  9127.                         {[IHelpFunct,4,3] Functions                     }
  9128.                         {[IHelpVar  ,4,3] Reserved Variables            }
  9129. Datatypes
  9130.  
  9131. AMOS allows you to use several types of variables in your programs.
  9132.  
  9133. Type                  Example          Min      Max
  9134. ---------------------------------------------------------------
  9135.  
  9136. Integer               A=3              -65536   65536
  9137.  
  9138. Single Precision      A#=3.14159       1E-14    1E+15
  9139.  
  9140. Double Precision      A#=3.1415926543  1E-307   1E+308
  9141.  
  9142. String                A$="AMOS"        0 chars  65536 chars
  9143.  
  9144. Double  Precision  numbers  and Single Precision numbers cannot be mixed in
  9145. the  same  program.   If  you want to use double precision, insert a DOUBLE
  9146. PRECISION command at the START of your listing.
  9147.  
  9148. Instructions
  9149. These are normal AMOS commands such as:
  9150.  
  9151. Print,Stop,Input,Text,Centre,or Sprite
  9152.  
  9153. They perform a single action in your AMOS Basic program, without generating
  9154. a return value.
  9155. Functions
  9156. Like  instructions,  but  they  return  a value which can be printed on the
  9157. screen or assigned to a variable.
  9158.  
  9159. Examples include:
  9160.  
  9161.      Len(),Instr(),Chip Free,=Screen
  9162.  
  9163. Reserved variables
  9164. Are  internal  variables  which  hold  vital  information  for  use by your
  9165. program.  They can often be assigned new values as well.
  9166.  
  9167. Typical examples are:
  9168.  
  9169. Timer,X Mouse,Y Mouse,Dreg(),Areg(),Menu$()
  9170. Windows
  9171.  
  9172.                   {[IBORDER      ,4,3] Border      } {[ITITLE BOTTOM,4,3] Title Bottom} {[IWINDON     ,4,3] =Windon     }
  9173.                   {[ICLW         ,4,3] Clw         } {[ITITLE TOP   ,4,3] Title Top   } {[IWIND OPEN   ,4,3] Wind Open   }
  9174.                   {[IHSCROLL     ,4,3] Hscroll     } {[IVSCROLL     ,4,3] Vscroll     } {[IWIND SAVE   ,4,3] Wind Save   }
  9175.                   {[ISCROLL ON   ,4,3] Scroll On   } {[IWIND CLOSE  ,4,3] Wind Close  } {[IWIND SIZE   ,4,3] Wind Size   }
  9176.                   {[ISCROLL OFF  ,4,3] Scroll Off  } {[IWIND MOVE   ,4,3] Wind Move   } {[IWINDOW      ,4,3] Window      }
  9177. CLW
  9178. {[RAMOSPro_Examples:Examples/H-3/Help_32.AMOS,0,4]Clw}
  9179.  
  9180. Erases the contents of the current text window and fills it will a block of
  9181. the present PAPER colour.
  9182.  
  9183.         Clw
  9184. HSCROLL
  9185. {[RAMOSPro_Examples:Examples/H-2/Help_22.AMOS,0,4]Hscroll}
  9186.  
  9187. Scrolls some text in your current window horizontally by a single character.
  9188.  
  9189.         Hscroll type
  9190.  
  9191. Type can take one of four values:
  9192.  
  9193. 1 = Move current line to the left
  9194. 2 = Scroll entire text  to the left
  9195. 3 = Move current line to the right
  9196. 4 = Scroll text to right
  9197. SCROLL OFF
  9198. {[RAMOSPro_Examples:Examples/H-2/Help_22.AMOS,0,4]Scroll Off}
  9199.  
  9200. Stops  your  text  scrolling up when you print past the bottom of your text
  9201. window.  The text now restarts from the top.
  9202.  
  9203.         Scroll Off
  9204. SCROLL ON
  9205. {[RAMOSPro_Examples:Examples/H-2/Help_22.AMOS,0,4]Scroll On}
  9206.  
  9207. Re-activates the standard text scrolling system.
  9208.  
  9209.         Scroll On
  9210. TITLE BOTTOM
  9211. {[RAMOSPro_Examples:Examples/H-3/Help_31.AMOS,0,4]Title Bottom}
  9212.  
  9213. Assigns a piece of text to the bottom line of your text window.
  9214.  
  9215.         Title Bottom title$
  9216. TITLE TOP
  9217. {[RAMOSPro_Examples:Examples/H-3/Help_31.AMOS,0,4]Title Top}
  9218.  
  9219. Displays a title string along the top of your text window.
  9220.  
  9221.         Title Top title$
  9222.  
  9223. VSCROLL
  9224. {[RAMOSPro_Examples:Examples/H-2/Help_22.AMOS,0,4]Vscroll}
  9225.  
  9226. Scrolls some text in your current window vertically by a single character.
  9227.  
  9228.         Vscroll type
  9229.  
  9230. Type can take one of four values:
  9231.  
  9232. 1 = Move all text on the current line and below one place down
  9233.  
  9234. 2 = Move all text on or below the cursor line one place up
  9235.  
  9236. 3 = Scroll up lines from the top of the window to the cursor line.
  9237.  
  9238. 4 = Scroll down lines from top of window to current cursor position.
  9239.  
  9240. WIND CLOSE
  9241. {[RAMOSPro_Examples:Examples/H-3/Help_32.AMOS,0,4]Wind Close}
  9242.  
  9243. Removes  the  current  text  window  from  the  screen, along with all it's
  9244. contents. If  you've  saved  the  background area with WIND SAVE it will be
  9245. restored to it's original position.
  9246.  
  9247.         Wind Close
  9248.  
  9249. WIND MOVE
  9250. {[RAMOSPro_Examples:Examples/H-3/Help_32.AMOS,0,4]Wind Move}
  9251.  
  9252. Moves the current text window to a new position on the screen.
  9253.  
  9254.         Wind Move x,y
  9255.  
  9256. x,y  are  GRAPHICS  coordinates. x is automatically rounded down to the
  9257. nearest multiple of 16.
  9258.  
  9259. WIND OPEN
  9260. {[RAMOSPro_Examples:Examples/H-3/Help_31.AMOS,0,4]Wind Open}
  9261.  
  9262. Opens  a  new  text  window on the screen.  This will be used by all future
  9263. PRINT,INPUT, or cursor commands.
  9264.  
  9265.         Wind Open n,x,y,w,h
  9266.         Wind Open n,x,y,w,h,border
  9267.  
  9268. x,y  are  the screen coordinates of the window.  The X coordinate's rounded
  9269. to the nearest multiple of sixteen.
  9270.  
  9271. w,h  enter  the  width  and  height of the window in characters.  They must
  9272. divide evenly by 2.
  9273.  
  9274. border  is an option border ranging from 1 to 16.  Only borders 1 through 3
  9275. are presently available.
  9276.  
  9277. WIND SAVE
  9278. {[RAMOSPro_Examples:Examples/H-3/Help_31.AMOS,0,4]Wind Save}
  9279.  
  9280. Activates  window  saving  mode.  Whenever a window is created, the area of
  9281. the  screen  underneath  it  will  be  automatically saved in memory.  This
  9282. background  will  be  replaced in it's original position when the window is
  9283. subsequently moved or deleted.
  9284.  
  9285.         Wind Save
  9286. WIND SIZE
  9287. {[RAMOSPro_Examples:Examples/H-3/Help_32.AMOS,0,4]Wind Size}
  9288.  
  9289. Enters a new size for the current text window.
  9290.  
  9291.         Wind Size w,h
  9292.  
  9293. w,h are measure in units of a single character, and must be divisible by 2.
  9294. WINDON
  9295. {[RAMOSPro_Examples:Examples/H-3/Help_32.AMOS,0,4]=Windon}
  9296.  
  9297. Returns the number of the currently active window.
  9298.  
  9299. WINDOW
  9300. {[RAMOSPro_Examples:Examples/H-3/Help_32.AMOS,0,4]Window}
  9301.  
  9302. Activates  your chosen window.  This window will now be used for all future
  9303. text operations.
  9304.  
  9305.         Window n
  9306. Editor Accessories
  9307.  
  9308.                         {[IASK EDITOR    ,4,3] Ask Editor               }
  9309.                         {[ICALL EDITOR   ,4,3] Call Editor              }
  9310.                         {[ISET ACCESSORY ,4,3] Set Accessory            }
  9311.  
  9312. ASK EDITOR
  9313. Returns  parameters  FROM  the  editor.   If  it's  called inside an editor
  9314. accessory,  it  can  be  used  to grab the program lines directly from your
  9315. current listing.
  9316.  
  9317.         Ask Editor function[,param][,param$]
  9318.  
  9319. function is the NUMBER of an internal Editor command you wish to access.
  9320.  
  9321. param holds some optional numeric information.
  9322.  
  9323. param$ holds an optional string of characters.
  9324. CALL EDITOR
  9325. Used  by  an  Editor  accessory  to  SEND  information directly to the AMOS
  9326. Professional Editor.
  9327.  
  9328.         Call Editor function[,param][,param$]
  9329.  
  9330. function is the NUMBER of an internal Editor command you wish to access.
  9331.  
  9332. param holds some optional numeric information.
  9333.  
  9334. param$ holds an optional string of characters.
  9335. SET ACCESSORY
  9336. Defines your program as an "Editor Accessory".  It MUST be inserted on it's
  9337. own seperate line, at the very start of your program.
  9338.  
  9339. When an Editor accessory is installed as a hidden program, or assigned to a
  9340. menu  item,  you'll  be  able  to  display  your graphics directly over the
  9341. current Editor screen!
  9342.  
  9343.         Set Accessory
  9344.  
  9345. Ascii Table
  9346. Code Char    Code Char    Code Char    Code Char    Code Char    Code Char 
  9347. -----------  -----------  -----------  -----------  -----------  -----------
  9348.   0  NUL       1  SOH       2  STX       3  ETX       4  EOT       5  ENQ   
  9349.   6  ACK       7  BELL      8  Back      9  Tab      10  LF       11  VT     
  9350.  12  Home     13  CR       14  SO       15  SI       16  HScr 1   17  Hscr 2
  9351.  17  Hscr 3   18  Hscr 4   19  Vscr 1   20  Vscr 2   21  Vscr 3   22  Vscr 3
  9352.  23  Vscr 4   25  EM       26  SUB      27  Esc      28  Cright   29  Cleft
  9353.  30  Cup      31  Cdown    32  Space    33   !       34    "      35    #   
  9354.  36   $       37    %      38    &      39   '       40    (      41    )
  9355.  42   *       43    +      44    ,      45   -       46    .      47    /
  9356.  48   0       49    1      50    2      51   3       52    4      53    5
  9357.  54   6       55    7      56    8      57   9       58    :      59    ;
  9358.  60   <       61    =      62    >      63   ?       64    @      65    A
  9359.  66   B       67    C      68    D      69   E       70    F      71    G
  9360.  72   H       73    I      74    J      75   K       76    L      77    M
  9361.  78   N       79    O      80    P      81   Q       82    R      83    S
  9362.  84   T       85    U      86    V      87   W       88    X      89    Y
  9363.  90   Z       91    [      92    \      93   ]       94    ^      95    _
  9364.  96   `       97    a      98    b      99   c      100    d      101   e
  9365. 102   f      103    g     104    h     105   i      106    j      107   k
  9366. 108   l      109    m     110    n     111   o      112    p      113   q
  9367. 114   r      115    s     116    t     117   u      118    v      119   w
  9368. 120   x      121    y     122    z     123   {      124    |      125   }
  9369. 126   ~      127         128    €     129         130    ‚      131   ƒ
  9370. 132   „      133    …     134    †     135   ‡      136    ˆ      137   ‰
  9371. 138   Š      139    ‹     140    Œ     141         142    Ž      143   
  9372. 144         145    ‘     146    ’     147   “      148    ”      149   •
  9373. 150   –      151    —     152    ˜     153   ™      154    š      155   ›
  9374. 156   œ      157         158    ž     159   Ÿ      160           161   ¡
  9375. 162   ¢      163    £     164    ¤     165   ¥      166    ¦      167   §
  9376. 168   ¨      169    ©     170    ª     171   «      172    ¬      173   ­
  9377. 174   ®      175    ¯     176    °     177   ±      178    ²      179   ³
  9378. 180   ´      181    µ     182    ¶     183   ·      184    ¸      185   ¹
  9379. 186   º      187    »     188    ¼     189   ½      190    ¾      191   ¿
  9380. 192   À      193    Á     194    Â     195   Ã      196    Ä      197   Å
  9381. 198   Æ      199    Ç     200    È     201   É      202    Ê      203   Ë
  9382. 204   Ì      205    Í     206    Î     207   Ï      208    Ð      209   Ñ
  9383. 210   Ò      211    Ó     212    Ô     213   Õ      214    Ö      215   ×
  9384. 216   Ø      217    Ù     218    Ú     219   Û      220    Ü      221   Ý
  9385. 222   Þ      223    ß     224    à     225   á      226    â      227   ã
  9386. 228   ä      229    å     230    æ     231   ç      232    è      233   é
  9387. 234   ê      235    ë     236    ì     237   í      238    î      239   ï
  9388. 240   ð      241    ñ     242    ò     243   ó      244    ô      245   õ
  9389. 246   ö      247    ÷     248    ø     249   ù      250    ú      251   û
  9390. 252   ü      253    ý     254    þ     255   ÿ 
  9391.       
  9392.  
  9393. Useful scancodes
  9394.  
  9395.                                {[IScanfunc   ,4,3] Function Keys  }
  9396.                                {[IScankeypad ,4,3] Numeric Keypad }
  9397.                                {[IScanGeneral,4,3] Other keys     }
  9398. Scancodes of the Function keys
  9399.  
  9400.                               Key    Scancode
  9401.                              -----------------
  9402.                                F1       80
  9403.                                F2       81
  9404.                                F3       82
  9405.                                F4       83
  9406.                                F5       84
  9407.                                F6       85
  9408.                                F7       86
  9409.                                F8       87
  9410.                                F9       88
  9411.                                F10      89
  9412. Scancodes for the Numeric Keypad
  9413.                            [ ( ] [ ) ] [ / ] [ * ]
  9414.                              90    91    92    93
  9415.  
  9416.                            [ 7 ] [ 8 ] [ 9 ] [ - ]
  9417.                              61    62    63    74
  9418.  
  9419.                            [ 4 ] [ 5 ] [ 6 ] [ + ]
  9420.                              45    46    47    94
  9421.  
  9422.                            [ 1 ] [ 2 ] [ 3 ] [ E ]
  9423.                              29    30    31    67
  9424.  
  9425.                            [    0    ] [ . ] 
  9426.                                 15       60
  9427. Useful Scancodes
  9428.  
  9429.                              [Tab]           66
  9430.                              [Enter]         68
  9431.                              [Backspace]     65
  9432.                              [Del]           70
  9433.                              [Help]          95
  9434.                              [Up arrow]      76
  9435.                              [Down arrow]    77
  9436.                              [Left arrow]    79
  9437.                              [Right arrow]   78
  9438.                              [Spacebar]      64
  9439.