* ----------------------------------------------------------------------- * hp48c.asm 2001/04/16 * * Prueba de las comunicaciones serie asíncronas de HC11. * - Envía una secuencia de caracteres por el puerto serie. * - Hace eco de lo que le llega por el puerto serie y hace una * pausa entre cada eco. * * Copyright (C) 2001 Javier de Lope Asiaín * ----------------------------------------------------------------------- PORTA EQU $00 ; Dirección del puerto A PORTE EQU $0A ; Dirección del puerto E BAUD EQU $2B ; Registro de velocidad SCSR EQU $2E ; Registro de estado del SCI SCDR EQU $2F ; Registro de datos del SCI ORG $0000 ; Programa en RAM interna LDX #$1000 ; Apunta a los registros de control LDAA #$30 ; 9600 baudios * LDAA #$33 ; 1200 baudios STAA BAUD,X ; Configura la velocidad BSET PORTA,X $40 ; Enciende el LED de la CT6811 pulsa BRCLR PORTE,X $01 pulsa ; Espera a que se pulse el bumper izq LDAA #'H ; Envía la cadena "HOLA" BSR sendc LDAA #'O' BSR sendc LDAA #'L' BSR sendc LDAA #'A' BSR sendc eco BSET PORTA,X $40 ; Enciende el LED de la CT6811 BSR readc ; Lee un carácter BSR sendc ; Lo vuelve a enviar BCLR PORTA,X $40 ; Apaga el LED BSR f_wait ; Hace un pausa fin BRA eco * ----------------------------------------------------------------------- * Envía el carácter del acumulador A por el puerto serie SCI * ----------------------------------------------------------------------- sendc BRCLR SCSR,X $80 sendc ; Espera a que termine un envío anterior STAA SCDR,X ; Envía el carácter RTS * ----------------------------------------------------------------------- * Lee un carácter que llega por el puerto serie SCI en el acumulador A * ----------------------------------------------------------------------- readc BRCLR SCSR,X $20 readc ; Espera a que se reciba un carácter LDAA SCDR,X ; Lee el carácter recibido RTS * ----------------------------------------------------------------------- * Incluye rutinas de pausa * ----------------------------------------------------------------------- include wait.inc END