--- gforth/arch/misc/asm.fs 1998/05/02 21:28:57 1.3 +++ gforth/arch/misc/asm.fs 2007/12/31 19:02:24 1.9 @@ -1,7 +1,27 @@ \ PIE MISC assembler +\ Copyright (C) 1998,2000,2003,2004,2007 Free Software Foundation, Inc. + +\ This file is part of Gforth. + +\ Gforth is free software; you can redistribute it and/or +\ modify it under the terms of the GNU General Public License +\ as published by the Free Software Foundation, either version 3 +\ of the License, or (at your option) any later version. + +\ This program is distributed in the hope that it will be useful, +\ but WITHOUT ANY WARRANTY; without even the implied warranty of +\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +\ GNU General Public License for more details. + +\ You should have received a copy of the GNU General Public License +\ along with this program. If not, see http://www.gnu.org/licenses/. + Vocabulary assembler also assembler also definitions forth +\ [IFUNDEF] cross +\ : X ; +\ [THEN] \ sources @@ -22,14 +42,16 @@ $7 Constant *ACCU $C Constant XOR $D Constant OR $E Constant AND $F Constant SHR -$FFFC Constant tx +$FFFC Constant txd +$FFFF Constant rx? +$FFFE Constant rxd \ $FFF0 Constant tx : end-label previous ; Create marks $10 cells allot -: ahere s" here" evaluate 2/ ; +: ahere X here 2/ ; : m ( n -- ) cells marks + ahere 2* swap ! 0 ; : r ( n -- ) cells marks + @ ahere swap s" !" evaluate 0 ; @@ -51,11 +73,18 @@ Create marks $10 cells allot r> $10 /string 0 max rot $10 + -rot REPEAT drop 2drop ; -: sym base @ >r hex - cr ." sym:s/PC=" ahere 4 0.r ." /" bl word count type ." /g" cr - r> base ! ; +\ : sym +\ base @ >r hex +\ cr ." sym:s/PC=" ahere 4 0.r ." /" bl word count type ." /g" cr +\ r> base ! ; +: sym bl word drop ; + +: label + >in @ bl word count X here symentry >in ! + ahere Constant ; -: label ahere Constant ; +: code + -1 ABORT" Need end-code or end-label before a new code definition" ; also forth definitions @@ -65,3 +94,4 @@ also forth definitions : (end-code) previous ; previous previous previous +