Propeller and a microprocessor
jaeg
Posts: 156
http://mini-altair.tripod.com/Version1.html
In that link someone has loaded a bootloader into a processors ram using a pic. I'm assuming this can be done with a propeller (while also possibly using it to display video for the computer). Now to my actual question. I'd like to have more that 32k loadable into the ram how can I do this?
Please note this project is just for fun and really has no practical use.
In that link someone has loaded a bootloader into a processors ram using a pic. I'm assuming this can be done with a propeller (while also possibly using it to display video for the computer). Now to my actual question. I'd like to have more that 32k loadable into the ram how can I do this?
Please note this project is just for fun and really has no practical use.
Comments
Loading more than 32K into the RAM is a problem if you want to load the RAM from the Propeller's RAM. There are other ways. You could attach an SD card and copy the data from an SD card file to the RAM. You could use a larger EEPROM on the Propeller, like a 128Kbyte device and use half of it for the data to be loaded in the RAM.
The existing EEPROM libraries can handle any size EEPROM as well as multiple EEPROMs on the I/O pins used for the Prop's boot EEPROM and EEPROMs on other pairs of I/O pins.
What an excellent little project you have linked to. Good to see another 8080, Altair, CP/M enthusiast here.
When I first discovered the Propeller I was on the verge of building myself a little 8085 system like that, my own Altair.
Then I found the Prop and realized I could use it as a boot device, as in the linked project. Not only that it could soak up a bunch of peripherals like the UART, the video and the disk storage (On SD card). All you need is the 8085, some RAM and a Prop.
But then it hit me. Whilst learning something about PASM I ended up creating an 8080 emulation to run on the Prop. Wow, now I only need the Prop, some RAM and an SD card!
And there started a long journey which included getting all the original Microsoft BASICs running on the Propeller, then CP/M 2.2 using an SD card, then WordStar, then the BDSC C compiler etc etc.
The 8080 emulation of the original PropAltair grew into a (almost) full emulation of the Z80, quite a bigger task.
Recently PullMoll on this forum wrote his own Z80 emulation which is 100% accurate. That led to such things as the complete emulation of a NASCOM Z80 computer.
Here is the long history:
Zilog In a Match box: http://hackaday.com/2009/12/27/zilog-in-a-matchbox/
PropAltair: http://forums.parallax.com/showthread.php?101495-PropAltair-CP-M-operating-system-for-Propeller-anyone
ZiCog, a Z80 in a Cog : http://forums.parallaxinc.com/forums/default.aspx?f=25&m=332138
PullMoll's qZ80 emulator : http://forums.parallax.com/showthread.php?121579-qZ80-the-third-shot
Nice little project you have linked to. You should look at ZiCog as it is quite a lot simpler and you can change the code to be 100% 8080A if you desire.
Eh I'm weird I know.
Yes, you may be weird, but you'll fit in just fine with us other weirdo's....
C.W.
Large amounts of data might prove a challenge tho. (I'm sure someone will flame me for the idea), But I am theorizing that you "could" use a hex editor to copy/paste the raw data from your EEPROM file into the prop tool along with the correct methods to get the data to it's destination. Then it would be a matter of dumping the program to the Prop, running it, and, you just might get a programmed EEPROM out of it. If you run out of program space and have to put more data on the EEPROM, you can just "Save As", make a couple alterations so that it starts off on your first empty address, and dump more data. Maybe even advance this to building your own EEPROM programmer using a Prop, an SD card (check out Kye's FAT16/32 SD object. I have read a little on it, and it is fantastic), and a couple different EEPROM ZIF sockets, like Mike had suggested.
Hrm... maybe I'll build one of these if my current project will ever go away.
I know it is a LOT of work to do it like this, but when you are as cheap and prone to accepting a challenge as I am, you certainly can get it to work.
Prop Pin Assignments:
P0--P7 = D0-D7 <-Databus
P8-P23 = A0 - A15 <- Addresses
P24 = Read
P25 = Write
P26 = I/O Request
P27 = Mem Request
Basically you would treat the peripherals like you would on a uP by using an address decoder -> http://cpuville.com/images/Z80/schematic_4.GIF
Then you can hook things up any other way you want similar to this -> http://cpuville.com/images/Z80/schematic_7.GIF
Using this I could attach SD, Keyboard, Ram, and maybe Video but I'll have to look into the that. I won't have to worry about conserving too much of the hub ram interpreting since the actual program will be kept in the external ram. A majority of how the pins works with regard to the upper half of the address bus being used to identify chip select for ram when mem request is active and the lower half for I/O request. What do you guys think?
EDIT
Sorry pictures can't be linked to
http://cpuville.com/Z80.htm
I'm refering to the control bus buff and address decoder for the first one and output port for the second link.
Not sure what the two diagrams refer to as I was unable to link to them, but sounds very much like you could go ahead and plug in an 8255 for memory mapped I/O in such a design. I might hesitate to do such a thing here, as I think the propeller allows me to access KB,VID,and SD storage with something like 10-12 pins, leaving 20 for a memory bus like you have discussed above. If you mulitplexed 8 of 'em for data with additional read cycles for word level reads/writes, then you've basically got an 8088 design and most of its ability, that should be good enough, especially if you're not using the RAM for device I/O. Maybe I'm not seeing something here, and if that's the case feel free to point it out, I'm new to the propeller but love what I've seen so far.
Steve
Now I'm confused. Is the idea to:
A) Have the Prop emulate the CPU (8008, 8080, 8085 or Z80) and then use old style peripherals with it (8255 etc)
or
Use a real CPU chip (8008, 8080, 8085 or Z80) and then use the Prop as one or more of the peripherals.
Option was my original plan before I realized one could emulate an 8085 in the Prop itself. It's also the way they were going in the N8VEM group.
http://www.parallax.com/tabid/708/Default.aspx
I think doing the VIC II with a prop is doable, BTW.
Cluso99 has done that with a ram chip and it works well. He ended up with just a handful of precious pins leftover, so then went on and designed some "1 pin" things - from memory I think a video driver and keyboard driver.
I have a design for a MPM computer and propeller hybrid where the Z80 and ram chip do their thing, and the propeller is used to load it up at the beginning and act as a peripheral. I've even had some boards made but I haven't soldered them up.
For peripherals, everything is a compromise - more pins = more speed, but more pins uses up pins that you might be able to do more clever things with, eg mouse, keyboard, directly driving a video display rather than needing another chip devoted to video.
There are a number of designs out there and I think they have explored many of the options - eg devote a couple of pins to serial ram. Or 12 pins and decode them with other chips to give you all the address lines (dracblade). Or devote pretty much all the pins as you describe.
The great thing about the propeller is that all these things are possible and you can reconfigure the chip in software.
Heater has given a very good summary of what has been done so far.
If you really wanted to you could use something like Rayman's flash/ram boards which gets loaded with code from switches or some other means and the Propeller interprets the code like a regular microprocessor (not really a new idea) but even if you just use a 32k chip that's like a fresh propeller after most of the actual propeller's ram is used up with video drivers, ram management, and interpreter. (still nothing really new haha)