                        .module putchar_dp256.c
                        .area text
                ;              c -> 3,x
 0000           _putchar::
 0000 3B                pshd
 0001 34                pshx
 0002 B775              tfr s,x
 0004           ; #include <stdio.h>
 0004           ; #define _SCI
 0004           ; #include <hcs12dp256.h>
 0004           ; extern int _textmode;
 0004           ; int putchar(char c)
 0004           ; {
 0004           ;      if (_textmode && c == '\n')
 0004 FC0000            ldd __textmode
 0007 270C              beq L7
 0009 E603              ldab 3,x
 000B C10A              cmpb #10
 000D 2606              bne L7
 000F           ;       putchar('\r');
 000F CC000D            ldd #13
 0012 160000            jsr _putchar
 0015           L6:
 0015           L7:
 0015           ;      while ((SC0SR1 & TDRE) == 0)
 0015 1F00CC80FB        brclr 0xcc,#128,L6
 001A           ;        ;
 001A           ;      SC0DRL = c;
 001A 180D0300CF        movb 3,x,0xcf
 001F           ;      return c;
 001F E603              ldab 3,x
 0021 87                clra
 0022           L3:
 0022 B757              tfr x,s
 0024 30                pulx
 0025 1B82              leas 2,sp
 0027                   .dbline 0 ; func end
 0027 3D                rts
