Retrode Community Forum

General Category => General Discussion => Topic started by: mdm on 07/Jul/2013 07:11:26 AM

Title: Developing more plug-ins
Post by: mdm on 07/Jul/2013 07:11:26 AM
I'm going to start working on developing a plugin for Texas Instruments TI-99/4 and Atari 400/800/XE/XL since I happens to have cartridges for them laying around here.  I'm going to post a link to a cartridge pinout for each and try to match pins to SNES or Mega Drive cartridge pinout.  Think of this post as a work-in-progress journal, and requesting some info, if there's any, that might be helpful.  This is going to be my first attempt at developing something, to be like Muzer.   ;D

TI-99/4 and TI-99/4A PINOUT


Title: Re: Developing more plug-ins
Post by: mdm on 07/Jul/2013 07:49:26 AM
Atari to MD Pinout

(MD Pinout)
B1                                                B32  Front
A1                                                A32  Back

MD   Name   ATARI   Description
A1   GND           B           Ground
A2   +5           13           Power +5V
A3   A8           H           Address bit8
A4   A11           N           Address bit11
A5   A7           F           Address bit7
A6   A12           K           Address bit12
A7   A6           E           Address bit6
A8   A13                      Address bit13
A9   A5           D           Address bit5
A10   A14                      Address bit14
A11   A4           C           Address bit4
A12   A15                      Address bit15
A13   A3           2              Address bit3
A14   A16                      Address bit16
A15   A2           3           Address bit2
A16   A17                      Address bit17
A17   A1           4           Address bit1
A18   GND                      Ground
A19   D7           M           Data bit7
A20   D0           10           Data bit0
A21   D8                      Data bit8
A22   D6           11           Data bit6
A23   D1           9           Data bit1
A24   D9                      Data bit9
A25   D5           7           Data bit5
A26   D2           8           Data bit2
A27   D10                      Data bit10
A28   D4           6           Data bit4
A29   D3           L           Data bit3
A30   D11                      Data bit11
A31   +5                      Power +5V
A32   GND                      Ground

MD   Name   ATARI   Description
B1   laudio              left audio input
B2   H_RESET              ?
B3   raudio              right audio input
B4   A9            J           Address bit9
B5   A10            P         Address bit10
B6   A18                      Address bit18
B7   A19                      Address bit19
B8   A20                      Address bit20
B9   A21                      Address bit21
B10   A22                      Address bit22
B11   A23                      Address bit23
B12   VIDEO              ?
B13   VSYNC              ?
B14   HSYNC              ?
B15   HS_CLK              ?
B16   C_OE                      Chip Output Enable
B17   C_CE                      ?
B18   AS                      Address Strobe
B19   CLK                      Clock
B20   DTACK              ?
B21   ?                       ?
B22   D15                      Data bit15
B23   D14                      Data bit14
B24   D13                      Data bit13
B25   D12                      Data bit12
B26   LO_MEM              ?
B27   RESET              Reset
B28   LDSW              even words of SRAM
B29   UDSW              odd words of SRAM
B30   S_RESET              ?
B31   ?                       phantom address line
B32   CART_IN              ?

Note: Direction is Console relative Cartridge

I'm currently missing A0 from Atari side.  I'm not sure where to put that one on MD side, though.  Also not sure about the other PINs beyond the data/address/volt/ground bits.
Title: Re: Developing more plug-ins
Post by: Matthias_H on 07/Jul/2013 01:24:33 PM
The reason Atari has A0 and Mega Drive doesn't is that one is 8 bits and the other 16. Hence, for Mega Drive the smallest possible address increase is 1 word = 2 bytes. It might be easier to interface your cartridge with the SNES bus, which is also 8 bits wide.
Title: Re: Developing more plug-ins
Post by: mdm on 07/Jul/2013 04:40:01 PM
Redoing the Atari cartridge using SNES instead of MD.  Let me know if everything that's "necessary" for Retrode has been connected, then I'll start trying to create the adapter. 

SNES   Desc.        ATARI
01   Clock      
03   PA6
04   /PAR          D
05   GND            B
06   A11            N
07   A10            P
08   A9            J
09   A8            H
10   A7            F
11   A6            E
12   A5            D
13   A4            C
14   A3            2
15   A2            3
16   A1            4
17   A0            5
18   /IRQ
19   D0            10
20   D1            9
21   D2            8
22   D3            L
23   /RD
24   CIC
25   CIC
26   /RESET
27   Vcc            13
28   PA0
29   PA2
30   PA4
31   LAudio
32   /WRAM
34   PA7
35   /PAWR
36   GND
37   A12             K
38   A13
39   A14
40   A15
41   BA0
42   BA1
43   BA2
44   BA3   
45   BA4   
46   BA5
47   BA6
48   BA7
49   /CART
50   D4             6
51   D5             7
52   D6             11
53   D7             M
54   /WR
55   CIC
56   CIC
57   CPU Clock
58   Vcc
59   PA1
60   PA3
61   PA5
62   RAudio
Title: Re: Developing more plug-ins
Post by: Matthias_H on 07/Jul/2013 08:35:01 PM
So what's the role of these additional chip select lines? You may need them to address the full ROM range, but I don't have the slightest idea about Atari's memory mapping...

Title: Re: Developing more plug-ins
Post by: mdm on 07/Jul/2013 08:54:29 PM
Looks like Atari uses bank switching, according to this site:

Still reading into this.

Edit: Found this quote on another forum: It's a straight-forward job to dump a classic 8 or 16K type, but the larger types would need the program to detect their type and either dump them in stages, or use the extra RAM of an 800XL or 130XE.
Title: Re: Developing more plug-ins
Post by: Matthias_H on 08/Jul/2013 06:26:05 AM
Well then. I guess the order to proceed is then: (1) get the thing figured out, (2) set up a prototype (I'd suggest wiring the extra select / ROM present lines to the bank address, with RD* connected via 470ohm resistors), (3) send a first dump and tell me the exact wiring, (4) install refined firmware, (5) iterate until good.