* Helpful debug routines. #include "ascii.asm" *#include "buffalo.asm" ; For SCI routines OUTSTRG0 and OUTCRLF * Print debug message pointed to by X printmsg: jsr OUTSTRG0 jsr OUTCRLF rts mycrlf: psha LDAA #CR JSR OUTPUT LDAA #LF JSR OUTPUT pula RTS * Print current values of all registers. printregs: psha ; Store all registers tpa staa ccr pula staa accA stab accB std accD stx regIX sty regIY pshx psha ldx #aeq jsr outstrg ldx #accA jsr out1bsp ldx #beq jsr outstrg0 ldx #accB jsr out1bsp ldx #deq jsr outstrg0 ldx #accD jsr out2bsp ldx #xeq jsr outstrg0 ldx #regIX jsr out2bsp ldx #yeq jsr outstrg0 ldx #regIY jsr out2bsp ldx #ccreq jsr outstrg0 ldx #ccr jsr out1bsp jsr outcrlf ldaa ccr tap pula pulx rts * Print current value of A accumulator. printA: staa accA psha pshx ldx #accA jsr out1bsp pulx pula rts printB: stab accB psha pshx ldx #accB jsr out1bsp pulx pula rts printD: std accD psha pshx ldx #accD jsr out2bsp pulx pula rts printX: stx regIX psha pshx ldx #regIX jsr out2bsp pulx pula rts printY: sty regIY psha pshx ldx #regIY jsr out2bsp pulx pula ldy regIY rts printS: sty regIY tsy iny sty regSP ldy regIY psha pshx pshy ldx #regSP jsr out2bsp puly pulx pula rts printCCR: psha tpa staa ccr pshx ldx #ccr jsr out1bsp pulx ldaa ccr tap pula rts accA: rmb 1 accB: rmb 1 accD: rmb 2 regIX: rmb 2 regIY: rmb 2 regSP: rmb 2 ccr: rmb 1 aeq: fcc "A=" fcb EOT beq: fcc "B=" fcb EOT deq: fcc "D=" fcb EOT xeq: fcc "X=" fcb EOT yeq: fcc "Y=" fcb EOT ccreq: fcc "CCR=" fcb EOT * Wait for user to hit enter pause: psha jsr inchar pula rts