home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.forth      Forth programmers eat a lot of Bratwurst      117,927 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 116,441 of 117,927   
   sjack to All   
   Re: Numeric string output - conspicuousl   
   30 Apr 24 11:23:00   
   
   From: sjack@dontemail.me   
      
   (The last had 3 redundant lines that needed deleting.)   
      
    Frog code (Fig not standard):   
    [#] pno.d -- Pictured Numeric Output exploits   
    --.   
    [r] #>S  ( -- s )   
    -- Pictured numeric returning (counted) string   
    : #>S    #> HOLD 1- ;   
      
    -- String, S , in Frog code is single address pointing to byte   
    -- counted string.   
    --      <# ... #>  ( a u ) TYPE   
    --      <# ... #>S ( a )   TELL   
    --.   
    [r] S<#  ( n -- d ) Immediate   
    -- Macro for Single-number pictured numeric   
    : S<#   "ZERO <#" EVAL ; IMM   
      
    -- Frog leaves '<#' to work with double number and   
    -- uses macro 'S<#' as indicament of working with single number.   
    --    666. <# ... #>  TYPE   
    --    666 S<# ... #>S TELL   
    --.   
    [r] PNO buffer   
    The PNO can be any buffer by pointing HLD to the buffer's end and   
    using an alternative to '>#' :   
      
    mpad 256 + tmp!   
    tmp@ hld !   
    "[m" holds   
    27 hold   
    "world" holds   
    46 hold   
    "[0;33;40mhello" holds   
    27 hold   
    i. hld @ tmp@ om type  --> hello.world  ( yellow on black )   
    --.   
    [r] Source input buffer   
    -- Source input buffer is ring buffer for strings   
    : <#IB 256 SIB + DUP HLD ! TMP! ;   
    : IB#> 2DROP HLD @ TMP@ OM ;   
    : SIB#>S HLD @ TMP@ OM HOLD 1- ;   
      
    <#ib "[m" holds        27 hold SIB#>S   
    <#ib "[0;33;40m" holds 27 hold SIB#>S   
    2dup   
    1 text Hello World!   
    i. tell pad tell tell --> Hello World!  ( yellow on black)   
    1 text How are you?   
    i. tell pad tell tell --> How are you?  ( yellow on black)   
    --.   
    [s]   
    OM      ( a1 a2 -- a1 u ) over -   
    tell    ( a ) count type   
    sib     ( u -- u a ) \ a is buffer from ring of size u+2; last chr is null   
                         \ used for counted string, null terminated string or   
                         \ both.   
    i.                   \ print ' --> '   
    --.   
    [#] //   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca