* as/xa51/xa_version.h,
[fw/sdcc] / support / regression / ports / mcs51 / support.c
1 // #define MICROCONTROLLER_8051
2 #include <mcs51reg.h>
3
4 unsigned char
5 _sdcc_external_startup (void)
6 {
7   /* copied from device/examples/mcs51/simple2/hi.c */
8   PCON = 0x80;  /* power control byte, set SMOD bit for serial port */
9   SCON = 0x40;  /* serial control byte, mode 1, RI _NOT_ active */
10   TMOD = 0x21;  /* timer control mode, byte operation */
11   TCON = 0;     /* timer control register, byte operation */
12
13   TH1  = 0xFA;  /* serial reload value, 9,600 baud at 11.0952Mhz */
14   TL1  = 0xFF;  /* reload asap */
15   TR1  = 1;     /* start serial timer */
16
17   TI   = 1;     /* enable transmission of first byte */
18   return 0;
19 }
20
21 void
22 _putchar (char c)
23 {
24   while (!TI)
25     ;
26   SBUF = c;
27   TI = 0;
28 }
29
30 void
31 _exitEmu (void)
32 {
33   while (!TI) /* wait for the last character to be transmitted */
34     ;         /* before hitting the breakpoint */
35   * (char idata *) 0 = * (char xdata *) 0x7654;
36 }