home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / f / forthmac / !Forthmacs / extend / printf next >
Encoding:
Text File  |  1996-05-22  |  701 b   |  26 lines

  1. : based.    ( n base -- )
  2.     base @ -rot  base !  s>d <# #s #> type base ! ;
  3. : xemit        ( char -- )
  4.     dup newline = if drop cr else emit then  ;
  5. : .cstring    ( adr -- )
  6.     begin    dup c@ ?dup
  7.     while    xemit char+
  8.     repeat  drop  ;
  9. : printf    ( argn .. arg1 format -- )
  10.         ( ... format )
  11.     begin    dup c@ ?dup
  12.     while    dup [char] % <>
  13.         if    emit
  14.         else       drop  char+ dup c@    ( ... arg adr' char )
  15.             case    [char] c of  swap xemit         endof
  16.                 [char] s of  swap .cstring      endof
  17.                 [char] x of  swap d# 16 based.  endof
  18.                 [char] d of  swap d# 10 based.  endof
  19.                 [char] o of  swap d#  8 based.  endof
  20.                 [char] b of  swap d#  2 based.  endof
  21.                 dup xemit    ( default )
  22.             endcase
  23.         then    char+    ( adr' )
  24.     repeat drop ;
  25.  
  26.