main: MOVEQ #1,D1 ;counter for how many times to print *, this is also the loop counter .outerloop: MOVE.W D1,D2 SUBQ.W #1,D2 .innerloop: MOVE.B #'*',D0 JSR PrintChar ;hardware-dependent printing routine DBRA D2,.innerloop ;DBRA loops until wraparound to $FFFF, which is why we subtracted 1 from D2 earlier. JSR NewLine ;hardware-dependent newline routine ADDQ.W #1,D1 CMP.W #6,D1 ;are we done yet? BCS .outerloop ;if not, go back to the top RTS