ace2ans
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.
Printaĵo
\ ace2ans.fs
\ Layer to compile or even run some Ace Forth programs under an ANS Forth.
\ Copyright (C) 2009,2010 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 .
: 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 ;