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