TI-H: part 2
[Prev][Next][Index][Thread]
TI-H: part 2
;*****************************************************
;* 9600 8N1 *
;* Transmit Routine. *
;* *
;* Uses a 4.00 Mhz Crystal (2 Mhz Bus Speed) *
;* to obtain a transmission speed of 9600 BPS *
;* *
;*****************************************************
.include "serialcom.asm"
;TI communications
.include "TIcom.asm"
.equ b =31 ;19200 bps @ 4 MHz crystal
UART_delay:
ldi temp,b
UART_delay1:
dec temp
brne UART_delay1
ret
;*****************************************************
;* *
;* No-Shift - Lookup Table when Shift not Pressed *
;* *
;*****************************************************
noshift:
ldi zl, low(noshifttbl*2)
ldi zh, high(noshifttbl*2)
add zl, byte
brcc amyg
inc zh
amyg:
lpm ;rezult in R0
mov byte, r0
ret
;*****************************************************
;* *
;* Shift - Lookup Table Used when Shift Pressed *
;* *
;*****************************************************
shift:
ldi zl, low(shifttbl*2)
ldi zh, high(shifttbl*2)
add zl, byte
brcc agantt
inc zh
agantt:
lpm ;rezult in R0
mov byte, r0
ret
.CSEG
noshifttbl:
.db $00 ; 00
.db $00 ; 01 F9
.db $00 ; 02
.db $00 ; 03 F5
.db $00 ; 04 F3
.db $00 ; 05 F1
.db $00 ; 06 F2
.db $00 ; 07 F12
.db $00 ; 08
.db $00 ; 09 F10
.db $00 ; 0A F8
.db $00 ; 0B F6
.db $00 ; 0C F4
.db $09 ; 0D TAB
.db '`' ; 0E ` or ~
.db $00 ; 0F
.db $00 ; 10
.db $00 ; 11 Left ALT
.db $00 ; 12 Left SHIFT
.db $00 ; 13
.db $00 ; 14 Left Ctrl
.db 'q' ; 15 Q
.db '1' ; 16 1 or !
.db $00 ; 17
.db $00 ; 18
.db $00 ; 19
.db 'z' ; 1A Z
.db 's' ; 1B S
.db 'a' ; 1C A
.db 'w' ; 1D W
.db '2' ; 1E 2 or @
.db $00 ; 1F
.db $00 ; 20
.db 'c' ; 21 C
.db 'x' ; 22 X
.db 'd' ; 23 D
.db 'e' ; 24 E
.db '4' ; 25 4 or $
.db '3' ; 26 3 or #
.db $00 ; 27
.db $00 ; 28
.db ' ' ; 29 Space
.db 'v' ; 2A V
.db 'f' ; 2B F
.db 't' ; 2C T
.db 'r' ; 2D R
.db '5' ; 2E 5 or %
.db $00 ; 2F
.db $00 ; 30
.db 'n' ; 31 N
.db 'b' ; 32 B
.db 'h' ; 33 H
.db 'g' ; 34 G
.db 'y' ; 35 Y
.db '6' ; 36 6 or ^
.db $00 ; 37
.db $00 ; 38
.db $00 ; 39
.db 'm' ; 3A M
.db 'j' ; 3B J
.db 'u' ; 3C U
.db '7' ; 3D 7 or &
.db '8' ; 3E 8 or *
.db $00 ; 3F
.db $00 ; 40
.db ',' ; 41 , or <
.db 'k' ; 42 K
.db 'i' ; 43 I
.db 'o' ; 44 O
.db '0' ; 45 0 or )
.db '9' ; 46 9 or (
.db $00 ; 47
.db $00 ; 48
.db '.' ; 49 . or >
.db '/' ; 4A / or ?
.db 'l' ; 4B L
.db ';' ; 4C ; or :
.db 'p' ; 4D P
.db '-' ; 4E - or _
.db $00 ; 4F
.db $00 ; 50
.db $00 ; 51
.db $27 ; 52 ' or "
.db $00 ; 53
.db '[' ; 54 [ or {
.db '=' ; 55 = OR +
.db $00 ; 56
.db $00 ; 57
.db $00 ; 58 Caps Lock
.db $00 ; 59 Right Shift
.db $0D ; 5A Enter
.db ']' ; 5B ] or }
.db $00 ; 5C
.db '\' ; 5D \ or |
.db $00 ; 5E
.db $00 ; 5F
.db $00 ; 60
.db $00 ; 61
.db $00 ; 62
.db $00 ; 63
.db $00 ; 64
.db $00 ; 65
.db $08 ; 66 Backspace
.db $00 ; 67
.db $00 ; 68
.db '1' ; 69 NUM - 1 or END
.db $00 ; 6A
.db '4' ; 6B NUM - 4 or LEFT
.db '7' ; 6C NUM - 7 or HOME
.db $00 ; 6D
.db $00 ; 6E
.db $00 ; 6F
.db '0' ; 70 NUM - 0 or INS
.db '.' ; 71 NUM - . or DEL
.db '2' ; 72 NUM - 2 or DOWN
.db '5' ; 73 NUM - 5
.db '6' ; 74 NUM - 6 or RIGHT
.db '8' ; 75 NUM - 8 or UP
.db $1B ; 76 ESC
.db $00 ; 77 NUM LOCK
.db $00 ; 78 F11
.db '+' ; 79 NUM - + (Plus)
.db '3' ; 7A NUM 3 or PAGE DOWN
.db '-' ; 7B NUM - - (Minus)
.db '*' ; 7C NUM - *
.db '9' ; 7D NUM - 9 or PAGE UP
.db $00 ; 7E SCROLL LOCK
.db $00 ; 7F
.db $00 ; 80
.db $00 ; 81
.db $00 ; 82
.db $00 ; 83 F7
.db $00 ; 84
.db $00 ; 85
.db $00 ; 86
.db $00 ; 87
.db $00 ; 88
.db $00 ; 89
.db $00 ; 8A
.db $00 ; 8B
.db $00 ; 8C
.db $00 ; 8D
.db $00 ; 8E
.db $00 ; 8F
shifttbl:
.db $00 ; 00
.db $00 ; 01 F9
.db $00 ; 02
.db $00 ; 03 F5
.db $00 ; 04 F3
.db $00 ; 05 F1
.db $00 ; 06 F2
.db $00 ; 07 F12
.db $00 ; 08
.db $00 ; 09 F10
.db $00 ; 0A F8
.db $00 ; 0B F6
.db $00 ; 0C F4
.db $09 ; 0D TAB
.db '~' ; 0E ` or ~
.db $00 ; 0F
.db $00 ; 10
.db $00 ; 11 Left ALT
.db $00 ; 12 Left SHIFT
.db $00 ; 13
.db $00 ; 14 Left Ctrl
.db 'Q' ; 15 Q
.db '!' ; 16 1 or !
.db $00 ; 17
.db $00 ; 18
.db $00 ; 19
.db 'Z' ; 1A Z
.db 'S' ; 1B S
.db 'A' ; 1C A
.db 'W' ; 1D W
.db '@' ; 1E 2 or @
.db $00 ; 1F
.db $00 ; 20
.db 'C' ; 21 C
.db 'X' ; 22 X
.db 'D' ; 23 D
.db 'E' ; 24 E
.db '$' ; 25 4 or $
.db '#' ; 26 3 or #
.db $00 ; 27
.db $00 ; 28
.db ' ' ; 29 Space
.db 'V' ; 2A V
.db 'F' ; 2B F
.db 'T' ; 2C T
.db 'R' ; 2D R
.db '%' ; 2E 5 or %
.db $00 ; 2F
.db $00 ; 30
.db 'N' ; 31 N
.db 'B' ; 32 B
.db 'H' ; 33 H
.db 'G' ; 34 G
.db 'Y' ; 35 Y
.db '^' ; 36 6 or ^
.db $00 ; 37
.db $00 ; 38
.db $00 ; 39
.db 'M' ; 3A M
.db 'J' ; 3B J
.db 'U' ; 3C U
.db '&' ; 3D 7 or &
.db '*' ; 3E 8 or *
.db $00 ; 3F
.db $00 ; 40
.db '<' ; 41 , or <
.db 'K' ; 42 K
.db 'I' ; 43 I
.db 'O' ; 44 O
.db ')' ; 45 0 or )
.db '(' ; 46 9 or (
.db $00 ; 47
.db $00 ; 48
.db '>' ; 49 > or .
.db '?' ; 4A / or ?
.db 'L' ; 4B L
.db ':' ; 4C ; or :
.db 'P' ; 4D P
.db '_' ; 4E - or _
.db $00 ; 4F
.db $00 ; 50
.db $00 ; 51
.db $22 ; 52 ' or "
.db $00 ; 53
.db '{' ; 54 [ or {
.db '+' ; 55 = OR +
.db $00 ; 56
.db $00 ; 57
.db $00 ; 58 Caps Lock
.db $00 ; 59 Right Shift
.db $0D ; 5A Enter
.db '}' ; 5B ] or }
.db $00 ; 5C
.db '|' ; 5D \ or |
.db $00 ; 5E
.db $00 ; 5F
.db $00 ; 60
.db $00 ; 61
.db $00 ; 62
.db $00 ; 63
.db $00 ; 64
.db $00 ; 65
.db $08 ; 66 Backspace
.db $00 ; 67
.db $00 ; 68
.db '1' ; 69 NUM - 1 or END
.db $00 ; 6A
.db '4' ; 6B NUM - 4 or LEFT
.db '7' ; 6C NUM - 7 or HOME
.db $00 ; 6D
.db $00 ; 6E
.db $00 ; 6F
.db '0' ; 70 NUM - 0 or INS
.db '.' ; 71 NUM - . or DEL
.db '2' ; 72 NUM - 2 or DOWN
.db '5' ; 73 NUM - 5
.db '6' ; 74 NUM - 6 or RIGHT
.db '8' ; 75 NUM - 8 or UP
.db $1B ; 76 ESC
.db $00 ; 77 NUM LOCK
.db $00 ; 78 F11
.db '+' ; 79 NUM - + (Plus)
.db '3' ; 7A NUM 3 or PAGE DOWN
.db '-' ; 7B NUM - - (Minus)
.db '*' ; 7C NUM - *
.db '9' ; 7D NUM - 9 or PAGE UP
.db $00 ; 7E SCROLL LOCK
.db $00 ; 7F
.db $00 ; 80
.db $00 ; 81
.db $00 ; 82
.db $00 ; 83 F7
.db $00 ; 84
.db $00 ; 85
.db $00 ; 86
.db $00 ; 87
.db $00 ; 88
.db $00 ; 89
.db $00 ; 8A
.db $00 ; 8B
.db $00 ; 8C
.db $00 ; 8D
.db $00 ; 8E
.db $00 ; 8F