Here's a list of all keywords in all the various toolkits in alphabetical order, with a terse description of what each does. Currently they number 140++ Hopefully it will make it a bit easier to browse or search.
Some keywords appear in more than one toolkit, but this isnt shown at present.
Ive tried to indicate compatibility, in most cases based on testing, but in many cases based only on my knowledge of the code, ie I see no reason why it should not work on this or that system. If I have got it wrong, please let me know so I can correct it and possibly spare others any grief you may have had as a result!
Compatibility Key
Operating system | OS | Q => Qdos/Minerva | S => SMSQ/E | M => Minerva not Qdos | * => All |
---|---|---|---|---|---|
S*BASIC | Bas | T => Turbo | L => Qlib | B => BASIC | * => All |
Display mode | Dis | 3x => GD2 | 08 => QL mode | blank => N/A | * => All |
Modifyers | - | e => Extended evironment; eg Qe | t => Toolkit2; eg Qt | - => NOT; eg -T | ? => Not sure/Dont know |
Name | T | Description | Toolkit | OS | Bas | Dis |
---|---|---|---|---|---|---|
ALTSTR% | F | Find occurances of one of a list of characters, in a string | Str3TK | * | * | |
BCHG% | F | Single-bit bitwise test and change | BITS | * | * | |
BCLR% | F | Single-bit bitwise test and clear | BITS | * | * | |
BINSEARCH | F | Binary search of array | MATTool | * | * | |
BINSORT | P | Binary insertion sort of array - multiple criteria | MATTool | * | * | |
BSET% | F | Single-bit bitwise test and set | BITS | * | * | |
BTST% | F | Test bit | BITS | * | * | |
BUTFREE | P | Frees a job's reservation in Button Frame | Button | QeS | * | |
BUTUSE | F | Given a size, reserves a slot in Button Frame and returns position | Button | QeS | -T | |
CD2TX$ | F | Convert a string of mixed binary data to readable text and code | TXCD | * | * | |
CH_LBYTES | F | Save bytes from memory to a file via an open channel | LSBYTES | ? | * | |
CH_SBYTES | F | Load bytes into memory from a file via an open channel | LSBYTES | ? | * | |
CHAN_B% | F | Return a byte from given position in the Channel Definition Block | Chans | * | * | |
CHAN_F | F | Return a float from given position in the Channel Definition Block | Chans | * | * | |
CHAN_L | F | Return a long word from given position in the Channel Definition Block | Chans | * | * | |
CHAN_W% | F | Return a word from given position in the Channel Definition Block | Chans | * | * | |
CHOICE | F | Given a number, return that item from a list of parameters | Choice | * | * | |
CHOICE% | F | Return the number of the first matching item in a list of parameters | Choice | * | * | |
CHSWAP | F | Swap two S*BASIC channels. | CHSWAP | * | * | * |
CLOCK | P | SuperBASIC ascynchronous clock | CLOCK | Q-S | * | * |
CMP% | F | Compare two string using given conditions and criteria | CMP | * | * | |
CSTR$ | F | Get a null-terminated (C-type) string from memory | CSTR | * | -T | |
CSTRCMP% | F | Compare two null-terminated (C-type) strings in memory | CSTR | * | * | |
CV16TO32 | P | Convert graphics data from mode 16 to mode 32 | CV2NAT | S | * | 3x |
CV16TO33 | P | Convert graphics data from mode 16 to mode 33 | CV2NAT | S | * | 3x |
CV16TONAT | P | Convert graphics data from mode 16 to another mode | CV2NAT | S | * | 3x |
CV32TO16 | P | Convert graphics data from mode 32 to mode 16 | CV2NAT | S | * | 3x |
CV32TO33 | P | Convert graphics data from mode 32 to mode 33 | CV2NAT | S | * | 3x |
CV32TONAT | P | Convert graphics data from mode 32 to another mode | CV2NAT | S | * | 3x |
CV33TO16 | P | Convert graphics data from mode 33 to mode 16 | CV2NAT | S | * | 3x |
CV33TO32 | P | Convert graphics data from mode 33 to mode 32 | CV2NAT | S | * | 3x |
CV33TONAT | P | Convert graphics data from mode 33 to another mode | CV2NAT | S | * | 3x |
CV64TO16 | P | Convert graphics data from mode 64 to mode 16 | CV2NAT | S | * | 3x |
CV64TO32 | P | Convert graphics data from mode 64 to mode 32 | CV2NAT | S | * | 3x |
CV64TO33 | P | Convert graphics data from mode 64 to mode 33 | CV2NAT | S | * | 3x |
CV64TONAT | P | Convert graphics data from mode 64 to another mode | CV2NAT | S | * | 3x |
DAY% | F | Given a date stamp, return the day number of the month | Dates | Q | * | |
DERLE | P | Decompress RLE-compressed (graphics) data | DERLE | * | * | |
DESPACE$ | F | Remove any leading spaces from a string | StrTK | * | * | |
DETAB$ | F | Remove leading spaces and tabs from a string | Str1TK | * | * | |
DISP_TYPE | F | Return the system's current display mode | Q2S | Q | * | |
EDLINE% | F | Edit an input string. Returns termination code. | EDLINE% | * | * | |
ENRLE | F | Compress (graphics) data using RLE compression | RLE | * | * | |
ERRM$ | F | Returns the system error text of any given error number as a string | ERRM$ | * | * | |
ERT | P | Throw an error if parameter is negative | Q2S | Q | * | |
EVEN | F | Round up an integer or long word to nearest even number | Even | * | * | |
EXTRACT$ | F | Extract a section of a string without error | Str2TK | * | * | |
FDEL | F | Delete file as a function. Dont gag, just return result if error! (Now in SMSQ/E!) | FDEL | * | * | |
FINDNAME% | F | Returns TRUE if keyword found in job's name table | FINDNAME | * | * | |
FLOAT | F | Convert a six byte string representing a float into a number | NumI2S | * | * | |
FLOAT$ | F | Convert a float into a six byte internal representation string | NumI2S | * | * | |
FLT2HEX$ | F | Convert a float into a 12 digit hex string | FLT2HEX | * | * | |
FLIN2MEM% | F | Copy a buffer load from file to memory. | IOB2MEM | * | * | |
FMUL2MEM% | F | Copy a buffer load from file to memory. | IOB2MEM | * | * | |
GET_FSPR | F | Returns the most fitting sprite from a multimode sprite chain | SYSSPR | S | * | 3x |
GET_SSPR | F | Returns the address of a given system sprite | SYSSPR | S | * | 3x |
GETCOL% | F | Returns native colour code of paper, ink, or strip set in a window channel | GETCOL | S | * | 3x |
GETDATE | P | Split a date in seconds into its numeric components (YYYY, MM, DD, hh, mn, ss, WD). | GETDATE | * | *-T | |
GPT | P | Get current pointer position (without use of a channel) | SGPT | QeS | BL-T | |
HASH | F | Hash a string into a long word | HASH | * | * | |
II2MM_L | F | Convert Big-endian longword to Little-endian and vice versa. | II2MM | * | * | |
II2MM_W | F | Convert Big-endian word to Little-endian and vice versa. | II2MM | * | * | |
IMPARSE | F | Parse statements from a string in PSION-compatible export format | IMPARSE | * | BL-T | |
INSERT$ | F | Insert a sub string into a string | Str2TK | * | * | |
INSTR% | F | Find a sub string in a string. Many options! | Str3TK | * | * | |
INTEGER$ | F | Convert integer into a two byte internal representation string | NumI2S | * | * | |
INTEGER% | F | Convert a two byte string representing an integer into an numeric integer | NumI2S | * | * | |
IOBFLIN% | F | Fetch an LF-terminated line from a channel and return status | IOBtools | * | BL | |
IOBFMUL% | F | Fetch multiple bytes from a channel and return status | IOBtools | * | BL | |
IOBSMUL% | F | Send multiple bytes to a channel and return status | IOBtools | * | BL | |
IOBSUML% | F | Send multiple untranslated bytes to a channel and return status | IOBtools | S | BL | |
JB_FIND | F | Find a running job and get its ID. Returns a code but does not error | JB_FIND | S | TL | |
JUST$ | F | Justify a string within a given field, according to given criteria | JUST | * | * | |
LCMP | F | Compare unsigned long words | LCMP | * | * | |
LDATA | F | Open file, reserve memory, and load data from a file into common heap | LDATA | QtS | * | |
LDIV | F | Integer division of a long word | LDIVMOD | * | * | |
LIN2STR$ | F | Convert a long word into a readable ASCII string | LIN2STR | * | * | |
LMOD | F | Integer modulus of a long word | LDIVMOD | * | * | |
LOG_AND | F | Bitwise logical AND | LOGOPS | * | * | |
LOG_NOT | F | Bitwise logical NOT | LOGOPS | * | * | |
LOG_OR | F | Bitwise logical OR | LOGOPS | * | * | |
LOG_ROT | F | Rotate bits right or left | LOGOPS | * | * | |
LOG_SHF | F | Shift bits right or left | LOGOPS | * | * | |
LOG_XOR | F | Bitwise logical XOR (EOR) | LOGOPS | * | * | |
LONG | F | Convert a four byte string representing a long word into a numeric long word | NumI2S | * | * | |
LONG$ | F | Convert a long word into a four byte internal representation string | NumI2S | * | * | |
LOWER$ | F | Lowercase a string | Str1TK | * | * | |
MATEQU | P | Make contents of one array identical to another | MATTool | * | T? | |
MATFILL | P | Fill an numeric array with static or incremental data. Variable start and step s | MATTool | * | * | |
MATFIND | F | Brute force search of array, given search item and comparison criteria | MATTool | * | * | |
MATINFO$ | F | Get array meta information (for use in other MATTool commands) | MATTool | * | T? | |
MDALLOC | F | Return a device's allocation block size | MDinfo | * | * | |
MDFHEAD | F | Return size of a device's file header | MDinfo | * | * | |
MDFREE | F | Return the amount of free space on given device in bytes | MDinfo | * | * | |
MDFSIZE | F | Return amount of space taken up by a given file on a given device | MDinfo | * | * | |
MDGOOD | F | Return the total space on given device in bytes | MDinfo | * | * | |
MDHEADR$ | F | Read the 64b raw file header | MDinfo | * | * | |
MDLEVEL | F | Return a given device's driver level | MDinfo | * | * | |
MDNAME$ | F | Return a given device's medium name | MDinfo | * | * | |
MDREMV | F | Return a given device's removable status. (Only relevant to DD2) | MDinfo | S* | * | |
MDSTAT | F | Return a given device's read/write status. (Only relevant to DD2) | MDinfo | S* | * | |
MONTH% | F | Given a date stamp, return the month number | Dates | Q | * | |
NSTR$ | F | Get a string preceded by a one byte length count (Name-type string) from memory | NSTR | * | -T | |
NSTRCMP% | F | Compare two Name-type strings in memory | NSTR | * | * | |
ODD | F | Return TRUE if word or long word is odd | Even | * | * | |
OUTLN | P | Set the window outline | Q2S | Qe | * | |
OUTLSZ | P | Returns primary window's outline size and position | Wosz | QeS | * | |
OWNJOB | F | Set or change ownership of a job | OWNJOB | * | * | |
PAUSE | P | Pause with optional channel parameter. For Qdos JS+ | Q2S | Q | * | |
PCBO% | P | Swap byte order of an integer | PCBO | * | T? | |
PE_MBLK | P | Move a block of graphics data to a different location with different geometry | MBLK | S | * | |
PEEK, W, L, F, $ | F | SMSQ/E-compatible suit of PEEKs | PEEK&POKE | Q-S | * | |
PEEKSTR$ | F | Fetch a string of text (with or without a length word) from memory | PePoStr | * | * | |
PICKJOB% | F | Pick a job to the top of the pile | PickJob | QeS | * | |
POKE, W, L, F, $ | P | SMSQ/E-compatible suit of POKEs | PEEK&POKE | Q-S | * | |
POKESTR$ | P | Poke a string of text into memory, with or without length word | PePoStr | * | * | |
PROMPT | F | Display a prompt text and await a valid keypress. | PROMPT | * | * | |
PRTSTR% | F | Print string to console with timeout. Continue processing even when window locked. | PRTSTR% | Q(S) | * | |
PTRCHID | F | Returns channel ID of job under the pointer | JobWin | QeS | * | |
PTRJID | F | Returns the job ID of the job under the pointer | JobWin | QeS | * | |
QINSTR% | F | Find a sub string only inside or only outside a string containing quoted sub string | Str3TK | * | * | |
QLIBJN | P | Set a new name for a Q_Liberated job | QLIBJN | * | BL | |
QLIBJN48 | P | Set a new name, up to 48 char, for a patched Q_Liberated job | QLIBJN | * | L | |
QUICKSORT | P | Quicksort multiple arrays, direct, indirect, or referenced, using multiple criteria | MATTool | * | * | |
QUIT | P | Quit a job, optionally returning an error code (or some other long word value) | Q2S | Q | TL | |
REMOVE$ | F | Remove a section of a string and return the result without edge errors | Str2TK | * | * | |
REVERSE$ | F | Reverse a string. (May come in handy to someone some day!) | Str1TK | * | * | |
ROMAN$ | F | A function to convert Arabic numerals to Roman. | ROMAN | * | * | |
RPIX% | F | Return native colour code of pixel at given position | Rpix | S | * | 3x |
RPIX24 | F | Return RGB colour of pixel at given position | Rpix | S | * | 3x |
RPT% | F | Reads pointer and returns on a wide variety of conditions | RPT | QeS | BL | |
SCR_BASE | F | Return the system's screen base address | Q2S | Q | * | |
SCR_LLEN | F | Return the system's screen line length in bytes | Q2S | Q | * | |
SCR_XLIM | F | Return the screen's x-size limit | Q2S | Q | * | |
SCR_YLIM | F | Return the screen's y-size limit | Q2S | Q | * | |
SCRXY | P | Returns screen maxima without use of a channel | SCRXY | QeS | BL-T | |
SET_SSPR | P | Replace a system sprite with another | SYSSPR | S | * | |
SPT | P | Put pointer at given position | SGPT | QeS | BL | |
STUFF | P | Stuff strings and bytes into a keyboard queue, allowing for catch-up pauses | STUFF | * | * | |
SUSJB | P | Suspend a job for a given number of frames (Now in SMSQ\E!) | SUSJB | * | * | |
THG_FIND | F | Return result of search for a Thing | THGutil | QeS | -B | |
THG_REMV | F | Remove a Thing and return status | THGutil | QeS | -B | |
TIMER_DISP | P | Switch running asynchronous timer display on or off | Timer | * | * | |
TIMER_INIT | F | Initialise an asynchronous timer job | Timer | * | * | |
TIMER_KILL | P | Remove asynchronous timer job | Timer | * | * | |
TIMER_LED | P | Draw LED number to a window channel | Timer | * | * | |
TIMER_PAUSE | P | Toggle asynchronous timer pause | Timer | * | * | |
TIMER_SET | P | Set or reset asynchronous timer times | Timer | * | * | |
TIMER_START | P | Start asynchronous timer job | Timer | * | * | |
TIMER_STATE% | F | Get current asynchronous timer state | Timer | * | * | |
TIMER_STOP | P | Stop asynchronous timer job | Timer | * | * | |
TIMER_TIME% | F | Get current asynchronous timer counter value | Timer | * | * | |
TRIX% | F | A switch to flag whether a toolkit is loaded. | TRIX | S | S | |
TX2CD$ | F | Convert coded text into a binary string | TXCD | * | * | |
UPPER$ | F | Uppercase a string | Str1TK | * | * | |
VALID% | F | Return status if given variable conforms to a specified S*BASIC type | VALID | * | * | |
VLOAD | F | Load scalar and array variables from file into parameter list | VLS | * | BL | |
VSAVE | F | Save a list of scalar and array parameters to a file | VLS | * | BL | |
WEEKDAY% | F | Given a date stamp, return the week day number | Dates | * | * | |
WILD% | F | Search a string using wildcards | WILD | * | * | |
WINDSZ | P | Returns a window's size and position | Wosz | QeS | BL-T | |
WIRX% | F | Search string for a pre-parsed pattern using an advanced wildcard syntax (paired with WPARSE) | WIRX | * | * | |
WL_DRAW_LED | P | Draw a 7-segment LED number to a window channel | Timer | * | * | |
WPARSE$ | F | Parse a pattern for use with WIRX% | WIRX | * | * | |
WPIX | P | Set pixel at given position to a given native colour | WPIX | S | * | 3x |
WSPT | P | Writes a sprite to a window | WSPT | QeS | * | |
YEAR% | F | Given a date stamp, return the year | Dates | Q | * |
The problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.
- Joe Armstrong, the principal inventor of Erlang