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. 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**
BINSEARCHFBinary search of arrayMATTool**
BINSORTPBinary insertion sort of array - multiple criteriaMATTool**
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**
CMP%FCompare two string using given conditions and criteriaCMP**
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*
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 stringStr2TK**
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 0's name tableFINDNAME**
FLOATFConvert and return a six byte string representing a float into a numeric floatNumI2S**
FLOAT$FConvert and return a float into a six byte internal representation stringNumI2S**
FLT2HEX$FConvert a float into a 12 digit hex stringFLT2HEX**
GET_FSPRFReturns the most fitting sprite from a multimode sprite chainSYSSPRS*3x
GET_SSPRFReturns the address of a given system spriteSYSSPRS*3x
GETCOL%FReturns actual paper, ink, or strip colour set in a window channel as a native cGETCOLS*3x
GPTPGet current pointer position (without use of a channel)SGPTQeS-T
HASHFHash a string into a long wordHASH**
IMPARSEFParse statements from a string in PSION-compatible export formatIMPARSE*BL
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 statusIOBtools*BL
JUST$FJustify a string within a given field, according to given criteriaJUST**
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**
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**
MDLEVELFReturn a given device's driver levelMDinfo**
MDNAME$FReturn a given device's medium nameMDinfo**
MONTH%FGiven a date stamp, return the month numberDatesQ*
ODDFReturn TRUE if word or long word is oddEven**
OUTLNPSet the window outlineQ2SQe*
OUTLSZPReturns primary window's outline size and positionWoszQeS*
PCBO%PSwap byte order of an integerPCBO*T?
PE_MBLKPMove a block of graphics data in memoryMBLKS*
PEEKSTR$FFetch a string of text (with or without a length word) from memoryPePoStr**
PICKJOB%FPick a job to the top of the pilePickJobQeS*
POKESTR$PPoke a string of text into memory, with or without length wordPePoStr**
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 strStr3TK**
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 criteMATTool**
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 resultStr2TK**
REVERSE$FReverse a string. (May come in handy to someone some day!)Str1TK**
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 channelSCRXYS-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 valueTimer**
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
WIRX%FSearch a pre-parsed string using an advanced wildcard syntax (paired with WPARSEWIRX**
WL_DRAW_LEDPDraw a 7-segment LED number to a window channelTimer**
WPARSE$FParse a search string 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