| 65 | |
| 66 | The chat application initializes the UART by writing $C1 to address $600003 (the reset value seems to be $01). |
| 67 | |
| 68 | Incoming data triggers IRQ2, which the chat application sets to handle the incoming bytes into a circular buffer. |
| 69 | |
| 70 | {{{ |
| 71 | RecvSerial nop |
| 72 | move.b $600001,d3 ; Read status |
| 73 | move.b d3,d0 |
| 74 | andi.l #1,d0 ; Check if Rx data available |
| 75 | moveq #1,d1 |
| 76 | cmp.l d0,d1 |
| 77 | bne.s RecvSerial ; If not, wait a little more |
| 78 | move.b ($600007).l,d0 ; Get the next byte of data |
| 79 | rts |
| 80 | }}} |
135 | | * $600901-17 Sound synthesizer (TODO) |
| 151 | * $600901 Waveshape for synth1 |
| 152 | * $600903 Note for synth1 |
| 153 | * $600905 Octave? for synth1 |
| 154 | * $600907 Volume for Synth1 |
| 155 | * $60091x Likewise for Synth2 |
| 156 | * $600919 W: start playing sample / R: 1 if sample playing, 0 if finished |
| 157 | |
| 158 | = Acknowledgements = |
| 159 | |
| 160 | A lot of the contents in this page was explored by Alexandre Botzung. Many thanks to him for exploring the platform and finding nice things it is able to do. |