/***************************************************************************
|
|
Title: dprtoken.h
|
|
Version: 1.00
|
|
Date: 05/22/97
|
|
Author(s): Ed Lay
|
|
----------------------------------------------------------------------------
|
|
Change log:
|
|
Date Rev Who Description
|
--------- ----- ----- --------------------------------------------
|
05/22/1997 EBL Creation
|
|
***************************************************************************/
|
|
//****************************************************************************
|
// Second Pass Token/Date Structure & Token Codes
|
//
|
//****************************************************************************
|
|
//****************************************************************************
|
//
|
// Defines for different types:
|
// 1. Operatee Types ( In, Mn, Pn, Qn, Functions )
|
// 2. Operator Types ( +, -, *, /, %, |, &, ^, OR, AND )
|
// 3. Command Types
|
// a. Single( Types: 0A, 0B, 1A, 1B, 1C, 1D, 1E, 1F )
|
// b. Expression( IF, WHILE
|
// I,M,P,Qnn = ( EXPRESSION )
|
// Mnn ==, |=, &= ^= ( EXPRESSION )
|
// All Type 0 A( Exp. ) .. Z( Exp. ) .. CALL( Exp. ) etc.
|
//****************************************************************************
|
|
#define OpI 0
|
#define OpM 2
|
#define OpP 4
|
#define OpQ 6
|
#define Constant 8
|
#define OpIMPQMask 0xE
|
#define Ope 0x20 // so Ope not zero ???
|
|
#define OpMaskType 0x80 // Operator/Operatee Type Mask
|
#define OperatorType 0x80 // Operator Type
|
#define OperateeType 0x00 // Operatee Type
|
#define CmdType 0x100 // Command Type
|
#define OpCmdMask 0x180 // Operator/Operatee & Cmd Type Mask
|
|
#define OpNegate 0x01 // Operator/Operatee Negate
|
#define OpeFuncType 0x40 // Operatee Function Type
|
#define OprCondType 0x20 // Conditional Type
|
#define OprCompType 0x10 // Comparison Type Operator
|
#define OprCondNOTType 0x8 // Conditional NOT Type
|
#define OprCondCompType OprCompType+OprCondType+OperatorType // Conditional Comparison Operator
|
#define OprCmpdCondType OprCondType+OperatorType // Compound Conditional
|
|
|
#define OprHIType 0x2 // HI priority Operator Type
|
|
|
//****************************************************************************
|
// Operatee Types Allowed within an Expression
|
//****************************************************************************
|
#define OpFuncAddrMsk 0x1E // Operator Function Address Mask
|
#define OpeFuncI OpI+OpeFuncType // Operatee Function I
|
#define OpeFuncM OpM+OpeFuncType // Operatee Function M
|
#define OpeFuncP OpP+OpeFuncType // Operatee Function P
|
#define OpeFuncQ OpQ+OpeFuncType // Operatee Function Q
|
#define OpeFuncSIN 0x08+OpeFuncType // Operatee Function SIN
|
#define OpeFuncCOS 0x0A+OpeFuncType // Operatee Function COS
|
#define OpeFuncTAN 0x0C+OpeFuncType // Operatee Function TAN
|
#define OpeFuncABS 0x0E+OpeFuncType // Operatee Function ABS
|
#define OpeFuncASIN 0x10+OpeFuncType // Operatee Function ASIN
|
#define OpeFuncACOS 0x12+OpeFuncType // Operatee Function ACOS
|
#define OpeFuncATAN 0x14+OpeFuncType // Operatee Function ATAN
|
#define OpeFuncSQRT 0x16+OpeFuncType // Operatee Function SQRT
|
#define OpeFuncEXP 0x18+OpeFuncType // Operatee Function EXP
|
#define OpeFuncLN 0x1A+OpeFuncType // Operatee Function LN
|
#define OpeFuncINT 0x1C+OpeFuncType // Operatee Function INT
|
#define OpeFuncATAN2 0x1E+OpeFuncType // Operatee Function ATAN2
|
#define OpeFuncLp 0x20+OpeFuncType // Operatee Function '('
|
#define OpeFuncRp 0x22+OpeFuncType // Operatee Function ')'
|
|
#define OpeInn Ope +OpI // Operatee Inn
|
#define OpeMnn Ope +OpM // Operatee Mnn
|
#define OpePnn Ope +OpP // Operatee Pnn
|
#define OpeQnn Ope +OpQ // Operatee Qnn
|
#define OpeConst Ope +Constant // Operatee Constant Values
|
|
//****************************************************************************
|
// Operator Types Allowed within an Expression
|
//
|
// OprCondType 0x20 // Conditional Type 100000
|
// OprCompType 0x10 // Comparison Operator 010000
|
// OprCondNOTType 0x8 // Conditional NOT Type 000100
|
// OprCondCompType OprCompType+OprCondType+OperatorType 11xxxx
|
// OprCmpdCondType OprCondType+OperatorType 10xxxx
|
//****************************************************************************
|
|
#define OprADD 0x00+OperatorType // Operator '+' 000000
|
#define OprSUB 0x01+OperatorType // Operator '-' 000001
|
#define OprMPY 0x02+OperatorType // Operator '*' 000010
|
#define OprDIV 0x03+OperatorType // Operator '/' 000011
|
#define OprOR 0x04+OperatorType // Operator '|' 000100
|
#define OprXOR 0x05+OperatorType // Operator '^' 000101
|
#define OprAND 0x06+OperatorType // Operator '&' 000110
|
#define OprMOD 0x07+OperatorType // Operator '%' 000111
|
#define OprADDRMSK 0x07 // Mask for addr table
|
|
#define OprLOR 0x08+OprCmpdCondType // Operator OR, OR- 10100x
|
#define OprLAND 0x0A+OprCmpdCondType // Operator AND, AND- 10101x
|
|
|
#define OprEQ 0x00+OprCondCompType // Operator '=',"!=" 11X00x
|
#define OprGT 0x02+OprCondCompType // Operator '>',"!>" 11X01x
|
#define OprLT 0x04+OprCondCompType // Operator '<',"!<" 11X10x
|
#define OprAEQ 0x06+OprCondCompType // Operator '~',"!~" 11X11x
|
// 1ST 'x' is '-'
|
// 2nd 'x' is '!'
|
|
|
//****************************************************************************
|
// Command Types:
|
// a. Single( Types: 0A, 0B, 1A, 1B, 1C, 1D, 1E, 1F )
|
// These are the ORIGINAL non expressions commands.
|
// b. Expression( IF, WHILE
|
// I,M,P,Qnn = ( EXPRESSION )
|
// Mnn ==, |=, &= ^= ( EXPRESSION )
|
// Type 0 A( Exp. ) .. Z( Exp. ) .. CALL( Exp. ) etc.
|
//****************************************************************************
|
#define CmdInn OpI+CmdType // Command Inn = - 000000x
|
#define CmdMnn OpM+CmdType // Command Mnn = - 000001x
|
#define CmdPnn OpP+CmdType // Command Pnn = - 000010x
|
#define CmdQnn OpQ+CmdType // Command Qnn = - 000011x
|
#define CmdMnn OpM+CmdType // Command Mnn |= - 000100x ???
|
#define CmdMnn OpM+CmdType // Command Mnn ^= - 000101x ???
|
#define CmdMnn OpM+CmdType // Command Mnn &= - 000110x ???
|
#define CmdMnn OpM+CmdType // Command Mnn == - 000111x ???
|
|
|
#define CodeA 0x1
|
#define CodeB 0x2
|
#define CodeC 0x3
|
#define CodeD 0x4
|
#define CodeE 0x5
|
#define CodeF 0x6
|
#define CodeG 0x7
|
#define CodeH 0x8
|
#define CodeI 0x9
|
#define CodeJ 0x10
|
#define CodeK 0x11
|
#define CodeL 0x12
|
#define CodeM 0x13
|
#define CodeP 0x16
|
#define CodeQ 0x17
|
#define CodeR 0x18
|
#define CodeS 0x19
|
#define CodeT 0x20
|
#define CodeU 0x21
|
#define CodeV 0x22
|
#define CodeW 0x23
|
#define CodeX 0x24
|
#define CodeY 0x25
|
#define CodeZ 0x26
|
#define CodeCall 0x27
|
#define Code0B 0x28
|
|
|
#define Code1A CodeA
|
#define Code1B CodeB
|
#define Code1C CodeC
|
#define Code1D CodeD
|
#define Code1E CodeE
|
#define Code1F CodeF
|
#define Code1G CodeG
|
#define Code1H CodeH
|
#define Code1I CodeI
|
#define Code1J CodeJ
|
#define Code1K CodeK
|
#define Code1L CodeL
|
#define Code1M CodeM
|
#define Code1P CodeP
|
#define Code1Q CodeQ
|
#define Code1R CodeR
|
#define Code1S CodeS
|
#define Code1T CodeT
|
#define Code1U CodeU
|
#define Code1V CodeV
|
#define Code1W CodeW
|
#define Code1X CodeX
|
#define Code1Y CodeY
|
#define Code1Z CodeZ
|
#define Code1Call CodeCall
|
#define Code10B Code0B
|
|
#define Code1Type1 0x1E
|
|
|
#define Code2TA 0
|
#define Code2TS 1
|
#define Code2PVT 2
|
#define Code2TM 67
|
#define Code2DWELL 68
|
#define Code2DELAY 69
|
#define Code2Colen 70
|
#define Code2Cntrl 71
|
#define Code2CCR 72
|
#define Code2ENAPLC 0
|
#define Code2DISPLC 1
|
#define Code2ABS 0
|
#define Code2INC 1
|
#define Code2FRAX 2
|
#define Code2HOME 3
|
#define Code2HOMEZ 4
|
#define Code2ADIS 12
|
#define Code2AROT 13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define ExpA CodeA << 1
|
#define ExpB CodeB << 1
|
#define ExpC CodeC << 1
|
#define ExpD CodeD << 1
|
#define ExpE CodeE << 1
|
#define ExpF CodeF << 1
|
#define ExpG CodeG << 1
|
#define ExpH CodeH << 1
|
#define ExpI CodeI << 1
|
#define ExpJ CodeJ << 1
|
#define ExpK CodeK << 1
|
#define ExpL CodeL << 1
|
#define ExpM CodeM << 1
|
#define ExpP CodeP << 1
|
#define ExpQ CodeQ << 1
|
#define ExpR CodeR << 1
|
#define ExpS CodeS << 1
|
#define ExpT CodeT << 1
|
#define ExpU CodeU << 1
|
#define ExpV CodeV << 1
|
#define ExpW CodeW << 1
|
#define ExpX CodeX << 1
|
#define ExpY CodeY << 1
|
#define ExpZ CodeZ << 1
|
#define ExpCall CodeCall << 1
|
#define Exp0B Code0B << 1
|
|
#define CmdExp CmdType // ??? what here
|
|
#define CmdExpA ExpA+CmdExp // Command A(-
|
#define CmdExpB ExpB+CmdExp // Command B(-
|
#define CmdExpC ExpC+CmdExp // Command C(-
|
#define CmdExpD ExpD+CmdExp // Command D(-
|
#define CmdExpE ExpE+CmdExp // Command E(-
|
#define CmdExpF ExpF+CmdExp // Command F(-
|
#define CmdExpG ExpG+CmdExp // Command G(-
|
#define CmdExpH ExpH+CmdExp // Command H(-
|
#define CmdExpI ExpI+CmdExp // Command I(-
|
#define CmdExpJ ExpJ+CmdExp // Command J(-
|
#define CmdExpK ExpK+CmdExp // Command K(-
|
#define CmdExpL ExpL+CmdExp // Command L(-
|
#define CmdExpM ExpM+CmdExp // Command M(-
|
#define CmdExpP ExpP+CmdExp // Command P(-
|
#define CmdExpQ ExpQ+CmdExp // Command Q(-
|
#define CmdExpR ExpR+CmdExp // Command R(-
|
#define CmdExpS ExpS+CmdExp // Command S(-
|
#define CmdExpT ExpT+CmdExp // Command T(-
|
#define CmdExpU ExpU+CmdExp // Command U(-
|
#define CmdExpV ExpV+CmdExp // Command V(-
|
#define CmdExpW ExpW+CmdExp // Command W(-
|
#define CmdExpX ExpX+CmdExp // Command X(-
|
#define CmdExpY ExpY+CmdExp // Command Y(-
|
#define CmdExpZ ExpZ+CmdExp // Command Z(-
|
#define CmdExpCall ExpCall+CmdExp // Command Call(-
|
#define CmdExp0B Exp0B+CmdExp // Command TA .. CCR(-
|
|
|
#define CmdIf 0x04+CmdType+OprCondType // Command If 0100100
|
#define CmdWhile 0x08+CmdType+OprCondType // Command While 0101000
|
|
//****************************************************************************
|
// Single 48 Bit Word Command Types
|
//****************************************************************************
|
#define CmdSingle 0x40 // 1xxxxxx
|
|
#define CmdSingle0A 0x00+CmdType+CmdSingle // Command Type 0A 1000000
|
#define CmdSingle0B 0x01+CmdType+CmdSingle // Command Type 0B 1000001
|
#define CmdSingle1A 0x02+CmdType+CmdSingle // Command Type 1A 1000010
|
#define CmdSingle1B 0x03+CmdType+CmdSingle // Command Type 1B 1000011
|
#define CmdSingle1C 0x04+CmdType+CmdSingle // Command Type 1C 1000100
|
#define CmdSingle1D 0x05+CmdType+CmdSingle // Command Type 1D 1000101
|
#define CmdSingle1E 0x06+CmdType+CmdSingle // Command Type 1E 1000110
|
#define CmdSingle1F 0x07+CmdType+CmdSingle // Command Type 1F 1000111
|
#define CmdSingle2 0x08+CmdType+CmdSingle // Command Type 1F 1001000
|
|
//#define EOLType 0x40
|
//#define CmdEOL EOLType+CmdType // End of Line Code
|
#define CmdNULL 0 // NULL Command for init
|