RISC OS was the operating system of
the Acorn Archimedes... although the machine is long since dead,
RISC OS has survived and ported to modern machines like the
Raspberry Pi In these tutorials we'll be testing with Risc OS 3.57 - which is the OS of the successor of the Archimedes, but where possible we'll try and support the classic RiscOS 2... and we'll be using instructions compatible with ARM2 for backwards compatibility! These tutorials use the VASM assembler |
Acorn Archimedes versions
|
If you want to learn ARM get the Cheatsheet! it has all the ARM7 commands, it covers the commands, and options like Bitshifts and conditions as well as the bytecode structure of the commands! |
Hello World on RISC-OS - ARM Assembly Lesson H1 |
Lesson P1 - Bitmap graphics and Palette definitions on Risc OS [ROS] |
Lesson P5 - Joypad & Pen on the GBA / NDS ... Key reading on Risc OS [NDS] [GBA] [ROS] |
Moving a sprite on RiscOS - Simple ARM Assembly Lesson S1 |
The easiest way to create a program is save it as a FF8.... eg
'prog,ff8'... NOTE: this is a COMMA before ff8 not a full stop -
this is how RISC OS denotes file type Our program just needs to start from 0x8000 and it will work fine!... please note, you'll need to create your own stack area and define a stack pointer if you need the Stack, as the OS doesn't create one! The Example Hello World to the right will compile correctly with VASM |
.org
0x08000 SWI 01 ;OS_WriteS .ascii "Hello World!" .byte 0 ;End of string .align 4 MOV R0,#0 ;0=No Error SWI 0x11 ;OS_Exit |
We can also create a !Run,feb to autostart the program with the emulator, we | RMEnsure
UtilityModule 3.10 Error This !Boot structure is only suitable
for RISC OS 3.1 or later Set Boot$Dir <Obey$Dir> Set Boot$Path <Boot$Dir>. desktop prog |
When using Risc OS, you will often want the options on a file... to get this use the MIDDLE MOUSE button | |
You can get a command prompt by
pressing CTRL-F12, or selecting Task Window by middle clicking on
the Acorn icon The commands you can use are known as Star Commands... there is a list of them here |
256 color mode
On RiscOS, 256 color mode probably doesn't work the way you want!
Only 64 colors are configurable, Each of these are presented using 4 different brightness (defined by the bottom 2 bits.
Here is the default 256 color palette:
Bit |
Meaning |
0 | Tint bit 0 (red + green + blue bit 0) |
1 | Tint bit 1 (red + green + blue bit 1) |
2 | Red bit 2 |
3 | Blue bit 2 |
4 | Red bit 3 (high) |
5 | Green bit 2 |
6 | Green bit 3 (high) |
7 | Blue bit 3 (high) |
VDU Commands
Many screen functions are performed via 'VDU Commands'... to use these, we just write special character codes to the screen with SWI 0Page | Meaning | Parameters | Example |
VDU 0 | Does nothing | 0 | |
VDU 1 | Sends next character to printer only | 1,c | |
VDU 2 | Enables printer | 2 | |
VDU 3 | Disables printer | 3 | |
VDU 4 | Writes text at text cursor | 4 | |
VDU 5 | Writes text at graphics cursor | 5 | |
VDU 6 | Enables VDU driver | 6 | |
VDU 7 | Generates bell sound | 7 | |
VDU 8 | Moves cursor back one character | 8 | |
VDU 9 | Moves cursor on one space | 9 | |
VDU 10 | Moves cursor down one line | 10 | |
VDU 11 | Moves cursor up one line | 11 | |
VDU 12 | Clears text window | 12 | |
VDU 13 | Moves cursor to start of current line | 13 | |
VDU 14 | Turns on paged mode | 14 | |
VDU 15 | Turns off paged mode | 15 | |
VDU 16 | Clears graphics window | 16 | |
VDU 17 | Defines text colour | 17,color | |
VDU 18 | Defines graphics colour | 18,maskmode,color | |
VDU 19 | Defines logical colour | 19,color,mode,r,g,b | 19,0,16,255,128,0 |
VDU 20 | Restores default logical colours | 20 | |
VDU 21 | Disables VDU drivers | 21 | |
VDU 22 | Selects screen mode | 22,ScreenMode | 22,9 |
VDU 23 | Multi-purpose command: | n,n,n,n,n,n,n,n,n | |
VDU 23 | Sets the interlace and controls cursor appearance | ? | |
VDU 23 | Controls text cursor appearance | ? | |
VDU 23 | Defines ECF pattern and colours | ? | |
VDU 23 | Sets dot-dash line style | ? | |
VDU 23 | Scrolls text window or screen | ? | |
VDU 23 | Clears a block of the text window | ? | |
VDU 23 | Sets first flash time | ? | |
VDU 23 | Sets second flash time | ? | |
VDU 23 | Sets default patterns | ? | |
VDU 23 | Defines simple ECF patterns and colours | ? | |
VDU 23 | Controls cursor movement after printing | ? | |
VDU 23 | Sets the tint for a colour | ? | |
VDU 23 | Chooses ECF patterns | ? | |
VDU 23 | Exchanges text foreground and background colours | ? | |
VDU 23 | Sets ECF origin | ? | |
VDU 23 | Sets character size/spacing | ? | |
VDU 23 | Reserved for future expansion | ? | |
VDU 23 | Private Font Manager calls | ? | |
VDU 23 | Private Sprite Manager calls | ? | |
VDU 23 | Reserved for use by application programs | ? | |
VDU 23 | Redefines printable characters | ? | |
VDU 24 | Defines graphics window | 24,x1,y1,x2,y2 | |
VDU 25 | PLOT command | 25,x,y | |
VDU 26 | Restores default windows | 26 | |
VDU 27 | Does nothing | 27 | |
VDU 28 | Defines text window | 28,x1,y1,x2,y2 | |
VDU 29 | Defines graphics origin | 29,x,y | |
VDU 30 | Homes text cursor | 30 | |
VDU 31 | Moves text cursor | 31,x,y | |
VDU 127 | Delete | 127 |
OS Ver | Number | Name | Function |
2 | &00 | OS_WriteC | Write Character R0 to Screen |
2 | &01 | OS_WriteS | Write 0 termniated string to screen � string follows SWI in code |
2 | &02 | OS_Write0 | |
2 | &03 | OS_NewLine | Start
a new line (no params) |
2 | &04 | OS_ReadC | |
2 | &05 | OS_CLI | |
2 | &06 | OS_Byte Index of OS_Bytes |
|
2 | &07 | OS_Word Index of OS_Words |
|
2 | &08 | OS_File | |
2 | &09 | OS_Args | |
2 | &0A | OS_BGet | |
2 | &0B | OS_BPut | |
2 | &0C | OS_GBPB | |
2 | &0D | OS_Find | |
2 | &0E | OS_ReadLine | |
2 | &0F | OS_Control | |
2 | &100-1FF | OS_WriteI | |
2 | &10 | OS_GetEnv | |
2 | &11 | OS_Exit | Return to OS� R0=Errorcode (0=no error) |
2 | &12 | OS_SetEnv | |
2 | &13 | OS_IntOn | |
2 | &14 | OS_IntOff | |
2 | &15 | OS_CallBack | |
2 | &16 | OS_EnterOS | |
2 | &17 | OS_BreakPt | |
2 | &18 | OS_BreakCtrl | |
2 | &19 | OS_UnusedSWI | |
2 | &1A | OS_UpdateMEMC | |
2 | &1B | OS_SetCallBack | |
2 | &1C | OS_Mouse | |
2 | &1D | OS_Heap OS_Heap (5a) |
|
2 | &1E | OS_Module | |
2 | &1F | OS_Claim | |
2 | &20 | OS_Release | |
2 | &21 | OS_ReadUnsigned | |
2 | &22 | OS_GenerateEvent | |
2 | &23 | OS_ReadVarVal | |
2 | &24 | OS_SetVarVal | |
2 | &25 | OS_GSInit | |
2 | &26 | OS_GSRead | |
2 | &27 | OS_GSTrans | |
2 | &28 | OS_BinaryToDecimal | |
2 | &29 | OS_FSControl OS_FSControl 55 |
|
2 | &2A | OS_ChangeDynamicArea OS_ChangeDynamicArea (5a) |
|
2 | &2B | OS_GenerateError | |
2 | &2C | OS_ReadEscapeState | |
2 | &2D | OS_EvaluateExpression | |
2 | &2E | OS_SpriteOp Changes to OS_SpriteOp OS_SpriteOp 17 |
|
2 | &2F | OS_ReadPalette | |
2 | &30 | OS_ServiceCall OS_ServiceCall (5a) |
|
2 | &31 | OS_ReadVduVariables |
R0 = pointer to input block , R1 = pointer to output block |
2 | &32 | OS_ReadPoint | |
2 | &33 | OS_UpCall | |
2 | &34 | OS_CallAVector | |
2 | &35 | OS_ReadModeVariable OS_ReadModeVariable (5a) |
|
2 | &36 | OS_RemoveCursors | Disable
Cursor (No Params) |
2 | &37 | OS_RestoreCursors | |
2 | &38 | OS_SWINumberToString | |
2 | &39 | OS_SWINumberFromString | |
2 | &3A | OS_ValidateAddress | |
2 | &3B | OS_CallAfter | |
2 | &3C | OS_CallEvery | |
2 | &3D | OS_RemoveTickerEvent | |
2 | &3E | OS_InstallKeyHandler | |
2 | &3F | OS_CheckModeValid OS_CheckModeValid (5a) |
|
2 | &40 | OS_ChangeEnvironment | |
2 | &41 | OS_ClaimScreenMemory | |
2 | &42 | OS_ReadMonotonicTime | |
2 | &43 | OS_SubstituteArgs | |
2 | &44 | OS_PrettyPrint | |
2 | &45 | OS_Plot OS_Plot (5a) |
|
2 | &46 | OS_WriteN | |
2 | &47 | OS_AddToVector | |
2 | &48 | OS_WriteEnv | |
2 | &49 | OS_ReadArgs | |
2 | &4A | OS_ReadRAMFsLimits | |
2 | &4B | OS_ClaimDeviceVector | |
2 | &4C | OS_ReleaseDeviceVector | |
2 | &4D | OS_DelinkApplication | |
2 | &4E | OS_RelinkApplication | |
2 | &4F | OS_HeapSort | |
2 | &50 | OS_ExitAndDie | |
2 | &51 | OS_ReadMemMapInfo | |
2 | &52 | OS_ReadMemMapEntries | |
2 | &53 | OS_SetMemMapEntries OS_SetMemMapEntries (5a) |
|
2 | &54 | OS_AddCallBack | |
2 | &55 | OS_ReadDefaultHandler | |
2 | &56 | OS_SetECFOrigin | |
2 | &57 | OS_SerialOp OS_SerialOp (5a) |
|
2 | &58 | OS_ReadSysInfo OS_ReadSysInfo (5a) |
|
2 | &59 | OS_Confirm | |
2 | &5A | OS_ChangedBox | |
2 | &5B | OS_CRC | |
3 | &5C | OS_ReadDynamicArea OS_ReadDynamicArea (5a) |
|
3 | &5D | OS_PrintChar | |
3 | &5E | OS_ChangeRedirection | |
3 | &5F | OS_RemoveCallBack | |
3 | &60 | OS_FindMemMapEntries | |
3 | &61 | OS_SetColour OS_SetColour (5a) |
|
3 | &64 | OS_Pointer | |
3.5 | &65 | OS_ScreenMode | |
3.5 | &66 | OS_DynamicArea | |
2 | &68 | OS_Memory | |
2 | &69 | OS_ClaimProcessorVector | |
3.5 | &6A | OS_Reset | |
3.5 | &6B | OS_MMUControl | |
2 | &C0 | OS_ConvertStandardDateAndTime | |
2 | &C1 | OS_ConvertDateAndTime | |
2 | &D0 | OS_ConvertHex1 | |
2 | &D1 | OS_ConvertHex2 | |
2 | &D2 | OS_ConvertHex3 | |
2 | &D3 | OS_ConvertHex4 | |
2 | &D4 | OS_ConvertHex8 | |
2 | &D5 | OS_ConvertCardinal1 | |
2 | &D6 | OS_ConvertCardinal2 | |
2 | &D7 | OS_ConvertCardinal3 | |
2 | &D8 | OS_ConvertCardinal4 | |
2 | &D9 | OS_ConvertInteger1 | |
2 | &DA | OS_ConvertInteger2 | |
2 | &DB | OS_ConvertInteger3 | |
2 | &DC | OS_ConvertInteger4 | |
2 | &DD | OS_ConvertBinary1 | |
2 | &DE | OS_ConvertBinary2 | |
2 | &DF | OS_ConvertBinary3 | |
2 | &E0 | OS_ConvertBinary4 | |
2 | &E1 | OS_ConvertSpacedCardinal1 | |
2 | &E2 | OS_ConvertSpacedCardinal2 | |
2 | &E3 | OS_ConvertSpacedCardinal3 | |
2 | &E4 | OS_ConvertSpacedCardinal4 | |
2 | &E5 | OS_ConvertSpacedInteger1 | |
2 | &E6 | OS_ConvertSpacedInteger2 | |
2 | &E7 | OS_ConvertSpacedInteger3 | |
2 | &E8 | OS_ConvertSpacedInteger4 | |
2 | &E9 | OS_ConvertFixedNetStation | |
2 | &EA | OS_ConvertNetStation | |
2 | &EB | OS_ConvertFixedFileSize | |
2 | &EC | OS_ConvertFileSize |
OS_Bytes - (SWI 6)
Number |
Description |
R0 |
Options |
&00 | Display OS version information | 0 | |
&02 | Specify input stream | 2 | |
&03 | Specify output streams | 3 | |
&04 | Cursor key status | 4 | |
&05 | Write printer driver type | 5 | |
&06 | Write printer ignore character | 6 | |
&07 | Write RS423 receive rate | 7 | |
&08 | Write RS423 transmit rate | 8 | |
&09 | Write duration of first colour | 9 | |
&0A | Write duration of second colour | 10 | |
&0B | Write keyboard auto-repeat delay | 11 | |
&0C | Write keyboard auto-repeat rate | 12 | |
&0D | Disable event | 13 | |
&0E | Enable event | 14 | |
&0F | Flush buffer | 15 | |
&10 | Store the number of channels to be sampled | 16 | |
&11 | Return to the caller, doing nothing | 17 | |
&12 | Reset function keys | 18 | |
&13 | Wait for vertical sync (vsync) | 19 | |
&14 | Reset font definitions | 20 | |
&15 | Flush selected buffer | 21 | |
&19 | Reset group of font definitions | 25 | |
&46 | Read/write country number | 70 | |
&47 | Read/write alphabet or keyboard | 71 | |
&6A | Select pointer / activate mouse | 106 | |
&70 | Write VDU driver screen bank | 112 | |
&71 | Write display hardware screen bank | 113 | |
&72 | Write shadow/non-shadow state | 114 | |
&75 | Read VDU status | 117 | |
&76 | Reflect keyboard status in LEDs | 118 | |
&79 | Keyboard scan | 121 | |
&7A | Keyboard scan from 16 decimal | 122 | |
&7C | Clear escape condition | 124 | |
&7D | Set escape condition | 125 | |
&7E | Acknowledge escape condition | 126 | |
&7F | Check for end of file | 127 | |
&80 | Get buffer/mouse status | 128 | |
&80 | Return switch state and last channel converted | 128 | |
&81 | Scan a for a particular key | 129 | R1=Wait, R2=0.... Returns R1=Ascii R1=255^Keycode,R2=255... Returns R1=255 if pressed |
&86 | Read text cursor position | 134 | |
&87 | Read character at text cursor and screen mode | 135 | |
&8A | Insert character code into buffer | 138 | |
&8B | Write filing system options | 139 | |
&8F | Issue module service call | 143 | |
&90 | Set vertical screen shift and interlace | 144 | |
&91 | Get character from buffer | 145 | |
&98 | Examine buffer status | 152 | |
&99 | Insert character into buffer | 153 | |
&9C | Read/write asynchronous communications state | 156 | |
&A0 | Read VDU variable value | 160 | |
&A1 | Read battery backed RAM | 161 | |
&A2 | Write battery backed RAM | 162 | |
&A3 | Read/write general graphics information | 163 | |
&A5 | Read output cursor position | 165 | |
&B0 | 50Hz counter | 176 | |
&B1 | Read input source | 177 | |
&B5 | Read/write RS423 input interpretation status | 181 | |
&B6 | Read/write NoIgnore state | 182 | |
&BC | Read the current channel | 188 | |
&BD | Read the number of channels to be sampled | 189 | |
&BE | Read the resolution of conversion | 190 | |
&BF | Read/write RS423 busy flag | 191 | |
&C0 | Read RS423 control byte | 192 | |
&C1 | Read/write flash counter | 193 | |
&C2 | Read duration of second colour | 194 | |
&C3 | Read duration of first colour | 195 | |
&C4 | Read/write keyboard auto-repeat delay | 196 | |
&C5 | Read/write keyboard auto-repeat rate | 197 | |
&C6 | Read/write *Exec file handle | 198 | |
&C7 | Read/write *Spool file handle | 199 | |
&C8 | Read/write Break and Escape effect | 200 | |
&C9 | Read/write keyboard disable flag | 201 | |
&CA | Read/write keyboard status byte | 202 | |
&CB | Read/write RS423 input buffer minimum space | 203 | |
&CC | Read/write RS423 ignore flag | 204 | |
&D3 | Read/write bell channel | 211 | |
&D4 | Read/write bell sound volume | 212 | |
&D5 | Read/write bell frequency | 213 | |
&D6 | Read/write bell duration | 214 | |
&D8 | Read/write length of function key string | 216 | |
&D9 | Read/write paged mode line count | 217 | |
&DA | Read/write bytes in VDU queue | 218 | |
&DB | Read/write Tab key code | 219 | |
&DC | Read/write escape character | 220 | |
&DD | Read/write interpretation of input values &C0 - &CF | 221 | |
&DE | Read/write interpretation of input values &D0 - &DF | 222 | |
&DF | Read/write interpretation of input values &E0 - &EF | 223 | |
&E0 | Read/write interpretation of input values &F0 - &FF | 224 | |
&E1 | Read/write function key interpretation | 225 | |
&E2 | Read/write Shift function key interpretation | 226 | |
&E3 | Read/write Ctrl function key interpretation | 227 | |
&E4 | Read/write Ctrl Shift function key interpretation | 228 | |
&E5 | Read/write Escape key status | 229 | |
&E6 | Read/write escape effects | 230 | |
&EC | Read/write character destination status | 236 | |
&ED | Read/write cursor key status | 237 | |
&EE | Read/write numeric keypad interpretation | 238 | |
&F0 | Read country flag | 240 | |
&F2 | Read RS423 baud rates | 242 | |
&F3 | Read timer switch state | 243 | |
&F5 | Read printer driver type | 245 | |
&F6 | Read/write printer ignore character | 246 | |
&F7 | Read/write Break key actions | 247 | |
&FA | Read VDU driver screen bank number | 250 | |
&FB | Read display screen bank number | 251 | |
&FD | Read last break type | 253 | |
&FE | Set effect of Shift Ctrl on numeric keypad | 254 | |
&FF | Read/write boot option | 255 |
Keycodes
Esc:112 | F1: 113 | F2: 114 | F3: 115 | F4: 20 | F5: 116 | F6: 117 | F7: 22 | F8: 118 | F9: 119 | F10:30 | F11: 28 | F12: 29 | Print: 32 | ScrlLk:31 | Brk:44 | ||||||||
`: 45 | 1: 48 | 2: 49 | 3: 17 | 4: 18 | 5: 19 | 6: 24 | 7: 36 | 8: 21 | 9: 38 | 0: 39 | -: 23 | =: 93 | Pnd: 46 | Bksp: 47 | Ins: 61 | Home:62 | PgUp:63 | NmLk: 77 | /: 74 | *: 91 | #: 90 | ||
Tab: 96 | Q: 16 | W: 33 | E: 34 | R: 51 | T: 35 | Y: 68 | U: 53 | I: 37 | O: 54 | P: 55 | [: 56 | ]: 88 | \: 120 | Del: 89 | Copy:105 | PgDown:78 | 7: 27 | 8: 42 | 9: 43 | -: 59 | |||
Ctrl: 14 | A: 65 | S: 81 | D: 50 | F: 67 | G: 83 | H: 84 | J: 69 | K: 70 | L: 86 | ;: 72 | ': 79 | Retn: 73 | 4: 122 | 5: 123 | 6: 26 | +: 58 | |||||||
Shift: 03 | Z: 97 | X: 66 | C: 82 | V: 99 | B: 100 | N: 85 | M: 101 | ,: 102 | .: 103 | /: 104 | Shift:06 | U:57 | 1: 107 | 2: 124 | 3:108 | Enter: 60 | |||||||
Caps: 64 | Alt: 25 | Spc: 98 | Alt:28 | Ctrl: 17 | L:25 | D:41 | R:121 | 0:106 | .:76 |
File Formats
RiscOS file extensions use a 3 character type, preceded by a COMMA, not a full stop, eg "prog,ff8" (PROG COMMA FF8)
Category | EXT | Type | |
General | FFF | Plain ASCII text | Text |
FFE | Command (Exec) file | Command | |
FFD | Data | Data | |
FFC | Position independent code | Utility | |
FFB | Tokenised BASIC program | BASIC | |
FFA | Relocatable module | Module | |
FF9 | Sprite or saved screen | Sprite | |
FF8 | Absolute application loaded at &8000 | Absolute | |
FF7 | BBC font file (sequence of VDU operations) | BBC font | |
FF6 | Font | Font | |
FF5 | PostScript | PoScript | |
FF4 | Dot Matrix data file | Printout | |
FF3 | LaserJet data file | LaserJet | |
FF2 | Configuration (CMOS RAM) | Config | |
FF1 | Raw unprocessed data (e.g. terminal streams) | RawData | |
FF0 | Tagged Image File Format | TIFF | |
FED | Palette data | Palette | |
FEC | Template file | Template | |
FEB | Obey file | Obey | |
FEA | Desktop | Desktop | |
FE9 | ViewWord | ViewWord | |
FE8 | ViewPS | ViewPS | |
FE7 | ViewSheet | ViewSht | |
FE6 | UNIX executable | UNIX Ex | |
FE4 | DOS file | DOS | |
FE3 | Atari file | Atari | |
FE2 | Commodore Amiga file | Amiga | |
FE1 | Make data | Make | |
FDF | TCP/IP suite | VT220 script | |
FDE | TCP/IP suite | VT220 setup | |
FDD | Master utilities | MasterUtl | |
FDC | TCP/IP suite | unresolvable UNIX soft link | |
FDB | Text using CR and LF for line ends | TextCRLF | |
FDA | PC Emulator | DOS batch file | |
FD9 | PC Emulator | DOS executable file | |
FD8 | PC Emulator | DOS command file | |
FD7 | Obey file in a task window | TaskObey | |
FD6 | Exec file in a task window | TaskExec | |
FD5 | DOS Pict | Pict | |
FD4 | International MIDI Assoc. MIDIfiles standard | MIDI | |
FD3 | Acorn DDE | debuggable image | |
FD1 | BASIC stored as text | BASICTxt | |
FD0 | PC Emulator | configuration | |
FCF | Font cache | Cache | |
FCE | FileCore floppy disc image FileCoreFloppyDisc | ||
FCD | FileCore hard disc image | FileCoreHardDisc | |
FCC | Device object within DeviceFS | Device | |
FCA | Single compressed file | Squash | |
FC9 | Sun raster file | SunRastr | |
FC8 | DOS MultiFS disc image | DOSDisc | |
Industry standard file types | DFE | Comma separated values | CSV |
DEA | Data exchange format (AutoCAD etc) | DXF | |
DB4 | SuperCalc III file | SuperCalc | |
DB3 | DBase III file | DBaseIII | |
DB2 | DBase II | DBaseII | |
DB1 | DBase index file | DBaseIndex | |
DB0 | Lotus 123 file | WK1 (was Lotus123) | |
CE5 | TEX file | TeX | |
CAF | IGES graphics | IGES | |
CAE | Hewlett-Packard graphics language | HPGLPlot | |
C85 | JPEG (Joint Photographic Experts Group) file | JPEG | |
Acorn Advance file types | C25 | Acorn Advance Wordprocessor | AWord |
C26 | Acorn Advance Spreadsheet | ASheet | |
C27 | Acorn Advance Database | ADBase | |
C28 | Acorn Advance Graph | AGraph | |
BBC ROM file type | BBC | BBC ROM file (ROMFS) | BBC ROM |
Acornsoft file types | AFF | Draw file | DrawFile |
AFE | Mouse event record | Mouse | |
AFA | DTP style file | DtpStyle | |
AF9 | DTP documents | DtpDoc | |
AF8 | First Word Plus file | 1stWord+ | |
AF7 | Help file | HelpInfo | |
AF1 | Maestro file | Music | |
AF0 | ArcWriter file | ARCWriter | |
AE9 | Alarm file | Alarms | |
ADB | Outline font (obsolete file type) | New Font |
BASIC commands
RiscOS has a built in BBC Basic interpreter, which is also capable of assembly!
Category | Basic Command |
Assembly language | CALL, SYS, USR |
Character/string handling | ASC, CHR$, INSTR(, LEFT$(, LEN, MID$(, RIGHT$(, STR$, STRING$( |
Error handling | ERL, ERR, ERROR, LOCAL ERROR, ON ERROR, REPORT, REPORT$, RESTORE ERROR |
File commands | BGET#, BPUT#, CLOSE#, EOF#, EXT#, GET$#, INPUT#, OPENIN, OPENOUT, OPENUP, PRINT#, PTR# |
Graphics | BY, CIRCLE, CLG, CLS, COLOUR (COLOR), DRAW, ELLIPSE, FILL, GCOL, LINE, MODE, MOVE, OFF, ON, ORIGIN, PLOT, POINT, POINT(, RECTANGLE, TINT, VDU, WAIT |
Input/Output | GET, GET$, INKEY, INKEY$, INPUT, INPUT LINE, LINE INPUT, MOUSE, PRINT, SPC, TAB, WIDTH |
Logical | AND, EOR, FALSE, NOT, OR, TRUE |
Numerical | ABS, DIV, EVAL, INT, MOD, RND, SGN, SQR, SUM, SUMLEN, SWAP, VAL |
Program construction | APPEND, AUTO, *BASIC, *BASIC64, CRUNCH, DELETE, EDIT, HELP, INSTALL, LIST, LISTO, LOAD, LVAR, NEW, OLD, RENUMBER, SAVE, TEXTLOAD, TEXTSAVE, TWIN |
Program statements | CHAIN, CLEAR, DATA, DEF, DIM, END, ENDPROC, FN, GOSUB, GOTO, LET, LIBRARY, LOCAL, OSCLI, PROC, QUIT, READ, REM, RESTORE, RETURN, RUN, STOP, TRACE |
Sound | BEAT, BEATS, SOUND, STEREO, TEMPO, VOICES |
Structures | CASE, ELSE, ENDCASE, ENDIF, ENDWHILE, FOR, IF, NEXT, OF, OTHERWISE, REPEAT, THEN, UNTIL, WHEN, WHILE |
Trigonometric | ACS, ASN, ATN, COS, DEG, EXP, LN, LOG, PI, RAD, SIN, TAN |
Variables | ADVAL, COUNT, HIMEM, LOMEM, PAGE, POS, TIME, TIME$, TOP, VPOS |