|
Post by simon82 on Apr 19, 2008 15:12:17 GMT -5
Hello I'd like to know your opinons about an idea. Flashing and modding the kernel would it be possible to use 6502 emulation to send data through the iec acting like a 1541 drive? Make a 1541 emulator with a the DTV asic?
I know that it would not be so "easy" but what do you think about it?
Bye
|
|
|
Post by tlr on Apr 20, 2008 2:36:55 GMT -5
That's a rather cool idea. It will have limited hardware level compatibility though. There are a couple of features in the 1541 that are hard to emulate, like VIA's, and the 6502 SO line.
|
|
|
Post by shadowolf on Apr 20, 2008 4:44:02 GMT -5
Problem is, the C64/DTV do not have the same I/O mapping, the 1541 is not a stripped C64. So you just can't execute code that is for the 1541 on a DTV, it has to be interpreted first. And for that additional step the DTV-ASIC is way too slow, as an original C64 would be.
Then the supply of DTV's is awfully limited. I only wish they had considered stuffing the remaining ASIC's in TQFP-100 packages...
Currently there are three options:
- Emulation the 1541 on the micro-controller of the target system which requires a large amount of memory and computrons so AFAIR no-one did this so far.
- Full Emulation thru FPGA which is still rather expensive and on some levels odd since this goes down to emulating a GCR encoded data-stream.
- Replacing the code for the 1541 with code adapted for the target system which is what is be done currently for the MMC2IEC/SD2IEC. While this gives an additional speed benefit since Speeders are usually reduced to their transfer-functions, this is more suitable for widespread code. Jiffy for example works fine now, a demo using specialised code in the floppy probably never will be.
|
|
|
Post by simon82 on Apr 20, 2008 7:28:25 GMT -5
Problem is, the C64/DTV do not have the same I/O mapping, the 1541 is not a stripped C64. So you just can't execute code that is for the 1541 on a DTV, it has to be interpreted first. And for that additional step the DTV-ASIC is way too slow, as an original C64 would be. Then the supply of DTV's is awfully limited. I only wish they had considered stuffing the remaining ASIC's in TQFP-100 packages... Currently there are three options: - Emulation the 1541 on the micro-controller of the target system which requires a large amount of memory and computrons so AFAIR no-one did this so far. - Full Emulation thru FPGA which is still rather expensive and on some levels odd since this goes down to emulating a GCR encoded data-stream. - Replacing the code for the 1541 with code adapted for the target system which is what is be done currently for the MMC2IEC/SD2IEC. While this gives an additional speed benefit since Speeders are usually reduced to their transfer-functions, this is more suitable for widespread code. Jiffy for example works fine now, a demo using specialised code in the floppy probably never will be. Thank you for your thoughts . But replacing all the kernel, could it be possible to adapt 1541 "similar" mapping requirement and communication to load images from a memory? I think that the DTV asic when work in full mode could have the power to emulate it.
|
|
|
Post by shadowolf on Apr 20, 2008 7:57:14 GMT -5
What "full mode"? The ASIC is a hardware emulation of a C64, a 6502 core and peripherals. You can not change that, it's hardwired. The only access you have is thru running code on the emulated 6502.
For example the two 6522 CIA's in the 1541 are located at $1800 and $1C00. This is just memory for the C64. While you can read and write there it won't do anything unless you have an additional layer of software that takes care of the remapping. But this would completely mess with the timing if it is possible at all.
And then again, DTV's are sold out already.
|
|
|
Post by simon82 on Apr 21, 2008 0:40:00 GMT -5
What "full mode"? The ASIC is a hardware emulation of a C64, a 6502 core and peripherals. You can not change that, it's hardwired. The only access you have is thru running code on the emulated 6502. For example the two 6522 CIA's in the 1541 are located at $1800 and $1C00. This is just memory for the C64. While you can read and write there it won't do anything unless you have an additional layer of software that takes care of the remapping. But this would completely mess with the timing if it is possible at all. And then again, DTV's are sold out already. And it would not be possible to make this overwork through an external pcb that could translate input and output data to the one "accepted" by the dtv asic?
|
|
|
Post by shadowolf on Apr 21, 2008 1:29:27 GMT -5
Even if you stuff in some powerfull CPU in the middle to translate I/O adresses on the fly it won't work since the hardware is just not the same, you can not run code that is meant to work in the floppy on the C64 itself.
It's like asking for a Atari2600 emulator for the C64, just because they share the same CPU does not mean everything else matches as well.
|
|
|
Post by simon82 on Apr 21, 2008 4:16:31 GMT -5
Even if you stuff in some powerfull CPU in the middle to translate I/O adresses on the fly it won't work since the hardware is just not the same, you can not run code that is meant to work in the floppy on the C64 itself. It's like asking for a Atari2600 emulator for the C64, just because they share the same CPU does not mean everything else matches as well. Yeah, understood. I hoped that something could be done with the asic also for this task but it was a technical theorical discussion, nothing more. I'm following 1541 Ultimate project that do what I was asking even if the complexity of the project is really big, requiring a FPGA and a complete new core project.
|
|
|
Post by David Murray on Apr 21, 2008 8:35:13 GMT -5
well, I have no doubt the DTV could be programmed to behave like a Commodore disk drive and accept load and save requests. But so could a generic C64 or Vic-20 for that matter.
However, that is different from full emulation which may or may not be what the original poster was asking about.. I didn't see any mention of how accurate they wanted the emulation to be. I see no reason why you couldn't store a .D64 image on the DTV and have it act like a 1541 disk drive. The only time there would be a problem is with fast-loaders and other types of programs that expect to upload new code to the drive and have it execute that code.... even then, some types of code might still be workable as long as they didn't directly write to hardware. I am not sure what percentage of 1541 code actually does this, rather than call the built-in routines..
Still.. It'd be a waste of a good DTV which are in short supply now. A job better left to a microcontroller.
|
|