SirTune and Model 204 quad types

From m204wiki
Jump to navigation Jump to search

The basic unit of work in compiled SOUL is the "quad." Every SOUL statement generates one or more quads. By breaking down Model 204 processing by quad types (using the QUAD parameter on STATE reports), you can get an idea of the general type of work occurring in an Online.

To interpret a QUAD report, it is important to know what the individual quads do. $Function quads are easy to interpret since they are listed by function name. Other quads are listed here with a brief description of their function.

Model 204 quads
ADDAV Add a fieldname/value pair to a record. Can be an ADD statement, part of a CHANGE statement or one line in a STORE RECORD statement.
INSERT Add a fieldname/value pair to a record for the INSERT statement.
ANDQ Perform a logical AND in a 204 expression (possibly in an IF statement).
ARADD Perform an arithmetic addition in an expression.
ARDIV Perform an arithmetic division in an expression.
ARMUL Perform an arithmetic multiplication in an expression.
ARSUB Perform an arithmetic subtraction in an expression.
ASSQ Assigns result (possibly intermediate) of an expression to a result variable.
ASSQCN Assigns integer constant to a (possibly intermediate) fixed result variable.
ASSQEE Assigns result (possibly intermediate) of a string expression to a string result variable.
ASSQNN Assigns result (possibly intermediate) of a numeric expression to a numeric result variable.
ASSQO Assigns Blob field value to the user buffer.
AUDITUS The part of the AUDIT statement that actually moves data into the journal.
BACKOUT The BACKOUT statement.
BAND Boolean AND. Combine two bit maps as part of FIND statement or in list manipulation.
BASE Handles the SFGE$ and SFL$ conditions in a FIND statement.
BEQVAL Handles the field = VALUE IN label condition for an ordered character field, where label refers to an enclosing FOR EACH VALUE loop or to a NOTE statement.
BLIKE Handles the IS LIKE condition on a FIND statement for an ordered character field.
BNOT Boolean NOT. Invert a bit map as part of FIND statement or in list manipulation.
BOPER The part of a FIND statement associated with looking up a a fieldname/value pair in the ordered index. Never occurs in a group context FIND.
BOR Boolean OR. Combine two bit maps as part of FIND statement or in list manipulation.
BRANGE Handles a range find condition for an ordered index field on a FIND statement.
BRNCH Branch used in computed JUMP statement or to branch around subroutine.
BVAL The FIND ALL VALUES statement.
CHGAV Delete a fieldname/value pair from a record for the CHANGE statement.
CLGLOB The CLEAR GLOBALS statement.
COMMIT The COMMIT statement.
COUNT Count number of entries in found set. Used in COUNT and FIND AND PRINT COUNT statements. Also used in FIND statement to determine if a DYRWT message should be issued for a table B (direct) search.
CSORT Copy data to CCATEMP for SORT or FOR EACH VALUE IN ORDER statement.
CTOThe COUNT OCCURRENCES statement.
DEDB2 The EXEC DB2 ... END EXEC statement.
DEQSET Unlock a record set after deleting them in a DELETE RECORDS IN/ON statement.
DIS Handles IS =, IS ALPHA =, and IS NUM = conditions on a FIND statement.
DLIKE Handles a IS LIKE condition on a FIND statement for a non-ordered character field.
DOPER Part of a Find that looks up a fieldname/value pair in table C, the ordered index, or table B (direct search or hash key). The table C, ordered index, and hash key lookups show up as DOPER instead of POPER/NOPER, BOPER/NOPER, and HOPER/NOPER pairs in a group context find. The only time DOPER shows up in a non-group context is when a table B (direct) search is performed.
DOTEST Increments and tests index in a FOR index loop (FOR I FROM ...)
DPRES Handles an IS PRESENT condition on a FIND statement.
DRANGE Handles a range find condition for an non-ordered field on a FIND statement.
DROPA Deletes each occurrence of a field in a record (DELETE EACH statement).
DROPAV Delete a fieldname/value pair from a record. Used for the DELETE statement.
D2DELRS A DELETE RECORDS statement on a remote file.
D2EFIND A FIND statement on a remote file.
D2ESORT A SORT statement on a remote file.
D2FILR A FILE RECORDS statement on a remote file.
D2LIST A PLACE RECORDS or REMOVE RECORDS statement on a remote file.
D2OPCUR "Open cursor" on a remote file, to fetch sorted records or values to handle FOR EACH RECORD/VALUE in remote group context.
ECALL The CALL statement.
EICLOSE The CLOSE statement.
EICLRGO Handles CLEAR GLOBAL statement for global images.
EICLRT The CLEAR TAG statement.
EIMOD The MODIFY statement.
EIOPEN The OPEN statement.
EIPOS The POSITION statement.
EIPREP The PREPARE SCREEN statement. This includes PREPARE statements where the word SCREEN is implied.
EIPREPI The PREPARE IMAGE statement. This includes PREPARE statements where the word IMAGE is implied.
EIREAD The READ SCREEN statement. This includes READ statements where the word SCREEN is implied.
EIREADI The READ IMAGE statement. This includes READ statements where the word IMAGE is implied.
EIRPOS The RELEASE POSITION statement.
EITAG The TAG statement.
EIWRITE The WRITE IMAGE statement. This includes WRITE statements where the word IMAGE is implied.
ELCLOSE The CLOSE PROCESS statement.
ELCNFRM The CONFIRM statement.
ELCNFRMD The CONFIRMED statement.
ELFLUSH The FLUSH statement.
ELINVITE The INVITE statement.
ELOPEN The OPEN PROCESS statement.
ELQUERY The QUERY PROCESS statement.
ELRCV The RECEIVE statement.
ELSEND The SEND statement.
ELSIGNL The SIGNAL statement.
ELSNDERR The SEND ERROR statement.
ELTEST The TEST statement.
ELTRNSFR The TRANSFER statement.
ELWAIT The WAIT statement.
EMID The IDENTIFY statement.
ENQSET Lock a record set about to be deleted in a DELETE RECORDS IN/ON statement.
ENRA Extract the value of a field. Mostly used for IS LIKE and IS NOT LIKE clauses.
ENRACO Copies a value in a field used in an expression into STBL.
ENRAPR Print a field value for a PRINT statement.
ENRASSF Assign the value of a field to a percent variable.
EQQ Perform a numeric or string equality test to produce a logical true or false (0 or 1) result (possibly in an IF statement).
ERETRN The RETURN, BYPASS PENDING, or RETRY statements and implied RETURNs at the end of a subroutine.
EVCRLOC IFAM only.
EVIFONT Font switch produced by *FONT keyword on a PRINT statement. Only used in DBCS environment.
EVOPCUR IFAM only.
FEO Finds next occurrence of a field for FOR EACH OCCURRENCE statement.
FILEDOL Handles the FILE$ in a group context FIND statement.
FMCMD File maintenance commands (DEFINE FIELD, REDEFINE FIELD, DELETE FIELD, RENAME FIELD, SECURE, DESECURE, ALLOCATE, DELETE GROUP). Only allowed to be used by CCA products.
FOR FOR EACH RECORD, FOR n RECORDS, and FOR EACH VALUE loops. Finds the next record number or value to process in loop.
FOREMOTE Get next record in a FOR EACH RECORD or FOR EACH VALUE loop against a remote file.
FOREV The start of a REPEAT FOREVER or REPEAT WHILE loop.
FORNO The FOR RECORD NUMBER statement.
FORNOREM The FOR RECORD NUMBER statement against a remote file.
F2LKI FLOD only.
GETMORE IFAM only.
GETNN IFAM only.
GLOOP Group LOOP. Switch to next file in group in any group related operation including FIND statements.
HOPER Hash OPERation. Looks up records in table B in a hash key file when the hash key appears in a FIND statement.
INTQ Converts a string or floating point value in an expression to a fixed-point value.
ISNTPRES Check for absence of a field in a record for an IS NOT PRESENT test in an expression to produce a logical true or false (0 or 1) result (possibly in an IF statement).
ISORT Initialization for SORT or FOR EACH VALUE IN ORDER statement.
ISPRES Check for presence of a field in a record for an IS PRESENT test in an expression to produce a logical true or false (0 or 1) result (possibly in an IF statement).
ITSQ Used for SoftSpy.
JUMP Branch associated with JUMP TO or IF/THEN/ELSE statement.
JUMPTEST Branches to correct computed jump label in computed JUMP statement.
LIKE Perform a wildcard character test for an IS LIKE clause in an expression to produce a logical true or false (0 or 1) result (possibly in an IF statement).
LOCDOL Evaluate LOCATION$ FIND condition for Parallel Query Option/204.
LOOP Get the next file segment in a multi-segment statement. Used in FIND, FILE RECORDS, PLACE RECORDS, REMOVE RECORDS, and DELETE RECORDS statements.
LOOPEND Branch associated with LOOP END statement.
LOOPENDC Conditionally exit a loop for a REPEAT WHILE statement.
MSORT Sort data in CCATEMP for SORT or FOR EACH VALUE IN ORDER statement.
NEGQ Unary minus sign, for example, %I=-%I.
NEWPAGE The NEWPAGE statement.
NMEVEQ Evaluates equality condition for numeric range field on a FIND statement.
NMEVGE Evaluates greater than or equal condition for numeric range field on a FIND statement.
NMEVGT Evaluates greater than condition for numeric range field on a FIND statement.
NMEVLE Evaluates less than or equal condition for numeric range field on a FIND statement.
NMEVLT Evaluates less than condition for numeric range field on a FIND statement.
NOPER Normalize OPERation. Converts a single record entry, record list (in table D) or a bit map (in table D) into a bit map in CCATEMP. Part of a FIND statement.
NOTDSET Inverts a found set or list for the DELETE RECORDS statement.
NOTE Note a value for the NOTE statement.
NOTQ Perform a logical NOT in a Model 204 expression (possibly in an IF statement).
NTIMES The start of a REPEAT n TIMES loop.
NUMQ Converts a string value in an expression to a floating point value.
ONQ Sets ON unit address and branches around ON unit for the ON statement.
ORQ Perform a logical OR in a Model 204 expression (possibly in an IF statement).
PAFN Prints all field names for the PRINT ALL FIELD NAMES (PAFN) statement.
PAUSE The PAUSE statement.
PID Prints the record ID for the *ID clause of a PRINT or AUDIT statement.
PLAREM PLACE/REMOVE RECORDS ON/FROM LIST statement. Turn bits on/off in list bitmaps.
PNUM Print a number; used in PRINT and FIND AND PRINT COUNT statements.
POINT Evaluates POINT$ condition in a FIND statement.
POPER The part of a FIND statement associated with looking up a a fieldname/value pair in table C. Never occurs in a group context FIND.
POSNEV The POSITION statement.
POSQ Unary plus sign, for example, %S=+%S.
PRINTALL The PRINT ALL INFORMATION (PAI) statement.
PRTNCOL Prints a field value in the PRINT statement if the fieldname was immediately preceded by a number indicating a maximum number of lines.
PSNOP Copying a bit map page. Use in PLACE RECORDS and REMOVE RECORDS statements and in FIND statements on previously created found sets or lists.
PSNOPEBM Part of FIND statement; copies (sometimes) existence bit map to CCATEMP.
PSTRG Print a string; used in PRINT statements.
PTALL EACH fieldname parameter in a PRINT statement.
QEND End of most multi-part or multiple file segment statements. Occurs in FIND, DELETE RECORDS IN, SORT, FILE RECORDS, PLACE, REMOVE, and many other statements.
QENDF Ends a FOR loop.
QENDG End of group loop. Occurs in FIND and other statements in group context. Associated with a GLOOP quad.
RELALL The RELEASE ALL RECORDS statement.
RELSERQ The RELEASE RECORDS IN statement.
REMBREV The REMEMBER statement.
RESHTR The RESET HEADER/TRAILER statement.
RRECD Remove a record from table B for a DELETE RECORD statement.
RSPOPER The part of a FIND statement associated with looking up a fieldname/value pair in table C. Never occurs in a group context FIND. RSPOPER is used instead of POPER when using record security in an APSY pre-compiled proc.
SAVE Save invisible key data in table C or in the ordered index for a FILE RECORDS statement.
SETHIO Start of SET HEADER/TRAILER statement.
SITEM Start of STORE RECORD statement. Creates empty record in table B and adds hash or sort key in hash or sort key file.
SITEMREM Start of STORE RECORD statement for remote file.
SOLOOPNot used.
SOPER Set OPERation. Sets a segments bit map in a found set for a FIND statement (or a PLACE/REMOVE statement). Also responsible for enqueuing on the found set unless doing FIND WITHOUT LOCKS.
SOPEREBM Part of DELETE RECORDS statement; copies existence bit map to CCATEMP.
SOR Find next record in a SORT KEY file for a FOR EACH RECORD IN ORDER BY sort key statement.
STOREND Not used.
STPIF The STOP IF COUNT statement.
STRGQ Converts a floating point value in an expression to a string value.
SUBS Retrieves a value in an array based on a subscript.
TAB TAB parameter in a PRINT, SET HEADER, or SET TRAILER statement.
UITEM Start of UPDATE RECORD statement.
UITEMREM Start of UPDATE RECORD statement for remote file.
WCARDX Output a PRINT or AUDIT line.
WCARDW SKIP n LINES, where n > 1.
WITHQ WITH parameter in a PRINT, AUDIT, SET HEADER, or SET TRAILER statement.

See also