************************************************* * * * Program: Port H Switch Inputs * * * * Name : phia4evb.asm * * * * Date : 29 May 2001 * * * * By : Steven J. Dombrowski * * * * * * This program reads all 8 switches on * * the M68HC12A4EVB and continuously updates all * * readings. * * * * To execute this program type G 5000 * * * ************************************************* * * * program origin and equates * * * ******************************* org $5000 putchar equ $fe04 porth equ $0024 ddrh equ $0025 swmsg1 equ $5300 swmsg2 equ $5360 ldx #swmsg1 ldy #table1 ldab #$29 loop1 ldaa 0,y staa 0,x inx iny decb cmpb #0 bne loop1 ldx #swmsg2 ldy #table2 ldab #$29 loop2 ldaa 0,y staa 0,x inx iny decb cmpb #0 bne loop2 ************************ * * * Introductory message * * * ************************ ldab #$1a * clear screen jsr [putchar,PCR] ************************ * * * Main part of program * * * ************************ ldaa #$00 *set bits 0-7 of staa ddrh *porth as input start ldaa porth anda #1 jsr rh staa swmsg1+13 * output to screen ldaa porth anda #2 lsra jsr rh staa swmsg1+21 * output to screen ldaa porth anda #4 lsra lsra jsr rh staa swmsg1+29 * output to screen ldaa porth anda #8 lsra lsra lsra jsr rh staa swmsg1+37 * output to screen ldaa porth anda #$10 lsra lsra lsra lsra jsr rh staa swmsg2+13 * output to screen ldaa porth anda #$20 lsra lsra lsra lsra lsra jsr rh * convert right nibble to ascii staa swmsg2+21 * output to screen ldaa porth anda #$40 lsra lsra lsra lsra lsra lsra jsr rh staa swmsg2+29 * output to screen ldaa porth anda #$80 lsra lsra lsra lsra lsra lsra lsra jsr rh * convert right nibble to ascii staa swmsg2+37 * output to screen ldx #swmsg1 * display PH0-3 ldaa #$29 loop3 ldab 0,x pshd pshx jsr [putchar,PCR] * update readings pulx puld inx deca cmpa #0 bne loop3 jsr outcrlf jsr outcrlf ldx #swmsg2 * display PH4-7 ldaa #$29 loop4 ldab 0,x pshd pshx jsr [putchar,PCR] * update readings pulx puld inx deca cmpa #0 bne loop4 jsr outcrlf ldab #$0b * go up 2 lines to sw1-4 jsr [putchar,PCR] jsr [putchar,PCR] jsr [putchar,PCR] jmp start * continue program *********************************** * * * Subroutine: outcrlf * * * *********************************** outcrlf pshd pshx ldab #$0D jsr [putchar,PCR] ldab #$0A jsr [putchar,PCR] pulx puld rts ******************************* * * * Subroutine to convert right * * half of binary byte in acca * * to an ascii character * * * ******************************* rh asla asla asla asla lsra lsra lsra lsra anda #$0f adda #$30 cmpa #$39 ble out1 adda #$07 out1 rts ****************************************************** * * * Screen messages * * * ****************************************************** table1 fcc 'reading PH0: PH1: PH2: PH3: ' fcb 4 table2 fcc 'reading PH4: PH5: PH6: PH7: ' fcb 4