home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-14 | 1.1 KB | 62 lines | [TEXT/MSET] |
- \ BuildRegMask ReeseWarner 5/13
- \ for MOVEM
- \ 03/06/86 GDC fixed MOVEM
- \ Aug86 mrh RevMask added for fix to MOVEM
-
- 0 -> dlevel
-
- operand EXPTR
- objPtr OPND class_is operand \ Will point to either OP1 or OP2
-
-
- : REGBIT { mode reg# -- n }
- 1
- reg# mode AnMode =
- IF 8 +
- ELSE mode FPctlRegMode = IF 10 + THEN
- THEN
- << ;
-
-
- : BuildRegMask { opndPtr FP? \ tokentype work -- regMask }
- opndPtr -> opnd 0 -> work
- BEGIN
- nextToken -> tokentype
- 1st: token dup & ; =
- IF ( comment )
- drop #tib @ -> pos true
- ELSE
- & , = tokentype eol = or
- THEN
- ( end of field? )
- NWHILE
- msg" in WHILE "
- 1st: token & / =
- IF
- msg" IT'S A / "
- mode: opnd reg: opnd regBit or> work
- opnd getOp
- ELSE
- msg" IT'S A something else "
- exPtr getOp
- mode: opnd mode: exPtr =
- NIF 210 asmError
- ELSE
- reg: exPtr 1+ reg: opnd
- DO
- mode: opnd i regBit or> work
- LOOP
- THEN
- THEN
- REPEAT
- mode: opnd reg: opnd regBit or> work
- work ;
-
-
- : REVMASK { mask -- mask' } \ Reverses the mask bits for predecrement mode.
- 0
- 16 FOR
- 2* mask 1 and or
- mask 2/ -> mask
- NEXT ;
-