User Tools

Site Tools


oberheimmatrix1000

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
oberheimmatrix1000 [2016-07-21 11:06] – created gdeoberheimmatrix1000 [2016-09-26 20:21] (current) – [6850 UART] gde
Line 5: Line 5:
 http://www.vintagesynth.com/oberheim/mat1000.php http://www.vintagesynth.com/oberheim/mat1000.php
  
 +===== Schematics =====
  
 +{{ :matrix1ksch.zip |}}
 +
 +===== Github repo =====
 +
 +https://github.com/8BitPimp/OberheimMatrix1000
 +
 +===== Tools and resources =====
 +
 +==== DASMx ====
 +
 +> DASMx is a disassembler for a range of common microprocessors.
 +
 +http://myweb.tiscali.co.uk/pclare/DASMx/
 +
 +==== Arto's 6809 page ====
 +
 +> This page have been made to give general information about Motorola's 6809 and Hitachi's 6309 mikroprosessors: instructions, emulators, tools, debuggers, disassemblers and assemblers. 
 +
 +Includes Arto's DASM09 disassembler
 +
 +http://atjs.mbnet.fi/mc6809/
 +
 +==== Hermann Sieb's f9dasm ====
 +
 +> Based on Arto Salmi's C core that can be found somewhere on the 'net I built a complete 6800/6809/6309 disassembler that can handle input files in a variety of formats (Intel Hex / Motorola S09 / Flex9 Binary / Binary). Since disassembly without guidance produces measly results, it can load information files with quite a lot of directives, too.
 +
 +https://github.com/Arakula/f9dasm
 +
 +==== radare2 ====
 +
 +> Radare is a portable reversing framework 
 +
 +http://radare.org/r/
 +
 +Gareth is working on a [[https://github.com/gareth8118/radare2-extras/tree/6809wip|6809 plugin for radare2]] specifically for this project. 
 +
 +==== Matrix 6/100 links ====
 +
 +http://www.tauntek.com/Matrix6Firmware.htm
 +
 +http://www.tauntek.com/codeinfo.txt
 +
 +http://wolzow.mindworks.ee/analog/m1k-firmware.htm
 +
 +
 +===== Memory Map =====
 +
 +<code>
 +0x0000-0x1fff:
 +    I/O*
 +    U819: {
 +    0x0000-0x03ff T1*
 +    0x0400-0x07ff T2*
 +    0x0800-0x0bff T3*
 +    0x0c00-0x0fff T4*
 +        T1-T4 are 82C54 Programmable Timers
 +    0x1000 DAC
 +        0x1000
 +            $ U712 - 74LS374 - DAC HI 7
 +            b00000001 - DAC 5
 +            b00000010 - DAC 6
 +            b00000100 - DAC 7
 +            b00001000 - DAC 8
 +            b00010000 - DAC 9
 +            b00100000 - DAC 10
 +            b01000000 - DAC 11
 +            b10000000 - FASTX
 +
 +        0x1010
 +            $ U713 - 74HC138 - DAC LO 5
 +            b00000100 - U715 - 74HC138 - S&H Enable
 +            b00001000 - DAC 0
 +            b00010000 - DAC 1
 +            b00100000 - DAC 2
 +            b01000000 - DAC 3
 +            b10000000 - DAC 4
 +
 +    0x1400-0x17ff UORV* {
 +    
 +        0x1400-0x15ff - $ U809 - 68B50 - UART (if A9 = 0) {
 +            0x1406 - Control/Status {
 +                Control (write-only) {
 +                    Bit 0: Counter Divide Select 0 (CR0)
 +                    Bit 1: Counter Divide Select 1 (CR1)
 +                    Bit 2: Word Select 1 (CR2)
 +                    Bit 3: Word Select 2 (CR3)
 +                    Bit 4: Word Select 3 (CR4)
 +                    Bit 5: Transmit Control 1 (CR5)
 +                    Bit 6: Transmit Control 2 (CR6)
 +                    Bit 7: Receive Interrupt Enable (CR7)
 +                }
 +                Status (read-only) {
 +                    Bit 0: Receive Data Register Full (RDRF)
 +                    Bit 1: Transmit Data Register Empty (TDRE)
 +                    Bit 2: Data Carrier Detect (/DCD) active low
 +                    Bit 3: Clear To Send (/CTS) active low
 +                    Bit 4: Framing error (FE)
 +                    Bit 5: Receiver Overrun (OVRN)
 +                    Bit 6: Parity Error (PE)
 +                    Bit 7: Interrupt Request (IRQ)
 +                }
 +            }
 +            0x1407 - Transmit/Receive Data
 +        }
 +        0x1600 - 82C54 Programmable Timer (if A9 = 1) {
 +            This timer is the source of /IRQ back to the 6809
 +            0x1600 - Counter 0 Register
 +            0x1601 - Counter 1 Register
 +            0x1602 - Counter 2 Register
 +            0x1603 - Control Word Register
 +        }
 +    }
 +       
 +    0x1800-0x1bff SW*
 +        Front panel switches: {
 +            0x1800: Read push buttons 0-7
 +            
 +            0x1801: Read pushbuttons {
 +               Bit 7: n/c
 +               Bit 6: SEL
 +               Bit 5: BANK
 +               Bit 4: +
 +               Bit 3: -
 +               Bit 2: ENTER
 +               Bit 1: 9
 +               Bit 0: 8
 +            }
 +        }
 +    0x1c00-0x1fff WRITE ONLY
 +        U820: {
 +        0x1c00-0x1c7f L1* RA1-RA6, NOT
 +        0x1c80-0x1cff L2* RB1-RB6
 +        0x1d00-0x1d7f L3* - SYNC1/MUTE/SYNC2
 +        0x1d80-0x1dff MISC*
 +            $ U818 - 74LS174 - 6bit latch, address bank register {
 +                b000001 - VA13
 +                b000010 - VA14
 +                b000100 - VA15
 +                b001000
 +                b010000
 +                b100000
 +            }
 +        0x1e00-0x1e7f LED1*
 +        0x1e80-0x1eff LED2*
 +        0x1f00-0x1f7f LED3*
 +            (LED1 to 3 are 7-segment displays labelled DISP 1 to 3 respectively. Segment mapping tbd)
 +        0x1f80-0x1fff LED4*
 +            6 single LEDs {
 +                0x01 - CHANNEL
 +                0x02 - UNITS
 +                0x04 - DATA D
 +                0x08 - EXT. F
 +                0x40 - FINE T
 +                0x80 - PITCH
 +                (bits 4 and 5 not connected)
 +            }
 +        }
 +    }
 +
 +0x2000
 +    $ U803 - 27512 (Patches) {
 +
 +        Bank Select - VA13, VA14, VA15
 +    }
 +The code rom is
 +0x4000
 +    $ U802 - 27512 (Expansion) {
 +
 +        Bank Select - VA13, VA14, VA15
 +    }
 +
 +0x6000
 +    $ U8012B - 43256 {
 +        RAM
 +        Bank Select - VA13, VA14
 +        0x7fff - Initial stack location (set at PC 0x800E)
 +                 (Bank 0 only?       
 +    }
 +
 +0x8000
 +    $ U809 - 27256 {
 +        0x8000 Rom Base (27256)
 +        0x8003 Reset Handler
 +        0x84b4 IRQ Handler (PIT IRQ)
 +        0x85e3 FIRQ Handler (Serial IRQ)
 +        0xFFF0 Vector Table
 +    }
 +</code>
 +
 +===== Component Datasheets =====
 +
 +==== 6850 UART ====
 +
 +{{ :ef6850p.pdf | Datasheet}}
 +
 +==== 82C54 Programmable Interval Timer ====
 +
 +{{ :82c54.pdf | Datasheet}}
 +===== Using r2 =====
 +
 +To start radare2 on the image:
 +
 +<code>
 +$ r2 -a mc6809 -m 0x8000 27256.bin
 +</code>
oberheimmatrix1000.txt · Last modified: 2016-09-26 20:21 by gde

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki