Task
Produce an ASCII representation of a Sierpinski triangle of order   N.



Example
The Sierpinski triangle of order   4   should look like this:

                       *
                      * *
                     *   *
                    * * * *
                   *       *
                  * *     * *
                 *   *   *   *
                * * * * * * * *
               *               *
              * *             * *
             *   *           *   *
            * * * *         * * * *
           *       *       *       *
          * *     * *     * *     * *
         *   *   *   *   *   *   *   *
        * * * * * * * * * * * * * * * *



Related tasks
 Sierpinski triangle/Graphical for graphics images of this pattern. 
 Sierpinski carpet


100H:
 
DECLARE ORDER LITERALLY '4';
 
/* CP/M BDOS CALL */
BDOS: PROCEDURE (FN, ARG);
    DECLARE FN BYTE, ARG ADDRESS;
    GO TO 5;
END BDOS;
 
PUT$CHAR: PROCEDURE (CHAR);
    DECLARE CHAR BYTE;
    CALL BDOS(2, CHAR);
END PUT$CHAR;
 
/* PRINT SIERPINSKI TRIANGLE */
DECLARE (X, Y, SIZE) BYTE;
SIZE = SHL(1, ORDER);
 
Y = SIZE - 1;
DO WHILE Y <> -1;
    DO X = 0 TO Y;
        CALL PUT$CHAR(' ');
    END;
    DO X = 0 TO SIZE-Y-1;
        IF (X AND Y) = 0 
            THEN CALL PUT$CHAR('*');
            ELSE CALL PUT$CHAR(' ');
        CALL PUT$CHAR(' ');
    END;
    Y = Y - 1;
    CALL PUT$CHAR(13);
    CALL PUT$CHAR(10);
END;
 
CALL BDOS(0,0);
EOF