diff options
Diffstat (limited to 'libgloss/m68hc11/sci-inout.S')
-rw-r--r-- | libgloss/m68hc11/sci-inout.S | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/libgloss/m68hc11/sci-inout.S b/libgloss/m68hc11/sci-inout.S deleted file mode 100644 index a8675d270..000000000 --- a/libgloss/m68hc11/sci-inout.S +++ /dev/null @@ -1,153 +0,0 @@ -/* M68HC11/M68HC12 serial line operations - * Copyright (C) 1999, 2001, 2003, 2004 Stephane Carrez (stcarrez@nerim.fr) - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifdef __HAVE_SHORT_INT__ - .mode mshort -#else - .mode mlong -#endif - -#if defined(__USE_RTC__) - .macro ret -#if defined(mc68hc12) - rtc -#else - jmp __return_32 -#endif - .endm -#else - .macro ret - rts - .endm -#endif -#ifdef mc68hc12 - SC0CR1 = 0xC2 - SC0CR2 = 0xC3 - SC0SR1 = 0xC4 - SC0DRL = 0xC7 - SC0BD = 0xC0 - - .sect .data - .globl _m68hc12_ports -_m68hc12_ports: .word 0 - - .sect .text - .globl outbyte -;;; -;;; int outbyte(char c); -;;; -;;; B : Character to send -;;; -outbyte: - bsr _sci_init -L1: - ldaa SC0SR1,x - bge L1 - stab SC0DRL,x - ldab SC0CR2,x - orab #0x8 - stab SC0CR2,x - ret - - .sect .text - .globl inbyte -;;; -;;; char inbyte(void); -;;; -inbyte: - bsr _sci_init - ldaa SC0SR1,x - bita #0x20 - beq inbyte - ldab SC0CR2,x - ret - - .globl _sci_init - .sect .text -_sci_init: - ldx _m68hc12_ports - beq do_init - dex - rts -do_init: - ldx #0x1 - stx _m68hc12_ports - dex - ldd #26 - std SC0BD,x - ldaa #0 - staa SC0CR1,x - ldaa #0xC - staa SC0CR2,x - rts -#else - BAUD = 0x2b - SCCR1= 0x2c - SCCR2= 0x2d - SCSR = 0x2e - SCDR = 0x2f - - .sect .data - .globl _m68hc11_ports -_m68hc11_ports: .word 0 - - .sect .text - .globl outbyte -;;; -;;; int outbyte(char c); -;;; -;;; B : Character to send -;;; -outbyte: - bsr _sci_init -L1: - ldaa SCSR,x - bge L1 - stab SCDR,x - ldab SCCR2,x - orab #0x8 - stab SCCR2,x - ret - - .sect .text - .globl inbyte -;;; -;;; char inbyte(void); -;;; -inbyte: - bsr _sci_init - ldaa SCSR,x - bita #0x20 - beq inbyte - ldab SCDR,x - ret - - .globl _sci_init - .sect .text -_sci_init: - ldx _m68hc11_ports - beq do_init - rts -do_init: - ldx #0x1000 - stx _m68hc11_ports - ldaa #0x30 - staa BAUD,x - clra - staa SCCR1,x - ldaa #0xC - staa SCCR2,x - rts - -#endif |