\ This file includes all aliases and extra definitions removed from
\ the original RISC OS Forthmacs sources.
\ Use it for compatibilty reasons or cross-developing hs23.10.94
\ assumes 32-bit Forth
\ NEW words defined UP-compatible
??cr cr marked
cr .( Please note that the 'compatible' mode file is only meant for some rather)
cr .( old applications you will probably NOT have on your computer.)
cr .( All Forthmacs tools available in this distribution DON'T want it and will)
cr .( not work in most cases.) cr
.( Are you sure you want to load the 'compatible' mode?   --> Press Y/J)
cr light
begin key? while key drop repeat
key lcc dup  char j =  swap char y =  or
[if]
  \needs (lf            : (lf		( -- )		1 #line +!  linefeed (emit  ;
  \needs (cr            : (cr		( -- )		carret (emit  ;
  \needs lf		: lf		( -- )		#out off  (lf  ;
  \needs crlf		: crlf		( -- )		(cr lf  ;
  \needs evaluate	alias evaluate eval
  \needs eval		alias eval evaluate
  \needs string-load	alias string-load evaluate
  \needs /cell		4 constant /cell
  \needs /char		1 constant /char
  \needs cell+		: cell+		/cell + ;
  \needs char+		: char+		/char + ;
  \needs cells		: cells		/cell * ;
  \needs chars		: chars		/char * ;
  \needs cells+		: cells+	cells + ;
  \needs chars+		: chars+	chars + ;
  \needs ?exit		: ?exit		postpone if  postpone exit  postpone then ; immediate
  \needs @execute	: @execute      @ execute ;
  \needs compile,	alias compile,  token,
  \needs (compile)	alias (compile) token,
  \needs compile	alias compile do-postpone
  \needs postpone	: postpone ' dup immediate? 0= if ['] do-postpone compile, then compile, ; immediate
  \needs "		alias " c"
  \needs s"		alias c" "
  
  \needs rshift		alias rshift >>
  \needs lshift		alias lshift <<
  \needs acf-aligned	alias acf-aligned aligned
  \needs taligned	alias taligned	aligned
  \needs acf-align	alias acf-align align
  \needs talign		alias talign	align
  
  \needs dumpx		: dumpx		blword 10 dump ; \ name (s -- )
  \needs d#		alias d# td
  \needs h#		alias h# th
  
  \needs alloc-mem	: alloc-mem allocate abort" Can't allocate" ;
  \needs free-mem	: free-mem over -5 cells+ [ system ] node_size? [ forth ] >= if free else drop then ;
  
  \needs ascii		: ascii	 blword char+ c@  do-literal ; immediate
  \needs char		: char	 blword char+ c@ ;
  \needs [char]		: [char] char do-literal ; immediate
  \needs td		alias td d#
  \needs th		alias th h#
  \needs n>flags	: n>flags  count + ;
  \needs >>a		: >>a		0 ?do 2/ loop ;
  \needs >>		alias >> rshift
  \needs <<		alias << lshift
  \needs ctoggle	: ctoggle	( mask addr -- )	toggle ;
  \needs u*d		: u*d		(s u u -- ul )		*  ;
  
  \needs \itc		: \itc		( -- )	postpone \	; immediate
  \needs \dtc		: \dtc		( -- )			; immediate
  \needs \ttc		: \ttc		( -- )	postpone \	; immediate
  \needs \t8		: \t8		( -- )	postpone \	; immediate
  \needs \t16		: \t16		( -- )	postpone \	; immediate
  \needs \t32		: \t32		( -- )			; immediate
  
  \needs 32\		: 32\  ; immediate
  \needs 16\		alias 16\ \
  
  \needs filec!		alias filec! file!
  \needs filec@		alias filec@ file@
  \needs read-write	alias read-write modify
  \needs getword	alias getword fgetword
  \needs getcword	alias getcword fgettill
  \needs skipcword	alias skipcword fskiptill
  \needs close		alias close fclose
  \needs open		alias open fopen
  
  \needs na1+		alias na1+ cell+
  \needs ta1+		alias ta1+ cell+
  \needs ca1+		alias ca1+ char+
  \needs /c		alias /c /char
  \needs /n		alias /n /cell
  \needs /a		alias /a /cell
  \needs /branch	alias /branch /cell
  \needs /c*		alias /c* noop
  \needs /n*		alias /n* cells
  \needs na+		alias na+ cells+
  \needs ca+		alias ca+ chars+
  
  \needs n->a		alias n->a noop
  
  \needs n!		alias n!	!
  \needs \c		alias \c	\
  
  : at-xy		swap at ;
  : at-xy?		at? swap ;
  
  
  needs lconstant extend.portab32
  needs wconstant extend.portab16
  
  \needs save-string  d# 260 buffer: string2  : save-string string2 "move ;
[then]