Appendix B - RISCOS Library
---------------------------

    The following words are defined in the RISCOS library. The input and output parameters are shown in terms of the registers that will be loaded from the stack (in the input case), and those that are placed on the stack (output parameters).
    A register buffer address is shown as [buf].

Vocabulary OS
-------------

     0 WriteC  (R0 ... )

     2 Write0  (R0 ... )

     3 NewLine  ( ... )

     4 ReadC  ( ... R0/CF)

     5 CLI  (R0 ... )

     8 File  ([buf] ... )

     9 Args  ([buf] ... )

     A BGet  (R1 ... R0/CF)

     B BPut  (R0/R1 ... )

     C GBPB  ([buf] ... )

     D Find  (R0/R1/R2 ... R0)

     E ReadLine  (R0/R1/R2/R3 ... R1/CF)

     F Control  (R0/R1/R2/R3 ... R3/R2/R1/R0)

    10 GetEnv  ( ... R2/R1/R0)

    11 Exit  (R0/R1/R2 ... )

    12 SetEnv  (R0/R1/R4/R5/R6/R7 ... R7/R6/R5/R4/R1/R0)

    15 CallBack  (R0/R1 ... R1/R0)

    17 BreakPt  ( ... )

    18 BreakCtrl  (R0/R1 ... R1/R0)

    19 UnusedSWI  (R0 ... R0)

    1A UpdateMEMC  (R0/R1 ... R0)

    1B SetCallBack  ( ... )

    1C Mouse  ( ... R3/R2/R1/R0)

    1D Heap  ([buf] ... )

    1E Module  ([buf] ... )

    1F Claim  (R0/R1/R2 ... )

    20 Release  (R0/R1/R2 ... )

    21 ReadUnsigned  (R0/R1/R2 ... R2/R1)

    22 GenerateEvent  ([buf] ... )

    23 ReadVarVal  (R0/R1/R2/R3/R4 ... R4/R3/R2)

    24 SetVarVal  (R0/R1/R2/R3/R4 ... R4/R3)

    25 GSInit  (R0/R2 ... R2/R1/R0)

    26 GSRead  (R0/R2 ... R2/R1/R0/CF)

    27 GSTrans  (R0/R1/R2 ... R2/R0/CF)

    28 BinaryToDecimal  (R0/R1/R2 ... R2)

    29 FSControl  ([buf] ... )

    2A ChangeDynamicArea  (R0/R1 ... R1)

    2B GenerateError  (R0 ... )

    2C ReadEscapeState  ( ... CF)

    2D EvaluateExpression  (R0/R1/R2 ... R2/R1)

    2E SpriteOp  ([buf] ... )

    2F ReadPalette  (R0/R1 ... R3/R2)

    30 ServiceCall  (R0/R1/R2/R3/R4 ... )

    31 ReadVduVariables  (R0/R1 ... )

    32 ReadPoint  (R0/R1 ... R4/R3/R2)

    33 UpCall  (R0/R1/R2/R3 ... R0)

    34 CallAVector  (R0/R1/R2/R3/R4/R5/R6/R7/R8/R9 ... )

    35 ReadModeVariable  (R0/R1 ... R2/CF)

    36 RemoveCursors  ( ... )

    37 RestoreCursors  ( ... )

    38 SWINumberToString  (R0/R1/R2 ... )

    39 SWINumberFromString  (R1 ... R0)

    3A ValidateAddress  (R0/R1 ... CF)

    3B CallAfter  (R0/R1/R2 ... )

    3C CallEvery  (R0/R1/R2 ... )

    3D RemoveTickerEvent  (R0/R1 ... )

    3E InstallKeyHandler  (R0 ... R0)

    3F CheckModeValid  (R0 ... R1/R0/CF)

    40 ChangeEnvironment  (R0/R1/R2/R3 ... R3/R2/R1)

    41 ClaimScreenMemory  (R0/R1 ... R2/R1/CF)

    42 ReadMonotonicTime  ( ... R0)

    43 SubstituteArgs  (R0/R1/R2/R3/R4 ... R2)

    44 PrettyPrint  (R0/R1/R2 ... )

    45 Plot  (R0/R1/R2 ... )

    46 WriteN  (R0/R1 ... )

    49 ReadArgs  (R0/R1/R2/R3 ... R3)

    4A ReadRAMFsLimits  ( ... R1/R0)

    4B ClaimDeviceVector  (R0/R1/R2 ... )

    4C ReleaseDeviceVector  (R0/R1/R2 ... )

    4D DelinkApplication  (R0/R1 ... R1)

    4E RelinkApplication  (R0 ... )

    50 ExitAndDie  (R0/R1/R2/R3 ... )

    51 ReadMemMapInfo  ( ... R1/R0)

    52 ReadMemMapEntries  (R0 ... )

    53 SetMemMapEntries  (R0 ... )

    54 AddCallBack  (R0/R1 ... )

    55 ReadDefaultHandler  (R0 ... R3/R2/R1)

    57 SerialOp  (R0/R1/R2 ... R2/R1/R0/CF)

    58 ReadSysInfo  (R0 ... R0)

    59 Confirm  ( ... R0/CF)

    5A ChangedBox  (R0 ... R1/R0)

    C0 ConvertStandardDateAndTime  (R0/R1/R2 ... R2/R1/R0)

    C1 ConvertDateAndTime  (R0/R1/R2/R3 ... R2/R1/R0)

Vocabulary Wimp
---------------

 400C0 Initialise  (R0/R1/R2 ... R1/R0)

 400C1 CreateWindow  (R1 ... R0)

 400C2 CreateIcon  (R1 ... R0)

 400C3 DeleteWindow  (R1 ... )

 400C4 DeleteIcon  (R1 ... )

 400C5 OpenWindow  (R1 ... )

 400C6 CloseWindow  (R1 ... )

 400C7 Poll  (R0/R1 ... R0)

 400C8 RedrawWindow  (R1 ... R0)

 400C9 UpdateWindow  (R1 ... R0)

 400CA GetRectangle  (R1 ... R0)

 400CB GetWindowState  (R1 ... )

 400CC GetWindowInfo  (R1 ... )

 400CD SetIconState  (R1 ... )

 400CE GetIconState  (R1 ... )

 400CF GetPointerInfo  (R1 ... )

 400D0 DragBox  (R1 ... )

 400D1 ForceRedraw  (R0/R1/R2/R3/R4 ... )

 400D2 SetCaretPosition  (R0/R1/R2/R3/R4/R5 ... )

 400D3 GetCaretPosition  (R1 ... )

 400D4 CreateMenu  (R1/R2/R3 ... )

 400D5 DecodeMenu  (R1/R2/R3 ... )

 400D6 WhichIcon  (R0/R1/R2/R3 ... )

 400D7 SetExtent  (R0/R1 ... )

 400D8 SetPointerShape  (R0/R1/R2/R3/R4/R5 ... )

 400D9 OpenTemplate  (R1 ... )

 400DA CloseTemplate  ( ... )

 400DB LoadTemplate  (R1/R2/R3/R4/R5/R6 ... R6/R2)

 400DC ProcessKey  (R0 ... R0)

 400DD CloseDown  (R0/R1 ... )

 400DE StartTask  (R0 ... )

 400DF ReportError  (R0/R1/R2 ... R1)

 400E0 GetWindowOutline  (R1 ... )

 400E1 PollIdle  (R0/R1/R2 ... R0)

 400E2 PlotIcon  (R1 ... )

 400E3 SetMode  (R0 ... )

 400E4 SetPalette  (R1 ... )

 400E5 ReadPalette  (R1 ... )

 400E6 SetColour  (R0 ... )

 400E7 SendMessage  (R0/R1/R2/R3 ... R2)

 400E8 CreateSubMenu  (R1/R2/R3 ... )

 400E9 SpriteOp  ([buf] ... )

 400EA BaseOfSprites  ( ... R1/R0)

 400EB BlockCopy  (R0/R1/R2/R3/R4/R5/R6 ... )

 400EC SlotSize  (R0/R1 ... R2/R1/R0)

 400ED ReadPixTrans  (R0/R1/R2/R6/R7 ... )

 400EE ClaimFreeMemory  (R0/R1 ... R2/R1)

 400EF CommandWindow  (R0 ... )

 400F0 TextColour  (R0 ... )

 400F1 TransferBlock  (R0/R1/R2/R3/R4 ... )

 400F2 ReadSysInfo  (R0 ... R0)

 400F3 SetFontColours  (R1/R2 ... )
