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.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Hardware upgrade for the Oric?

Post by JamesD »

I've noticed that new game development seems to run into the same problems. Memory, disk drive, sound and music.
The last ones are unrelated but would a hardware project that adds a compact flash or SD interface, flash memory and more RAM help?
User avatar
Dbug
Site Admin
Posts: 4459
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Yes and no.

A working 48k Atmos + Microdisc is a perfectly good combination, good enough for doing any kind of game. With the overlay memory, there is enough memory, the microdisc is fast enough, and the sound is quite ok.

The real problem is that it's hard to find a working configuration, the hardware tend to fail quite often, and there is not so many people equipped with a floppy disk drive.

So what would be nice, is a cheap, reliable, 100% compatible microdisc device. Could be floppy based, sdcard based, etc... but just compatible microdisc would fine.

Now, as a developer, having a reliable and fast way to transfer data from my PC to the Oric would be a real plus.

For the sound, the problem is not a hardware problem, it's purely software. There are a lot of people doing music for the C64, for the MSX/Sinclair, but nobody except twilighte is doing music for the Oric.

Give me a good pc YM editor (like Vortex Tracker), with a well documented format (not like Vortex Tracker), I would consider doing an Oric 6502 replay routine.

I say PC, because it means we can ask anyone to compose for us, using an Oric based editor limits to Oric owners or people of will bother using emulators (which we all know are quite weak at emulating all the richness of the YM sound).
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

One of the popular items on Tandy Color Computer is a product called Drive Wire. It is just software that replaces the standard DOS and emulates a drive connection over the CoCo serial port to a PC running a program that lets you mount disk images. You can use a mix of real and emulated drives.

A serial port + ROM board that plugs into the back of the machine along with a rewrite of the ORIC DOS could do the same.

With an IDE port you could add compact flash. The interface isn't that difficult to make. Supporting a PC format would require a totally new dos.

Is there source to any of the DOS's or a commented disassembly anywhere?
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

This looks like it would do the trick for a serial port:
http://oric.free.fr/hardware.html

Modify this Apple II IDE (change the address decoding) and add a compact flash connector to it. There's even some 6502 assembly source that could be used:
http://s.guillard.free.fr/Apple2IDE/Apple2IDE.htm

It would need a ROM to hold a DOS or bootstrap program. FLASH would be the best so it could be updated.

Since the circuit gets more complex the more that's added a small CPLD (under $3) might be a better choice for logic. With a large FLASH device it could even support paging the ROM.

There is a FLASH cart being developed for the CoCo right now and there is source for the CPLD that could be modified for this application.
http://members.iinet.net.au/~msmcdoug/coco/coco.htm

BTW, an additional input connection could be added to be attached to the VSYNC so that an interrupt could be generated on VSYNC.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

I see someone is already working on IDE for the Oric.
http://www.bedroomlan.org/~alexios/hard ... c-ide.html

However, after looking inside my Oric 1 I have doubts about squeezing such a large form factor + wiring inside.

MMC on the other hand *might* fit internally.
Something similar to this could be built but that CPLD looks kinda large for just a couple serial ports but they have a joystick interface in there as well. By placing the MMC socket on a separate board and making a better board layout I'm betting it could be a fraction of that size. It would have to plug into the ULA socket.
http://www.zxbada.bbk.org/zxmmc/index.htm

I see from the schematics the ULA is connected to the top 8 bits of the address buss. Does it have an output that signals when an address is FFxx?
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

This has now morphed into a hardware topic and if a moderator could move it that would probably be best.

I have access to a good EE person I think I can ask for help from so I might be able to work out a CPLD that offers an MMC interface and a serial port.
I'd like to add bank switched memory but I think that would require sitting between the CPU and the board... and the CPU is soldered in.
User avatar
Dbug
Site Admin
Posts: 4459
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Done.
I hope it will not cause any-problem, phpbb is a bit "limited" in the way it's implemented :)
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

I've been thinking for a while about a stratos-compatible extention board for atmos... sounds doable to me.
I'd really fancy a serial port, joystick, RTC.
And since I only have a jasmin drive it would be handy to have an alternative.

As for bank switching, disk controllers just do that when they map their EPROM into the address space. That's what /MAP is for. In the same way we could map telestrat cartridges or also RAM pages with a selection register.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

mmu_man wrote:I've been thinking for a while about a stratos-compatible extention board for atmos... sounds doable to me.
I'd really fancy a serial port, joystick, RTC.
And since I only have a jasmin drive it would be handy to have an alternative.

As for bank switching, disk controllers just do that when they map their EPROM into the address space. That's what /MAP is for. In the same way we could map telestrat cartridges or also RAM pages with a selection register.
From the FAQ it looks like /ROMDIS is active on startup so the disk controller ROM is available. It loads DOS to RAM, /ROMDIS is made inactive, the boostrap makes /MAP active to switch to overlay RAM and most of DOS is moved into overlay RAM.

The Telestrat (mostly the same as the Stratos?) uses a 2nd VIA. The schematic seems to show all the address, data, IRQ, etc... lines going to the expansion connector. However, the first one is controlled but the ULA on the Oric 1. Is the Telestrat ULA the same on the Telestrat?
mmu_man
Flight Lieutenant
Posts: 322
Joined: Thu Sep 21, 2006 7:45 pm
Location: 26000 Valence, FRANCE
Contact:

Post by mmu_man »

Not exactly.
To map the EPROM, both /MAP and /ROMDIS must be active.
/MAP is used to map something else in place of the RAM.
Later, the controller releases /MAP, and asserts /ROMDIS depending on its register to use either the basic ROM or the overlay RAM.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

mmu_man wrote:Not exactly.
To map the EPROM, both /MAP and /ROMDIS must be active.
/MAP is used to map something else in place of the RAM.
Later, the controller releases /MAP, and asserts /ROMDIS depending on its register to use either the basic ROM or the overlay RAM.
Ok

When /MAP AND /ROMDIS are active, that 16K is mapped to an external device.

When /MAP is inactive and /ROMDIS is inactive, that 16K goes to the standard ROM.

When /MAP is inactive and /ROMDIS is active, that 16K goes to the overlay RAM.

Soooo... if we want to add an external memory expansion we just create a controller for manipulating those lines and a page register to page external memory.

A 1 byte page control register allows up to 256 different pages. 256 x 16K = 4096K or 4MB of expansion. That could be FLASH memory, RAM or a combination of the two. To boot from the device, FLASH would need to be in the lower portion of the device memory map.

I really don't think a large flash device would be required but any additional space could be filled with utilities.
User avatar
Dbug
Site Admin
Posts: 4459
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

JamesD wrote:I really don't think a large flash device would be required but any additional space could be filled with utilities.
Yep, kind of "Ultimate Ripper", or "Action Replay" cartridge.
Could contain a disassembler, a debugger, memory sprite ripper/inspecter, save/reload feature (freeze the state of the machine, copy to the cartidge, continue playing latter), poke finder (the old trick to find unlimited lifes).

Sounds cool :)
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

The FLASH was to be used to hold the DOS for the MMC interface and communications to a PC. This would make it easier to develop on the PC and transfer software to the Oric. I thought if I were going to do this I'd add RAM as well.
I think the mods to the CoCo CPLD would be small so we wouldn't be doing everything from scratch. I'll have to look at the VHDL.

To be honest I wasn't really thinking of of a ripper but I suppose it could be used for that. Something could be set up for accessing programs on other pages. Disassembler, assembler, monitor, alternate BASIC, compiler... whatever people write for it.

Am I to understand that the /MAP and /ROMDIS lines are input only and the only way to use overlay RAM is with an external device is attached?
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:Am I to understand that the /MAP and /ROMDIS lines are input only and the only way to use overlay RAM is with an external device is attached?
Yes.
The drive controller asserts them when it decodes ROM addresses.
JamesD
Flight Lieutenant
Posts: 358
Joined: Tue Nov 07, 2006 7:38 am

Post by JamesD »

mmu_man wrote:
JamesD wrote:Am I to understand that the /MAP and /ROMDIS lines are input only and the only way to use overlay RAM is with an external device is attached?
Yes.
The drive controller asserts them when it decodes ROM addresses.
Want a circuit that will let you turn the ROM off and on without a drive attached?
With some address decoding, a latch outputting to the /ROMDIS line triggered when that address is read or written too it could be enabled or disabled.

To make it as small as possible (i.e. internal) I might need to know more about the ULA but even without it's help we are talking about 2 or 3 chips.

Has anyone ever released such a hardware project before? I'd be shocked if they didn't since it's pretty simple.
Post Reply