ace2ans

Priskribo de la ĉi-paĝa enhavo

Tavolo por kompili per ANS-Fortho iujn programoj verkitajn en Ace Forth.

Etikedoj:

Kiam mi verkas programojn por la Jupiter Ace en simpla teksto, mankas al mi ielon rapide revizii ĝin. Iuj emuliloj de Jupiter Ace ebligas legi tekstan dosieron kvazaŭ tajpadon, sed tre malrapide, kio ne estas efika nur por trovi nedifinitajn vortojn en la fontkodo. Tial mi ideis kod-tavolon por traduki la vortojn proprajn de Ace Forth en ANS -Forthon. Tiel eblas, certagrade, traduki Ace -programon per norma Fortho, kaj eĉ foje funkciigi ĝin.

La tasko ne estas finita. Pluraj gravaj vortoj ankore ne estas finverkitaj.

Fontkodo

\ ace2ans.fs

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

\ Copyright (C) 2009,2010,2013 Marcos Cruz (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'.
\ 2013-08-22 Changes in comments.
\ 2013-08-22 New: 'variable'.

\ To-do
\ 2013-08-22 Can Ace Forth's 'repeat' be used without 'while'?

: 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  ;  \ xxx draft 
: definer  ( -- )  postpone : postpone create  ;  \ xxx draft
: edit  ( "text" -- )  parse-word 2drop  ;
: fast  ( -- )  ;
: forget  ( "text" -- )  parse-word 2drop  ;
: i'  ( -- n )  i  ;  \ xxx unfinished
: in  ( a -- ) drop  ;
: inkey  ( -- c )  key? if key else 0 then  ;
: invis  ( -- )  ;
: line  ( -- )  ;  \ xxx 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  ( -- )  ;  \ xxx unfinished
: runs>  ( -- ) does>  ;  immediate  \ xxx 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  ;
: variable  ( x "name" -- )  drop variable  ;
: vis  ( -- )  ;
: vlist  ( -- )  words  ;

Deŝutoj