home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / armforth / !ARMforth / Examples / Breakout / NumWords < prev    next >
Encoding:
Text File  |  1989-12-04  |  1.1 KB  |  40 lines

  1. : PRINT-DIGIT ( X / Y / DIGIT -> NEXTX / Y )
  2.    3 + >R 2DUP R>
  3.    SPRITE-AREA SWAP GET-SPRITE-CTRL-BLOCK >R>
  4.    SPRITE-AREA SWAP 2SWAP 8 PUT-SPRITE
  5.    SPRITE-AREA R> SPRITE-SIZE
  6.    DROP 1 << SWAP >R + R>
  7.    ;
  8.  
  9. : PRINT-ZEROS ( X / Y / NUMBER -> )
  10.    10000000 /MOD SWAP >R PRINT-DIGIT R>
  11.     1000000 /MOD SWAP >R PRINT-DIGIT R>
  12.      100000 /MOD SWAP >R PRINT-DIGIT R>
  13.       10000 /MOD SWAP >R PRINT-DIGIT R>
  14.        1000 /MOD SWAP >R PRINT-DIGIT R>
  15.         100 /MOD SWAP >R PRINT-DIGIT R>
  16.          10 /MOD SWAP >R PRINT-DIGIT R>
  17.                          PRINT-DIGIT
  18.    2DROP
  19.    ;
  20.  
  21. : PRINT-NO-ZEROS ( X / Y / NUMBER -> )
  22.    10000000 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  23.     1000000 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  24.      100000 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  25.       10000 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  26.        1000 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  27.         100 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  28.          10 /MOD SWAP >R -DUP IF PRINT-DIGIT THEN R>
  29.                                  PRINT-DIGIT
  30.    2DROP
  31.    ;
  32.  
  33. : PRINT-NUMBER ( X / Y / NUMBER / FLAG -> )
  34.    IF
  35.       PRINT-ZEROS
  36.    ELSE
  37.       PRINT-NO-ZEROS
  38.    THEN
  39.    ;
  40.