Congrats Bill on this impressive achivement. Your design will take the Propeller much further. I like the size of your boards, the fact that you're using the spinstudio boards, that you've taken the time to get high bandwidth working, and that you're taking graphics to the next level with multiple sprites and full pixel-level access to 1024x768 video. Good job!
Hanno
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Download a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!
I will make sure I tell everyone that ViewPort was used during the development, and that it made the development go faster and easier... because it did!
Unfortunately right now the XGA mode is slow, as I am only writing to the bitmap once per horizontal sync, and not using (yet) the bandwidth available during the VFP, VSYNC and VBP lines... but I will use them, and I figure I can write at least 10-20 bytes during each HSYNC period as well.
That mode is NOT good for high speed animation.
The upcoming 256x192 by 256 colors per pixel / lots of sprites mode IS for animation and games
I think I'd better go to bed now, I give up on updating my site tonite - my host is having issues.
Hanno said...
Congrats Bill on this impressive achivement. Your design will take the Propeller much further. I like the size of your boards, the fact that you're using the spinstudio boards, that you've taken the time to get high bandwidth working, and that you're taking graphics to the next level with multiple sprites and full pixel-level access to 1024x768 video. Good job!
Hanno
any chance this could be used for 1600x1200 images with minor transition effects?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5
Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.
Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
1600x1200 two colors per pixel should be possible as that requires 14.4MB/sec for refreshing the screen at 60Hz, and some slow transitions would be possible.
More bits per pixel is not feasible as even four colors per pixel would require 28.8MB/sec for refreshing at 60Hz.
mctrivia said...
any chance this could be used for 1600x1200 images with minor transition effects?
That means a lot, because I really like your TriBlade, I just had a different design goal - thus the latches [noparse]:)[/noparse], as I needed ten pins for the 256 color VGA.
Cluso99 said...
Congratulations Bill - very impressive. Cannot believe how you managed to keep it under your hat for so long.
The prop certainly has grown up in the last 6 months !!!!!
I forgot to mention, I kept ZiCog and MotoCog in mind - if an emulation does not need high resolution graphics, it can use all of the bus bandwidth for the emulator, and just run a text mode or regular Propeller tile / low rez bitmap graphics on the VGA.
Morpheus will make a great platform for emulations; ZiCog and terminal will run on one board.
Personally I hope someone tries to make an Amiga emulator that will run on Morpheus, my calculations show it may be possible. I used to be part of Commodore's Amige developers program, and have fond memories of the Amiga.
heater said...
Good grief Bill, there is a LOT in there. I'm amazed you managed to keep your hat on it so long?
Can hardly wait for another tomorrow.
Way to go! Fantastic! Can't wait to get my hands on one. I love "playing" with the Prop!!!
This platform you describe is outrageous and should really open up the realm of possibilities.
Did I say I can't wait to get my hands on one!!! The kids in our robotics group will be exposed
to even more possibilities. Thanks for you hard work, late nites, all nites , etc
as an old, and somewhat burnt out, developer, I have to say that you're certainly supporting one of Parallax's motives: to bring the fun back into computing!
I don't know if things are set up this way, but it would be very helpful to have the board and your platform work 'out of the box' so to speak. Keep the download and setup as simple and automated as possible. I'd like to be able to plug it in and go.
Ok still can't make high res picture frame with prop.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5
Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.
Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
Thank you! I'm waiting for my web host to fix whatever is wrong, because the Wordpress admin screens are unusably slow right now - after that I will start building the Morpheus information pages, and put up ordering instructions [noparse]:)[/noparse]
I expect to offer a servo controller board for the stack at some point, and prototyping boards (for the stack) that can be used to interface to servos easily are already in the works, I should be ordering the rev 1 PCB's this week.
Bill
TrapperBob said...
Bill,
Way to go! Fantastic! Can't wait to get my hands on one. I love "playing" with the Prop!!!
This platform you describe is outrageous and should really open up the realm of possibilities.
Did I say I can't wait to get my hands on one!!! The kids in our robotics group will be exposed
to even more possibilities. Thanks for you hard work, late nites, all nites , etc
I plan on offering fully assembled and tested boards in a week or so, with a demo in the eeproms. Until the volumes get high enough I will have to hand assemble and test them myself.
After Largos is released, assembled units will come pre-loaded with Largos and a lot of software, and kits will have the option of a pre-loaded flash chip.
Thank you for your kind words!
Bill
CounterRotatingProps said...
Hi Bill,
as an old, and somewhat burnt out, developer, I have to say that you're certainly supporting one of Parallax's motives: to bring the fun back into computing!
I don't know if things are set up this way, but it would be very helpful to have the board and your platform work 'out of the box' so to speak. Keep the download and setup as simple and automated as possible. I'd like to be able to plug it in and go.
Boards are available now, full kits available in a week or so. The BOM and initial build instructions will go up on my site by the end of the week.
Bare board prices:
Morpheus $29.95 + s/h
Mem+ $24.95 + s/h
"Bundle" of Morpheus and one Mem+ board $49.95 + s/h
I am trying to keep prices as low as I can, however I have to leave a little room for quantity discounts for distributors. Distributors will be asked NOT to charge more than the MSRP's above, and anyone can contact me if they need a lot of boards or want to sell them. There will be educational discounts for schools.
Payment is by PayPal, but I need exact shipping address (should be same as PayPal address, no PO boxes please) so I can figure out the shipping [noparse]:)[/noparse]
s/h will be as low as I can manage but has to cover the packaging materials and shipping cost.
Best,
Bill
TrapperBob said...
Bill,
Please put me on the list for a board and notify us when the boards are ready to purchase! Let us know how much $ / and how to pay (paypal)!
Kuroneko asked me about some details on the 20MB/sec burst mode, and as I replied to him, I realized I should post the information here too. Here's how I burst data at 20MB/sec:
I built a 3 cog burst engine that you give the following information:
- hub address
- xmm address
It then takes 12.8us to read 256 bytes from XMM into the cog, and 6.4us to write it to the main memory; the 6.4us is available for other cogs to use the bus.
The address cog first latches the 16 bit page address into the two 74HC574's, then generates the byte address by outputting to P8-15 (lowest eight bits of the 24 bit address bus), the two other cogs just pick up the data and write it to the hub
(and the reverse when burst writing)
Theoretically, 99% of the 20MB/sec bus bandwidth can be achieved by using five cogs, by overlapping the second set of cogs with the time spent by the first set to update the hub; only the "set page register" (3-5 instructions depending on weather you already have the next page address in a cog register) time is unavoidable overhead once the cogs are synchronized.
3/256 = 1.1718%, so 98.8% (99% between friends) bus bandwidth efficiency, for a sustainable 19.765MB/sec reading or writing - rounds to 20MB/sec
Thank you. I've been playing with designs for Propeller single board computers for almost three years, Largos and the Morpheus line is the final end product of a LOT of hard thinking and planning (read as research and development). I've been working about 70-80 hrs/wk since end of February to UPEW to make it happen. If I had not been sick as a dog for a week and my rev 1.00a PCB's were not 1.5 weeks late I'd have had more done.
And yes, the monolithic Largos shell was booting from the main EEPROM at the show
(I deliberately misunderstood you)
Best,
Bill
RossH said...
@Bill,
The Morpheus specs look very impressive - and Largos to boot!
No you didn't misunderstand - it was a (rather feeble) pun. I'm busy working on an SD card boot loader for Catalina myself at the moment - plus I've just added FAT12/FAT16/FAT32 file system support. The next release of Catalina will provide "out of the box" support for multiple XMM platforms, including the Hydra, the Hybrid and the TriBladeProp. Once that is completed, I really hope to get time to investigate Largos (& Morpheus) in more detail. I hope that in the end Largos will make it easier to port Catalina to new Propeller environments - something that's still a little painful and tedious at present.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
Actually it will be great to get Catalina generating code for Largos, as then it will be less painful to redo Las to run natively on Largos.
Bill
RossH said...
@Bill,
No you didn't misunderstand - it was a (rather feeble) pun. I'm busy working on an SD card boot loader for Catalina myself at the moment - plus I've just added FAT12/FAT16/FAT32 file system support. The next release of Catalina will provide "out of the box" support for multiple XMM platforms, including the Hydra, the Hybrid and the TriBladeProp. Once that is completed, I really hope to get time to investigate Largos (& Morpheus) in more detail. I hope that in the end Largos will make it easier to port Catalina to new Propeller environments - something that's still a little painful and tedious at present.
I'm thinking that your form factor could drive the PSP screen on the top layer very nicely (4.15" x 2.65"). I has very lean porches, good for writing to Sram in between scans...
You said you had some nice stacking connectors... what kind of stack pitch are we looking at per layer?
Thank you! I agree, the Sony and Sharp LCD's used for PSP'2 would be a very good match, and fit nicely - I was reading their data sheets a couple of months ago. The only real snag is the very fine pitch surface mount connector, so I'd probably have to sell that board with the connector already mounted.
I'll be buying a nice small oven shortly, as I need a reflow oven for my SOJ36DIP32 memory modules.
We are looking at <1" per layer, I think .75" is doable if all the 7805 is mounted on the bottom and I don't use a >470uF electrolytic capacitor for the RTC backup power.
Bill
Tubular said...
Bill, Morpheus looks awesome, well done.
I'm thinking that your form factor could drive the PSP screen on the top layer very nicely (4.15" x 2.65"). I has very lean porches, good for writing to Sram in between scans...
You said you had some nice stacking connectors... what kind of stack pitch are we looking at per layer?
Baggers said...
Hey Bill have you posted any vids of your board in action? [noparse]:D[/noparse]
No, I have not had time to do a cool demo yet, but its pretty high on the TODO list
So far I've unpacked, slept, made the data sheet for my crystals, added the Morpheus/Mem+ specs to my site, answered questions here, and took some orders
As far as Morpheus software, here is what I am doing over the next week or so:
I have to finish the XGA mode first, I'll probably post the sources for that today or tomorrow on my site (as they are GPL, not MIT). Basically I have to get it to synchronize better, right now I have to restart it two-three times before its all in sync... I followed Chip's hirez text drivers method for syncing so I don't know exactly why it does not work 100% of the time the first time. More eyes on it will probably help me fix it ASAP, but I could not very well post it before I spilled the beans
Then I have to add the code to read the unique palette long per scan line, that's easy, just did not have time before the show, and allow the screen update routines to use the VFP/VSYNC/VBP time for updates as well as the HFP/HSYNC/HBP time slot - of which only 25% is used now.
Currently the XGA mode uses six cogs:
Cog 0: Slave kernel, communicates with CPU#1
Cog 1: Addressing Cog, generates addresses for the Reader Cogs
Cog 2,3: Reader cogs, burst read a page (256 bytes) at a time into the hub memory
Cog 4: VGA sync generation cog
Cog 5,6: VGA display cogs, displays scan line buffers from hub memory
Cog 7: Draw engine, draws into the XMM following commands from the slave kernel
It will be easy to combine #1 & #4, as currently #4 sends a message to #1 when it starts a scan line - that will drop the cog count to five cogs for XGA.
Once I free up the current SYNC cog, I plan to use it to implement some sprites - for mouse pointers, text overlay, etc
Basically in XGA mode CPU #2 becomes a dedicated GPU with a very pipelined, tightly synchronized design.
Then comes the fun part...
256x192 by 256 colors gaming mode!
I designed this mode at the same time I designed the XGA mode, and it will re-use that code base, but use fewer cogs.
Cog 0: Slave kernel, communicates with CPU#1
Cog 1: Addressing + Sync Cog, generates addresses for the Reader Cogs and HSYNC/VSYNC for video
Cog 2,3: Reader cogs, burst read a page (256 bytes) at a time into the hub memory
Cog 4,5: VGA display cogs, displays scan line buffers from hub memory
Cog 6,7: Sprite/Draw engine, draws into the hub and/or XMM following commands from the slave kernel
For this lower resolution mode, I may later be able to combine cogs 2,3,4,5 into just two cogs, leaving two more cogs for user code. Cog 0 also has a lot of CPU time left for generating text or sprites.
This design will leave approx. 80% of the bus bandwidth open for updating the screen
There is more than enough memory to do double, triple or even quad buffering, so screen updates should be silky smooth.
excellent [noparse]:D[/noparse] I can't wait [noparse]:)[/noparse] but I will lol, relax and chill a bit, and settle back into real life [noparse]:D[/noparse]
Bill: "Personally I hope someone tries to make an Amiga emulator that will run on Morpheus, my calculations show it may be possible."
Interested to know what kind of calculations you made there.
I'm having some trouble getting any speed out of the MoCog 6809 emulator, it's down to about 250 thousand instructions per second. First problem is all the complex addressing modes. Fetching and decoding the indexed addressing post bytes and arriving at the effective address is long winded. Similarly the TFR and EXG post bytes.
Second problem is I'm having to move a lot of instructions into overlays as there is not enough room. Things like the pushes and pops are huge.
The 68000 has a similar set of addressing modes and will have similar issues. Not saying it can't be done just can't see where to get the speed from at the moment.
I think I'm done for emulators in this lifetime, love to see someone give it a try though.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Comments
Hanno
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!
It was NOT easy to keep it under my hat until UPEW, but I thought I'd introduce it with a BANG!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
I will make sure I tell everyone that ViewPort was used during the development, and that it made the development go faster and easier... because it did!
Unfortunately right now the XGA mode is slow, as I am only writing to the bitmap once per horizontal sync, and not using (yet) the bandwidth available during the VFP, VSYNC and VBP lines... but I will use them, and I figure I can write at least 10-20 bytes during each HSYNC period as well.
That mode is NOT good for high speed animation.
The upcoming 256x192 by 256 colors per pixel / lots of sprites mode IS for animation and games
I think I'd better go to bed now, I give up on updating my site tonite - my host is having issues.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5
Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.
Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.propgfx.co.uk/forum/·home of the PropGFX Lite
·
The prop certainly has grown up in the last 6 months !!!!!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80), MoCog (6809)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
1600x1200 two colors per pixel should be possible as that requires 14.4MB/sec for refreshing the screen at 60Hz, and some slow transitions would be possible.
More bits per pixel is not feasible as even four colors per pixel would require 28.8MB/sec for refreshing at 60Hz.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
Demos and videos of them are on my TODO list [noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
That means a lot, because I really like your TriBlade, I just had a different design goal - thus the latches [noparse]:)[/noparse], as I needed ten pins for the 256 color VGA.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
I forgot to mention, I kept ZiCog and MotoCog in mind - if an emulation does not need high resolution graphics, it can use all of the bus bandwidth for the emulator, and just run a text mode or regular Propeller tile / low rez bitmap graphics on the VGA.
Morpheus will make a great platform for emulations; ZiCog and terminal will run on one board.
Personally I hope someone tries to make an Amiga emulator that will run on Morpheus, my calculations show it may be possible. I used to be part of Commodore's Amige developers program, and have fond memories of the Amiga.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
Way to go! Fantastic! Can't wait to get my hands on one. I love "playing" with the Prop!!!
This platform you describe is outrageous and should really open up the realm of possibilities.
Did I say I can't wait to get my hands on one!!! The kids in our robotics group will be exposed
to even more possibilities. Thanks for you hard work, late nites, all nites , etc
TrapperBob
as an old, and somewhat burnt out, developer, I have to say that you're certainly supporting one of Parallax's motives: to bring the fun back into computing!
I don't know if things are set up this way, but it would be very helpful to have the board and your platform work 'out of the box' so to speak. Keep the download and setup as simple and automated as possible. I'd like to be able to plug it in and go.
thanks for your hard work!
- Howard in Florida
~~~~~~~~~~~~
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5
Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.
Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
Thank you! I'm waiting for my web host to fix whatever is wrong, because the Wordpress admin screens are unusably slow right now - after that I will start building the Morpheus information pages, and put up ordering instructions [noparse]:)[/noparse]
I expect to offer a servo controller board for the stack at some point, and prototyping boards (for the stack) that can be used to interface to servos easily are already in the works, I should be ordering the rev 1 PCB's this week.
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
Post Edited (Bill Henning) : 6/30/2009 3:18:56 PM GMT
I plan on offering fully assembled and tested boards in a week or so, with a demo in the eeproms. Until the volumes get high enough I will have to hand assemble and test them myself.
After Largos is released, assembled units will come pre-loaded with Largos and a lot of software, and kits will have the option of a pre-loaded flash chip.
Thank you for your kind words!
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
The 256 color VGA mode is using the 3R 3G 2B format, and should be decent at displaying photo's.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
my 6.250MHz custom Crystals available for running Propellers at 100MHz
Las - Large model assembler for the Propeller (alpha version released)
Largos - a feature full nano operating system for the Propeller
www.mikronauts.com - blog about microcontrollers, especially the Propeller, Morpheus and Mem+
Please put me on the list for a board and notify us when the boards are ready to purchase! Let us know how much $ / and how to pay (paypal)!
TrapperBob
Done
Boards are available now, full kits available in a week or so. The BOM and initial build instructions will go up on my site by the end of the week.
Bare board prices:
Morpheus $29.95 + s/h
Mem+ $24.95 + s/h
"Bundle" of Morpheus and one Mem+ board $49.95 + s/h
I am trying to keep prices as low as I can, however I have to leave a little room for quantity discounts for distributors. Distributors will be asked NOT to charge more than the MSRP's above, and anyone can contact me if they need a lot of boards or want to sell them. There will be educational discounts for schools.
Payment is by PayPal, but I need exact shipping address (should be same as PayPal address, no PO boxes please) so I can figure out the shipping [noparse]:)[/noparse]
s/h will be as low as I can manage but has to cover the packaging materials and shipping cost.
Best,
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com - my site my 6.250MHz custom Crystals for running Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
Post Edited (Bill Henning) : 6/30/2009 4:07:17 PM GMT
The Morpheus specs look very impressive - and Largos to boot!
I don't know where you find the time.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
I built a 3 cog burst engine that you give the following information:
- hub address
- xmm address
It then takes 12.8us to read 256 bytes from XMM into the cog, and 6.4us to write it to the main memory; the 6.4us is available for other cogs to use the bus.
The address cog first latches the 16 bit page address into the two 74HC574's, then generates the byte address by outputting to P8-15 (lowest eight bits of the 24 bit address bus), the two other cogs just pick up the data and write it to the hub
(and the reverse when burst writing)
Theoretically, 99% of the 20MB/sec bus bandwidth can be achieved by using five cogs, by overlapping the second set of cogs with the time spent by the first set to update the hub; only the "set page register" (3-5 instructions depending on weather you already have the next page address in a cog register) time is unavoidable overhead once the cogs are synchronized.
3/256 = 1.1718%, so 98.8% (99% between friends) bus bandwidth efficiency, for a sustainable 19.765MB/sec reading or writing - rounds to 20MB/sec
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com - my site my 6.250MHz custom Crystals for running Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
Post Edited (Bill Henning) : 7/1/2009 12:30:59 AM GMT
Thank you. I've been playing with designs for Propeller single board computers for almost three years, Largos and the Morpheus line is the final end product of a LOT of hard thinking and planning (read as research and development). I've been working about 70-80 hrs/wk since end of February to UPEW to make it happen. If I had not been sick as a dog for a week and my rev 1.00a PCB's were not 1.5 weeks late I'd have had more done.
And yes, the monolithic Largos shell was booting from the main EEPROM at the show
(I deliberately misunderstood you)
Best,
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com - my site my 6.250MHz custom Crystals for running Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
No you didn't misunderstand - it was a (rather feeble) pun. I'm busy working on an SD card boot loader for Catalina myself at the moment - plus I've just added FAT12/FAT16/FAT32 file system support. The next release of Catalina will provide "out of the box" support for multiple XMM platforms, including the Hydra, the Hybrid and the TriBladeProp. Once that is completed, I really hope to get time to investigate Largos (& Morpheus) in more detail. I hope that in the end Largos will make it easier to port Catalina to new Propeller environments - something that's still a little painful and tedious at present.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
My wife really does not get tech humour/puns
Actually it will be great to get Catalina generating code for Largos, as then it will be less painful to redo Las to run natively on Largos.
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com - my site my 6.250MHz custom Crystals for running Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
I'm thinking that your form factor could drive the PSP screen on the top layer very nicely (4.15" x 2.65"). I has very lean porches, good for writing to Sram in between scans...
You said you had some nice stacking connectors... what kind of stack pitch are we looking at per layer?
tubular
Thank you! I agree, the Sony and Sharp LCD's used for PSP'2 would be a very good match, and fit nicely - I was reading their data sheets a couple of months ago. The only real snag is the very fine pitch surface mount connector, so I'd probably have to sell that board with the connector already mounted.
I'll be buying a nice small oven shortly, as I need a reflow oven for my SOJ36DIP32 memory modules.
We are looking at <1" per layer, I think .75" is doable if all the 7805 is mounted on the bottom and I don't use a >470uF electrolytic capacitor for the RTC backup power.
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com - my site my 6.250MHz custom Crystals for running Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.propgfx.co.uk/forum/·home of the PropGFX Lite
·
No, I have not had time to do a cool demo yet, but its pretty high on the TODO list
So far I've unpacked, slept, made the data sheet for my crystals, added the Morpheus/Mem+ specs to my site, answered questions here, and took some orders
As far as Morpheus software, here is what I am doing over the next week or so:
I have to finish the XGA mode first, I'll probably post the sources for that today or tomorrow on my site (as they are GPL, not MIT). Basically I have to get it to synchronize better, right now I have to restart it two-three times before its all in sync... I followed Chip's hirez text drivers method for syncing so I don't know exactly why it does not work 100% of the time the first time. More eyes on it will probably help me fix it ASAP, but I could not very well post it before I spilled the beans
Then I have to add the code to read the unique palette long per scan line, that's easy, just did not have time before the show, and allow the screen update routines to use the VFP/VSYNC/VBP time for updates as well as the HFP/HSYNC/HBP time slot - of which only 25% is used now.
Currently the XGA mode uses six cogs:
Cog 0: Slave kernel, communicates with CPU#1
Cog 1: Addressing Cog, generates addresses for the Reader Cogs
Cog 2,3: Reader cogs, burst read a page (256 bytes) at a time into the hub memory
Cog 4: VGA sync generation cog
Cog 5,6: VGA display cogs, displays scan line buffers from hub memory
Cog 7: Draw engine, draws into the XMM following commands from the slave kernel
It will be easy to combine #1 & #4, as currently #4 sends a message to #1 when it starts a scan line - that will drop the cog count to five cogs for XGA.
Once I free up the current SYNC cog, I plan to use it to implement some sprites - for mouse pointers, text overlay, etc
Basically in XGA mode CPU #2 becomes a dedicated GPU with a very pipelined, tightly synchronized design.
Then comes the fun part...
256x192 by 256 colors gaming mode!
I designed this mode at the same time I designed the XGA mode, and it will re-use that code base, but use fewer cogs.
Cog 0: Slave kernel, communicates with CPU#1
Cog 1: Addressing + Sync Cog, generates addresses for the Reader Cogs and HSYNC/VSYNC for video
Cog 2,3: Reader cogs, burst read a page (256 bytes) at a time into the hub memory
Cog 4,5: VGA display cogs, displays scan line buffers from hub memory
Cog 6,7: Sprite/Draw engine, draws into the hub and/or XMM following commands from the slave kernel
For this lower resolution mode, I may later be able to combine cogs 2,3,4,5 into just two cogs, leaving two more cogs for user code. Cog 0 also has a lot of CPU time left for generating text or sprites.
This design will leave approx. 80% of the bus bandwidth open for updating the screen
There is more than enough memory to do double, triple or even quad buffering, so screen updates should be silky smooth.
(Having a BLAST!)
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com - my site my 6.250MHz custom Crystals for running Propellers at 100MHz
Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
Post Edited (Bill Henning) : 7/1/2009 2:35:23 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.propgfx.co.uk/forum/·home of the PropGFX Lite
·
Interested to know what kind of calculations you made there.
I'm having some trouble getting any speed out of the MoCog 6809 emulator, it's down to about 250 thousand instructions per second. First problem is all the complex addressing modes. Fetching and decoding the indexed addressing post bytes and arriving at the effective address is long winded. Similarly the TFR and EXG post bytes.
Second problem is I'm having to move a lot of instructions into overlays as there is not enough room. Things like the pushes and pops are huge.
The 68000 has a similar set of addressing modes and will have similar issues. Not saying it can't be done just can't see where to get the speed from at the moment.
I think I'm done for emulators in this lifetime, love to see someone give it a try though.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.