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