Metropoli BBS
VIEWER: makearry.s MODE: TEXT (CP437)
HPHP48-W,*0╦::
 (MAKEARRY.S)
 
 DEFINE step % 0.035
 DEFINE radius % 20
 DEFINE xs 40 ( radius 2 * )
 DEFINE ys 40 ( radius 2 * )

 DEFINE Galpha 1GETLAM
 DEFINE Gbeta  2GETLAM
 DEFINE Gr     3GETLAM
 DEFINE Gx     4GETLAM
 DEFINE Gy     5GETLAM
 DEFINE Gz     6GETLAM
 DEFINE Gpara  7GETLAM

 DEFINE Palpha 1PUTLAM
 DEFINE Pbeta  2PUTLAM
 DEFINE Pr     3PUTLAM
 DEFINE Px     4PUTLAM
 DEFINE Py     5PUTLAM
 DEFINE Pz     6PUTLAM
 DEFINE Ppara  7PUTLAM
 
 
 SETRAD


 NULL{}
 ys ZERO_DO
   NULL{}
   xs ZERO_DO
     0 >TCOMP
   LOOP
   >TCOMP
 LOOP
 
 ZEROZEROZERO
 ZEROZEROZERO
 {
   NULLLAM NULLLAM NULLLAM
   NULLLAM NULLLAM NULLLAM
   NULLLAM
 } BIND
 

  %PI
  Palpha

  BEGIN
    Galpha %0> 
  WHILE
  ::
    %PI
    Pbeta
    
    BEGIN
      Gbeta %0> 
    WHILE
    ::

      Galpha %COS
      Gbeta %SIN
      radius 
      %* %* 
      % 0.5 %- 
      %CEIL
      radius 
       %+ %1+
      COERCE
      Px
      
      
      % 0.833
      Gbeta %COS
      radius 
      %* %*
      % 0.5 %- 

      %CEIL 
      radius 
      %+ %1+
      COERCE
      Py
      

      Galpha %SIN
      Gbeta %SIN
      radius 
      %* %*
      % 0.5 %- 

      %CEIL 
*      Pz
      
            
      Gx #0=
      Gy #0=
      Gx xs #>
      Gy ys #> OR OR OR
      ITE DROP
      ::      
        radius
        SWAP %-
        %># bitRR HXS>#
      
        Gpara
        DUP
        Gy NTHCOMPDROP
        ROTSWAP Gx
        SWAP
        PUTLIST SWAP
        Gy
        SWAP PUTLIST
        Ppara
      ;
      
    
      Gbeta step %-
      Pbeta
    ;
    REPEAT

    Galpha step %-
    Palpha
  ;
  REPEAT
 
 Gpara 
 ABND
; 
[ RETURN TO DIRECTORY ]