Hardware upgrade for the Oric?

This is the right place to discuss on how to implement hardware vsync, adding a VIA or AY chipset, puting multiple roms, or how to design a new flash expansion card.
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

Hmmmm MMC :)
Oh and it has a page on UARTs as well... not as easy :)
Last edited by mmu_man on Sat Oct 06, 2007 6:11 pm, edited 1 time in total.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

If you want to build a Telestrat, everything but the ULA is pretty much off the shelf and you could wirewrap one easy enough. I just have no interest in the project at all. The machine pretty much sits in computer collections at this point and if you write any software for it a handful of people will be able to run it. If you want a Telestrat, go buy/build one.

Adding a floppy interface to an ORIC is pointless. It's far more complex than an SD/MMC interface, you can't buy the original drives or disks anymore and even 3.5" drives are on their way out in favor of FLASH drives.

What I'm proposing is using a *SIMPLE* SD interface, a port to page memory including the overlay RAM and FLASH memory to hold the DOS.
*Possibly* a fixed speed serial port for hooking up to a PC and more paged RAM.

I'm talking very little circuitry here. Address decoding (simple AND OR NOT logic), an 8 bit latch for the page register and a VERY SMALL UART or two with a clock source. Everything else is just running wires to pins.

I even found a small 32K 5V flash device that could be used rather that a large expensive one.
Last edited by JamesD on Sat Oct 06, 2007 6:08 pm, edited 1 time in total.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

mmu_man wrote:I just checked mine, and it doesn't have the ULA on socket.
Only the single ROM is on socket.
Then I guess you'd need an external version or I'd have to connect to the address lines somewhere else. I'll have to see which ones go to the ROM.
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

JamesD wrote:I just have no interest in the project at all. The machine pretty much sits in computer collections at this point and if you write any software for it a handful of people will be able to run it. If you want a Telestrat, go buy/build one.
Fair enough, but if noone can make his oric telestrat-compatible you'll never see telestrat progs... chicken & egg.
Adding a floppy interface to an ORIC is pointless.
That's why I said "except the fdc". Also because I have a jasmin.
It's far more complex than an SD/MMC interface, you can't buy the original drives or disks anymore and even 3.5" drives are on their way out in favor of FLASH drives.
SD isn't as easy as it seems, just see above. You get less wires and chips, but you have to care about voltage adaptation, and also make a driver for it.
What I'm proposing is using a *SIMPLE* SD interface, a port to page memory including the overlay RAM and FLASH memory to hold the DOS.
*Possibly* a fixed speed serial port for hooking up to a PC and more paged RAM.
Not necessarily mutual exclusive...
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

JamesD wrote:Then I guess you'd need an external version or I'd have to connect to the address lines somewhere else. I'll have to see which ones go to the ROM.
All but the higher 2, for 16K.
So you miss A15, A14, but also /MAP. You have a /ROMDIS input though (one of the CS) :)
Also no W/R or I/O, nor IO/CONTROL.
Cf. http://rrzs42.uni-regensburg.de/~hep095 ... ic1-2s.gif :D
However I've been thinking about a way to still keep things solder free, seeing the keyboard plane under, and the thick double-side-glued tape... I'll need to dig one or to IC sockets to experiment. But if it's reliable we can possibly get the whole cpu bus, and even VIA outputs (PB5 is usually free, hint).
Oh, btw, I noticed large empty space under (or above, depending which side you look at) the keyboard plane, down to the casing, we could fit some big ICs there too.

On SD again, as said above, it needs 3V to work. depending on the required current, we might need a regulator, but if it's not too much a zener diode might suffice. Nor sure how they differ in dissipation looses though.

OTH I've been checking that OS/A65 pages... I like the 8 aux cpu board idea... I'd do it differently though. But having an 8way SMP ORIC would be l33t :D I was thinking about using SIMM-like boards to put cpus on.
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

OTH I can always check the dozen of atmos somewhere I know, likely one will have a socketted ULA... :twisted:
The only thing I wonder is if it's possible to make a cpu replacement that plugs in (the cpu and via exchange several clock signals, so that needs thinking).
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

mmu_man wrote:
JamesD wrote:Then I guess you'd need an external version or I'd have to connect to the address lines somewhere else. I'll have to see which ones go to the ROM.
All but the higher 2, for 16K.
So you miss A15, A14, but also /MAP. You have a /ROMDIS input though (one of the CS) :)
Also no W/R or I/O, nor IO/CONTROL.
Well, there could be some jumper lines that could be soldered to the back of the expansion connector or go to a ULA board if you are lucky enough to have a socket.
I think the /ROMDIS could be used to disable the board's boot page in case you plug in an external board that needs to boot.
That would keep it compatible with existing add ons.
On SD again, as said above, it needs 3V to work. depending on the required current, we might need a regulator, but if it's not too much a zener diode might suffice. Nor sure how they differ in dissipation looses though.
The PLD is 3.3v but 5v tolerant. That gets everything but the power 3.3v and a zener diode or resistor *should* drop 5v to 3.3v easy enough.
The FLASH chip I'm looking at is 5v... or everything could be 3.3v and buffer the lines with chips that work between 5v and 3.3v.
This should actually use less power than 2 EPROMs.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

BTW, one other little tidbit. If there is a control line free somewhere we can add an 8bit D/A converter and tie it's output to the audio out section of the sound chip. A much easier way to generate sampled sounds than using the GI sound chip.
http://www.epanorama.net/circuits/dacs.html
Last edited by JamesD on Sun Oct 07, 2007 1:48 am, edited 1 time in total.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

All sorts of 5v to 3.3v discussion here:
http://www.edaboard.com/ftopic59202.html
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

Well, I'm looking over the VHDL code for a UART. I think it's a little larger than I thought it would be but some stuff will probably be removable once I look at the SD/MMC protocol.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

A simple VHDL UART (warning, the code posted went through babelfish)
http://xbelanch.wordpress.com/category/fpga/



library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

— - Uncomment the following library declaration if instantiating
— - any Xilinx primitives in this code.
–library UNISIM;
–use UNISIM.VComponents.all;

entity rs232vhdl is
port(clk50: in std_logic;
TXD: out std_logic);
end rs232vhdl;

architecture Behavioral of rs232vhdl is
clk_serial signal: std_logic; –reloj for the serial port
signal flagDATA, flagSTOP, flagSTART, unlock: std_logic;
signal index: std_logic_vector (2 downto 0):=”000″;
signal count: std_logic_vector (11 downto 0);
serial_data signal: std_logic_vector(7 downto 0);
signal count9600: std_logic_vector (13 downto 0):=”00000000000000″;
begin

CLK: process (clk50)
begin
if clk50′event and clk50=’1′ they then
count < = count + “000000000001″;
if count = “101000101001″ they then — 2602 ma or meno
if clk_serial = ‘0′ they then
clk_serial < = ‘1′;
else
clk_serial < = ‘0′;
end if;
count < = “000000000000″;
end if;
end if;
end process CLK;

TRX: process (clk_serial)
begin
serial_data < = “01000001″;

if clk_serial’event and clk_serial = ’1′ they then
count9600 < = count9600 + “00000000000001″;
if count9600 > = “10010101110111″ they then — 9591
if (flagSTART = ‘1′ and unlock=’0′) they then
TXD<=’0′;
flagDATA<=’1′;
flagSTOP < = ‘0′;
flagSTART<=’0′;
unlock<=’1′;
end if;
if (flagDATA = ‘1′ and unlock=’1′) they then
TXD < = serial_data(conv_integer(index));
if index=”111″ they then
index<=”000″;
flagDATA<=’0′;
flagSTOP<=’1′;
unlock<=’0′;
end if;
index< = index+”001″;
end if;

if (flagSTOP=’1′ and unlock=’0′) they then
TXD < = ’1′;
flagSTOP<=’0′;
flagSTART<=’1′;
unlock<=’0′;
end if;

if count9600 = ”10010110000000″ they then –9600?
count9600 < = ”00000000000000″;
end if;
end if; –end TXD

if (flagSTART = ‘0′ and unlock=’0′) they then
TXD < = ‘1′;
flagSTART<=’1′;
end if;

end if; –end clk
end process TRX;
end Behavioral;
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

Well, I purchased a device burner, a bunch of flash memory and some small GALs.
I'm going to start out with a simple compact flash interface for another system and then see about the Oric. CF doesn't require as much logic.
The other system has a Z80 and thanks to the Speccy people I can borrow some of their code.
Post Reply