?? forthdef.h
字號:
//
// Macros to make programming in psuedo-Forth easier.
//
// Bernard Mentink
// 2004
// Shorthand macros for the address's of primitive code
#define _NEXT (&&next)
#define _DOCOL (&&docol)
#define _SEMI (&&semi)
#define _DOLIT (&&dolit)
#define _DOCON (&&docon)
#define _DOCASE (&&docase)
#define _EXECUTE (&&execute)
#define _ATEXEC (&&atexec)
#define _BRANCH (&&branch)
#define _ZBRANCH (&&zbranch)
#define _STORE (&&store)
#define _PSTORE (&&pstore)
#define _FETCH (&&fetch)
#define _CSTORE (&&cstore)
#define _CFETCH (&&cfetch)
#define _RTO (&&rto)
#define _RFROM (&&rfrom)
#define _RFETCH (&&rfetch)
#define _RPZ (&&rpz)
#define _RPFETCH (&&rpfetch)
#define _RPSTORE (&&rpstore)
#define _SWAP (&&swap)
#define _DROP (&&drop)
#define _DUP (&&dup)
#define _QDUP (&&qdup)
#define _SPZ (&&spz)
#define _NIP (&&nip)
#define _SPFETCH (&&spfetch)
#define _SPSTORE (&&spstore)
#define _OVER (&&over)
#define _ROT (&&rot)
#define _TXSTORE (&&txstore)
#define _QRX (&&qrx)
#define _ADD (&&add)
#define _SUB (&&sub)
#define _UADD (&&uadd)
#define _USUB (&&usub)
#define _MUL (&&mul)
#define _DIV (&&div)
#define _UMUL (&&umul)
#define _UDIV (&&udiv)
#define _MULDIV (&&muldiv)
#define _UMULDIV (&&umuldiv)
#define _TWOMUL (&&twomul)
#define _TWODIV (&&twodiv)
#define _LSHIFT (&&lshift)
#define _RSHIFT (&&rshift)
#define _ZERO (&&zero)
#define _ONE (&&one)
#define _TWO (&&two)
#define _THREE (&&three)
#define _NONE (&&none)
#define _NTWO (&&ntwo)
#define _NTHREE (&&nthree)
#define _INVERT (&&invert)
#define _NEGATE (&&negate)
#define _MOD (&&mod)
#define _UMOD (&&umod)
#define _TRUEE (&&truee)
#define _FALSEE (&&falsee)
#define _EQ (&&eq)
#define _ZEQ (&&zeq)
#define _LT (&<)
#define _ULT (&&ult)
#define _ZLT (&&zlt)
#define _GT (&>)
#define _WITHIN (&&within)
#define _MAX (&&max)
#define _MIN (&&min)
#define _AND (&&and)
#define _OR (&&or)
#define _XOR (&&xor)
#define _NOT (&¬)
#define _NAMEQ (&&nameq)
#define _DONEXT (&&donext)
// System and user variable address's
#define _TQKEY (&tqkey)
#define _TEMIT (&temit)
#define _TEXPECT (&texpect)
#define _TTAP (&ttap)
#define _TECHO (&techo)
#define _TPROMPT (&tprompt)
#define _TEVAL (&teval)
#define _TNUMBER (&tnumber)
#define _TBOOT (&tboot)
#define _BASE (&base)
#define _SPAN (&span)
#define _IN (&in)
#define _NTIB (&ntib)
#define _HLD (&hld)
#define _HANDLER (&handler)
#define _CP (&cp)
#define _NP (&np)
#define _VP (&vp)
#define _LAST (&llast)
#define _VFRTH (&vfrth)
#define _CURRENT (¤t)
#define _CURRENT_END (¤t_end) // point to next cell
#define _CONTEXT (&context)
#define _CONTEXT_END (&context_end)
#define _USER (&user)
#define _TIB (&tib)
#define _PAD (&pad_end)
#define _TMP (&tmp)
#define _CSP (&csp)
#define _UP (&up)
// All Words are stored in a code-field-address table
// ( to enable 2-levels of indirection for ITC forth )
// Primitives
#define NEXT (&cfa[0])
#define DOCOL (&cfa[1])
#define SEMI (&cfa[2])
#define DOLIT (&cfa[3])
#define DOCON (&cfa[4])
#define DOCASE (&cfa[5])
#define EXECUTE (&cfa[6])
#define ATEXEC (&cfa[7])
#define BRANCH (&cfa[8])
#define ZBRANCH (&cfa[9])
#define STORE (&cfa[10])
#define PSTORE (&cfa[11])
#define FETCH (&cfa[12])
#define CSTORE (&cfa[13])
#define CFETCH (&cfa[14])
#define RTO (&cfa[15])
#define RFROM (&cfa[16])
#define RFETCH (&cfa[17])
#define RPZ (&cfa[18])
#define RPFETCH (&cfa[19])
#define RPSTORE (&cfa[20])
#define SWAP (&cfa[21])
#define DROP (&cfa[22])
#define DUP (&cfa[23])
#define QDUP (&cfa[24])
#define SPZ (&cfa[25])
#define NIP (&cfa[26])
#define SPFETCH (&cfa[27])
#define SPSTORE (&cfa[28])
#define OVER (&cfa[29])
#define ROT (&cfa[30])
#define TXSTORE (&cfa[31])
#define QRX (&cfa[32])
#define ADD (&cfa[33])
#define SUB (&cfa[34])
#define UADD (&cfa[35])
#define USUB (&cfa[36])
#define MUL (&cfa[37])
#define DIV (&cfa[38])
#define UMUL (&cfa[39])
#define UDIV (&cfa[40])
#define MULDIV (&cfa[41])
#define UMULDIV (&cfa[42])
#define TWOMUL (&cfa[43])
#define TWODIV (&cfa[44])
#define LSHIFT (&cfa[45])
#define RSHIFT (&cfa[46])
#define ZERO (&cfa[47])
#define ONE (&cfa[48])
#define TWO (&cfa[49])
#define THREE (&cfa[50])
#define NONE (&cfa[51])
#define NTWO (&cfa[52])
#define NTHREE (&cfa[53])
#define INVERT (&cfa[54])
#define NEGATE (&cfa[55])
#define MOD (&cfa[56])
#define UMOD (&cfa[57])
#define TRUEE (&cfa[58])
#define FALSEE (&cfa[59])
#define EQ (&cfa[60])
#define ZEQ (&cfa[61])
#define LT (&cfa[62])
#define ULT (&cfa[63])
#define ZLT (&cfa[64])
#define GT (&cfa[65])
#define WITHIN (&cfa[66])
#define MAX (&cfa[67])
#define MIN (&cfa[68])
#define AND (&cfa[69])
#define OR (&cfa[70])
#define XOR (&cfa[71])
#define NOT (&cfa[72])
#define NAMEQ (&cfa[73])
#define DONEXT (&cfa[74])
// System & User Variables
#define TQKEY (&cfa[75])
#define TEMIT (&cfa[79])
#define TEXPECT (&cfa[83])
#define TTAP (&cfa[87])
#define TECHO (&cfa[91])
#define TPROMPT (&cfa[95])
#define TEVAL (&cfa[99])
#define TNUMBER (&cfa[103])
#define BASE (&cfa[107])
#define SPAN (&cfa[111])
#define IN (&cfa[115])
#define NTIB (&cfa[119])
#define HLD (&cfa[123])
#define HANDLER (&cfa[127])
#define CP (&cfa[131])
#define NP (&cfa[135])
#define VP (&cfa[139])
#define LAST (&cfa[143])
#define VFRTH (&cfa[147])
#define CURRENT (&cfa[151])
#define USER (&cfa[155])
#define TIB (&cfa[159])
// Colon words.
#define EMIT (&cfa[163])
#define QKEY (&cfa[167])
#define KEY (&cfa[171])
#define ABS (&cfa[176])
#define CELLP (&cfa[183])
#define CELLM (&cfa[188])
#define CELLS (&cfa[193])
#define ALIGNED (&cfa[198])
#define BLANK (&cfa[212])
#define TOCHAR (&cfa[216])
#define DEPTH (&cfa[232])
#define PICK (&cfa[242])
#define COUNT (&cfa[250])
#define HERE (&cfa[257])
#define PAD (&cfa[261])
#define CMOVE (&cfa[265])
#define FILL (&cfa[283])
#define NTRAIL (&cfa[297])
#define PACKS (&cfa[317])
#define DIGIT (&cfa[340])
#define UDIVMOD (&cfa[353])
#define EXTRACT (&cfa[361])
#define BDIGS (&cfa[366])
#define HOLD (&cfa[371])
#define DIG (&cfa[381])
#define DIGS (&cfa[400])
#define SIGN (&cfa[408])
#define EDIGS (&cfa[416])
#define STR (&cfa[424])
#define HEX (&cfa[434])
#define DECIMAL (&cfa[440])
#define DIGITQ (&cfa[446])
#define DDROP (&cfa[469])
#define NUMBERQ (&cfa[473])
#define CR (&cfa[556])
#define NUFQ (&cfa[564])
#define PACE (&cfa[575])
#define SPACE (&cfa[580])
#define SPACES (&cfa[584])
#define TYPES (&cfa[594])
#define DOSTR (&cfa[607])
#define STRQP (&cfa[618])
#define DOTQP (&cfa[621])
#define DOTR (&cfa[626])
#define UDOTR (&cfa[635])
#define UDOT (&cfa[646])
#define UTYPE (&cfa[653])
#define DOT (&cfa[668])
#define QUEST (&cfa[682])
#define PARS (&cfa[686])
#define PARSE (&cfa[767])
#define DOTPR (&cfa[783])
#define PAREN (&cfa[789])
#define BKSLA (&cfa[795])
#define CHAR (&cfa[801])
#define TOKEN (&cfa[807])
#define WORDD (&cfa[820])
#define NAMET (&cfa[825])
#define BKSP (&cfa[834])
#define TAP (&cfa[857])
#define KTAP (&cfa[866])
#define ACCEPT (&cfa[888])
#define EXPECT (&cfa[915])
#define QUERY (&cfa[922])
#define CATCH (&cfa[935])
#define THROW (&cfa[952])
#define DOVAR (&cfa[966])
#define DOVRAM (&cfa[969])
#define NULLS (&cfa[973])
#define ABORT (&cfa[978])
#define ABORQ (&cfa[981])
#define INTERP (&cfa[989])
#define LBRAC (&cfa[1011])
#define DOTOK (&cfa[1017])
#define QSTACK (&cfa[1029])
#define EVAL (&cfa[1038])
#define PRESET (&cfa[1053])
#define DSTORE (&cfa[1062])
#define DFETCH (&cfa[1069])
#define XIO (&cfa[1076])
#define FILE (&cfa[1084])
#define HAND (&cfa[1093])
#define ISLO (&cfa[1102])
#define CONSOLE (&cfa[1106])
#define QUIT (&cfa[1113])
#define DDUP (&cfa[1150])
#define NOP (&cfa[1154])
#define TEMP (&cfa[1156])
#define TICK (&cfa[1160])
#define ALLOT (&cfa[1167])
#define COMMA (&cfa[1171])
#define BCOMP (&cfa[1179])
#define COMPILE (&cfa[1183])
#define LITERAL (&cfa[1191])
#define STRCQ (&cfa[1196])
#define RECURSE (&cfa[1206])
#define FORR (&cfa[1212])
#define BEGIN (&cfa[1217])
#define NEXT (&cfa[1220])
#define UNTIL (&cfa[1225])
#define AGAIN (&cfa[1230])
#define IFF (&cfa[1235])
#define AHEAD (&cfa[1242])
#define REPEAT (&cfa[1249])
#define THENN (&cfa[1255])
#define AFT (&cfa[1260])
#define ELSEE (&cfa[1266])
#define WHILE (&cfa[1271])
#define ABORTQ (&cfa[1275])
#define STRQ (&cfa[1280])
#define DOTQ (&cfa[1285])
#define UNIQUE (&cfa[1290])
#define SNAME (&cfa[1303])
#define SCOMP (&cfa[1331])
#define OVERT (&cfa[1353])
#define SEMIS (&cfa[1360])
#define RBRAC (&cfa[1366])
#define COLON (&cfa[1372])
#define IMMEDIATE (&cfa[1380])
#define COMPON (&cfa[1391])
#define HEADER (&cfa[1402])
#define USER (&cfa[1410])
#define CREATE (&cfa[1417])
#define VARIABLE (&cfa[1424])
#define CONSTANT (&cfa[1436])
#define UTYPE (&cfa[1443])
#define DUMPP (&cfa[1457])
#define DUMP (&cfa[1476])
#define DOTS (&cfa[1511])
#define STCSP (&cfa[1526])
#define QCSP (&cfa[1531])
#define TNAME (&cfa[1540])
#define DOTID (&cfa[1573])
#define SEE (&cfa[1588])
#define WORDS (&cfa[1614])
#define CSP (&cfa[1638])
#define UP (&cfa[1642])
#define DOUSER (&cfa[1646])
#define VERSION (&cfa[1653])
#define TBOOT (&cfa[1657])
#define HI (&cfa[1661])
#define CONTEXT (&cfa[1674])
#define FORTH (&cfa[1678])
#define COLD (&cfa[1683])
#define _COLD (&cfa[1684])
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -