⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 peropcod.txt

📁 Dos6.0
💻 TXT
📖 第 1 页 / 共 5 页
字号:
########################################################################
#
#   QB Master Peropcod.Txt:
#
#	This file is machine read by tool OpTabler.
#	The format of this file is:
#	    - "#" in column 1 causes the line to be a comment.
#	    - blank lines are ignored.
#	    - "@" in column 1 followed immediately by 1-6 characters
#	      begins a new class of opcodes. These classes are used to
#	      produce a number of opcode .inc & .h files, so that the
#	      number of EQU/#define directives for opcodes is minimized
#	      in each source file.  the special class name "__END_COMMON"
#	      is reserved to indicate the end of the block of the common
#	      block.  all new opcodes should be added after this indicator.
#	    - each logical line describes 1 opcode and is terminated by ';'
#	    - fields within a line are separated by '|'s or any number of
#	      newlines
#	    - OpTabler will report if the wrong number of fields were
#	      found on a line.
#	    - the field definitions within a line are:
#		1. opcode name
#		2. level of opcode support if a product doesn't appear
#		   in this column, the opcode is fully supported, if it's
#		   prefixed by a "*" it is not supported or listable,
#		   otherwise its listable but not supported.
#		3. scan dispatch label
#		4. rule table index
#		5. executor address map for this opcode
#		6. opcode attribute count (in bytes)
#		7. opcode's LIST rule dispatch
#		8. offset into reserved word table for opcode (for LIST)
#
########################################################################

#
#	NOTE: Parser assumes opXXImp..opXXSD match ET_IMP..ET_SD
#
#	Start of contiguous block assumed by parser
#


########################################################################
#	Start of Minimal set of opcodes
########################################################################
@MIN

#
# prsmain.asm assumes next 2 opcodes are contiguous
#

opBol             |                       | Ss_Bol            | 0
                    exBol0                | OPA_fSsRude+OPA_fTxtFind
                    LrBol                 | 0;
opBolSp           |                       | Ss_BolEmit        | 0
                    exBolSp               | 2+OPA_fSsRude+OPA_fTxtFind
		    LrBolSp		  | 0;

#
# end of contiguous block assumed by prsmain.asm
#

#
# prsmain.asm assumes next 2 opcodes are contiguous
#

opBolInclude      |                       | Ss_BolEmit        | 0
                    exBolInclude          | 2+OPA_fSsRude+OPA_fTxtFind
                    LrBolInclude          | 0;
opBolIncludeSp    |                       | Ss_BolEmit        | 0
                    exBolIncludeSp        | 4+OPA_fSsRude+OPA_fTxtFind
		    LrBolIncludeSp	  | 0;

#
# end of contiguous block assumed by prsmain.asm
#

opBolLab          |                       | Ss_BolLabDef      | 0
                    exBolLab              | 4+OPA_fSsRude+OPA_fTxtFind
                    LrBolLab              | 0;
opBolLabSp        |                       | Ss_BolLabDef      | 0
                    exBolLabSp            | 6+OPA_fSsRude+OPA_fTxtFind
                    LrBolLabSp            | 0;
opBos             |                       | Ss_Bos            | 0
                    exBos                 | OPA_fSsRude+OPA_fTxtFind
                    LrBos                 | 0;
opBosSp           |                       | Ss_Bos            | 0
                    exBosSp               | 2+OPA_fSsRude+OPA_fTxtFind
                    LrBosSp               | 0;
opEot             |                       | Ss_Eot            | 0
                    exEot                 | OPA_fSsRude+OPA_fTxtFind
                    LrEot                 | 0;
opEndProg	  |			  | Ss_Bos	      | 0
                    exEndProg             | OPA_fTxtFind
                    LrEndProg             | 0;
opReParse         |                       | Ss_NotDefined     | 0
                    ExNotDefined          | OPA_CntMask+OPA_fTxtFind
                    LrReParse             | 0;


########################################################################
#	Start of ID related opcodes
########################################################################

@ID

opIdLd            |                       | ss_IdLd           | LOWUND
                    mpLdExpOpExe          | 2+OPA_fSsRude
                    LrIdLd                | 0;
opIdSt            |                       | Ss_IdSt           | LOWUND
                    mpStExpOpExe          | 2+OPA_fSsRude+OPA_fExecute
                    LrIdSt                | 0;
opVtRf            |                       | Ss_VtRf           | LOWUND
                    mpVtRfOpExe           | 2+OPA_fSsRude
                    LrVtRf                | 0;
opAIdLd           |                       | Ss_AIdLd          | LOWUND
                    mpALdExpOpExe         | 4+OPA_fSsRude
                    LrAIdLd               | 0;
opAIdSt           |                       | Ss_AIdSt          | LOWUND
                    mpAStExpOpExe         | 4+OPA_fSsRude+OPA_fExecute
                    LrAIdSt               | 0;
opAVtRf           |                       | Ss_AVtRf          | LOWUND
                    mpAVtRfOpExe          | 4+OPA_fSsRude
                    LrAVtRf               | 0;
opOffLd           |                       | Ss_OffLd          | LOWUND
                    mpOffLdExpOpExe       | 2+OPA_fSsRude
                    LrOffLd               | 0;
opOffSt           |                       | Ss_OffSt          | LOWUND
                    mpOffStExpOpExe       | 2+OPA_fSsRude+OPA_fExecute
		    LrOffSt		  | 0;

# opcodes needed for arrays in records currently not supported in any products

opOffALd	  | *qb 		   | Ss_OffLd	       | LOWUND
                    mpOffLdExpOpExe       | 4+OPA_fSsRude
                    LrOffALd              | 0;
opOffASt	  | *qb 		   | Ss_OffSt	       | LOWUND
                    mpOffStExpOpExe       | 4+OPA_fSsRude+OPA_fExecute
                    LrOffASt              | 0;
#
# end of contiguous block assumed by parser
#

opAsType          |                       | Ss_AsType         | 0
                    exAsType              | 4+OPA_fSsRude+OPA_fTxtFind
                    LrAsType              | ORW_As;
opAsTypeExp       |                       | Ss_AsType         | 0
                    exAsTypeExp           | 4+OPA_fSsRude+OPA_fTxtFind
                    LrAsTypeExp           | ORW_As;
opNoType	  |     		  | Ss_0_0	      | 0
                    exNoType              | 0+OPA_fTxtFind
                    LrNoType              | 0;
opDimOptionBase   |                       | Ss_Lit            | ET_I2+HIGH ST_LIT
                    exDimOptionBase       | 0
                    LrDimOptionBase       | 0;
opElemRef         |                       | Ss_ElemRef        | 0
                    exElemRef             | 2+OPA_fTxtFind
                    LrElemRef             | 0;
opShared	  |     		  | Ss_Shared	      | 0
                    exShared              | OPA_fSsRude+OPA_fTxtFind
                    LrShared              | ORW_Shared;
opStDefType       |                       | Ss_StDefType      | 0
                    exStDefType           | 6+OPA_fSsRude+OPA_fTxtFind
		    LrStDefType 	  | 0;
opStReDimTo	  |			  | Ss_ReDim	      | 0
		    exStReDimTo 	  | OPA_fTxtFind+OPA_fExecute
		    LrStReDimTo 	  | ORW_ReDim;
opStEndType       |                       | Ss_StEndType      | 0
                    exStEndType           | 2+OPA_fSsRude + OPA_fTxtFind
                    LrStEndType           | ORW_Type;
opStShared	  |     		  | Ss_StShared       | 0
                    exStShared            | 2+OPA_fSsRude+OPA_fTxtFind
                    LrStShared            | ORW_Shared;
opStStatic	  |     		  | Ss_StStatic       | 0
                    exStStatic            | 2+OPA_fSsRude+OPA_fTxtFind
                    LrStStatic            | ORW_Static;
opStType          |                       | Ss_StType         | 0
                    exStType              | 4+OPA_fSsRude + OPA_fTxtFind
                    LrStType              | ORW_Type;
op_Static	  |     		  | Ss_Static	      | 0
                    ex_Static             | OPA_CntMask+OPA_fTxtFind
                    Lr_Static             | 0;
op_Dynamic	  |     		  | Ss_Dynamic	      | 0
                    ex_Dynamic            | OPA_CntMask+OPA_fTxtFind
                    Lr_Dynamic            | 0;
opStConst         |                       | Ss_StConst        | 0
                    exStConst             | OPA_fSsRude+OPA_fTxtFind
                    LrStConst             | ORW_CONST;


########################################################################
#	Start of Control-related opcodes
########################################################################

@CONTRL

opBreakPoint	  |			  | Ss_Bos	      | 0
                    exBreakPoint          | OPA_fTxtFind
                    LrNoList              | 0;
opByVal 	  |			  | Ss_ByVal_Seg      | ByValMarker
                    exByVal               | 0
                    LrRwExp1              | ORW_Byval;
opEndSingleDef	  |     		  | Ss_EndSingleDef   | 0
                    ExEndSingleDef        | 4+OPA_fSsRude+OPA_fTxtFind
		    LrEndSingleDef	  | 0;

#
# NOTE:
# For scan purposes, opEv<On|Off|Stop> do not take arguments.
#  Therefore, each opEvxxx event handler is considered to not emit an argument.
#  This is not actually the case.  It is handled this way for speed since:
#	1.  the argument counts are always one
#	2.  the argument type is always I2
#	3.  the parser ensures that no syntax can intervene
#

opEvCom 	  |     		  | Ss_4ET_ET	      | SSR_I2_None
                    exEvCom               | OPA_fExecute
                    LrFunc1Arg            | ORW_Com;
opEvGosub	  |     		  | Ss_MrsLabelRef    | SSR_1LabMain0Arg
                    exEvGosub             | 2+OPA_fTxtFind+OPA_fExecute
                    LrEvGosub             | ORW_Gosub;
opEvKey 	  |     		  | Ss_4ET_ET	      | SSR_I2_None
                    exEvKey               | OPA_fExecute
                    LrFunc1Arg            | ORW_Key;
opEvOff 	  |     		  | Ss_0_0	      | 0
                    exEvOff               | OPA_fTxtFind+OPA_fExecute
                    LrEvOff               | ORW_Off;
opEvOn		  |     		  | Ss_0_0	      | 0
                    exEvOn                | OPA_fTxtFind+OPA_fExecute
                    LrEvOn                | ORW_On;
opEvStop	  |     		  | Ss_0_0	      | 0
                    exEvStop              | OPA_fTxtFind+OPA_fExecute
                    LrEvStop              | ORW_Stop;
opEvPen 	  |     		  | Ss_0_0	      | 0
                    exEvPen               | OPA_fExecute
                    LrRw                  | ORW_Pen;
opEvPlay0	  |     		  | Ss_0_0	      | 0
                    exEvPlay0             | OPA_fExecute
                    LrRw                  | ORW_Play;
opEvPlay1	  |     		  | Ss_4ET_ET	      | SSR_I2_None
                    exEvPlay1             | OPA_fExecute
                    LrFunc1Arg            | ORW_Play;
opEvSignal	  |     		  | Ss_4ET_ET	      | SSR_I2_None
                    exEvSignal            | OPA_fExecute
                    LrFunc1Arg            | ORW_Signal;
opEvStrig	  |     		  | Ss_4ET_ET	      | SSR_I2_None
                    exEvStrig             | OPA_fExecute
                    LrFunc1Arg            | ORW_Strig;
opEvTimer0	  |     		  | Ss_0_0	      | 0
                    exEvTimer0            | OPA_fExecute
                    LrRw                  | ORW_Timer;
opEvTimer1	  |     		  | Ss_4ET_ET	      | SSR_I4_None
                    exEvTimer1            | OPA_fExecute
                    LrFunc1Arg            | ORW_Timer;
opLab             |                       | Ss_LabDef         | 0
                    exLab                 | 4+OPA_fTxtFind
                    LrLab                 | 0;
opLabSp           |                       | Ss_LabDef         | 0
                    exLabSp               | 6+OPA_fTxtFind
                    LrLabSp               | 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -