* DATABASE TRAP AND VECTORS
         NOLIST
FS.DBASE EQU      $44      GET DATABASE ADDRESS AND VERSION NUMBER
*
FSD.CRT  EQU      $14      CREATE DATABASE
FSD.OPEN EQU      $18      OPEN DATABASE
FSD.POSA EQU      $1C      POSITION ABSOLUTE RECORD
FSD.POSR EQU      $20      POSITION RELATIVE RECORD
FSD.GET  EQU      $24      GET RECORD
FSD.PUT  EQU      $28      PUT RECORD
FSD.APPN EQU      $2C      APPEND RECORD AND UPDATE ENABLE
FSD.UPDT EQU      $30      UPDATE RECORD ENABLE
FSD.DEL  EQU      $34      DELETE RECORD
FSD.INFO EQU      $38      GET INFORMATION
FSD.ORDR EQU      $3C      ORDER DATABASE
FSD.SEL  EQU      $40      SELECT RECORDS
FSD.RES  EQU      $44      RESET RECORD SELECTION
FSD.FIND EQU      $48      FIND RECORD
FSD.CONT EQU      $4C      CONTINUE FIND
FSD.OINF EQU      $50      GET ORDER INFORMATION
FSD.CLOS EQU      $54      CLOSE DATABASE
FSD.IMPT EQU      $58      IMPORT DATABASE
FSD.EXPT EQU      $5C      EXPORT DATABASE
FSD.XTRS EQU      $60      SAVE EXTRA INFORMATION
FSD.XTRL EQU      $64      LOAD EXTRA INFORMATION
FSD.SCPT EQU      $68      SET STRING COMPARE TABLE PTR
FSD.COMP EQU      $6C      COMPARE TO STRINGS/INTEGERS/FP NUMBERS
FSD.DDIR EQU      $70      OPEN A DATABASE TO A DIRECTORY CHANNEL
FSD.CDLD EQU      $74      LOAD CODE SECTION FROM DATABASE
FSD.UPF  EQU      $78      MOVE THE FILE UP SUBROUTINE
FSD.DNF  EQU      $7C      MOVE THE FILE DOWN SUBROUTINE
FSD.CDSV EQU      $80      SAVE CODE SECTION TO DATABASE
FSD.NAME EQU      $84      GET NAME VECTOR LIST PTR
FSD.SUBF EQU      $88      GET SUBFIELD VECTOR LIST PTR
FSD.XVEC EQU      $90      GET EXTRA VECTOR LIST PTR
*
FSD.NMLD EQU      $04      (NAME) LOAD NAME LIST
FSD.NMSV EQU      $08      (NAME) SAVE NAME LIST
FSD.NMGT EQU      $0C      (NAME) GET FIELD NAME
FSD.NMST EQU      $10      (NAME) SET FIELD NAME
FSD.NMFN EQU      $14      (NAME) FIND FIELD NAME
*
FSD.SFCN EQU      $04      (SUBFIELD) COUNT SUBFIELDS
FSD.SFGT EQU      $08      (SUBFIELD) GET A SUBFIELD
FSD.SFGC EQU      $0C      (SUBFIELD) GET CURRENT SUBFIELD
FSD.SFGN EQU      $10      (SUBFIELD) GET NEXT SUBFIELD
FSD.SFPT EQU      $14      (SUBFIELD) PUT A SUBFIELD
FSD.SFPC EQU      $18      (SUBFIELD) PUT CURRENT SUBFIELD
FSD.SFA  EQU      $1C      (SUBFIELD) ADD/INSERT SUBFIELDS
FSD.SFR  EQU      $20      (SUBFIELD) REMOVE A RANGE OF SUBFIELDS
FSD.SFOF EQU      $24      (SUBFIELD) CONVERT OFFSET TO NUMBER
*
FSD.SOKY EQU      $04      (XVEC) SET ORDER STRING KEY LENGTH
FSD.CBAD EQU      $08      (XVEC) GET ADDRESS OF CONTROL BLOCK
FSD.ADDF EQU      $0C      (XVEC) ADD A FIELD
FSD.REMF EQU      $10      (XVEC) REMOVE A FIELD
FSD.COPY EQU      $14      (XVEC) COPY A DATABASE
*
TYP.STRG EQU      $00               STRING TYPE
TYP.INTW EQU      $01               WORD INTEGER TYPE
TYP.INTL EQU      $02               LONG INTEGER TYPE
TYP.FP   EQU      $03               FLOATING POINT TYPE
*
* ORDER PARAMETER BLOCK
*
OPB.FLD  EQU      $00               ENTRY FIELD
OPB.DIR  EQU      $02               ENTRY DIRECTION
OPB.LEN  EQU      $04               ENTRY LENGTH
OPBD..A  EQU      $01               ASCENDING ORDER
OPBD..D  EQU      $FFFFFFFF         DESCENDING ORDER
OPB.MAXF EQU      $04               MAXIMUM NO. OF ENTRIES
*
* SELECT PARAMETER BLOCK
*
SPB.TYPE EQU      $00      .B       SELECT TYPE
SPBT..US EQU      $80               ADD TO SPB.TYPE FOR USER ROUTINE
SPBT..SE EQU      $40               ADD TO SPB.TYPE FOR "SELECT"
SPB.NPAR EQU      $01      .B       NO. OF PARAMS
SPB.PARS EQU      $02               PARAMETERS
SPB.FLD  EQU      $00      .W       FIELD
SPB.COND EQU      $02      .B       CONDITION MASK
SPB.SPR  EQU      $03      .B       SPARE BYTE
SPB.COMP EQU      $04      .L       REL PTR TO S/W/L/F TO COMPARE
SPB.OP   EQU      $08      .W       OPERATOR LINKING NEXT PARAMETER
SPB.LEN  EQU      $0A               PARAM LENGTH

SPBC..GT EQU      $00               BIT SET FOR GREATER THAN RESULT OK
SPBC.GT  EQU      $01               VALUE TO ADD FOR GT OK
SPBC..EQ EQU      $01               BIT SET FOR EQUAL TO RESULT OK
SPBC.EQ  EQU      $02               VALUE TO ADD FOR EQ OK
SPBC..LT EQU      $02               BIT SET FOR LESS THAN RESULT OK
SPBC.LT  EQU      $04               VALUE TO ADD FOR LT OK
SPBC..NT EQU      $03               BIT SET FOR NOT RESULT
SPBC.NOT EQU      $08               VALUE TO ADD FOR NOT RESULT
SPBC..CO EQU      $04               BIT SET FOR CONTAINS STRING (BIT 0-2 N/A)
SPBC.CO  EQU      $10               VALUE TO ADD FOR CONTAINS STRING
SPBO..NO EQU      $00               NO OPERATOR
SPBO..OR EQU      $04               'OR' OPERATOR
SPBO..AD EQU      $08               'AND' OPERATOR
SPBO..XO EQU      $0C               'XOR' OPERATOR
* FIND PARAMETERS (D1)
FSDF.FSE EQU      $00               FIND BY SELECT
FSDF.FIN EQU      $01               FIND BY INSTR/COMPARE
FSDF.FOR EQU      $02               FIND BY ORDER
* PARAMETER BLOCK FOR FSDF.FSE IS THE SAME AS FOR FSD.SEL
* PARAMETER BLOCK FOR FSDF.FIN
FIPB.TYP EQU      $00               TYPE OF PAR (S/W/L/F)
FIPB.PAR EQU      $02               PARAMETER
* PARAMETER BLOCK FOR FSDF.FOR
FOPB.P1  EQU      $00               N(A1) OR N(A6,A1.L) = PAR 1
FOPB.P2  EQU      $04               N(A1) OR N(A6,A1.L) = PAR 2
FOPB.P3  EQU      $08               N(A1) OR N(A6,A1.L) = PAR 3
FOPB.P4  EQU      $0C               N(A1) OR N(A6,A1.L) = PAR 4
FOPB.LEN EQU      $10
* CODE SECTION ROUTINE OFFSETS
FCD.ID   EQU      $00               $4AFB
FCD.OS   EQU      $02               OPERATING SYSTEM ("QDOS  ")
FCD.PROC EQU      $08               PROCESSOR ("68000   ")
FCD.WORK EQU      $10               WORKSPACE SIZE
FCD.INIT EQU      $12               ENTRY POINT TO INITIALISE
FCD.PRE  EQU      $18               ENTRY POINT TO PRE-PROCESS
FCD.POST EQU      $1E               ENTRY POINT TO POST-CHECK
FCD.OPT  EQU      $24               ENTRY POINT TO EXECUTE OPTIONS
FCD.CONF EQU      $2A               ENTRY POINT TO CONFIGURE
FCD.DUMP EQU      $30               ENTRY POINT TO DUMP A FIELD
FCD.CLOS EQU      $36               ENTRY POINT TO TIDY UP PRIOR TO REMOVAL
         LIST
