Changes between Version 17 and Version 18 of geniuspc


Ignore:
Timestamp:
Apr 4, 2017, 7:59:46 PM (7 years ago)
Author:
pulkomandy
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • geniuspc

    v17 v18  
    6363There are some things involving interrupts happening, and since the interrupt is manually vectored (jump to register), if not properly setup it will crash both the serial port and the video logic.
    6464To avoid problems, the serial port is kept at a low baudrate (1200 bauds) by default, and set to 9600 only when the "chat" application is running.
     65
     66The chat application initializes the UART by writing $C1 to address $600003 (the reset value seems to be $01).
     67
     68Incoming data triggers IRQ2, which the chat application sets to handle the incoming bytes into a circular buffer.
     69
     70{{{
     71RecvSerial 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}}}
    6581
    6682== Cartridge port ==
     
    130146 * $600301 Keyboard control (LEDs and stuff)
    131147 * $600501 Video control?
    132  * $600600-4 Sample sound address
    133  * $600605 Sample sound length (0xFF = about 1 second)
     148 * $600600-4 Sample sound address (big endian)
     149 * $600605 Sample sound length (number of 16 bit words) (0xFF = about 1 second)
    134150 * $600801 4 for power on, 0 for power off
    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
     160A 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.