home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / armforth / !ARMforth / Examples / diamond < prev    next >
Encoding:
Text File  |  1990-03-23  |  723 b   |  48 lines

  1. 0 VARIABLE M
  2. 0 VARIABLE TM
  3.  
  4. : SQUARE
  5.    DUP 4 PICK + 3 PICK MOVE
  6.    2DUP + 4 PICK SWAP DRAW
  7.    DUP 4 PICK SWAP - 3 PICK DRAW
  8.    2DUP - 4 PICK SWAP DRAW
  9.    SWAP >R + R> DRAW
  10.    ;
  11.  
  12. R: DIAMOND ( X / Y / S )
  13.    DUP
  14.    M @
  15.    >= IF
  16.       2/
  17.       >R>
  18.       3 PICK + OVER R DIAMOND
  19.       ( X / Y )
  20.       OVER R - OVER R DIAMOND
  21.       2DUP R - R DIAMOND
  22.       2DUP R + R DIAMOND
  23.       R> SQUARE
  24.    ELSE
  25.       2DROP DROP
  26.    THEN
  27.    R;
  28.  
  29. : MAIN
  30.    NOWIMPS
  31.    0 MODE
  32.    256 DUP M !
  33.    TIME TM !
  34.    BEGIN
  35.       640 512 512 DIAMOND
  36.       [ HEX ] 30012 VDU3 [ DECIMAL ]
  37.       2/
  38.       DUP DUP M !
  39.       16 <
  40.    UNTIL
  41.    TIME TM @ - TM !
  42.    DROP
  43.    ." Press Any Key"
  44.    KEY DROP WIMPS
  45.    CR ." Time was "
  46.    TM ? ." centiseconds" CR
  47.    ;
  48.