C64 Datasette emulator with the Propeller
Ahle2
Posts: 1,179
I'm about doing my first project with the Propeller chip.
What i'm trying to do is to build a replacement Datasette unit for the Commodore 64, which read TAP files from a MMC card.
The coding part is not the big issue here, but the hardware part is
Therefore i'm hoping for some hardware guru to have a look att my schematic.
I don't know wether or not this could work (i havn't done anything like it before).
Can i use an OP-Amp to adjust the levels from 3.3V to 5V and vice versa?
I have attached a JPG file with the chematic
What i'm trying to do is to build a replacement Datasette unit for the Commodore 64, which read TAP files from a MMC card.
The coding part is not the big issue here, but the hardware part is
Therefore i'm hoping for some hardware guru to have a look att my schematic.
I don't know wether or not this could work (i havn't done anything like it before).
Can i use an OP-Amp to adjust the levels from 3.3V to 5V and vice versa?
I have attached a JPG file with the chematic
Comments
My stopping point was not finding good documentation on the Commodore tape drive data.
Nice project! I'm looking forward to trying it myself!
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
Your TLC074 Circuit uses the OPAMPs as Comparators, but this will only work if you compare with a level around 1..2V, not with the compare-pins tied to Ground (see the red corrections).
But I would it make much simpler as in the second attached Picture...
Andy
Here is the schematic of the cassete port and the connections inside the C64!
http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/250469-rev.A-left.gif
You can insert 2 resistors also in the Read and Sense line. Because of the 3.3k PullUps in the C64 this serial resistors should max. be 470 Ohm.
If you still want some buffering between the Propeller and the C64, you can use a CMOS buffer: 74HC04, 74HC14, CD4049, CD4050...
(all, exept the last one, inverting the signals). The 2 10kOhm resistors are still necessary.
Andy
IANEE:
I had no issues connecting the prop directly to the C= userport using 10K resistors to level the voltage to safe levels.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
If anyone wants to try it out,·i have included·a binary file!
Instructions:
1 Connect Pin 1 to the Read Line (1k resistor)
2 Connect Ground to Ground
3 Connect Sense to ground
4 Connect a headphone if you want to hear the signal (very loud)
5·Enter LOAD on the C64
5 Run the code on the propeller
6·Press space immediate after the loader have found something (No wait for the Motor)
7 Wait for it to load
8 Run, and see what·happens [noparse]:)[/noparse]
The loader says " ?Load Error ", nothing to worry about, because it's just the checksum byte that fails for some reason (I'm working on it)
I'll hook this up tonight and give it a spin..
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
After thinking about this a bit, I realized that Pin 1 *is* P0 on the chip itself... duh!
(Does this earn me a peek at the source code?) [noparse]:)[/noparse]
Nemesis... Good choice of test files...
Awesome! Can't wait to see this develop.
BTW: The old SHIFT-RUN/STOP trick takes care of the load error here.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
Post Edited (Oldbitcollector) : 1/3/2008 5:12:54 AM GMT
Hardware:
MMC card reader.
Some kind of display (to chose files).
Play, Rec, Fast forward, Fast backwards and Stop buttons.
A port to connect a real datasette (Copy from/to MMC card??).
Indication leds for Rec/Recieve and Play/Transfer data.
An USB connector (upgrade EEPROM).
Software:
Transfer P00, T64 or PRG files using either Kernel loader or Superloader (someone interested in programming one?).
Transfer TAP files V1 and V2 (I have plans to make a V3, which uses huffman compression, it will reduce the size up to 20 times).
Record directly to TAP V1 or V2 (V3?).
Record directly to PRG, T64 or p00.
A menu to chose files from.
So far i have successfully made a Kernel Loader routine (No load error anymore) and a TAP loader routine.
The Kernel routine can just handle PRG files at the moment, but T64 and P00 shouldn't be any problem to incorparate (just different headers, otherwise identical to PRG files).
My next step is to connect the MMC card reader.
PS. Oldbitcollector, i'm sorry but you can't see the sourcecode (yet? We have to discuss this matter privately)
Check out: http://galaxy22.dyndns.org/dtv/
Quite interesting the hacks they did to it, makes me want to get one for my son(and I ). I just didn't want to get a floppy drive before.
It would probably be marketable also.
Thanks,
Doug
But first i'll have to make an emulator for the MOS6510 CPU, it's the heart of the 1541..
Actually, the C64 had a 6510, the 1541 had a 6502. Same processor supposedly, just different pinout.
Although, I doubt that the 30 games on the DTV C64 have another processor to emulate the one in the floppy.
There is a program on the pc to emulate the 1541 using a special cable here http://sta.c64.org/xcables.html
Maybe that is portable.
Take Care,
Doug
The only difference between them is that the 6510 has some built in I/O ports. The Opcodes are identical !
I have made a 6502 emulator in C++, but i think it would be a hard/impossible task to make it run in less than 500 instructions (1 cog), but maybe with some help of the other cogs [noparse]:)[/noparse]
Is the Prop strong enough for something like X1541 compatibility? (8 data lines)
or maybe with a little documentation from Daniel Kahlin, an Over5
Prop server might also be a possibility.
The 1541 contained a dozen+ chips, and the Propeller seems to be able to replace them all..
(Amazing times)
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
Cheers,
Luigi
I wasn't aware of your project, until i began doing some research for my own project.
I'm not trying to steal the show or anything, but this is just something that i have had on my mind for some years now.
Are you interested in the development of TAP V3??
BTW. I like what you have accomplished, awesome !!!
no worries, I don't feel like anybody is stealing anything. This is an awesome project, as I said.
I wish I had some time to check out the Propeller, or to help with the TAP V3. Unfortunately I am pretty busy and my spare time is less than a couple of hours per week now.
Cheers,
Luigi.
Do you think you could part with one of the connectors ?
I finally got a hold of a working C=64 and would like to give this a try...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
I do remember getting it to work and loading the Red Barron program.
[noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Aka: CosmicBob
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
Any comments please?
Just going to wait for my protoboards and give this a try later this week...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
Luigis DC2N,
www.luigidifraia.com/c64/dc2n/index.html
M
I'm going to give this a try over the weekend...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
I got my Datasette cable hooked up,
1. Black - GND, connected to GND on protoboard.
2. Green - +5V, not used
Notch
3. Red, Motor control, not used.
4. White, Read from cassette, connected to pin 1 (P0) via 1K (brown, black red) resistor.
5. Brown, write to cassette, not used.
6. Blue, cassette switch, connected to GND.
I uploaded DataSette.binary to the EEPROM of the Protoboard.
When I type Load on the C=64 the screen goes blue and I turn on the Protoboard...
Nothing happens but the C= seem to freeze...
Looks like the C=64 never find anything...
Any ideas ?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
right moment as specified earlier in this thread? If memory serves, you have it
hooked up correctly.
Shame that the source for this was never released.. He appears to have moved onto
other projects. I've been off-and-on working on a .TAP reader based on this project,
but have had trouble with figuring out exactly what kind of DATA the 64 is expecting
when I get to the data portion of the TAP file.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with a Propeller Protoboard?
Check out: Introduction to the Proboard & Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card connected? - PropDOS
Let me re-program the Protoboard with the binary again and give it a try again.
Sounds like an interesting project though.
I'm going to have a look at the .tap format and see how it looks like.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse