Mercurial > hg > Members > kono > nitros9-code
annotate level1/modules/dwwrite.asm @ 2770:bfe3de781ddf lwtools-port
Added Arduino dwread/dwwrite changes
author | Boisy Pitre <boisy.pitre@nuance.com> |
---|---|
date | Tue, 22 Jan 2013 19:14:52 -0600 |
parents | c2112f93923a |
children | ce3dba57003b |
rev | line source |
---|---|
2770
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
1 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
2 * |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
3 * DWWrite |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
4 * Send a packet to the DriveWire server. |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
5 * Serial data format: 1-8-N-1 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
6 * 4/12/2009 by Darren Atkinson |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
7 * |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
8 * Entry: |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
9 * X = starting address of data to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
10 * Y = number of bytes to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
11 * |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
12 * Exit: |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
13 * X = address of last byte sent + 1 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
14 * Y = 0 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
15 * All others preserved |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
16 * |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
17 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
18 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
19 IFNE ARDUINO |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
20 DWWrite pshs a ; preserve registers |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
21 txByte |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
22 lda ,x+ ; get byte from buffer |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
23 sta $FF52 ; put it to PIA |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
24 loop@ tst $FF53 ; check status register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
25 bpl loop@ ; until CB1 is set by Arduino, continue looping |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
26 tst $FF52 ; clear CB1 in status register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
27 leay -1,y ; decrement byte counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
28 bne txByte ; loop if more to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
29 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
30 puls a,pc ; restore registers and return |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
31 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
32 ELSE |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
33 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
34 IFNE JMCPBCK |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
35 DWWrite pshs d,cc ; preserve registers |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
36 orcc #$50 ; mask interrupts |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
37 txByte |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
38 lda ,x+ |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
39 sta $FF44 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
40 leay -1,y ; decrement byte counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
41 bne txByte ; loop if more to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
42 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
43 puls cc,d,pc ; restore registers and return |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
44 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
45 ELSE |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
46 IFNE BECKER |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
47 DWWrite pshs d,cc ; preserve registers |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
48 orcc #$50 ; mask interrupts |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
49 ; ldu #BBOUT ; point U to bit banger out register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
50 ; lda 3,u ; read PIA 1-B control register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
51 ; anda #$f7 ; clear sound enable bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
52 ; sta 3,u ; disable sound output |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
53 ; fcb $8c ; skip next instruction |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
54 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
55 txByte |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
56 lda ,x+ |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
57 sta $FF42 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
58 leay -1,y ; decrement byte counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
59 bne txByte ; loop if more to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
60 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
61 puls cc,d,pc ; restore registers and return |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
62 ENDC |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
63 ENDC |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
64 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
65 IFEQ BECKER+JMCPBCK+ARDUINO |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
66 IFEQ BAUD38400+H6309 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
67 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
68 * 57600 (115200) bps using 6809 code and timimg |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
69 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
70 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
71 DWWrite pshs dp,d,cc ; preserve registers |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
72 orcc #$50 ; mask interrupts |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
73 ldd #$04ff ; A = loop counter, B = $ff |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
74 tfr b,dp ; set direct page to $FFxx |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
75 setdp $ff |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
76 ldb <$ff23 ; read PIA 1-B control register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
77 andb #$f7 ; clear sound enable bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
78 stb <$ff23 ; disable sound output |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
79 fcb $8c ; skip next instruction |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
80 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
81 txByte stb <BBOUT ; send stop bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
82 ldb ,x+ ; get a byte to transmit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
83 nop |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
84 lslb ; left rotate the byte two positions.. |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
85 rolb ; ..placing a zero (start bit) in bit 1 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
86 tx0020 stb <BBOUT ; send bit (start bit, d1, d3, d5) |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
87 rorb ; move next bit into position |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
88 exg a,a |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
89 nop |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
90 stb <BBOUT ; send bit (d0, d2, d4, d6) |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
91 rorb ; move next bit into position |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
92 leau ,u |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
93 deca ; decrement loop counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
94 bne tx0020 ; loop until 7th data bit has been sent |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
95 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
96 stb <BBOUT ; send bit 7 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
97 ldd #$0402 ; A = loop counter, B = MARK value |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
98 leay ,-y ; decrement byte counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
99 bne txByte ; loop if more to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
100 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
101 stb <BBOUT ; leave bit banger output at MARK |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
102 puls cc,d,dp,pc ; restore registers and return |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
103 setdp $00 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
104 ELSE |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
105 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
106 IFNE BAUD38400 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
107 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
108 * 38400 bps using 6809 code and timimg |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
109 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
110 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
111 DWWrite pshs u,d,cc ; preserve registers |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
112 orcc #$50 ; mask interrupts |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
113 ldu #BBOUT ; point U to bit banger out register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
114 lda 3,u ; read PIA 1-B control register |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
115 anda #$f7 ; clear sound enable bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
116 sta 3,u ; disable sound output |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
117 fcb $8c ; skip next instruction |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
118 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
119 txByte stb ,--u ; send stop bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
120 leau ,u+ |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
121 lda #8 ; counter for start bit and 7 data bits |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
122 ldb ,x+ ; get a byte to transmit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
123 lslb ; left rotate the byte two positions.. |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
124 rolb ; ..placing a zero (start bit) in bit 1 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
125 tx0010 stb ,u++ ; send bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
126 tst ,--u |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
127 rorb ; move next bit into position |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
128 deca ; decrement loop counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
129 bne tx0010 ; loop until 7th data bit has been sent |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
130 leau ,u |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
131 stb ,u ; send bit 7 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
132 lda ,u++ |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
133 ldb #$02 ; value for stop bit (MARK) |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
134 leay -1,y ; decrement byte counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
135 bne txByte ; loop if more to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
136 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
137 stb ,--u ; leave bit banger output at MARK |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
138 puls cc,d,u,pc ; restore registers and return |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
139 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
140 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
141 ELSE |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
142 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
143 * 57600 (115200) bps using 6309 native mode |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
144 ******************************************************* |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
145 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
146 DWWrite pshs u,d,cc ; preserve registers |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
147 orcc #$50 ; mask interrupts |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
148 * ldmd #1 ; requires 6309 native mode |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
149 ldu #BBOUT+1 ; point U to bit banger out register +1 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
150 aim #$f7,2,u ; disable sound output |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
151 lda #8 ; counter for start bit and 7 data bits |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
152 fcb $8c ; skip next instruction |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
153 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
154 txByte stb -1,u ; send stop bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
155 tx0010 ldb ,x+ ; get a byte to transmit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
156 lslb ; left rotate the byte two positions.. |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
157 rolb ; ..placing a zero (start bit) in bit 1 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
158 bra tx0030 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
159 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
160 tx0020 bita #1 ; even or odd bit number ? |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
161 beq tx0040 ; branch if even (15 cycles) |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
162 tx0030 nop ; extra (16th) cycle |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
163 tx0040 stb -1,u ; send bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
164 rorb ; move next bit into position |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
165 deca ; decrement loop counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
166 bne tx0020 ; loop until 7th data bit has been sent |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
167 leau ,u+ |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
168 stb -1,u ; send bit 7 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
169 ldd #$0802 ; A = loop counter, B = MARK value |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
170 leay -1,y ; decrement byte counter |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
171 bne txByte ; loop if more to send |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
172 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
173 stb -1,u ; final stop bit |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
174 puls cc,d,u,pc ; restore registers and return |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
175 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
176 |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
177 ENDC |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
178 ENDC |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
179 ENDC |
bfe3de781ddf
Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents:
2725
diff
changeset
|
180 ENDC |