List of Keywords

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 systemOSQ  => Qdos/MinervaS  => SMSQ/EM  => Minerva not Qdos* => All
S*BASICBasT  => TurboL  => QlibB  => BASIC* => All
Display modeDis3x => GD208 => QL modeblank => N/A* => All
Modifyers-e  => Extended evironment; eg Qet  => Toolkit2; eg Qt-  => NOT; eg -T?  => Not sure/Dont know


Name T Description Toolkit OS Bas Dis
ALTSTR%FFind occurances of one of a list of characters, in a stringStr3TK**
BCHG%FSingle-bit bitwise test and changeBITS**
BCLR%FSingle-bit bitwise test and clearBITS**
BINSEARCHFBinary search of arrayMATTool**
BINSORTPBinary insertion sort of array - multiple criteriaMATTool**
BSET%FSingle-bit bitwise test and setBITS**
BTST%FTest bitBITS**
BUTFREEPFrees a job's reservation in Button FrameButtonQeS*
BUTUSEFGiven a size, reserves a slot in Button Frame and returns positionButtonQeS-T
CD2TX$FConvert a string of mixed binary data to readable text and codeTXCD**
CH_LBYTESFSave bytes from memory to a file via an open channelLSBYTES?*
CH_SBYTESFLoad bytes into memory from a file via an open channelLSBYTES?*
CHAN_B%FReturn a byte from given position in the Channel Definition BlockChans**
CHAN_FFReturn a float from given position in the Channel Definition BlockChans**
CHAN_LFReturn a long word from given position in the Channel Definition BlockChans**
CHAN_W%FReturn a word from given position in the Channel Definition BlockChans**
CHOICEFGiven a number, return that item from a list of parametersChoice**
CHOICE%FReturn the number of the first matching item in a list of parametersChoice**
CHSWAPFSwap two S*BASIC channels.CHSWAP***
CLOCKPSuperBASIC ascynchronous clockCLOCKQ-S**
CMP%FCompare two string using given conditions and criteriaCMP**
CSTR$FGet a null-terminated (C-type) string from memoryCSTR*-T
CSTRCMP%FCompare two null-terminated (C-type) strings in memoryCSTR**
CV16TO32PConvert graphics data from mode 16 to mode 32CV2NATS*3x
CV16TO33PConvert graphics data from mode 16 to mode 33CV2NATS*3x
CV16TONATPConvert graphics data from mode 16 to another modeCV2NATS*3x
CV32TO16PConvert graphics data from mode 32 to mode 16CV2NATS*3x
CV32TO33PConvert graphics data from mode 32 to mode 33CV2NATS*3x
CV32TONATPConvert graphics data from mode 32 to another modeCV2NATS*3x
CV33TO16PConvert graphics data from mode 33 to mode 16CV2NATS*3x
CV33TO32PConvert graphics data from mode 33 to mode 32CV2NATS*3x
CV33TONATPConvert graphics data from mode 33 to another modeCV2NATS*3x
CV64TO16PConvert graphics data from mode 64 to mode 16CV2NATS*3x
CV64TO32PConvert graphics data from mode 64 to mode 32CV2NATS*3x
CV64TO33PConvert graphics data from mode 64 to mode 33CV2NATS*3x
CV64TONATPConvert graphics data from mode 64 to another modeCV2NATS*3x
DAY%FGiven a date stamp, return the day number of the monthDatesQ*
DERLEPDecompress RLE-compressed (graphics) dataDERLE**
DESPACE$FRemove any leading spaces from a stringStrTK**
DETAB$FRemove leading spaces and tabs from a stringStr1TK**
DISP_TYPEFReturn the system's current display modeQ2SQ*
EDLINE%FEdit an input string. Returns termination code.EDLINE%**
ENRLEFCompress (graphics) data using RLE compressionRLE**
ERRM$FReturns the system error text of any given error number as a stringERRM$**
ERTPThrow an error if parameter is negativeQ2SQ*
EVENFRound up an integer or long word to nearest even numberEven**
EXTRACT$FExtract a section of a string without errorStr2TK**
FDELFDelete file as a function. Dont gag, just return result if error! (Now in SMSQ/E!)FDEL**
FINDNAME%FReturns TRUE if keyword found in job's name tableFINDNAME**
FLOATFConvert a six byte string representing a float into a numberNumI2S**
FLOAT$FConvert a float into a six byte internal representation stringNumI2S**
FLT2HEX$FConvert a float into a 12 digit hex stringFLT2HEX**
FLIN2MEM%FCopy a buffer load from file to memory.IOB2MEM**
FMUL2MEM%FCopy a buffer load from file to memory.IOB2MEM**
GET_FSPRFReturns the most fitting sprite from a multimode sprite chainSYSSPRS*3x
GET_SSPRFReturns the address of a given system spriteSYSSPRS*3x
GETCOL%FReturns native colour code of paper, ink, or strip set in a window channelGETCOLS*3x
GETDATEPSplit a date in seconds into its numeric components (YYYY, MM, DD, hh, mn, ss, WD).GETDATE**-T
GPTPGet current pointer position (without use of a channel)SGPTQeSBL-T
HASHFHash a string into a long wordHASH**
II2MM_LFConvert Big-endian longword to Little-endian and vice versa.II2MM**
II2MM_WFConvert Big-endian word to Little-endian and vice versa.II2MM**
IMPARSEFParse statements from a string in PSION-compatible export formatIMPARSE*BL-T
INSERT$FInsert a sub string into a stringStr2TK**
INSTR%FFind a sub string in a string. Many options!Str3TK**
INTEGER$FConvert integer into a two byte internal representation stringNumI2S**
INTEGER%FConvert a two byte string representing an integer into an numeric integerNumI2S**
IOBFLIN%FFetch an LF-terminated line from a channel and return statusIOBtools*BL
IOBFMUL%FFetch multiple bytes from a channel and return statusIOBtools*BL
IOBSMUL%FSend multiple bytes to a channel and return statusIOBtools*BL
IOBSUML%FSend multiple untranslated bytes to a channel and return statusIOBtoolsSBL
JB_FINDFFind a running job and get its ID. Returns a code but does not errorJB_FINDSTL
JUST$FJustify a string within a given field, according to given criteriaJUST**
LCMPFCompare unsigned long wordsLCMP**
LDATAFOpen file, reserve memory, and load data from a file into common heapLDATAQtS*
LDIVFInteger division of a long wordLDIVMOD**
LIN2STR$FConvert a long word into a readable ASCII stringLIN2STR**
LMODFInteger modulus of a long wordLDIVMOD**
LOG_ANDFBitwise logical ANDLOGOPS**
LOG_NOTFBitwise logical NOTLOGOPS**
LOG_ORFBitwise logical ORLOGOPS**
LOG_ROTFRotate bits right or leftLOGOPS**
LOG_SHFFShift bits right or leftLOGOPS**
LOG_XORFBitwise logical XOR (EOR)LOGOPS**
LONGFConvert a four byte string representing a long word into a numeric long wordNumI2S**
LONG$FConvert a long word into a four byte internal representation stringNumI2S**
LOWER$FLowercase a stringStr1TK**
MATEQUPMake contents of one array identical to anotherMATTool*T?
MATFILLPFill an numeric array with static or incremental data. Variable start and step sMATTool**
MATFINDFBrute force search of array, given search item and comparison criteriaMATTool**
MATINFO$FGet array meta information (for use in other MATTool commands)MATTool*T?
MDALLOCFReturn a device's allocation block sizeMDinfo**
MDFHEADFReturn size of a device's file headerMDinfo**
MDFREEFReturn the amount of free space on given device in bytesMDinfo**
MDFSIZEFReturn amount of space taken up by a given file on a given deviceMDinfo**
MDGOODFReturn the total space on given device in bytesMDinfo**
MDHEADR$FRead the 64b raw file headerMDinfo**
MDLEVELFReturn a given device's driver levelMDinfo**
MDNAME$FReturn a given device's medium nameMDinfo**
MDREMVFReturn a given device's removable status. (Only relevant to DD2)MDinfoS**
MDSTATFReturn a given device's read/write status. (Only relevant to DD2)MDinfoS**
MONTH%FGiven a date stamp, return the month numberDatesQ*
NSTR$FGet a string preceded by a one byte length count (Name-type string) from memoryNSTR*-T
NSTRCMP%FCompare two Name-type strings in memoryNSTR**
ODDFReturn TRUE if word or long word is oddEven**
OUTLNPSet the window outlineQ2SQe*
OUTLSZPReturns primary window's outline size and positionWoszQeS*
OWNJOBFSet or change ownership of a jobOWNJOB**
PAUSEPPause with optional channel parameter. For Qdos JS+Q2SQ*
PCBO%PSwap byte order of an integerPCBO*T?
PE_MBLKPMove a block of graphics data to a different location with different geometryMBLKS*
PEEK, W, L, F, $FSMSQ/E-compatible suit of PEEKsPEEK&POKEQ-S*
PEEKSTR$FFetch a string of text (with or without a length word) from memoryPePoStr**
PICKJOB%FPick a job to the top of the pilePickJobQeS*
POKE, W, L, F, $PSMSQ/E-compatible suit of POKEsPEEK&POKEQ-S*
POKESTR$PPoke a string of text into memory, with or without length wordPePoStr**
PROMPTFDisplay a prompt text and await a valid keypress.PROMPT**
PRTSTR%FPrint string to console with timeout. Continue processing even when window locked.PRTSTR%Q(S)*
PTRCHIDFReturns channel ID of job under the pointerJobWinQeS*
PTRJIDFReturns the job ID of the job under the pointerJobWinQeS*
QINSTR%FFind a sub string only inside or only outside a string containing quoted sub stringStr3TK**
QLIBJNPSet a new name for a Q_Liberated jobQLIBJN*BL
QLIBJN48PSet a new name, up to 48 char, for a patched Q_Liberated jobQLIBJN*L
QUICKSORTPQuicksort multiple arrays, direct, indirect, or referenced, using multiple criteriaMATTool**
QUITPQuit a job, optionally returning an error code (or some other long word value)Q2SQTL
REMOVE$FRemove a section of a string and return the result without edge errorsStr2TK**
REVERSE$FReverse a string. (May come in handy to someone some day!)Str1TK**
ROMAN$FA function to convert Arabic numerals to Roman.ROMAN**
RPIX%FReturn native colour code of pixel at given positionRpixS*3x
RPIX24FReturn RGB colour of pixel at given positionRpixS*3x
RPT%FReads pointer and returns on a wide variety of conditionsRPTQeSBL
SCR_BASEFReturn the system's screen base addressQ2SQ*
SCR_LLENFReturn the system's screen line length in bytesQ2SQ*
SCR_XLIMFReturn the screen's x-size limitQ2SQ*
SCR_YLIMFReturn the screen's y-size limitQ2SQ*
SCRXYPReturns screen maxima without use of a channelSCRXYQeSBL-T
SET_SSPRPReplace a system sprite with anotherSYSSPRS*
SPTPPut pointer at given positionSGPTQeSBL
STUFFPStuff strings and bytes into a keyboard queue, allowing for catch-up pausesSTUFF**
SUSJBPSuspend a job for a given number of frames (Now in SMSQ\E!)SUSJB**
THG_FINDFReturn result of search for a ThingTHGutilQeS-B
THG_REMVFRemove a Thing and return statusTHGutilQeS-B
TIMER_DISPPSwitch running asynchronous timer display on or offTimer**
TIMER_INITFInitialise an asynchronous timer jobTimer**
TIMER_KILLPRemove asynchronous timer jobTimer**
TIMER_LEDPDraw LED number to a window channelTimer**
TIMER_PAUSEPToggle asynchronous timer pauseTimer**
TIMER_SETPSet or reset asynchronous timer timesTimer**
TIMER_STARTPStart asynchronous timer jobTimer**
TIMER_STATE%FGet current asynchronous timer stateTimer**
TIMER_STOPPStop asynchronous timer jobTimer**
TIMER_TIME%FGet current asynchronous timer counter valueTimer**
TRIX%FA switch to flag whether a toolkit is loaded.TRIXSS
TX2CD$FConvert coded text into a binary stringTXCD**
UPPER$FUppercase a stringStr1TK**
VALID%FReturn status if given variable conforms to a specified S*BASIC typeVALID**
VLOADFLoad scalar and array variables from file into parameter listVLS*BL
VSAVEFSave a list of scalar and array parameters to a fileVLS*BL
WEEKDAY%FGiven a date stamp, return the week day numberDates**
WILD%FSearch a string using wildcardsWILD**
WINDSZPReturns a window's size and positionWoszQeSBL-T
WIRX%FSearch string for a pre-parsed pattern using an advanced wildcard syntax (paired with WPARSE)WIRX**
WL_DRAW_LEDPDraw a 7-segment LED number to a window channelTimer**
WPARSE$FParse a pattern for use with WIRX%WIRX**
WPIXPSet pixel at given position to a given native colourWPIXS*3x
WSPTPWrites a sprite to a windowWSPTQeS*
YEAR%FGiven a date stamp, return the yearDatesQ*


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