?? peropcod.txt
字號(hào):
########################################################################
#
# 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;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -