$>z", global memory pool & tools

From: Mike Ghan <mikeg_at_logix-controls.com>
Date: Fri, 20 Oct 2000 12:10:14 -0700

> Here is my string buffer mechanism (it uses allocated memory and could be set
to
> a fairly large setting):
>

And some tools to go with it:

\ ***************************************************************
\ User String Buffer Tools
\ ***************************************************************

CREATE MANY-BL HERE 80 ALLOT 80 BLANK

: >SPAD ( addr n -- )
   /SPAD ( Next Buffer ) SPAD PLACE ;

: >zSPAD ( addr n -- )
   /SPAD ( Next Buffer ) SPAD ZPLACE ;

: SPAD+ ( addr count -- ) SPAD APPEND ;

: SPACE>SPAD ( -- ) MANY-BL 1 SPAD+ ;

: SPACES>SPAD ( #spaces -- ) MANY-BL SWAP SPAD+ ;

: INIT-SPAD ( -- ) /SPAD ( Next Bufr ) SPAD OFF ;

: CHAR>SPAD ( char -- ) SP@ 1 SPAD+ DROP ;

: CR>SPAD ( -- ) \ Append a CR/LF
   [CTRL] M CHAR>SPAD [CTRL] J CHAR>SPAD ;

: SPAD>Z ( -- ) \ Convert SPAD to zstring
   0 SPAD COUNT + C! ;

: ZSPAD ( -- zaddr ) SPAD>Z SPAD 1+ ;

: SAVE-SPAD ( -- ) POSTPONE SPAD POSTPONE >R ; IMMEDIATE
: RESTORE-SPAD ( -- ) POSTPONE R> POSTPONE !SPAD ; IMMEDIATE
Received on Fri Oct 20 2000 - 12:21:15 PDT


Subscribe to our e-mail list service. It's free for all SwiftForth and SwiftX users!

This archive was generated 09-Feb-2012. Archive updated nightly.