home *** CD-ROM | disk | FTP | other *** search
- : based. ( n base -- )
- base @ -rot base ! s>d <# #s #> type base ! ;
- : xemit ( char -- )
- dup newline = if drop cr else emit then ;
- : .cstring ( adr -- )
- begin dup c@ ?dup
- while xemit char+
- repeat drop ;
- : printf ( argn .. arg1 format -- )
- ( ... format )
- begin dup c@ ?dup
- while dup [char] % <>
- if emit
- else drop char+ dup c@ ( ... arg adr' char )
- case [char] c of swap xemit endof
- [char] s of swap .cstring endof
- [char] x of swap d# 16 based. endof
- [char] d of swap d# 10 based. endof
- [char] o of swap d# 8 based. endof
- [char] b of swap d# 2 based. endof
- dup xemit ( default )
- endcase
- then char+ ( adr' )
- repeat drop ;
-
-