home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / forth / forst.zoo / forst / lib / intdot.s < prev    next >
Text File  |  1990-12-10  |  722b  |  29 lines

  1. ( integer output package )
  2.  
  3. decimal
  4. variable base  10 base !  ( decimal default )
  5. 32 constant blank
  6. 45 constant minus
  7. 48 constant zero
  8. 20 constant maxlen
  9. 65 10 - constant hexdigit
  10.  
  11. : type  ( ptr,len)
  12.   { 2 args ptr len }
  13.   for len  ptr inc c@ emit next ;
  14.   
  15. : i. ( numb)
  16.   { 1 arg numb  4 locals sign ptr len numbase  maxlen locbuff string }
  17.  
  18.   numb to sign  numb abs to numb  base @ to numbase
  19.   0 to len  addr string maxlen +  to ptr   ( output pointer)  
  20.  
  21.   begin
  22.      numb numbase u/mod  to numb
  23.      dup 10 < if zero  else hexdigit then  +
  24.      ptr dec c!  1 addto len  ( store char )
  25.   numb 0= until     
  26.   sign 0<  if  minus ptr dec c!  1 addto len  then
  27.   
  28.   ptr len type  blank emit ;
  29.