8 #define OSC 20000000L /* Xtal frequency */
10 #define DIVIDER (OSC/(64L*BAUD_RATE))
12 void external_startup(void) {
14 mov.b _WDCON,#0 ;shut down the watchdog
17 ; mov.b _BCR,#1 ;BCR: 8 data, 16 address
18 ; mov.b _SCR,#1 ;SCR: page zero mode
22 TL1 = RTL1 = -DIVIDER;
23 TH1 = RTH1 = -DIVIDER >> 8;
24 TR1 = 1; /* enable timer 1 */
26 S0CON = 0x52; /* mode 1, receiver enable */
27 IPA4 |= 0x6; /* maximum priority */
28 ERI0=1; /* enable receiver interupts */
29 TI0==1; /* transmitter empty */
30 RI0=0; /* receiver empty */
32 //PSWH &= 0xf0; /* start interupt system */
35 void putchar(char c) {
64 puts ("Hello world.\n\r");