www.riscos.com Technical Support:
Programmer's Reference Manual
RISC OS 3 Programmer's Reference Manual
Referenced Index of Contents
Volume 1: About this manual
Volume 1: Chapter 1: An introduction to RISC OS
Volume 1: Chapter 2: ARM Hardware
Volume 1: Chapter 3: An introduction to SWIs
Volume 1: Chapter 4: * Commands and the CLI
Volume 1: Chapter 5: Generating and handling errors
Volume 1: Chapter 6: OS_Byte
Volume 1: Chapter 7: OS_Word
Volume 1: Chapter 8: Software vectors
Volume 1: Chapter 9: Hardware vectors
Volume 1: Chapter 10: Interrupts and handling them
Volume 1: Chapter 11: Events
Volume 1: Chapter 12: Buffers
Volume 1: Chapter 13: Communications within RISC OS
Volume 1: Chapter 14: Modules
Volume 1: Chapter 15: Program Environment
Volume 1: Chapter 16: Memory Management
Volume 1: Chapter 17: Time and Date
Volume 1: Chapter 18: Conversions
Volume 1: Chapter 19: Extension ROMs
Volume 1: Chapter 20: Character Output
Volume 1: Chapter 21: VDU Drivers
Volume 1: Chapter 22: Sprites
Volume 1: Chapter 23: Character Input
Volume 1: Chapter 24: The CLI
Volume 1: Chapter 25: The rest of the kernel
Volume 2: Chapter 26: Introduction to filing systems
Volume 2: Chapter 27: FileSwitch
Volume 2: Chapter 28: FileCore
Volume 2: Chapter 29: ADFS
Volume 2: Chapter 30: RamFS
Volume 2: Chapter 31: DOSFS
Volume 2: Chapter 32: NetFS
Volume 2: Chapter 32: PipeFS
Volume 2: Chapter 33: NetPrint
Volume 2: Chapter 35: ResourceFS
Volume 2: Chapter 36: DeskFS
Volume 2: Chapter 37: DeviceFS
Volume 2: Chapter 38: Serial device
Volume 2: Chapter 39: Parallel device
Volume 2: Chapter 40: System devices
Volume 2: Chapter 41: The Filer
Volume 2: Chapter 42: Filer_Action and FilerSWIs
Volume 2: Chapter 43: Free
Volume 2: Chapter 44: Writing a filing system
Volume 2: Chapter 45: Writing a FileCore module
Volume 2: Chapter 46: Writing a device driver
Volume 2: Chapter 47: Econet
Volume 2: Chapter 48: File server protocol interface
Volume 2: Chapter 48½: Printer server protocol interface
Volume 2: Chapter 49: The Broadcast Loader
Volume 2: Chapter 50: BBC Econet
Volume 2: Chapter 51: Hourglass
Volume 2: Chapter 52: NetStatus
Volume 3: Chapter 53: The Window Manager
Volume 3: Chapter 54: Pinboard
Volume 3: Chapter 55: Drag A Sprite
Volume 3: Chapter 56: The Filter Manager
Volume 3: Chapter 57: The TaskManager module
Volume 3: Chapter 58: TaskWindow
Volume 3: Chapter 59: ShellCLI
Volume 3: Chapter 60: ColourTrans
Volume 3: Chapter 61: The Font Manager
Volume 3: Chapter 62: SuperSample module
Volume 3: Chapter 63: Draw module
Volume 3: Chapter 64: Printer Drivers
Volume 3: Chapter 65: Printers Dumper
Volume 3: Chapter 66: PDumperSupport
Volume 3: Chapter 67: Printer definition files
Volume 3: Chapter 68: MakePSFont
Volume 3: Chapter 69: MessageTrans
Volume 3: Chapter 70: International module
Volume 3: Chapter 71: The Territory Manager
Volume 4: Chapter 72: The Sound system
Volume 4: Chapter 73: WaveSynth
Volume 4: Chapter 74: The Buffer Manager
Volume 4: Chapter 75: Squash
Volume 4: Chapter 76: ScreenBlank
Volume 4: Chapter 77: Expansion Cards and Extension ROMs
Volume 4: Chapter 78: Floating point emulator
Volume 4: Chapter 79: ARM3 Support
Volume 4: Chapter 80: The Portable module
Volume 4: Chapter 81: Joystick module
Volume 4: Chapter 82: Debugger
Volume 4: Chapter 83: The shared C library
Volume 4: Chapter 84: BASIC and BASICTrans
Volume 4: Chapter 85: Command scripts
Volume 4: Chapter 86: Appendix A: ARM assembler
Volume 4: Chapter 87: Appendix B: Warnings on the use of ARM assembler
Volume 4: Chapter 88: Appendix C: ARM procedure call standard
Volume 4: Chapter 89: Appendix D: Code file formats
Volume 4: Chapter 90: Appendix E: File formats
Volume 4: Chapter 91: Appendix F: System variables
Volume 4: Chapter 92: Appendix G: The Acorn Terminal Interface Protocol
Volume 4: Chapter 93: Appendix H: Registering names
Volume 4: Chapter 94: Table A: VDU codes
Volume 4: Chapter 95: Table B: Modes
Volume 4: Chapter 96: Table C: File types
Volume 4: Chapter 97: Table D: Character sets
Volume 4: Chapter 141: Appendix D: Deprecated calls
Volume 5a: Chapter 98: Introduction to RISC OS 3.5 and RISC OS 3.6
Volume 5a: Chapter 99: ARM hardware
Volume 5a: Chapter 100: Hardware vectors
Volume 5a: Chapter 101: Interrupts
Volume 5a: Chapter 102: Modules
Volume 5a: Chapter 103: Memory management
Volume 5a: Chapter 104: CMOS RAM allocation
Volume 5a: Chapter 105: DMA
Volume 5a: Chapter 106: Video
Volume 5a: Chapter 107: JPEG images
Volume 5a: Chapter 108: Miscellaneous kernel items
Volume 5a: Chapter 109: FileSwitch
Volume 5a: Chapter 110: FileCore
Volume 5a: Chapter 111: ADFS
Volume 5a: Chapter 112: DOSFS
Volume 5a: Chapter 113: CDs and CD-ROMs
Volume 5a: Chapter 114: NetPrint
Volume 5a: Chapter 115: Parallel and serial device drivers
Volume 5a: Chapter 116: Keyboard and mouse
Volume 5a: Chapter 117: Filing system locking and resets
Volume 5a: Chapter 118: Free
Volume 5a: Chapter 119: Writing a filing system
Volume 5a: Chapter 120: Writing a FileCore mnodule
Volume 5a: Chapter 121: Econet
Volume 5a: Chapter 122: AUN
Volume 5a: Chapter 123: The Internet module
Volume 5a: Chapter 124: Acorn Access
Volume 5a: Chapter 125: The desktop
Volume 5a: Chapter 126: Drag An Object
Volume 5a: Chapter 127: Draw file renderer
Volume 5a: Chapter 128: RISC OS boot applications
Volume 5a: Chapter 129: The colour picker
Volume 5a: Chapter 130: Printing
Volume 5a: Chapter 131: Internationalisation
Volume 5a: Chapter 132: Sound
Volume 5a: Chapter 133: CompressJPEG
Volume 5a: Chapter 134: Expansion card support
Volume 5a: Chapter 135: Joystick module
Volume 5a: Chapter 136: Monitor power saving
Volume 5a: Chapter 137: The Toolbox modules
Volume 5a: Chapter 138: Appendix A: Warnings on the use of ARM assembler
Volume 5a: Chapter 139: Appendix B: File formats
Volume 5a: Chapter 140: Appendix C: Errata and omissions for RISC OS 3 PRM
RISC OS 3 Programmer's Reference Manual: Index
Copyright
Volume 1: About this manual
About this manual
Summary of contents
Conventions used
Finding out more
Reader comments
Volume 1: Chapter 1: An introduction to RISC OS
An introduction to RISC OS
Introduction
Structure
Facilities
Altering and extending RISC OS
How RISC OS is written
How RISC OS is supplied
The history of RISC OS
Volume 1: Chapter 2: ARM Hardware
ARM Hardware
Introduction
ARM chip set
The ARM processor
The VIDC chip
The IOC chip
The MEMC chip
Finding out more
Volume 1: Chapter 3: An introduction to SWIs
An introduction to SWIs
Introduction
SWI numbers and names
Parameters and results
An example
Calling from Assembler
Calling from BBC BASIC
Calling from C
More about SWI numbers and names
Error handling - an introduction
SWI numbers in detail
Technical details
An example of documentation
OS_Write0 (SWI &02)
Important notes
Volume 1: Chapter 4: * Commands and the CLI
* Commands and the CLI
Introduction
Command Line mode
OS_CLI and the CLI
* Commands v. SWIs
Documentation
An example of documentation
*Time
Using * Commands
Issuing * Commands from applications with command lines
Issuing * Commands from assembler
Issuing * Commands from BASIC
Issuing * Commands from C
Changing and adding * Commands
Volume 1: Chapter 5: Generating and handling errors
Generating and handling errors
Introduction
Error handling
Error blocks
Error numbers
Technical details of error-generating SWIs
Generating errors
Writing system extension code
SWI Calls
OS_GenerateError (SWI &2B)
* Commands
*Error
Volume 1: Chapter 6: OS_Byte
OS_Byte
Introduction
Parameters
Calling OS_Byte
Which call to use when
OS_Byte and interrupts
Adding OS_Byte calls
The *FX command
Calling *FX
SWI calls
OS_Byte (SWI &06)
* Commands
*FX
Volume 1: Chapter 7: OS_Word
OS_Word
Introduction
Parameters
Calling OS_Word
OS_Word and * Commands
SWI calls
OS_Word (SWI &07)
Volume 1: Chapter 8: Software vectors
Software vectors
Introduction
Claiming vectors
An example
Vector chains
When not to intercept a vector
Multiply installing the same routine
Desktop applications
SWI Calls
OS_Claim (SWI &1F)
OS_Release (SWI &20)
OS_CallAVector (SWI &34)
OS_AddToVector (SWI &47)
OS_DelinkApplication (SWI &4D)
OS_RelinkApplication (SWI &4E)
Use of registers
Processor modes
Returning errors
Returning from a vectored routine
List of software vectors
Summary of vectors
Vector descriptions
IrqV (Vector &02)
InsV (Vector &14)
RemV (Vector &15)
CnpV (Vector &16)
UKVDU23V (Vector &17)
UKSWIV (Vector &18)
UKPLOTV (Vector &19)
VDUXV (Vector &1B)
TickerV (Vector &1C)
DrawV (Vector &20)
EconetV (Vector &21)
ColourV (Vector &22)
PaletteV (Vector &23)
More complex uses of vectors
An example program
Application notes
Reading a palette entry
Writing a palette entry
Volume 1: Chapter 9: Hardware vectors
Hardware vectors
Introduction
Reset vector
Hardware exception vectors
SWI vector
IRQ vector
FIQ vector
Claiming hardware vectors
Passing on calls to hardware vectors
Releasing hardware vectors
Vector priorities
Volume 1: Chapter 10: Interrupts and handling them
Interrupts and handling them
Introduction
Device numbers
Device vectors
IRQUtils
SWI Calls
OS_ClaimDeviceVector (SWI &4B)
OS_ReleaseDeviceVector (SWI &4C)
Technical details
How a device driver is called
Device driver routines
Restrictions
Error handling
Re-entrancy
Clearing interrupt conditions
Fast interrupt requests
Disabling interrupts
Service Calls
Service_ReleaseFIQ (Service Call &0B)
Service_ClaimFIQ (Service Call &0C)
Service_ClaimFIQinBackground (Service Call &47)
SWI Calls
OS_IntOn (SWI &13)
OS_IntOff (SWI &14)
OS_EnterOS (SWI &16)
Hardware addresses
Volume 1: Chapter 11: Events
Events
Introduction
Enabling and disabling events
Using events
SWI Calls
OS_Byte 13 (SWI &06)
OS_Byte 14 (SWI &06)
OS_GenerateEvent (SWI &22)
Details of events
Volume 1: Chapter 12: Buffers
Buffers
Introduction
The buffer manager
Filing system buffers
Use of buffers
Details of buffers
OS_Byte calls provided
Changing buffer sizes
SWI calls
OS_Byte 15 (SWI &06)
OS_Byte 21 (SWI &06)
OS_Byte 128 (SWI &06)
OS_Byte 138 (SWI &06)
OS_Byte 145 (SWI &06)
OS_Byte 152 (SWI &06)
OS_Byte 153 (SWI &06)
Volume 1: Chapter 13: Communications within RISC OS
Communications within RISC OS
Introduction
Vectors
Service calls
Window manager SWIs
Call Backs
UpCalls
OS_UpCall (SWI &33)
OS_UpCall 1 and 2 (SWI &33)
OS_UpCall 3 (SWI &33)
OS_UpCall 4 (SWI &33)
OS_UpCall 6 (SWI &33)
OS_UpCall 7 (SWI &33)
OS_UpCall 8 (SWI &33)
OS_UpCall 9 (SWI &33)
OS_UpCall 10 (SWI &33)
OS_UpCall 11 (SWI &33)
OS_UpCall 256 (SWI &33)
OS_UpCall 257 (SWI &33)
Volume 1: Chapter 14: Modules
Modules
Introduction
Overview
Using modules
Writing a module
Technical Details
Module initialisation
Using modules
Workspace
Errors in module code
Module header format
Service calls
Module entry points
Start code
Initialisation Code
Finalisation Code
Service call handler
Title string
Help string
Help and command keyword table
SWI chunk base number
SWI handler code
SWI decoding table
SWI decoding code
SWI Calls
OS_Byte 143 (SWI &06)
OS_Module (SWI &1E)
OS_Module 0 (SWI &1E)
OS_Module 1 (SWI &1E)
OS_Module 2 (SWI &1E)
OS_Module 3 (SWI &1E)
OS_Module 4 (SWI &1E)
OS_Module 5 (SWI &1E)
OS_Module 6 (SWI &1E)
OS_Module 7 (SWI &1E)
OS_Module 8 (SWI &1E)
OS_Module 9 (SWI &1E)
OS_Module 10 (SWI &1E)
OS_Module 11 (SWI &1E)
OS_Module 12 (SWI &1E)
OS_Module 13 (SWI &1E)
OS_Module 14 (SWI &1E)
OS_Module 15 (SWI &1E)
OS_Module 16 (SWI &1E)
OS_Module 17 (SWI &1E)
OS_Module 18 (SWI &1E)
OS_Module 19 (SWI &1E)
OS_Module 20 (SWI &1E)
Service Calls
OS_ServiceCall (SWI &30)
Service_UKCommand (Service Call &04)
Service_Error (Service Call &06)
Service_UKByte (Service Call &07)
Service_UKWord (Service Call &08)
Service_Help (Service Call &09)
Service_UKConfig (Service Call &28)
Service_UKStatus (Service Call &29)
Service_NewApplication (Service Call &2A)
Service_LookupFileType (Service Call &42)
Service_PostInit(Service Call &73)
Service_SyntaxError (Service Call &8C)
*Commands
*Modules
*RMClear
*RMEnsure
*RMFaster
*RMInsert
*RMKill
*RMLoad
*RMReInit
*RMRun
*RMTidy
*ROMModules
*Unplug
Volume 1: Chapter 15: Program Environment
Program Environment
Introduction
Overview and Technical Details
Executing code
Ending a task
System variables
Miscellaneous environment features
Handlers
Details of Handlers
CallBacks in more detail
Currently active object pointer
Setting up and restoring the environment
SWI Calls
OS_Control (SWI &0F)
OS_GetEnv (SWI &10)
OS_Exit (SWI &11)
OS_SetEnv (SWI &12)
OS_CallBack (SWI &15)
OS_BreakPt (SWI &17)
OS_BreakCtrl (SWI &18)
OS_UnusedSWI (SWI &19)
OS_SetCallBack (SWI &1B)
OS_ReadVarVal (SWI &23)
OS_SetVarVal (SWI &24)
OS_ChangeEnvironment (SWI &40)
On entry
On exit
Interrupts
Processor Mode
Re-entrancy
Use
Related SWIs
Related vectors
OS_WriteEnv (SWI &48)
On entry
On exit
Interrupts
Processor Mode
Re-entrancy
Use
Related SWIs
Related vectors
OS_ExitAndDie (SWI &50)
On entry
On exit
Interrupts
Processor Mode
Re-entrancy
Use
Related SWIs
Related vectors
OS_AddCallBack (SWI &54)
On entry
On exit
Interrupts
Processor Mode
Re-entrancy
Use
Related SWIs
Related vectors
OS_ReadDefaultHandler (SWI &55)
On entry
On exit
Interrupts
Processor Mode
Re-entrancy
Use
Related SWIs
Related vectors
OS_RemoveCallBack (SWI &5F)
On entry
On exit
Interrupts
Processor Mode
Re-entrancy
Use
Related SWIs
Related vectors
* Commands
*Go
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*Quit
Syntax
Parameters
Use
Related commands
Related SWIs
Related vectors
*Set
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*SetEval
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*SetMacro
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*Show
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*Unset
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
Application Notes
Reading a variable
Checking the value of a variable
Code variable
OS_AddCallBack
A CallBack handler
Volume 1: Chapter 16: Memory Management
Memory Management
Introduction
Overview
Heap manager
MEMC control
Screen memory
Battery-backed CMOS RAM
Technical Details
Guidelines on using memory efficiently
Recovery from lack of memory
Avoiding permanent loss of memory
Avoiding memory wastage
Heap Manager
Logical memory map
Screen memory
Non-volatile memory (CMOS RAM)
Service Calls
Service_MemoryMoved (Service Call &4E)
Service_ValidateAddress (Service Call &6D)
SWI Calls
OS_Byte 161 (SWI &06)
OS_Byte 162 (SWI &06)
OS_UpdateMEMC (SWI &1A)
OS_Heap (SWI &1D)
OS_Heap 0 (SWI &1D)
OS_Heap 1 (SWI &1D)
OS_Heap 2 (SWI &1D)
OS_Heap 3 (SWI &1D)
OS_Heap 4 (SWI &1D)
OS_Heap 5 (SWI &1D)
OS_Heap 6 (SWI &1D)
OS_ChangeDynamicArea (SWI &2A)
OS_ValidateAddress (SWI &3A)
OS_ClaimScreenMemory (SWI &41)
OS_ReadRAMFsLimits (SWI &4A)
OS_ReadMemMapInfo (SWI &51)
OS_ReadMemMapEntries (SWI &52)
OS_SetMemMapEntries (SWI &53)
OS_ReadDynamicArea (SWI &5C)
OS_FindMemMapEntries (SWI &60)
*Commands
*Configure
*Configure PrinterBufferSize
*Configure RMASize
*Configure SystemSize
*Status
Volume 1: Chapter 17: Time and Date
Time and Date
Introduction
Overview and Technical Details
Monotonic timer
System clock
Real-time
Timer events
Obsolete timers
SWI Calls
OS_Byte 176 (SWI &06)
OS_Byte 243 (SWI &06)
OS_Word 1 (SWI &07)
OS_Word 2 (SWI &07)
OS_Word 3 (SWI &07)
OS_Word 4 (SWI &07)
OS_Word 14,0 (SWI &07)
OS_Word 14,1 (SWI &07)
OS_Word 14,2 (SWI &07)
OS_Word 14,3 (SWI &07)
OS_Word 15,8 (SWI &07)
OS_Word 15,15 (SWI &07)
OS_Word 15,24 (SWI &07)
OS_CallAfter (SWI &3B)
OS_CallEvery (SWI &3C)
OS_RemoveTickerEvent (SWI &3D)
OS_ReadMonotonicTime (SWI &42)
OS_ConvertStandardDateAndTime (SWI &C0)
OS_ConvertDateAndTime (SWI &C1)
*Commands
*Time
Volume 1: Chapter 18: Conversions
Conversions
Introduction
Overview and Technical Details
Numbers to strings
Strings to numbers
GS string operations
Evaluation operators
Parameter substitution
SWI number to/from string
Econet numbers
File size
SWI Calls
OS_ReadUnsigned (SWI &21)
OS_GSInit (SWI &25)
OS_GSRead (SWI &26)
OS_GSTrans (SWI &27)
OS_BinaryToDecimal (SWI &28)
OS_EvaluateExpression (SWI &2D)
OS_SWINumberToString (SWI &38)
OS_SWINumberFromString (SWI &39)
OS_SubstituteArgs (SWI &43)
OS_ReadArgs (SWI &49)
OS_ConvertNameNumber / (SWIs &D0 - E8)
OS_ConvertFixedNetStation (SWI &E9)
OS_ConvertNetStation (SWI &EA)
OS_ConvertFixedFileSize (SWI &EB)
OS_ConvertFileSize (SWI &EC)
*Commands
*Echo
*Eval
*If
Volume 1: Chapter 19: Extension ROMs
Extension ROMs
Volume 1: Chapter 20: Character Output
Character Output
Introduction
Overview
Device independence
Printer stream
Serial output device
Spool device
VDU device
Technical Details
Device independence
Printer stream
Serial device
Spool device
VDU device
SWI Calls
OS_WriteC (SWI &00)
OS_WriteS (SWI &01)
OS_Write0 (SWI &02)
OS_NewLine (SWI &03)
OS_Byte 3 (SWI &06)
OS_Byte 5 (SWI &06)
OS_Byte 6 (SWI &06)
OS_Byte 182 (SWI &06)
OS_Byte 199 (SWI &06)
OS_Byte 236 (SWI &06)
OS_Byte 245 (SWI &06)
OS_Byte 246 (SWI &06)
OS_PrettyPrint (SWI &44)
OS_PrintChar (SWI &5D)
OS_WriteN (SWI &46)
OS_WriteI (SWIs &100-1FF)
*Commands
*Configure Ignore
*Configure Print
*Ignore
Volume 1: Chapter 21: VDU Drivers
VDU Drivers
Introduction
Overview
VDU commands
Modes
Text and graphics
Cursor editing
Colours
The palette
Tints
ECF patterns
Bell
Mouse and pointer
Screen configuration
Multiple banks
Writing to the screen
Reading from the screen
Information about the VDU
VDU extension vector
Technical Details
VDU commands
Screen modes
Screen configuration
Multiple bank modes
Colours
Palette
Flashing colour
ECF patterns
Bell
Cursors
Mouse and pointer
Getting information
Reading from the screen
Writing to the screen
VDU Calls
VDU 0
VDU 1
VDU 2
VDU 3
VDU 4
VDU 5
VDU 6
VDU 7
VDU 8
VDU 9
VDU 10
VDU 11
VDU 12
VDU 13
VDU 14
VDU 15
VDU 16
VDU 17
VDU 18
VDU 19
VDU 20
VDU 21
VDU 22
VDU 23
VDU 23,0
VDU 23,1
VDU 23,2-5
VDU 23,6
VDU 23,7
VDU 23,8
VDU 23,9
VDU 23,10
VDU 23,11
VDU 23,12-15
VDU 23,16
VDU 23,17,0-3
VDU 23,17,4
VDU 23,17,5
VDU 23,17,6
VDU 23,17,7
VDU 23,18-24
VDU 23,25-26
VDU 23,27
VDU 23,28-31
VDU 23,32-255
VDU 24
VDU 25
VDU 26
VDU 27
VDU 28
VDU 29
VDU 30
VDU 31
VDU 127
Service Calls
Service_ModeChange (Service Call &46)
Service_PreModeChange (Service Call &4D)
Service_ModeExtension (Service Call &50)
Service_ModeTranslation (Service Call &51)
Service_MonitorLeadTranslation (Service Call &76)
Service_ModeChanging (Service Call &89)
SWI Calls
OS_Byte 9 (SWI &06)
OS_Byte 10 (SWI &06)
OS_Byte 19 (SWI &06)
OS_Byte 20 (SWI &06)
OS_Byte 25 (SWI &06)
OS_Byte 106 (SWI &06)
OS_Byte 112 (SWI &06)
OS_Byte 113 (SWI &06)
OS_Byte 114 (SWI &06)
OS_Byte 117 (SWI &06)
OS_Byte 134 (SWI &06)
OS_Byte 135 (SWI &06)
OS_Byte 144 (SWI &06)
OS_Byte 160 (SWI &06)
OS_Byte 163 (SWI &06)
OS_Byte 165 (SWI &06)
OS_Byte 193 (SWI &06)
OS_Byte 194 (SWI &06)
OS_Byte 195 (SWI &06)
OS_Byte 211 (SWI &06)
OS_Byte 212 (SWI &06)
OS_Byte 213 (SWI &06)
OS_Byte 214 (SWI &06)
OS_Byte 217 (SWI &06)
OS_Byte 218 (SWI &06)
OS_Byte 250 (SWI &06)
OS_Byte 251 (SWI &06)
OS_Word 9 (SWI &07)
OS_Word 10 (SWI &07)
OS_Word 11 (SWI &07)
OS_Word 12 (SWI &07)
OS_Word 13 (SWI &07)
OS_Word 21,0 (SWI &07)
OS_Word 21,1 (SWI &07)
OS_Word 21,2 (SWI &07)
OS_Word 21,3 (SWI &07)
OS_Word 21,4 (SWI &07)
OS_Word 21,5 (SWI &07)
OS_Word 21,6 (SWI &07)
OS_Word 22 (SWI &07)
OS_Mouse (SWI &1C)
OS_ReadPalette (SWI &2F)
OS_ReadVduVariables (SWI &31)
OS_ReadPoint (SWI &32)
OS_ReadModeVariable (SWI &35)
OS_RemoveCursors (SWI &36)
OS_RestoreCursors (SWI &37)
OS_CheckModeValid (SWI &3F)
OS_Plot (SWI &45)
OS_SetECFOrigin (SWI &56)
OS_ReadSysInfo (SWI &58)
OS_ReadSysInfo 0 (SWI &58)
OS_ReadSysInfo 1 (SWI &58)
OS_ReadSysInfo 2 (SWI &58)
OS_ReadSysInfo 3 (SWI &58)
OS_ChangedBox (SWI &5A)
OS_SetColour (SWI &61)
*Commands
*Configure Loud
*Configure Mode
*Configure MonitorType
*Configure MouseStep
*Configure NoScroll
*Configure Quiet
*Configure ScreenSize
*Configure Scroll
*Configure Sync
*Configure TV
*Shadow
*TV
Application Notes
Examples of ECF pattern use
Volume 1: Chapter 22: Sprites
Sprites
Introduction
Overview
File operations
Creating sprites
Sprite manipulation
Plotting a sprite
Technical Details
Format of a sprite area
Format of a sprite
Common parameters
Memory operations
File operations
Creating a sprite
Sprite manipulation
Plotting sprites
VDU commands
Service Calls
Service_SwitchingOutputToSprite (Service Call &72)
SWI Calls
OS_SpriteOp (SWI &2E)
OS_SpriteOp 2 (SWI &2E)
OS_SpriteOp 3 (SWI &2E)
OS_SpriteOp 8 (SWI &2E)
OS_SpriteOp 9 (SWI &2E)
OS_SpriteOp 10 (SWI &2E)
OS_SpriteOp 11 (SWI &2E)
OS_SpriteOp 12 (SWI &2E)
OS_SpriteOp 13 (SWI &2E)
OS_SpriteOp 14 (SWI &2E)
OS_SpriteOp 15 (SWI &2E)
OS_SpriteOp 16 (SWI &2E)
OS_SpriteOp 24 (SWI &2E)
OS_SpriteOp 25 (SWI &2E)
OS_SpriteOp 26 (SWI &2E)
OS_SpriteOp 27 (SWI &2E)
OS_SpriteOp 28 (SWI &2E)
OS_SpriteOp 29 (SWI &2E)
OS_SpriteOp 30 (SWI &2E)
OS_SpriteOp 31 (SWI &2E)
OS_SpriteOp 32 (SWI &2E)
OS_SpriteOp 33 (SWI &2E)
OS_SpriteOp 34 (SWI &2E)
OS_SpriteOp 35 (SWI &2E)
OS_SpriteOp 36 (SWI &2E)
OS_SpriteOp 37 (SWI &2E)
OS_SpriteOp 40 (SWI &2E)
OS_SpriteOp 41 (SWI &2E)
OS_SpriteOp 42 (SWI &2E)
OS_SpriteOp 43 (SWI &2E)
OS_SpriteOp 44 (SWI &2E)
OS_SpriteOp 45 (SWI &2E)
OS_SpriteOp 46 (SWI &2E)
OS_SpriteOp 47 (SWI &2E)
OS_SpriteOp 48 (SWI &2E)
OS_SpriteOp 49 (SWI &2E)
OS_SpriteOp 50 (SWI &2E)
OS_SpriteOp 51 (SWI &2E)
OS_SpriteOp 52 (SWI &2E)
OS_SpriteOp 53 (SWI &2E)
OS_SpriteOp 54 (SWI &2E)
OS_SpriteOp 55 and 56 (SWI &2E)
OS_SpriteOp 57 and 58 (SWI &2E)
OS_SpriteOp 60 (SWI &2E)
OS_SpriteOp 61 (SWI &2E)
OS_SpriteOp 62 (SWI &2E)
*Commands
*Configure SpriteSize
*SChoose
*SCopy
*ScreenLoad
*ScreenSave
*SDelete
*SFlipX
*SFlipY
*SGet
*SInfo
*SList
*SLoad
*SMerge
*SNew
*SRename
*SSave
Application notes
Using sprites with 256 entry palettes
Volume 1: Chapter 23: Character Input
Character Input
Introduction
Overview
Streams
Keyboard
Reset, Break and Escape
Serial port
*Exec
Technical Details
Events
Streams
Keyboard
Reset, Break and Escape
Serial device
*Exec
Internal key numbers
Service Calls
Service_KeyHandler (Service Call &44)
SWI Calls
OS_ReadC (SWI &04)
OS_Byte 2 (SWI &06)
OS_Byte 4 (SWI &06)
OS_Byte 11 (SWI &06)
OS_Byte 12 (SWI &06)
OS_Byte 18 (SWI &06)
OS_Byte 118 (SWI &06)
OS_Byte 121 (SWI &06)
OS_Byte 122 (SWI &06)
OS_Byte 124 (SWI &06)
OS_Byte 125 (SWI &06)
OS_Byte 126 (SWI &06)
OS_Byte 129 (SWI &06)
OS_Byte 177 (SWI &06)
OS_Byte 196 (SWI &06)
OS_Byte 197 (SWI &06)
OS_Byte 198 (SWI &06)
OS_Byte 200 (SWI &06)
OS_Byte 201 (SWI &06)
OS_Byte 202 (SWI &06)
OS_Byte 216 (SWI &06)
OS_Byte 219 (SWI &06)
OS_Byte 220 (SWI &06)
OS_Bytes 221 - 228 (SWI &06)
OS_Byte 229 (SWI &06)
OS_Byte 230 (SWI &06)
OS_Byte 237 (SWI &06)
OS_Byte 238 (SWI &06)
OS_Byte 247 (SWI &06)
OS_Byte 253 (SWI &06)
OS_Byte 254 (SWI &06)
OS_Word 0 (SWI &07)
OS_ReadLine (SWI &0E)
OS_ReadEscapeState (SWI &2C)
OS_InstallKeyHandler (SWI &3E)
*Commands
*Configure Caps
*Configure Delay
*Configure NoCaps
*Configure Repeat
*Configure ShCaps
*Key
Volume 1: Chapter 24: The CLI
The CLI
Introduction
Overview and Technical Details
CLI effects
Reading CLI parameters
SWI Calls
OS_CLI (SWI &05)
OS_ChangeRedirection (SWI &5E)
* Commands
*GOS
Volume 1: Chapter 25: The rest of the kernel
The rest of the kernel
Introduction
SWI Calls
OS_Byte 0 (SWI &06)
OS_HeapSort (SWI &4F)
OS_Confirm (SWI &59)
OS_CRC (SWI &5B)
IIC_Control (SWI &240)
*Commands
*Configure Language
*Help
Volume 2: Chapter 26: Introduction to filing systems
Introduction to filing systems
Filing systems
FileSwitch
FileCore
DeviceFS
Image filing systems
The Filer
Filer_Action
Filers
Summary
Volume 2: Chapter 27: FileSwitch
FileSwitch
Introduction and Overview
Adding filing systems
Technical Details
Terminology
Filenames
Directories
Filing systems
Special fields
Current selections
System variables
File attributes
Addresses / File types and date stamps
Load-time and run-time system variables
File$Path and Run$Path
Using other path variables
System devices
Filing system numbers
Re-entrancy
FileSwitch and the kernel
Further calls
Support of calls
Protected files
Service Calls
Service_StartUpFS (Service Call &12)
Service_FSRedeclare (Service Call &40)
Service_CloseFile (Service Call &68)
SWI Calls
OS_Byte 127 (SWI &06)
OS_Byte 139 (SWI &06)
OS_Byte 255 (SWI &06)
OS_File (SWI &08)
OS_File 0 and 10 (SWI &08)
OS_File 1, 2, 3, 4, 9, and 18 (SWI &08)
OS_File 5, 13, 15 and 17 (SWI &08)
OS_File 6 (SWI &08)
OS_File 7 and 11 (SWI &08)
OS_File 8 (SWI &08)
OS_File 12, 14, 16 and 255 (SWI &08)
OS_File 19 (SWI &08)
OS_File 20, 21, 22 and 23 (SWI &08)
OS_File 24 (SWI &08)
OS_Args (SWI &09)
OS_Args 0 (SWI &09)
OS_Args 1 (SWI &09)
OS_Args 2 (SWI &09)
OS_Args 3 (SWI &09)
OS_Args 4 (SWI &09)
OS_Args 5 (SWI &09)
OS_Args 6 (SWI &09)
OS_Args 7 (SWI &09)
OS_Args 8 (SWI &09)
OS_Args 254 (SWI &09)
OS_Args 255 (SWI &09)
OS_BGet (SWI &0A)
OS_BPut (SWI &0B)
OS_GBPB (SWI &0C)
OS_GBPB 1 and 2 (SWI &0C)
OS_GBPB 3 and 4 (SWI &0C)
OS_GBPB 5, 6 and 7 (SWI &0C)
OS_GBPB 8 (SWI &0C)
OS_GBPB 9, 10, 11 and 12 (SWI &0C)
OS_Find (SWI &0D)
OS_Find 0 (SWI &0D)
OS_Find 64 to 255 (SWI &0D)
OS_FSControl (SWI &29)
OS_FSControl 0 (SWI &29)
OS_FSControl 1 (SWI &29)
OS_FSControl 2 (SWI &29)
OS_FSControl 4 (SWI &29)
OS_FSControl 5 (SWI &29)
OS_FSControl 6 (SWI &29)
OS_FSControl 7 (SWI &29)
OS_FSControl 8 (SWI &29)
OS_FSControl 9 (SWI &29)
OS_FSControl 10 (SWI &29)
OS_FSControl 11 (SWI &29)
OS_FSControl 12 (SWI &29)
OS_FSControl 13 (SWI &29)
OS_FSControl 14 (SWI &29)
OS_FSControl 15 (SWI &29)
OS_FSControl 16 (SWI &29)
OS_FSControl 17 (SWI &29)
OS_FSControl 18 (SWI &29)
OS_FSControl 19 (SWI &29)
OS_FSControl 20 (SWI &29)
OS_FSControl 21 (SWI &29)
OS_FSControl 22 (SWI &29)
OS_FSControl 23 (SWI &29)
OS_FSControl 24 (SWI &29)
OS_FSControl 25 (SWI &29)
OS_FSControl 26 (SWI &29)
OS_FSControl 27 (SWI &29)
OS_FSControl 28 (SWI &29)
OS_FSControl 30 (SWI &29)
OS_FSControl 31 (SWI &29)
OS_FSControl 32 (SWI &29)
OS_FSControl 33 (SWI &29)
OS_FSControl 35 (SWI &29)
OS_FSControl 36 (SWI &29)
OS_FSControl 37 (SWI &29)
OS_FSControl 38 (SWI &29)
OS_FSControl 39 (SWI &29)
OS_FSControl 40 (SWI &29)
OS_FSControl 41 (SWI &29)
OS_FSControl 42 (SWI &29)
OS_FSControl 43 (SWI &29)
OS_FSControl 44 (SWI &29)
OS_FSControl 45 (SWI &29)
OS_FSControl 46 (SWI &29)
OS_FSControl 47 (SWI &29)
OS_FSControl 48 (SWI &29)
OS_FSControl 49 (SWI &29)
OS_FSControl 50 (SWI &29)
OS_FSControl 51 (SWI &29)
OS_FSControl 52 (SWI &29)
OS_FSControl 53 (SWI &29)
OS_FSControl 54 (SWI &29)
* Commands
*Access
*Append
*Back
*Build
*Cat
*CDir
*Close
*Configure Boot
*Configure DumpFormat
*Configure FileSystem
*Configure NoBoot
*Configure Truncate
*Copy
*Count
*Create
*Defect
*Delete
*Dir
*Dump
*EnumDir
*Ex
*Exec
*FileInfo
*Info
*LCat
*LEx
*Lib
*List
*Load
*NoDir
*NoLib
*NoURD
*Opt 1
*Opt 4
*Print
*Remove
*Rename
*Run
*Save
*SetType
*Shut
*ShutDown
*Spool
*SpoolOn
*Stamp
*Type
*Up
*URD
*Wipe
Volume 2: Chapter 28: FileCore
FileCore
Introduction
Overview
Similarities with FileSwitch
Adding a module to FileCore
Technical details
Disc formats
Maps
Disc addresses
Directories
Boot blocks
Data format
Disc identifiers
Service Calls
Service_IdentifyDisc (Service Call &69)
SWI Calls
FileCore_DiscOp (SWI &40540)
FileCore_Create (SWI &40541)
FileCore_Drives (SWI &40542)
FileCore_FreeSpace (SWI &40543)
FileCore_FloppyStructure (SWI &40544)
FileCore_DescribeDisc (SWI &40545)
FileCore_DiscardReadSectorsCache (SWI &40546)
FileCore_DiscFormat (SWI &40547)
FileCore_LayoutStructure (SWI &40548)
FileCore_MiscOp (SWI &40549)
FileCore_MiscOp 0 (SWI &40549)
FileCore_MiscOp 1 (SWI &40549)
FileCore_MiscOp 2 (SWI &40549)
FileCore_MiscOp 3 (SWI &40549)
FileCore_MiscOp 4 (SWI &40549)
FileCore_MiscOp 5 (SWI &40549)
* Commands
*Backup
*Bye
*CheckMap
*Compact
*Configure Dir
*Configure NoDir
*Dismount
*Drive
*Free
*Map
*Mount
*NameDisc
*Title
*Verify
Volume 2: Chapter 29: ADFS
ADFS
Introduction
Overview
Technical details
Formats
Formatting discs
Software protection schemes
Disc Drives
Hardware Limits
Recommended formats
Floppy drive types supported by 710/711 driver
Drive interface signal description
Disc errors
Service Calls
Service_IdentifyFormat (Service Call &6B)
Service_DisplayFormatHelp (Service Call &6C)
SWI calls
ADFS_DiscOp (SWI &40240)
ADFS_HDC (SWI &40241)
ADFS_Drives (SWI &40242)
ADFS_FreeSpace (SWI &40243)
ADFS_Retries (SWI &40244)
ADFS_DescribeDisc (SWI &40245)
ADFS_VetFormat (SWI &40246)
ADFS_FlpProcessDCB (SWI &40247)
ADFS_ControllerType (SWI &40248)
ADFS_PowerControl (SWI &40249)
ADFS_SetIDEController (SWI &4024A)
ADFS_IDEUserOp (SWI &4024B)
ADFS_MiscOp (SWI &4024C)
ADFS_ECCSAndRetries (SWI &40250)
* Commands
*ADFS
*Configure ADFSbuffers
*Configure ADFSDirCache
*Configure Drive
*Configure Floppies
*Configure HardDiscs
*Configure IDEDiscs
*Configure Step
*Format
Volume 2: Chapter 30: RamFS
RamFS
Introduction
Overview
SWI calls
RamFS_DiscOp (SWI &40780)
RamFS_Drives (SWI &40782)
RamFS_FreeSpace (SWI &40783)
RamFS_DescribeDisc (SWI &40785)
* Commands
*Configure RamFsSize
*Ram
Volume 2: Chapter 31: DOSFS
DOSFS
Introduction
Overview
Components of an image filing system
Points to note
Writing image filing systems and host filing systems
Technical Details
The Image Handler
The Identifier
Disc cycle ids
The formatter
Summary of responsibilities
Filename mapping
Attribute mapping
SWI numbering
Warning: possible data corruption
SWI Calls
DOSFS_DiscFormat (SWI &44B00)
DOSFS_LayoutStructure (SWI &44B01)
* Commands
*CopyBoot
*DOSMap
Volume 2: Chapter 32: NetFS
NetFS
Introduction
Overview
Technical Details
Naming
File server name binding
Timeouts
Direct access to file servers
Differences from FileCore based filing systems
Service Calls
Service_NetFS (Service Call &55)
Service_NetFSDying (Service Call &5F)
SWI calls
NetFS_ReadFSNumber (SWI &40040)
NetFS_SetFSNumber (SWI &40041)
NetFS_ReadFSName (SWI &40042)
NetFS_SetFSName (SWI &40043)
NetFS_ReadCurrentContext (SWI &40044)
NetFS_SetCurrentContext (SWI &40045)
NetFS_ReadFSTimeouts (SWI &40046)
NetFS_SetFSTimeouts (SWI &40047)
NetFS_DoFSOp (SWI &40048)
NetFS_EnumerateFSList (SWI &40049)
NetFS_EnumerateFS (SWI &4004A)
NetFS_ConvertDate (SWI &4004B)
NetFS_DoFSOpToGivenFS (SWI &4004C)
NetFS_UpdateFSList (SWI &4004D)
NetFS_EnumerateFSContexts (SWI &4004E)
NetFS_ReadUserId (SWI &4004F)
NetFS_GetObjectUID (SWI &40050)
NetFS_EnableCache (SWI &40051)
* Commands
*AddFS
*Bye
*Configure FS
*Configure Lib
*Free
*FS
*I am
*ListFS
*Logon
*Mount
*Net
*Pass
*SDisc
Example program
Volume 2: Chapter 32: PipeFS
PipeFS
Introduction and Overview
* Commands
*PipeCopy
Volume 2: Chapter 33: NetPrint
NetPrint
Introduction and Overview
Technical Details
Naming
Linking NetPrint to *FX 5 4 and VDU 2
Timeouts
SWI calls
NetPrint_ReadPSNumber (SWI &40200)
NetPrint_SetPSNumber (SWI &40201)
NetPrint_ReadPSName (SWI &40202)
NetPrint_SetPSName (SWI &40203)
NetPrint_ReadPSTimeouts (SWI &40204)
NetPrint_SetPSTimeouts (SWI &40205)
NetPrint_BindPSName (SWI &40206)
NetPrint_ListServers (SWI &40207)
NetPrint_ConvertStatusToString (SWI &40208)
* Commands
*Configure PS
*ListPS
*PS
*SetPS
Volume 2: Chapter 35: ResourceFS
ResourceFS
Introduction and Overview
Technical Details
Directory structure
Path variables
Auto-starting applications
Internationalisation
Software interface
Service Calls
Service_ResourceFSStarted (Service Call &59)
Service_ResourceFSDying (Service Call &5A)
Service_ResourceFSStarting (Service Call &60)
SWI Calls
ResourceFS_RegisterFiles (SWI &41B40)
ResourceFS_DeregisterFiles (SWI &41B41)
* Commands
*ResourceFS
Volume 2: Chapter 36: DeskFS
DeskFS
Introduction
* Commands
*DeskFS
Volume 2: Chapter 37: DeviceFS
DeviceFS
Introduction and Overview
Technical Details
Special fields
Service Calls
Service_DeviceFSStarting (Service Call &70)
Service_DeviceFSDying (Service Call &71)
Service_DeviceDead (Service Call &79)
Service_DeviceFSCloseRequest (Service Call &81)
SWI Calls
DeviceFS_Register (SWI &42740)
DeviceFS_Deregister (SWI &42741)
DeviceFS_RegisterObjects (SWI &42742)
DeviceFS_DeregisterObjects (SWI &42743)
DeviceFS_CallDevice (SWI &42744)
DeviceFS_Threshold (SWI &42745)
DeviceFS_ReceivedCharacter (SWI &42746)
DeviceFS_TransmitCharacter (SWI &42747)
Volume 2: Chapter 38: Serial device
Serial device
Technical details
Serial Device
Summary of commands
Serial buffers
Handshaking and protocol
Serial line names
SWI Calls
OS_Byte 7 (SWI &06)
OS_Byte 8 (SWI &06)
OS_Byte 156 (SWI &06)
OS_Byte 181 (SWI &06)
OS_Byte 191 (SWI &06)
OS_Byte 192 (SWI &06)
OS_Byte 203 (SWI &06)
OS_Byte 204 (SWI &06)
OS_Byte 242 (SWI &06)
OS_SerialOp (SWI &57)
OS_SerialOp 0 (SWI &57)
OS_SerialOp 1 (SWI &57)
OS_SerialOp 2 (SWI &57)
OS_SerialOp 3 (SWI &57)
OS_SerialOp 4 (SWI &57)
OS_SerialOp 5 (SWI &57)
OS_SerialOp 6 (SWI &57)
OS_SerialOp 7 (SWI &57)
OS_SerialOp 8 (SWI &57)
*Commands
*Configure Baud
*Configure Data
Volume 2: Chapter 39: Parallel device
Parallel device
Introduction and Overview
SWI calls
Parallel_HardwareAddress (SWI &42EC0)
Parallel_Op (SWI &42EC1)
Parallel_Op 0 (SWI &42EC1)
Parallel_Op 1 (SWI &42EC1)
Parallel_Op 2 (SWI &42EC1)
Volume 2: Chapter 40: System devices
System devices
System devices
Other devices
Redirection
Suppressing output using null:
Input devices
netprint:
printer:
Other output devices
The RISC OS 2 serial device
Volume 2: Chapter 41: The Filer
The Filer
Introduction and Overview
Service Calls
Service_StartFiler (Service Call &4B)
On entry
On exit
Use
Service_StartedFiler (Service Call &4C)
Service_Reset (Service Call &27)
On entry
On exit
Use
Service_FilerDying (Service Call &4F)
On entry
On exit
Use
Service_EnumerateFormats (Service Call &6A)
On entry
On exit
Use
Service_DiscDismounted (Service Call &7D)
On entry
On exit
Use
* Commands
*Filer_Boot
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*Filer_CloseDir
Syntax
Parameter
Use
Example
Related commands
Related SWIs
Related vectors
*Filer_OpenDir
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
*Filer_Run
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
Volume 2: Chapter 42: Filer_Action and FilerSWIs
Filer_Action and FilerSWIs
Introduction and Overview
SWI calls
FilerAction_SendSelectedDirectory (SWI &40F80)
FilerAction_SendSelectedFile (SWI &40F81)
FilerAction_SendStartOperation (SWI &40F82)
* Commands
*Filer_Action
Volume 2: Chapter 43: Free
Free
Introduction and Overview
SWI calls
Free_Register (SWI &444C0)
Free_DeRegister (SWI &444C1)
* Commands
*ShowFree
Volume 2: Chapter 44: Writing a filing system
Writing a filing system
Writing your own filing system
Filing systems
Image filing systems
Filing system interfaces: introduction
Calling conventions
Using canonical names
Interfaces
FSEntry_Open and ImageEntry_Open
FSEntry_GetBytes (from a buffered file), and ImageEntry_GetBytes (all cases)
FSEntry_GetBytes (from an unbuffered file)
FSEntry_PutBytes (to a buffered file), and ImageEntry_PutBytes (all cases)
FSEntry_PutBytes (to an unbuffered file)
FSEntry_Args and ImageEntry_Args
FSEntry_Args 0
FSEntry_Args 1
FSEntry_Args 2
FSEntry_Args 3 and ImageEntry_Args 3
FSEntry_Args 4 and ImageEntry_Args 4
FSEntry_Args 5
FSEntry_Args 6 and ImageEntry_Args 6
FSEntry_Args 7 and ImageEntry_Args 7
FSEntry_Args 8 and ImageEntry_Args 8
FSEntry_Args 9 and ImageEntry_Args 9
FSEntry_Args 10
FSEntry_Close and ImageEntry_Close
FSEntry_File and ImageEntry_File
FSEntry_File 0 and ImageEntry_File 0
FSEntry_File 1 and ImageEntry_File 1
FSEntry_File 2
FSEntry_File 3
FSEntry_File 4
FSEntry_File 5 and ImageEntry_File 5
FSEntry_File 6 and ImageEntry_File 6
FSEntry_File 7 and ImageEntry_File 7
FSEntry_File 8 and ImageEntry_File 8
FSEntry_File 9
FSEntry_File 10 and ImageEntry_File 10
FSEntry_File 255
FSEntry_Func and ImageEntry_Func
FSEntry_Func 0
FSEntry_Func 1
FSEntry_Func 2
FSEntry_Func 3
FSEntry_Func 4
FSEntry_Func 5
FSEntry_Func 6
FSEntry_Func 7
FSEntry_Func 8 and ImageEntry_Func 8
FSEntry_Func 9
FSEntry_Func 10
FSEntry_Func 11
FSEntry_Func 12
FSEntry_Func 13
FSEntry_Func 14 and ImageEntry_Func 14
FSEntry_Func 15 and ImageEntry_Func 15
FSEntry_Func 16
FSEntry_Func 17
FSEntry_Func 18
FSEntry_Func 19
FSEntry_Func 20
ImageEntry_Func 21
ImageEntry_Func 22
FSEntry_Func 23
FSEntry_Func 24
FSEntry_Func 25 and ImageEntry_Func 25
FSEntry_Func 26 and ImageEntry_Func 26
FSEntry_Func 27 and ImageEntry_Func 27
FSEntry_Func 28 and ImageEntry_Func 28
FSEntry_Func 29 and ImageEntry_Func 29
FSEntry_Func 30 and ImageEntry_Func 30
FSEntry_Func 31 and ImageEntry_Func 31
FSEntry_Func 32 and ImageEntry_Func 32
FSEntry_Func 33 and ImageEntry_Func 33
FSEntry_Func 34
FSEntry_GBPB
FSEntry_GBPB 1 and 2
FSEntry_GBPB 3 and 4
Example program
Volume 2: Chapter 45: Writing a FileCore module
Writing a FileCore module
Adding your own module to FileCore
Declaring your module
Selecting your filing system
Other * Commands
Implementing SWI calls
Removing your filing system
Returning errors
Module interfaces
Module interfaces
DiscOp entry
MiscOp entry
Volume 2: Chapter 46: Writing a device driver
Writing a device driver
Adding your own device driver to DeviceFS
Registering your device driver
Deregistering your device driver
Device driver interfaces
Calling conventions
Interfaces
DeviceDriver_Entry
DeviceDriver_Entry 0
DeviceDriver_Entry 1
DeviceDriver_Entry 2
DeviceDriver_Entry 3
DeviceDriver_Entry 4
DeviceDriver_Entry 5
DeviceDriver_Entry 6 and 7
DeviceDriver_Entry 8
DeviceDriver_Entry 9
DeviceDriver_Entry 10
DeviceDriver_Entry 11
Volume 2: Chapter 47: Econet
Econet
Introduction
Overview
Technical Details
Packets and frames
Receiving data and using RxCBs
Receiving data using a single SWI
Transmitting data and using TxCB's
Transmitting data using a single SWI
Converting a status to an error
Flag bytes
Port bytes
Econet events
Broadcast transmissions
Local loopback
Immediate operations
Protection against immediate operations
Reading your station and net numbers
Extracting station numbers from a string
Converting station and net to a string
Conventions and values
Transmission semantics
Service Calls
Service_ReAllocatePorts (Service Call &48)
Service_EconetDying (Service Call &56)
Service_ProtocolDying (Service Call &83)
Service_FindNetworkDriver (Service Call &84)
Service_NetworkDriverStatus (Service Call &8B)
SWI Calls
Econet_CreateReceive (SWI &40000)
Econet_ExamineReceive (SWI &40001)
Econet_ReadReceive (SWI &40002)
Econet_AbandonReceive (SWI &40003)
Econet_WaitForReception (SWI &40004)
Econet_EnumerateReceive (SWI &40005)
Econet_StartTransmit (SWI &40006)
Econet_PollTransmit (SWI &40007)
Econet_AbandonTransmit (SWI &40008)
Econet_DoTransmit (SWI &40009)
Econet_ReadLocalStationAndNet (SWI &4000A)
Econet_ConvertStatusToString (SWI &4000B)
Econet_ConvertStatusToError (SWI &4000C)
Econet_ReadProtection (SWI &4000D)
Econet_SetProtection (SWI &4000E)
Econet_ReadStationNumber (SWI &4000F)
Econet_PrintBanner (SWI &40010)
Econet_ReadTransportType (SWI &40011)
Econet_ReleasePort (SWI &40012)
Econet_AllocatePort (SWI &40013)
Econet_DeAllocatePort (SWI &40014)
Econet_ClaimPort (SWI &40015)
Econet_StartImmediate (SWI &40016)
Econet_DoImmediate (SWI &40017)
Econet_AbandonAndReadReceive (SWI &40018)
Econet_Version (SWI &40019)
Econet_NetworkState (SWI &4001A)
Econet_PacketSize (SWI &4001B)
Econet_ReadTransportName (SWI &4001C)
* Commands
Application notes
Volume 2: Chapter 48: File server protocol interface
File server protocol interface
The user environment
Interfaces
Error messages
Volume 2: Chapter 48½: Printer server protocol interface
Printer server protocol interface
NetPrint status protocol
NetPrint printing protocol
Port claiming
Volume 2: Chapter 49: The Broadcast Loader
The Broadcast Loader
Introduction and Overview
Volume 2: Chapter 50: BBC Econet
BBC Econet
Introduction and Overview
Technical details
Summary of calls
Implementation
Volume 2: Chapter 51: Hourglass
Hourglass
Introduction and Overview
SWI Calls
Hourglass_On (SWI &406C0)
Hourglass_Off (SWI &406C1)
Hourglass_Smash (SWI &406C2)
Hourglass_Start (SWI &406C3)
Hourglass_Percentage (SWI &406C4)
Hourglass_LEDs (SWI &406C5)
Hourglass_Colours (SWI &406C6)
Example programs
Volume 2: Chapter 52: NetStatus
NetStatus
Introduction and Overview
Technical Details
Volume 3: Chapter 53: The Window Manager
The Window Manager
Introduction
Overview
Technical details
Polling
General principles
The Mouse
Layout of windows
Window system areas
Redrawing windows
Updating windows
Taking over the screen
The icon bar
Icons and sprites
RISC OS System Icons
Menus
Dialogue boxes
Tool windows and 'panes'
Keyboard input and text handling
Changing the pointer shape
Mode independence
Colour
System font handling
Dragging
Editors
Memory management
Template files
Application resource files
Shared resources
Relocatable module tasks
Errors
Error messages
Time
Wimp behaviour under RISC OS 3
Service Calls
Service Calls
Service_Memory (Service Call &11)
Service_Reset (Service Call &27)
Service_StartWimp (Service Call &49)
Service_StartedWimp (Service Call &4A)
Service_Reset (Service Call &27)
Service_MouseTrap (Service Call &52)
Service_WimpCloseDown (Service Call &53)
Service_WimpReportError (Service Call &57)
Service_WimpSaveDesktop (Service Call &5C)
Service_WimpPalette (Service Call &5D)
Service_DesktopWelcome (Service Call &7C)
Service_ShutDown (Service Call &7E)
Service_ShutdownComplete (Service Call &80)
Service_WimpSpritesMoved (Service Call &85)
Service_WimpRegisterFilters (Service Call &86)
SWI Calls
Wimp_Initialise (SWI &400C0)
Wimp_CreateWindow (SWI &400C1)
Wimp_CreateIcon (SWI &400C2)
Wimp_DeleteWindow (SWI &400C3)
Wimp_DeleteIcon (SWI &400C4)
Wimp_OpenWindow (SWI &400C5)
Wimp_CloseWindow (SWI &400C6)
Wimp_Poll (SWI &400C7)
Wimp_RedrawWindow (SWI &400C8)
Wimp_UpdateWindow (SWI &400C9)
Wimp_GetRectangle (SWI &400CA)
Wimp_GetWindowState (SWI &400CB)
Wimp_GetWindowInfo (SWI &400CC)
Wimp_SetIconState (SWI &400CD)
Wimp_GetIconState (SWI &400CE)
Wimp_GetPointerInfo (SWI &400CF)
Wimp_DragBox (SWI &400D0)
Wimp_ForceRedraw (SWI &400D1)
Wimp_SetCaretPosition (SWI &400D2)
Wimp_GetCaretPosition (SWI &400D3)
Wimp_CreateMenu (SWI &400D4)
Wimp_DecodeMenu (SWI &400D5)
Wimp_WhichIcon (SWI &400D6)
Wimp_SetExtent (SWI &400D7)
Wimp_SetPointerShape (SWI &400D8)
Wimp_OpenTemplate (SWI &400D9)
Wimp_CloseTemplate (SWI &400DA)
Wimp_LoadTemplate (SWI &400DB)
Wimp_ProcessKey (SWI &400DC)
Wimp_CloseDown (SWI &400DD)
Wimp_StartTask (SWI &400DE)
Wimp_ReportError (SWI &400DF)
Wimp_GetWindowOutline (SWI &400E0)
Wimp_PollIdle (SWI &400E1)
Wimp_PlotIcon (SWI &400E2)
Wimp_SetMode (SWI &400E3)
Wimp_SetPalette (SWI &400E4)
Wimp_ReadPalette (SWI &400E5)
Wimp_SetColour (SWI &400E6)
Wimp_SendMessage (SWI &400E7)
Wimp_CreateSubMenu (SWI &400E8)
Wimp_SpriteOp (SWI &400E9)
Wimp_BaseOfSprites (SWI &400EA)
Wimp_BlockCopy (SWI &400EB)
Wimp_SlotSize (SWI &400EC)
Wimp_ReadPixTrans (SWI &400ED)
Wimp_ClaimFreeMemory (SWI &400EE)
Wimp_CommandWindow (SWI &400EF)
Wimp_TextColour (SWI &400F0)
Wimp_TransferBlock (SWI &400F1)
Wimp_ReadSysInfo (SWI &400F2)
Wimp_SetFontColours (SWI &400F3)
Wimp_GetMenuState (SWI &400F4)
Wimp_RegisterFilter (SWI &400F5)
Wimp_AddMessages (SWI &400F6)
Wimp_RemoveMessages (SWI &400F7)
Wimp_SetColourMapping (SWI &400F8)
Messages
Changes applying to applications passing 300 to Wimp_Initialise
Message actions
System messages
Filer messages
NetFiler message
Wimp messages
Application messages
The desktop save protocol
The device claim protocol
Data transfer protocol
The iconise protocol
The Printer protocol
The DataOpen Message
TaskWindow messages
*Commands
*Configure WimpAutoMenuDelay
*Configure WimpDoubleClickDelay
*Configure WimpDoubleClickMove
*Configure WimpDragDelay
*Configure WimpDragMove
*Configure WimpFlags
*Configure WimpMenuDragDelay
*Configure WimpMode
*Desktop
*Desktop_...
*Desktop_SetPalette
*IconSprites
*Pointer
*ToolSprites
*WimpMode
*WimpPalette
*WimpSlot
*WimpTask
*WimpWriteDir
Volume 3: Chapter 54: Pinboard
Pinboard
Introduction and overview
* Commands
*AddTinyDir
*BackDrop
*Pin
*Pinboard
*RemoveTinyDir
Volume 3: Chapter 55: Drag A Sprite
Drag A Sprite
Introduction
SWI calls
DragASprite_Start (SWI &42400)
DragASprite_Stop (SWI &42401)
Volume 3: Chapter 56: The Filter Manager
The Filter Manager
Introduction and Overview
Service Calls
Service_FilterManagerInstalled (Service Call &87)
Service_FilterManagerDying (Service Call &88)
SWI calls
Filter_RegisterPreFilter (SWI &42640)
Filter_RegisterPostFilter (SWI &42641)
Filter_DeRegisterPreFilter (SWI &42642)
Filter_DeRegisterPostFilter (SWI &42643)
* Commands
*Filters
Volume 3: Chapter 57: The TaskManager module
The TaskManager module
Introduction and Overview
SWI calls
TaskManager_TaskNameFromHandle (SWI &42680)
TaskManager_EnumerateTasks (SWI &42681)
TaskManager_Shutdown (SWI &42682)
* Commands
*ChangeDynamicArea
Volume 3: Chapter 58: TaskWindow
TaskWindow
Introduction and Overview
SWI calls
TaskWindow_TaskInfo (SWI &43380)
* Commands
*ShellCLI_Task
*ShellCLI_TaskQuit
*TaskWindow
Volume 3: Chapter 59: ShellCLI
ShellCLI
Introduction
SWI Calls
Shell_Create (SWI &405C0)
Shell_Destroy (SWI &405C1
* Commands
*ShellCLI
Syntax
Parameters
Use
Example
Related commands
Related SWIs
Related vectors
Volume 3: Chapter 60: ColourTrans
ColourTrans
Introduction
Overview
Definition of terms
Finding a colour
Setting a colour
Conversion
Sprites and Fonts
Using other palette SWIs
Wimp
Printing
Colour calibration
Technical Details
Colours
Finding a colour
Setting a colour
Conversion
Sprites and Fonts
Using other palette SWIs
Colour calibration
Service Calls
Service_CalibrationChanged (Service Call &5B)
Service_InvalidateCache (Service Call &82)
SWI Calls
ColourTrans_SelectTable (SWI &40740)
ColourTrans_SelectGCOLTable (SWI &40741)
ColourTrans_ReturnGCOL (SWI &40742)
ColourTrans_SetGCOL (SWI &40743)
ColourTrans_ReturnColourNumber (SWI &40744)
ColourTrans_ReturnGCOLForMode (SWI &40745)
ColourTrans_ReturnColourNumberForMode (SWI &40746)
ColourTrans_ReturnOppGCOL (SWI &40747)
ColourTrans_SetOppGCOL (SWI &40748)
ColourTrans_ReturnOppColourNumber (SWI &40749)
ColourTrans_ReturnOppGCOLForMode (SWI &4074A)
ColourTrans_ReturnOppColourNumberForMode (SWI &4074B)
ColourTrans_GCOLToColourNumber (SWI &4074C)
ColourTrans_ColourNumberToGCOL (SWI &4074D)
ColourTrans_ReturnFontColours (SWI &4074E)
ColourTrans_SetFontColours (SWI &4074F)
ColourTrans_InvalidateCache (SWI &40750)
ColourTrans_SetCalibration (SWI &40751)
ColourTrans_ReadCalibration (SWI &40752)
ColourTrans_ConvertDeviceColour (SWI &40753)
ColourTrans_ConvertDevicePalette (SWI &40754)
ColourTrans_ConvertRGBToCIE (SWI &40755)
ColourTrans_ConvertCIEToRGB (SWI &40756)
ColourTrans_WriteCalibrationToFile (SWI &40757)
ColourTrans_ConvertRGBToHSV (SWI &40758)
ColourTrans_ConvertHSVToRGB (SWI &40759)
ColourTrans_ConvertRGBToCMYK (SWI &4075A)
ColourTrans_ConvertCMYKToRGB (SWI &4075B)
ColourTrans_ReadPalette (SWI &4075C)
ColourTrans_WritePalette (SWI &4075D)
ColourTrans_SetColour (SWI &4075E)
ColourTrans_MiscOp (SWI &4075F)
ColourTrans_WriteLoadingsToFile (SWI &40760)
ColourTrans_SetTextColour (SWI &40761)
ColourTrans_SetOppTextColour (SWI &40762)
ColourTrans_GenerateTable (SWI &40763)
* Commands
*ColourTransLoadings
*ColourTransMap
*ColourTransMapSize
Volume 3: Chapter 61: The Font Manager
The Font Manager
Introduction
RISC OS 2
Overview
Measurement systems
Referencing fonts by name
Cacheing
Colours
Painting
Measuring
VDU calls
Technical Details
Measurement systems
Font files
Font names and identifiers
Referencing fonts by identifier
Cacheing
Colours
Painting
Measuring
Mixing fonts' metrics and characters
Handling mode changes
Service Calls
Service_FontsChanged (Service Call &6E)
SWI Calls
Font_CacheAddr (SWI &40080)
Font_FindFont (SWI &40081)
Font_LoseFont (SWI &40082)
Font_ReadDefn (SWI &40083)
Font_ReadInfo (SWI &40084)
Font_StringWidth (SWI &40085)
Font_Paint (SWI &40086)
Font_Caret (SWI &40087)
Font_ConverttoOS (SWI &40088)
Font_Converttopoints (SWI &40089)
Font_SetFont (SWI &4008A)
Font_CurrentFont (SWI &4008B)
Font_FutureFont (SWI &4008C)
Font_FindCaret (SWI &4008D)
Font_CharBBox (SWI &4008E)
Font_ReadScaleFactor (SWI &4008F)
Font_SetScaleFactor (SWI &40090)
Font_ListFonts (SWI &40091)
Font_SetFontColours (SWI &40092)
Font_SetPalette (SWI &40093)
Font_ReadThresholds (SWI &40094)
Font_SetThresholds (SWI &40095)
Font_FindCaretJ (SWI &40096)
Font_StringBBox (SWI &40097)
Font_ReadColourTable (SWI &40098)
Font_MakeBitmap (SWI &40099)
Font_UnCacheFile (SWI &4009A)
Font_SetFontMax (SWI &4009B)
Font_ReadFontMax (SWI &4009C)
Font_ReadFontPrefix (SWI &4009D)
Font_SwitchOutputToBuffer (SWI &4009E)
Font_ReadFontMetrics (SWI &4009F)
Font_DecodeMenu (SWI &400A0)
Font_ScanString (SWI &400A1)
Font_SetColourTable (SWI &400A2)
Font_CurrentRGB (SWI &400A3)
Font_FutureRGB (SWI &400A4)
Font_ReadEncodingFilename (SWI &400A5)
Font_FindField (SWI &400A6)
Font_ApplyFields (SWI &400A7)
Font_LookupFont (SWI &400A8)
*Commands
*Configure FontMax
*Configure FontMax1
*Configure FontMax2
*Configure FontMax3
*Configure FontMax4
*Configure FontMax5
*Configure FontSize
*FontCat
*FontInstall
*FontLibrary
*FontList
*FontRemove
*LoadFontCache
*SaveFontCache
Application Notes
Volume 3: Chapter 62: SuperSample module
SuperSample module
Introduction and Overview
SWI calls
Super_Sample90 (SWI &40D80)
Super_Sample45 (SWI &40D81)
Volume 3: Chapter 63: Draw module
Draw module
Introduction
Overview
Scaling systems
Transformation matrix
Winding rules
Stroking and filling
Printing
Floating point
Technical Details
Data structures
Scaling
Draw SWIs
Printer drivers
SWI Calls
Draw_ProcessPath (SWI &40700)
Draw_Fill (SWI &40702)
Draw_Stroke (SWI &40704)
Draw_StrokePath (SWI &40706)
Draw_FlattenPath (SWI &40708)
Draw_TransformPath (SWI &4070A)
Application Notes
Example of simple drawing
Volume 3: Chapter 64: Printer Drivers
Printer Drivers
Introduction
Printing from applications
The structure of the printing system
Overview
Rectangles
Measurement systems
Printing a document from an application
Overview of printing
Other calls for controlling a print job
Trapping of output calls
Guidelines on output calls to use
The output calls in detail
ByteV
ColourV
DrawV
Font manager SWIs
SpriteV
WrchV
Miscellaneous SWIs
Processor flags
Error handling changes
Technical Details
The structure of the printing system
The RISC OS 2 printing system
Extending the printing system
Printer driver numbers
Using PostScript fonts
Service Calls
Service_Print (Service Call &41)
Service_PDriverStarting (Service Call &65)
Service_PDriverGetMessages (Service Call &78)
Service_PDriverChanged (Service Call &7F)
SWI Calls
PDriver_Info (SWI &80140)
PDriver_SetInfo (SWI &80141)
PDriver_CheckFeatures (SWI &80142)
PDriver_PageSize (SWI &80143)
PDriver_SetPageSize (SWI &80144)
PDriver_SelectJob (SWI &80145)
PDriver_CurrentJob (SWI &80146)
PDriver_FontSWI (SWI &80147)
PDriver_EndJob (SWI &80148)
PDriver_AbortJob (SWI &80149)
PDriver_Reset (SWI &8014A)
PDriver_GiveRectangle (SWI &8014B)
PDriver_DrawPage (SWI &8014C)
PDriver_GetRectangle (SWI &8014D)
PDriver_CancelJob (SWI &8014E)
PDriver_ScreenDump (SWI &8014F)
PDriver_EnumerateJobs (SWI &80150)
PDriver_SetPrinter (SWI &80151)
PDriver_CancelJobWithError (SWI &80152)
PDriver_SelectIllustration (SWI &80153)
PDriver_InsertIllustration (SWI &80154)
PDriver_DeclareFont (SWI &80155)
PDriver_DeclareDriver (SWI &80156)
PDriver_RemoveDriver (SWI &80157)
PDriver_SelectDriver (SWI &80158)
PDriver_EnumerateDrivers (SWI &80159)
PDriver_MiscOp (SWI &8015A)
PDriver_MiscOp 0 (SWI &8015A)
PDriver_MiscOp 1 (SWI &8015A)
PDriver_MiscOp 2 (SWI &8015A)
PDriver_MiscOp &80000000 (SWI &8015A)
PDriver_MiscOp &80000001 (SWI &8015A)
PDriver_MiscOp &80000100 - &80000FFF (SWI &8015A)
PDriver_MiscOpForDriver (SWI &8015B)
PDriver_SetDriver (SWI &8015C)
PrinterDM version
PDriverPS version
Example program
Notes
Volume 3: Chapter 65: Printers Dumper
Printer Dumpers
Introduction and Overview
Technical Details
Reason code handler entry and exit conditions
Common parameters
How the PDumper reason codes get called
Printer Dumper reason codes
PDumperReason_SetDriver (reason code 0)
PDumperReason_OutputDump (reason code 1)
PDumperReason_ColourSet (reason code 2)
PDumperReason_StartPage (reason code 3)
PDumperReason_EndPage (reason code 4)
PDumperReason_StartJob (reason code 5)
PDumperReason_AbortJob (reason code 6)
PDumperReason_MiscOp (reason code 7)
Service Calls
Service_PDumperStarting (Service Call &66)
Service_PDumperDying (Service Call &67)
Volume 3: Chapter 66: PDumperSupport
PDumperSupport
Introduction and Overview
SWI calls
PDumper_Info (SWI &41B00)
PDumper_Claim (SWI &41B01)
PDumper_Free (SWI &41B02)
PDumper_Find (SWI &41B03)
PDumper_StartJob (SWI &41B04)
PDumper_TidyJob (SWI &41B05)
PDumper_SetColour (SWI &41B06)
PDumper_PrepareStrip (SWI &41B07)
PDumper_LookupError (SWI &41B08)
PDumper_CopyFilename (SWI &41B09)
Volume 3: Chapter 67: Printer definition files
Printer definition files
Introduction and Overview
Technical details
Printer definition editor
Graphics mode: Dump information
Graphics mode: Dump strings
Text modes
Character mappings
Volume 3: Chapter 68: MakePSFont
MakePSFont
Introduction
SWI calls
MakePSFont_MakeFont (SWI &43440)
Volume 3: Chapter 69: MessageTrans
MessageTrans
Introduction and Overview
Summary of MessageTrans facilities
Technical Details
Message file descriptors
Message file format
Unmatchable tokens
Service_Reset
Service_MessageFileClosed
Service Call
Service_MessageFileClosed (Service Call &5E)
SWI Calls
MessageTrans_FileInfo (SWI &41500)
MessageTrans_OpenFile (SWI &41501)
MessageTrans_Lookup (SWI &41502)
MessageTrans_MakeMenus (SWI &41503)
MessageTrans_CloseFile (SWI &41504)
MessageTrans_EnumerateTokens (SWI &41505)
MessageTrans_ErrorLookup (SWI &41506)
MessageTrans_GSLookup (SWI &41507)
MessageTrans_CopyError (SWI &41508)
Volume 3: Chapter 70: International module
International module
Introduction
Overview and Technical Details
Names and numbers
Alphabet
Keyboard
Country
Service calls
Service Calls
Service_International (Service Call &43)
Service_International 0 (Service Call &43)
Service_International 1 (Service Call &43)
Service_International 2 (Service Call &43)
Service_International 3 (Service Call &43)
Service_International 4 (Service Call &43)
Service_International 5 (Service Call &43)
Service_International 6 (Service Call &43)
SWI Calls
OS_Byte 70 (SWI &06)
OS_Byte 71 (SWI &06)
OS_Byte 240 (SWI &06)
*Commands
*Alphabet
*Alphabets
*Configure Country
*Countries
*Country
*Keyboard
Volume 3: Chapter 71: The Territory Manager
The Territory Manager
Introduction
Purpose of the territory manager
Use of the territory manager
Overview
The territory manager
Territory modules
Technical details
Loading and setting the current territory
Initialising territory modules
Setting up for the current territory
Scope of a territory
Territory numbers and names
Service Calls
Service_TerritoryManagerLoaded (Service Call &64)
Service_TerritoryStarted (Service Call &75)
Territory manager SWIs
Territory_Number (SWI &43040)
Territory_Register (SWI &43041)
Territory_Deregister (SWI &43042)
Territory_NumberToName (SWI &43043)
Territory_Exists (SWI &43044)
Territory_AlphabetNumberToName (SWI &43045)
Territory_SelectAlphabet (SWI &43046)
Territory_SetTime (SWI &43047)
Territory_ReadCurrentTimeZone (SWI &43048)
Territory_ConvertTimeToUTCOrdinals (SWI &43049)
Territory_ConvertTextToString (SWI &73075)
Territory module SWIs
Territory_ReadTimeZones (SWI &4304A)
Territory_ConvertDateAndTime (SWI &4304B)
Territory_ConvertStandardDateAndTime (SWI &4304C)
Territory_ConvertStandardDate (SWI &4304D)
Territory_ConvertStandardTime (SWI &4304E)
Territory_ConvertTimeToOrdinals (SWI &4304F)
Territory_ConvertTimeStringToOrdinals (SWI &43050)
Territory_ConvertOrdinalsToTime (SWI &43051)
Territory_Alphabet (SWI &43052)
Territory_AlphabetIdentifier (SWI &43053)
Territory_SelectKeyboardHandler (SWI &43054)
Territory_WriteDirection (SWI &43055)
Territory_CharacterPropertyTable (SWI &43056)
Territory_LowerCaseTable (SWI &43057)
Territory_UpperCaseTable (SWI &43058)
Territory_ControlTable (SWI &43059)
Territory_PlainTable (SWI &4305A)
Territory_ValueTable (SWI &4305B)
Territory_RepresentationTable (SWI &4305C)
Territory_Collate (SWI &4305D)
Territory_ReadSymbols (SWI &4305E)
Territory_ReadCalendarInformation (SWI &4305F)
Territory_NameToNumber (SWI &43060)
Territory_TransformString (SWI &43061)
* Commands
*Configure DST
*Configure NoDST
*Configure Territory
*Configure TimeZone
*Territories
Volume 4: Chapter 72: The Sound system
The Sound system
Introduction
Overview
The DMA Handler
The Channel Handler
The Scheduler
Voice Generators
Technical details
DMA Handler
Channel Handler
Scheduler
Voice Generators
Entry points for buffer filling
Voice instantiation
Service Calls
Service_Sound (Service Call &54)
SWI calls
Sound_Configure (SWI &40140)
Sound_Enable (SWI &40141)
Sound_Stereo (SWI &40142)
Sound_Speaker (SWI &40143)
Sound_Volume (SWI &40180)
Sound_SoundLog (SWI &40181)
Sound_LogScale (SWI &40182)
Sound_InstallVoice (SWI &40183)
Sound_InstallVoice 0 (SWI &40183)
Sound_InstallVoice 1 (SWI &40183)
Sound_InstallVoice 2 (SWI &40183)
Sound_InstallVoice 3 (SWI &40183)
Sound_RemoveVoice (SWI &40184)
Sound_AttachVoice (SWI &40185)
Sound_ControlPacked (SWI &40186)
Sound_Tuning (SWI &40187)
Sound_Pitch (SWI &40188)
Sound_Control (SWI &40189)
Sound_AttachNamedVoice (SWI &4018A)
Sound_ReadControlBlock (SWI &4018B)
Sound_WriteControlBlock (SWI &4018C)
Sound_QInit (SWI &401C0)
Sound_QSchedule (SWI &401C1)
Sound_QRemove (SWI &401C2)
Sound_QFree (SWI &401C3)
Sound_QSDispatch (SWI &401C4)
Sound_QTempo (SWI &401C5)
Sound_QBeat (SWI &401C6)
Sound_QInterface (SWI &401C7)
* Commands
*Audio
*ChannelVoice
*Configure SoundDefault
*QSound
*Sound
*Speaker
*Stereo
*Tempo
*Tuning
*Voices
*Volume
Application notes
Buffer filling algorithms
Example code fragments
Oscillator coding
Wavetable access coding
Amplitude modulation coding
Overall volume
Channel volume
Envelope coding
Linear to logarithmic conversion
Random bit generator code
Example program
Volume 4: Chapter 73: WaveSynth
WaveSynth
Introduction
Example programs
Volume 4: Chapter 74: The Buffer Manager
The Buffer Manager
Introduction and Overview
Service Calls
Service_BufferStarting (Service Call &6F)
SWI calls
Buffer_Create (SWI &42940)
Buffer_Remove (SWI &42941)
Buffer_Register (SWI &42942)
Buffer_Deregister (SWI &42943)
Buffer_ModifyFlags (SWI &42944)
Buffer_LinkDevice (SWI &42945)
Buffer_UnlinkDevice (SWI &42946)
Buffer_GetInfo (SWI &42947)
Buffer_Threshold (SWI &42948)
Volume 4: Chapter 75: Squash
Squash
Introduction and Overview
SWI calls
Squash_Compress (SWI &42700)
Squash_Decompress (SWI &42701)
Volume 4: Chapter 76: ScreenBlank
ScreenBlank
Introduction and Overview
Service Calls
Service_ScreenBlanked (Service Call &7A)
Service_ScreenRestored (Service Call &7B)
SWI calls
ScreenBlanker_Control (SWI &43100)
* Commands
*BlankTime
Volume 4: Chapter 77: Expansion Cards and Extension ROMs
Expansion Cards and Extension ROMs
Introduction
Overview
Software
Technical Details
Extension ROM Headers
Introduction to Expansion Card Identities
Simple Expansion Card Identity
Extended Expansion Card Identity
Expansion card and extension ROM presence
Generating interrupts from expansion cards
Interrupt Status Pointers
Chunk directory structure
Binding a ROM image
Expansion card Code Space
Writing a Loader for an expansion card
CMOS RAM
ROM sections
'Podules'
Service Calls
Service_PreReset (Service Call &45)
Service_ADFSPodule (Service Call &10800)
Service_ADFSPoduleIDE (Service Call &10801)
Service_ADFSPoduleIDEDying (Service Call &10802)
SWI calls
Podule_ReadID (SWI &40280)
Podule_ReadHeader (SWI &40281)
Podule_EnumerateChunks (SWI &40282)
Podule_ReadChunk (SWI &40283)
Podule_ReadBytes (SWI &40284)
Podule_WriteBytes (SWI &40285)
Podule_CallLoader (SWI &40286)
Podule_RawRead (SWI &40287)
Podule_RawWrite (SWI &40288)
Podule_HardwareAddress (SWI &40289)
Podule_EnumerateChunksWithInfo (SWI &4028A)
Podule_HardwareAddresses (SWI &4028B)
Podule_ReturnNumber (SWI &4028C)
* Commands
*PoduleLoad
*Podules
*PoduleSave
Example program
Volume 4: Chapter 78: Floating point emulator
Floating point emulator
Floating point emulator
Introduction
Programmer's model
Available systems
Precision
Floating point number formats
Floating point status register
Floating Point Control Register
The instruction set
Floating point coprocessor data transfer
Floating point coprocessor multiple data transfer
Floating point coprocessor register transfer
Floating point coprocessor data operations
Floating point coprocessor status transfer
Finding out more...
SWI Calls
FPEmulator_Version (SWI &40480)
Volume 4: Chapter 79: ARM3 Support
ARM3 Support
Introduction and Overview
Summary of facilities
Notes
Finding out more
SWI Calls
Cache_Control (SWI &280)
Cache_Cacheable (SWI &281)
Cache_Updateable (SWI &282)
Cache_Disruptive (SWI &283)
Cache_Flush (SWI &284)
* Commands
*Cache
*Configure Cache
Application Note
Volume 4: Chapter 80: The Portable module
The Portable module
Introduction
Technical details
Colour to grey-scale mapping
Service calls
Service_Portable (Service Call &8A)
SWI Calls
Portable_Speed (SWI &42FC0)
Portable_Control (SWI &42FC1)
Portable_ReadBMUVariable (SWI &42FC2)
Portable_WriteBMUVariable (SWI &42FC3)
Portable_CommandBMU (SWI &42FC4)
Volume 4: Chapter 81: Joystick module
Joystick module
Introduction and Overview
SWI Calls
Joystick_Read (SWI &43F40)
Volume 4: Chapter 82: Debugger
Debugger
Introduction
Technical Details
SWI Calls
Debugger_Disassemble (SWI &40380)
*Commands
*BreakClr
*BreakList
*BreakSet
*Continue
*Debug
*InitStore
*Memory
*MemoryA
*MemoryI
*ShowRegs
Volume 4: Chapter 83: The shared C library
The shared C library
Introduction
Overview
How to use the C library kernel
Calling other programs from C
Storage management
Handling host errors
Technical details
How to use the C library kernel
Calling other programs from C
Storage management (malloc, calloc, free)
Handling host errors
SWI Calls
SharedCLibrary_LibInitAPCS_A (SWI &80680)
SharedCLibrary_LibInitAPCS_R (SWI &80681)
SharedCLibrary_LibInitModule (SWI &80682)
Example programs
Calling the shared C library
Calling the shared C library from a module
Library kernel functions
Initialisation functions
Stack management functions
Program environment functions
General utility functions
Memory allocation functions
Language support functions
C library functions
Language support functions
assert
ctype
errno
locale
math
setjmp
signal
stdio
stdlib
string
time
Volume 4: Chapter 84: BASIC and BASICTrans
BASIC and BASICTrans
Introduction and Overview
Using BBC BASIC
SWI Calls
BASICTrans_HELP (SWI &42C80)
BASICTrans_Error (SWI &42C81)
BASICTrans_Message (SWI &42C82)
* Commands
*BASIC / *BASIC64
Volume 4: Chapter 85: Command scripts
Command scripts
Introduction
Overview and Technical Details
Creating a command script
Running the script
Making a script run automatically
Using parameters
Abbreviations
*Commands
*Obey
Application Notes
Volume 4: Chapter 86: Appendix A: ARM assembler
Appendix A: ARM assembler
Introduction
Available assemblers
The BASIC assembler
Using the BASIC assembler
Saving machine code to file
Executing a machine code program
Format of assembly language statements
Registers
Condition codes
The instruction set
Volume 4: Chapter 87: Appendix B: Warnings on the use of ARM assembler
Appendix B: Warnings on the use of ARM assembler
Introduction
Restrictions to the ARM instruction set
Instructions and code sequences to avoid
Static ARM problems
Volume 4: Chapter 88: Appendix C: ARM procedure call standard
Appendix C: ARM procedure call standard
The purpose of APCS
Design criteria
The Procedure Call Standard
Defined bindings of the procedure call standard
Examples from Acorn language implementations
Volume 4: Chapter 89: Appendix D: Code file formats
Appendix D: Code file formats
Terminology
Undefined Fields
Overall structure of AOF and ALF files
Chunk file format
AOF
Object file format
Linker defined symbols
Obsolescent and obsolete features
ALF
Library file format types
Library file chunks
LIB_DIRY
LIB_TIME
LIB_VSRN
LIB_DATA
Object code libraries
AIF
Properties of AIF
Layout of an AIF image
AIF header layout
Zero-initialisation code
Self relocation
ASD
Order of Debugging Data
Representation of Data Types
Representation of Source File Positions
Debugging Data Items in Detail
Volume 4: Chapter 90: Appendix E: File formats
Appendix E: File formats
Introduction
Sprite files
Template files
Header
Index entries
Terminator
Data
Font data
Draw files
Coordinates
Colours
File headers
Objects
Font files
IntMetrics / IntMetricn files
x90y45 font files
Other font file formats
Encoding files
Font Messages files
Music files
Gates
Notes and rests
Squash files
Volume 4: Chapter 91: Appendix F: System variables
Appendix F: System variables
Application variables
Changing and adding commands
FileSwitch variables
Using file types
Absent filing systems
Setting the command line prompt
Configuring RISC OS commands
System path variables
Obey files
Time and date
Return codes
!System and !Scrap
The desktop
The Task Window
Setting default options for devices
Setting paths for printing
Volume 4: Chapter 92: Appendix G: The Acorn Terminal Interface Protocol
Appendix G: The Acorn Terminal Interface Protocol
Introduction
Protocol modules
Writing a protocol module
Writing a terminal emulator
Documentation of Service Calls and SWIs
Service Calls
Service_FindProtocols (Service Call &41580)
Service_FindProtocolsEnd (Service Call &41581)
Service_ProtocolNameToNumber (Service Call &41582)
SWI calls
Protocol_OpenLogicalLink (Offset 0)
Protocol_CloseLogicalLink (Offset 1)
Protocol_GetProtocolMenu (Offset 2)
Protocol_OpenConnection (Offset 3)
Protocol_CloseConnection (Offset 4)
Protocol_TransmitData (Offset 5)
Protocol_DataRequest (Offset 6)
Protocol_MenuItemSelected (Offset 7)
Protocol_UnknownEvent (Offset 8)
Protocol_GetLinkState (Offset 9)
Protocol_Break (Offset 10)
Protocol_SendFile (Offset 11)
Protocol_SendFileData (Offset 12)
Protocol_AbortTransfer (Offset 13)
Protocol_GetFileInfo (Offset 14)
Protocol_GetFileData (Offset 15)
Protocol_MenuHelp (Offset 16)
Protocol_GetFile (Offset 17)
Protocol_DirOp (Offset 18)
Volume 4: Chapter 93: Appendix H: Registering names
Appendix H: Registering names
Introduction
Things requiring registration
Volume 4: Chapter 94: Table A: VDU codes
Table A: VDU codes
List of VDU codes
Volume 4: Chapter 95: Table B: Modes
Table B: Modes
Volume 4: Chapter 96: Table C: File types
Table C: File types
List of file types
Volume 4: Chapter 97: Table D: Character sets
Table D: Character sets
Introduction
Loading alphabets
How alphabets are initially set up
Keyboard shortcuts
Latin1 alphabet (ISO 8859/1)
Latin2 alphabet (ISO 8859/2)
Latin3 alphabet (ISO 8859/3)
Latin4 alphabet (ISO 8859/4)
Cyrillic alphabet (ISO 8859/5)
Greek alphabet (ISO 8859/7)
Hebrew alphabet (ISO 8859/8)
Cyrillic2 alphabet (DOS code page 866)
BFont characters
Teletext characters (used only in mode 7)
Volume 4: Chapter 141: Appendix D: Deprecated calls
Appendix D: Deprecated calls
VDU calls
OS_Byte/OS_Word calls
FileSwitch
System extension/application SWIs
Volume 5a: Chapter 98: Introduction to RISC OS 3.5 and RISC OS 3.6
Introduction to RISC OS 3.5 and RISC OS 3.6
Introduction
RISC OS terminology
Hardware overview
RISC OS overview
Volume 5a: Chapter 99: ARM hardware
ARM hardware
Introduction and Overview
32 bit architecture
Block diagram of core
Volume 5a: Chapter 100: Hardware vectors
Hardware vectors
Introduction and Overview
Exceptions
The pre-veneers
Claiming the hardware vectors
Writing to the FIQ vector
SWI Calls
OS_ClaimProcessorVector (SWI &69)
Volume 5a: Chapter 101: Interrupts
Interrupts
Introduction and Overview
Volume 5a: Chapter 102: Modules
Modules
Introduction and Overview
Message files for help and command keyword table
Changes to existing SWIs
Technical details
Module header format
Help and command keyword table
The message file
Volume 5a: Chapter 103: Memory management
Memory management
Introduction
Running 32 bit code
Overview
Free memory pool
Dynamic areas
Technical Details
Logical memory map
Memory terminology
New SWIs
Changes to existing SWIs
Changes to existing * Commands
Dynamic area handler routines
Sequence of actions when SWI OS_ChangeDynamicArea is called
Service calls
Service_PagesUnsafe (Service Call &8E)
Service_PagesSafe (Service Call &8F)
Service_DynamicAreaCreate (Service Call &90)
Service_DynamicAreaRemove (Service Call &91)
Service_DynamicAreaRenumber (Service Call &92)
SWI calls
OS_DynamicArea (SWI &66)
OS_DynamicArea 0 (SWI &66)
OS_DynamicArea 1 (SWI &66)
OS_DynamicArea 2 (SWI &66)
OS_DynamicArea 3 (SWI &66)
OS_DynamicArea 4 (SWI &66)
OS_Memory (SWI &68)
OS_Memory 0 (SWI &68)
OS_Memory 1 - 5 (SWI &68)
OS_Memory 6 (SWI &68)
OS_Memory 7 (SWI &68)
OS_Memory 8 (SWI &68)
OS_Memory 9 (SWI &68)
OS_MMUControl (SWI &6B)
Volume 5a: Chapter 104: CMOS RAM allocation
CMOS RAM allocation
Non-volatile memory
RISC OS 3.6 allocation
Volume 5a: Chapter 105: DMA
DMA
Introduction and Overview
DMA manager
Technical details
Logical and physical DMA channels
Memory manager interfaces
Device drivers
Control routines
SWI calls
DMA_RegisterChannel (SWI &46140)
DMA_DeregisterChannel (SWI &46141)
DMA_QueueTransfer (SWI &46142)
DMA_TerminateTransfer (SWI &46143)
DMA_SuspendTransfer (SWI &46144)
DMA_ResumeTransfer (SWI &46145)
DMA_ExamineTransfer (SWI &46146)
Volume 5a: Chapter 106: Video
Video
Introduction
Overview
New ways of selecting modes
Monitor configuration stored in files
New sprite format
ColourTrans extended to support new modes and sprites
New PaletteV reason codes
All 8 bits of colour numbers are significant
Technical details
Mode selection
The ScreenModes module
Desktop screen modes
New format of a sprite
New software vectors
New Service Call
Changes to existing Service Calls
Changes to existing VDU calls
New kernel SWI
Changes to existing kernel SWIs
New OS_SpriteOp reason code
Changes to OS_SpriteOp
Changes to existing Wimp SWIs
Changes to existing ColourTrans SWIs
New * Command
Changes to existing * Commands
Software vectors
PaletteV (Vector &23)
Service calls
Service_ModeExtension (Service Call &50)
Service_EnumerateScreenModes (Service Call &8D)
SWI calls
OS_SpriteOp 17 (SWI &65)
OS_ScreenMode (SWI &65)
OS_ScreenMode 0 (SWI &65)
OS_ScreenMode 1 (SWI &65)
OS_ScreenMode 2 (SWI &65)
OS_ScreenMode 3 (SWI &65)
ScreenModes_ReadInfo (SWI &487C0)
* Commands
*LoadModeFile
*VIDCBandwidthLimit
Volume 5a: Chapter 107: JPEG images
JPEG images
Introduction and Overview
The CompressJPEG module
Technical details
SWI naming and numbering
The JPEG standard
JFIF files
ChangeFSI and JPEG files
Dithering of JPEGs
SWI Calls
JPEG_Info (SWI &49980)
JPEG_FileInfo (SWI &49981)
JPEG_PlotScaled (SWI &49982)
JPEG_PlotFileScaled (SWI &49983)
JPEG_PlotTransformed (SWI &49984)
JPEG_PlotFileTransformed (SWI &49985)
JPEG_PDriverIntercept (SWI &49986)
Volume 5a: Chapter 108: Miscellaneous kernel items
Miscellaneous kernel items
Introduction and Overview
Changes to existing SWIs
New SWI
SWI Calls
OS_Reset (SWI &6A)
Volume 5a: Chapter 109: FileSwitch
FileSwitch
Introduction and Overview
New OS_FSControl reason codes
New filing system entry points
SWI Calls
OS_FSControl 55 (SWI &29)
OS_FSControl 56 (SWI &29)
OS_FSControl 57 (SWI &29)
Volume 5a: Chapter 110: FileCore
FileCore
Introduction and Overview
Technical details
Disc record
Disc addresses
Defect list
Maximum practical disc size
Disc formats
Changes to existing SWIs
New SWIs
SWI Calls
FileCore_MiscOp 6 (SWI &40549)
FileCore_MiscOp 7 (SWI &40549)
FileCore_SectorOp (SWI &4054A)
FileCore_FreeSpace64 (SWI &4054B)
Volume 5a: Chapter 111: ADFS
ADFS
Introduction and Overview
Logical block addressing (LBA)
Changes to existing SWIs
New SWIs
SWI Calls
ADFS_SectorDiscOp (SWI &4024D)
ADFS_LockIDE (SWI &40251)
ADFS_FreeSpace64 (SWI &40252)
Volume 5a: Chapter 112: DOSFS
DOSFS
Introduction and Overview
Support for larger DOSFS image files
Less stringent checking of DOS formats
Volume 5a: Chapter 113: CDs and CD-ROMs
CDs and CD-ROMs
Introduction
The future of CD-related modules
CDFS
* Commands
*Bye
*CDDevices
*CDFS
*CDSpeed
*Configure CDROMBuffers
*Configure CDROMDrives
*Dismount
*Drive
*Eject
*Lock
*Mount
*Play
*PlayList
*PlayMSF
*Stop
*Supported
*Unlock
*WhichDisc
Volume 5a: Chapter 114: NetPrint
NetPrint
Service Calls
Service_NetPrintCheckD1 (Service Call &40200)
Volume 5a: Chapter 115: Parallel and serial device drivers
Parallel and serial device drivers
Introduction and Overview
Buffer Manager
DeviceFS module
Parallel device driver
Serial device driver
Technical Details
The buffer manager service routine
Changes to existing SWIs
SWI calls
OS_SerialOp 9 (SWI &57)
Buffer_InternalInfo (SWI &42949)
Volume 5a: Chapter 116: Keyboard and mouse
Keyboard and mouse
Introduction and Overview
Technical details
The keyboard interface
The pointer interface
Software vectors
KeyV (Vector &13)
PointerV (Vector &26)
SWI calls
OS_Pointer (SWI &64)
* Commands
*Configure MouseType
Volume 5a: Chapter 117: Filing system locking and resets
Filing system locking and resets
Introduction and Overview
Technical Details
Changes to power-on and reset
The FSLock Module
Changes to existing SWIs
SWI calls
FSLock_Version (SWI &44780)
FSLock_Status (SWI &44781)
FSLock_ChangeStatus (SWI &44782)
* Commands
*FSLock_ChangePassword
*FSLock_Lock
*FSLock_Status
*FSLock_Unlock
Volume 5a: Chapter 118: Free
Free
Introduction and Overview
Technical details
Changes to existing SWIs
Free_Register
Reason code 4- Get 64 bit free space for device
Volume 5a: Chapter 119: Writing a filing system
Writing a filing system
Introduction and Overview
New FSEntry_Func and ImageEntry_Func reason codes
Interfaces
FSEntry_Func 35 and ImageEntry_Func 35
FSEntry_Func 36 and ImageEntry_Func 36
FSEntry_Func 37 and ImageEntry_Func 37
Volume 5a: Chapter 120: Writing a FileCore mnodule
Writing a FileCore module
Declaring your module
Descriptor block
Ensuring the new FileCore is present
Running new-style FileCore modules under the new FileCore
DiscOp entry
MiscOp entry
Returning errors
Calling FileCore DiscOp SWIs
Providing a SWI handler
Running new-style FileCore modules under an old FileCore
Low-level entry points
Calling FileCore SWIs
Providing a SWI handler
Volume 5a: Chapter 121: Econet
Econet
Introduction and Overview
New SWIs
Machine type numbers
Port numbers
Changes to existing SWIs
SWI Calls
Econet_InetRxDirect (SWI &4001D)
Econet_EnumerateMap (SWI &4001E)
Econet_EnumerateTransmit (SWI &4001F)
Econet_HardwareAddresses (SWI &40020)
Econet_NetworkParameters (SWI &40021)
Volume 5a: Chapter 122: AUN
AUN
Introduction
Overview
AUN concepts
Technical details
Protocols
Software
Addresses in Econet and AUN
AUN IP address configuration
Application program interface
* Commands
*Configure BootNet
*DeviceInfo
*NetMap
*NetProbe
*NetStat
*NetTraceOff
*NetTraceOn
*Networks
*SetStation
Volume 5a: Chapter 123: The Internet module
The Internet module
Introduction
The Internet module
The Internet C libraries
Getting the libraries and full Internet module
Contents of this chapter
Finding out more...
Introductory tutorial
Introduction
Overview
Domains and protocols
Closing sockets
Datagrams in the Internet domain
Connections
Reads, writes, recvs, etc
Choices
What to do next
Advanced tutorial
Introduction
Basics
Network library routines
Client/server model
The Internet event
Advanced topics
Multitasking
Protocols
ICMP
IP
TCP
UDP
Library calls
INDEX
ACCEPT
ACCESS
BIND
BSTRING
BYTEORDER
CHDIR
CHMOD
CLOSE
CONNECT
ERRNO
FILESTAT
FLUSHINPUT
FSTAT
GETDTABLESIZE
GETEGID
GETGROUPS
GETHOSTBYNAME
GETHOSTNAME
GETLOGIN
GETNETENT
GETPASS
GETPEERNAME
GETPID
GETPROTOENT
GETPWENT
GETSERVENT
GETSOCKNAME
GETSOCKOPT
GETSTABLESIZE
GETTIMEOFDAY
GETUID
GETVAR
GETWD
HERROR
INET
_INET_ERROR
IOCTL
KILLFILE
LISTEN
LSEEK
_MAKECALL
NAMISIPADR
OSREADC
_PWBUF
READ
READDIR
RECV
RRESVPORT
SELECT
SEND
SHUTDOWN
SOCKET
SOCKETCLOSE
SOCKETIOCTL
SOCKETREAD
SOCKETSTAT
SOCKETWRITE
STRING
UNLINK
_VARNAMEBUF
WRITE
XGETS
XPERROR
XPUTCHAR
Service calls
Driver information blocks
Service_EnumerateNetworkDrivers (Service Call &9B)
Service_DCIDriverStatus (Service Call &9D)
Service_DCIFrameTypeFree (Service Call &9E)
Service_DCIProtocolStatus (Service Call &9F)
Service_InternetStatus (Service Call &B0)
SWI calls
Calling the SWIs
* Commands
*InetChecksum
*InetGateway
*InetInfo
Volume 5a: Chapter 124: Acorn Access
Acorn Access
Introduction and Overview
Access components
Writing filing systems so they integrate with Access
Writing Filers so they integrate with Access
* Commands
*Desktop_ShareFSFiler
*Dismount
*Free
*FwShow
*Share
*ShareFS
*ShareFSIcon
*ShareFSWindow
*Shares
*UnShare
Volume 5a: Chapter 125: The desktop
The desktop
Introduction and Overview
Terminology
Technical Details
The desktop font
Templates
Menus
Icon bar icons that use text
Tiled window backdrops
The Wimp's error system
The caret
Finding other applications
Changes to existing SWIs
Changes to existing commands
Service Calls
Service_ErrorStarting (Service Call &400C0)
Service_ErrorButtonPressed (Service Call &400C1)
Service_ErrorEnding (Service Call &400C2)
SWI Calls
Wimp_TextOp (SWI &400F9)
Wimp_TextOp 0 (SWI &400F9)
Wimp_TextOp 1 (SWI &400F9)
Wimp_TextOp 2 (SWI &400F9)
Wimp_SetWatchdogState (SWI &400FA)
Wimp_Extend (SWI &400FB)
Wimp_ResizeIcon (SWI &400FC)
Messages
Wimp messages
* Commands
*Configure WimpFont
*WimpKillSprite
Volume 5a: Chapter 126: Drag An Object
Drag An Object
Introduction and Overview
SWI calls
DragAnObject_Start (SWI &49C40)
DragAnObject_Stop (SWI &49C41)
Example programs
SWI renderer
Code renderer
Volume 5a: Chapter 127: Draw file renderer
Draw file renderer
Introduction and Overview
Technical details
Differences between DrawFile output and !Draw output
Errors
Service calls
Service_DrawObjectRender (Service Call &45540)
Service_DrawObjectDeclareFonts (Service Call &45541)
SWI calls
DrawFile_Render (SWI &45540)
DrawFile_BBox (SWI &45541)
DrawFile_DeclareFonts (SWI &45542)
* Commands
*Render
Volume 5a: Chapter 128: RISC OS boot applications
RISC OS boot applications
Introduction and Overview
Technical details
Writing to a boot application
Starting the boot application
Environment set up
Loading CMOS
Files used before the desktop is started
The PreDesktop file
The PreDesk directory
Files used once the desktop is started
The Desktop file
The Tasks directory
Storing application choices
Changes to existing * Commands
The BootCommands module
* Commands
*AddApp
*AppSize
*Do
*FontMerge
*IfThere
*LoadCMOS
*Repeat
*SafeLogon
Volume 5a: Chapter 129: The colour picker
The colour picker
Introduction and Overview
Terminology used
Technical details
How the colour picker works
Typical usage
SWIs and messages used
Dialogue types
Colour descriptors
Wimp events and the client
Service Calls
Service_ColourPickerLoaded (Service Call &93)
SWI calls
ColourPicker_RegisterModel (SWI &47700)
ColourPicker_DeregisterModel (SWI &47701)
ColourPicker_OpenDialogue (SWI &47702)
ColourPicker_CloseDialogue (SWI &47703)
ColourPicker_UpdateDialogue (SWI &47704)
ColourPicker_ReadDialogue (SWI &47705)
ColourPicker_SetColour (SWI &47706)
ColourPicker_HelpReply (SWI &47707)
ColourPicker_ModelSWI (SWI &47708)
Messages
Colour picker messages
* Commands
*ModelList
Volume 5a: Chapter 130: Printing
Printing
Introduction
Overview
Trapping of output calls
SpriteV
JPEG SWIs
Technical details
The structure of the printing system
Colour input
New strip types
Pre-scanning of rectangles
New SWIs
Changes to existing SWIs
PostScript restriction on 16 or 32bpp sprites with a mask
New palette file format in PDumperSupport
SWI Calls
PDriver_MiscOp (SWI &8015A)
PDriver_JPEGSWI (SWI &8015D)
Volume 5a: Chapter 131: Internationalisation
Internationalisation
Introduction and Overview
International module
Territory manager
New MessageTrans SWI
SWI calls
MessageTrans_Dictionary (SWI &41509)
Volume 5a: Chapter 132: Sound
Sound
Introduction and Overview
Hardware
Technical details
8 bit sound output
16 bit sound output
Changes to existing SWIs
Linear handlers
SWI calls
Sound_Mode (SWI &40144)
Sound_Mode 0 (SWI &40144)
Sound_Mode 1 (SWI &40144)
Sound_LinearHandler (SWI &40145)
Sound_LinearHandler 0 (SWI &40145)
Sound_LinearHandler 1 (SWI &40145)
Sound_SampleRate (SWI &40146)
Sound_SampleRate 0 (SWI &40146)
Sound_SampleRate 1 (SWI &40146)
Sound_SampleRate 2 (SWI &40146)
Sound_SampleRate 3 (SWI &40146)
* Commands
*Configure SoundSystem
Volume 5a: Chapter 133: CompressJPEG
CompressJPEG
Introduction and Overview
Technical details
How JPEG images are compressed
SWI calls
CompressJPEG_Start (SWI &4A500)
CompressJPEG_WriteLine (SWI &4A501)
CompressJPEG_Finish (SWI &4A502)
Example program
Volume 5a: Chapter 134: Expansion card support
Expansion card support
Introduction and Overview
Technical details
Using EASI space
The network card
ROM sections
Changes to the combined hardware address
Simple expansion card descriptions
New chunk type for device data
SWI calls
Podule_ReadInfo (SWI &4028D)
Podule_SetSpeed (SWI &4028E)
Application Notes
Volume 5a: Chapter 135: Joystick module
Joystick module
Introduction and Overview
Technical details
Changes to existing SWIs
New SWIs
Acorn I/O expansion card compatibility
SWI calls
OS_Byte 16 (SWI &06)
OS_Byte 17 (SWI &06)
OS_Byte 128, 0-4 (SWI &06)
OS_Byte 188 (SWI &06)
OS_Byte 189 (SWI &06)
OS_Byte 190 (SWI &06)
Joystick_Read (SWI &43F40)
Joystick_Read 0 (SWI &43F40)
Joystick_Read 1 (SWI &43F40)
Joystick_CalibrateTopRight (SWI &43F41)
Joystick_CalibrateBottomLeft (SWI &43F42)
Volume 5a: Chapter 136: Monitor power saving
Monitor power saving
Introduction and Overview
Technical Details
Volume 5a: Chapter 137: The Toolbox modules
The Toolbox modules
Introduction and Overview
Advantages of the Toolbox
Toolbox modules in RISC OS
Toolbox documentation
Writing applications to use the Toolbox
Volume 5a: Chapter 138: Appendix A: Warnings on the use of ARM assembler
Appendix A: Warnings on the use of ARM assembler
Volume 5a: Chapter 139: Appendix B: File formats
Appendix B: File formats
Draw files
Objects
Volume 5a: Chapter 140: Appendix C: Errata and omissions for RISC OS 3 PRM
Appendix C: Errata and omissions for RISC OS 3 PRM
RISC OS 3 Programmer's Reference Manual: Index
RISC OS 3 Programmer's Reference Manual
© 3QD Developments Ltd 2013