|
Post by MM007 on Dec 5, 2004 12:17:59 GMT -5
I was looking at the Misc Electronics section: devster.retrodev.com/ee.htmlWhen I found the 8-bit IDE/ATA interface. This looks impressive, but what kind of software is needed to make this work? Is there any software available? I am asking because I have something called the 8085A Cookbook, which tells how to make a 8085A computer, and I also have a pair of C-64s...
|
|
|
Post by MM007 on Dec 5, 2004 12:29:21 GMT -5
Sorry about the dbl post(guests can't seem to edit), but I forgot some more questions.
1. Can I use more than one drive like in modern computers(I doubt it)
2. If I put NES R0Ms on a hard drive with some kind of NES OS R0M selection system on that Hard Drive inside a NES/Famicom, could I run those R0Ms?
(To avoid having search engines pick up the word "R0Ms", I use "0" instead of "O", so don't get mad at me or anything...please. T_T)
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Dec 6, 2004 16:23:18 GMT -5
I don't provide any software for that interface. You will need to make your own =D. Depending on what you're using the ata interface for, and what you're going to use it on, the software is going to be different each time. I could make some routines in C for alocating files though =P, but its not going to be no FAT32 i think ide hard drive interfaces for the C-64 already exist, its gotta be somewhere on the net Its cool =D i dont care =P yea, you can use more than one drive. Like on PC computers, you can use a master and a slave. If you modify your cable a bit, you can use 4 drives on the same cable absolutely ;D but you can't just run any kind of rom, there are different memory bank controllers for nes cartridges
|
|
|
Post by gannon on Dec 6, 2004 19:08:42 GMT -5
absolutely ;D but you can't just run any kind of rom, there are different memory bank controllers for nes cartridges This is interesting. Do you think you could emulate the different maps on the hdd for most roms? Also, if you put a few multiplexors on the 8 data lines, could you effectively use both haves of the hdd by switching inbetween the two?
|
|
|
Post by MM007 on Dec 7, 2004 9:08:50 GMT -5
Its cool =D i dont care =P yea, you can use more than one drive. Like on PC computers, you can use a master and a slave. If you modify your cable a bit, you can use 4 drives on the same cable
How do I do that? As in, what kind of modifications?
I don't provide any software for that interface. You will need to make your own =D. Depending on what you're using the ata interface for, and what you're going to use it on, the software is going to be different each time. I could make some routines in C for alocating files though =P, but its not going to be no FAT32
Well, at least it is better than nothing. Besides, when dealing with files the size of NES ROMs, the sizes are generally going to be no smaller than 32K or so anyway, so I wonldn't really need small clusters like FAT32 would give.
Only thing is, I still wouldn't know what programming to do to make a bootable floppy/cartridge....or does it even need one?
I was kind of hoping to make it operate normally with a game cart inserted, and have a boot cart for when I wanted to use the Hard Drive.
|
|
|
Post by MM007 on Dec 7, 2004 9:54:34 GMT -5
I take that back, the min. size for any NES chr file is 8K(some are 0K, but I ignore those since there are no files attached to them), and a few 16K prg files. Those are for older games.
Still, the cluster size doesn't need to be that small.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Dec 8, 2004 23:57:44 GMT -5
i don't think you can emulate the different memory maps on the 6502 if that's what i think you're saying =D because you can't make a hard drive emulate anything since its only for storage. but i don't think you're going to go anywhere far with emulating a memory map that has to run on its own emulation if you know what i mean.
yes, you're right. some ide hard drives have a feature that make all data 8 bit, and omits the upper byte
for just 2 hard drives on one cable, you just use a master and slave. like you connect the drives using a ribbon cable >>exactly<< like the one people use in pc's. you then set the jumpers on you hd to specify which hd gets to be master or slave.
to use 4 drives on the same cable, you need to crimp your own ide cable and connect the CS0 of the first two drives to the regular CS0 pin, and connect the CS0 pin of the second set of drives to the unused pin 20. you can only use 4 drives only if the software made supports this hardware convention. it will not work in a regular pc =)
your cartridge will need to have some kind of boot code on a "rom" to be able to make use of the hard drive, and load games from it onto some kind of "ram". i quoted rom and ram because you may be using something else.
i dunno if that exactly answers your question. its really vague on how you want everything interfaced, whether you want a boot rom, cartridge ram to run your games, whatever.
|
|
|
Post by MM007 on Dec 11, 2004 15:00:25 GMT -5
What I was thinking is:
Hard drive with emulators and OS conencted to the HD.
Cartridge to act as a boot disk, keep the lockout chip busy, and maybe have an emulator in ROM and a small processor to permit emulation of a mapper.
There are supposedly 9 unused pins in the NES which could be used to transfer data from the hard drive or a peripheral to the cart, which can then make the ROM "look" like a normal game to the system, which will play it.
Gannon may want something slightly different though....
|
|
|
Post by gannon on Dec 11, 2004 19:13:02 GMT -5
Gannon may want something slightly different though.... On the boot cartridge you'll probably need to store the hdd's OS kernal so you can specify how to access the hard drive. It probably would be easy to use the unused nes pins to control the hdd.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Dec 13, 2004 12:23:29 GMT -5
The cartridge and hard drive have to go together in some way. you don't need to use the empty pins on the cartridge to connect it to a game console, you can use its data bus and address and control pins to interface.
to make your hard drive hardware interact with the software, you will need to write some kind of firmware that places itself in the cartridge space when the system is turned on. what your firmware has to do is locate the operating system on your hard drive, and copy it to ram memory and run it. Not to mention, your firmware has to have the hard drive routines to talk to the hard drive, unless you wanna do it with raw 1's and 0's ;D
you cannot emulate a mapper directly in rom, like, you can't emulate a system to emulate itself unless you wan't some major major slowdown - and no one does this.
then, to play a game, you'll need to switch in your designated mapper (if using more than one mapper - this can be done using lots and lots of digital switches, not very practical), copy your rom into the cartridge ram that will then act like a rom, then switch out the firmware and switch to your cartridge program ram. to make the firmware talk to your cartridge program ram, you'll need to bank the cartridge program ram somehow to fit inside the address space, also including your firmware.
|
|
|
Post by gannon on Dec 17, 2004 14:40:19 GMT -5
Hmmm..I'm thinking something like this would work. Connected to the cart. slot would be the boot circuit and loader. Connected to that would be the hdd and nes cart connector. When the nes boots up it would show a gui where you can either boot straight into the cart, or load a rom file from the hdd. I think that instead of building tons of digital switches for each mapper, it'd be easier to just make 1mb RAM carts for each mapper. Then to load a game you just need to insert the proper mappers ram cart. I'm wondering if the hdd filesystem for the C64 could be used or modded for use in the nes hdd since it is a 6502 based system also.
|
|
|
Post by MM007 on Dec 18, 2004 0:03:33 GMT -5
Not a bad idea....but I'm not sure if the C-64 HDD interface is programmed in 6502 Assembly or COmmodore Basic. Hmmm..I'm thinking something like this would work. Connected to the cart. slot would be the boot circuit and loader. Connected to that would be the hdd and nes cart connector. When the nes boots up it would show a gui where you can either boot straight into the cart, or load a rom file from the hdd. I think that instead of building tons of digital switches for each mapper, it'd be easier to just make 1mb RAM carts for each mapper. Then to load a game you just need to insert the proper mappers ram cart. I'm wondering if the hdd filesystem for the C64 could be used or modded for use in the nes hdd since it is a 6502 based system also.
|
|
|
Post by gannon on Dec 18, 2004 16:41:06 GMT -5
Not a bad idea....but I'm not sure if the C-64 HDD interface is programmed in 6502 Assembly or COmmodore Basic. hmm...if that's the case I'm wondering if the Commodore Basic could be converted into NBasic
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Dec 26, 2004 14:17:40 GMT -5
I think that instead of building tons of digital switches for each mapper, it'd be easier to just make 1mb RAM carts for each mapper. you can't do that. the mappers aren't made of huge rams, they're actually switches themselves that expand the bus, or do some video tricks. the easiest way is to get an fpga evaluation kit, and write the mapper routines into those
|
|
|
Post by gannon on Dec 26, 2004 15:03:56 GMT -5
you can't do that. the mappers aren't made of huge rams, they're actually switches themselves that expand the bus, or do some video tricks. the easiest way is to get an fpga evaluation kit, and write the mapper routines into those Why not? It was done here.
|
|