; > STAR
OSNEWL  *       &FFE7   ;print newline
OSWRCH  *       &FFEE   ;print character in A
        ORG     &2000   ;reasonably available part of user memory
STAR    LDYIM   &10     ;start at 16th row descending to 0
ROW     LDXIM   &10     ;start at 16th column descending to 0
CHAR    LDAAX   TABLE   ;get row byte, add column byte
        ADCAY   TABLE   ;zeroes in low nibbles mean
                        ;carry in doesn't alter carry out
        LDAIM   "*"     ;discard result, preload asterisk
        BCC     PRINT   ;skip to PRINT if no carry out
        LDAIM   " "     ;else replace character with space
PRINT   JSR     OSWRCH  ;print character in A
        DEX             ;X,Y preserved, decrement column
        BPL     CHAR    ;if X still >=0 then loop
        JSR     OSNEWL  ;else end of row, print newline
        DEY             ;decrement row
        BPL     ROW     ;if Y still >=0 then continue shape
        RTS             ;else return to caller
TABLE   &       &E0F0   ;little-endian words
        &       &C0D0
        &       &1000
        &       &3020
        =       &40
        &       &2030
        &       &0010
        &       &D0C0
        &       &F0E0
        END
