No nos gusta la S.O.P.A.

Cuando escribo código para la Jupiter Ace en formato de texto simple, echo de menos una manera de comprobarlo con rapidez. Algunos emuladores tienen la opción de leer un fichero de texto como si fuera la entrada del teclado, pero lo hacen demasiado lentamente, lo que no es práctico para encontrar que al final hay alguna palabra por definir en el programa. Por ello tuve la idea de escribir una capa de código que me permitiera compilar las fuentes en Ace Forth bajo un ANS Forth, como parte del proceso de desarrollo y depuración.

El trabajo aún no ha acabado. Algunas palabras importantes aún no están terminadas.

Listado


\ ace2ans.fs

\ Layer to compile or even run some Ace Forth programs under an ANS Forth.

\ Copyright (C) 2009,2010 Marcos Cruz (http:\programandala.net)
\ License: http://programandala.net/license

\ 2009-06-07 First version. Some words are not finished.
\ 2010-03-02 New (faulty) versions of definer and compiler .


: ascii  ( "text" -- c )  state @ if postpone [char] else char then  ;  immediate
: at  ( y x -- )  swap at-xy  ;
: beep  ( u1 u2 -- )  2drop  ;
: bload  ( "text" -- )  parse-word 2drop  ;
: bsave  ( "text" -- )  parse-word 2drop  ;
: bverify  ( "text" -- )  parse-word 2drop  ;
: call  ( a -- )  drop  ;
: cls  ( -- )  page  ;
: compiler  ( -- ) postpone : postpone create  ;  \ DRAFT!!! 
: definer  ( -- )  postpone : postpone create  ;  \ DRAFT!!!
: edit  ( "text" -- )  parse-word 2drop  ;
: fast  ( -- )  ;
: forget  ( "text" -- )  parse-word 2drop  ;
: i'  ( -- n )  i  ;  \ UNFINISHED!!!
: in  ( a -- ) drop  ;
: inkey  ( -- c )  key? if key else 0 then  ;
: invis  ( -- )  ;
: line  ( -- )  ;  \ UNFINISHED!!!
: list  ( "text" -- )  see  ;
: load  ( "text" -- )  postpone include  ;
: out  ( b a -- ) 2drop  ;
: plot  ( x y u -- ) drop at-xy [char] . emit  ;
: redefine ( "text" -- )  parse-word 2drop  ;
: retype  ( -- )  ;  \ UNFINISHED!!!
: runs>  ( -- ) does>  ;  immediate  \ NOT TESTED!!!
: save  ( "text" -- )  parse-word 2drop  ;
: slow  ( -- )  ;
: u*  ( u1 u2 -- ud )  um*  ;
: u/mod  ( ud u1 -- u2 u3 )  um/mod  ;
: verify  ( "text" -- )  parse-word 2drop  ;
: vis  ( -- )  ;
: vlist  ( -- )  words  ;

Descarga

Categorías de esta página

URL: http://programandala.net/es.programa.ace2ans

Página escrita en 2010-03-02
Última modificación realizada en 2010-03-02