P2 - Where will it be used? It's time for Parallax to step up and answer this!
Cluso99
Posts: 18,069
I am frustrated to say the least.
It's no fun any more and that is the only reason I'm here
The original Z80 in the late 70's and early 80's rose to having 64KB of mostly RAM with some EPROM. It was a microprocessor. The P2 can clearly be considered a single chip microprocessor with 8x 32-bit cores and 512KB of Hub RAM and 200+MHz.
Back then, we had assemblers, linkers, and various compilers which all ran on that little Z80 with either a pair of 360KB-1.2MB floppies or if we were lucky a floppy and a 5MB HDD.
Lucky me - a Microsoft Z80 card in an Apple /// plus a Corvus? 5MB HDD where I designed/developed our own Z8 card running SDLC to an IBM mainframe and emulating an IBM 3270 Controller and 3274 Terminal, all on a n Apple //e or ///. We sold this to Apple USA in the early 80's. It certainly was not a toy.
Where is the P2 headed??? It can replace the whole microcomputers of the late 70's and early 80's. The tools of course don't exist for the P2 to do this, and any suggestion about this brings down the rath of those who cannot see this as a possible viable situation, except perhaps Chip.
But when I ask for the @@@ operator so we can determine the precise hub location for code, I get answers like this from Chip
And for Roy,
It WAS ADDED to homespun and bst, if not originally, then very soon afterwards, as my other post showed.
It WAS INDEED REQUIRED. All the experienced forumistas of the time agreed. There were no alternatives.
Anyway, where is P2 headed???
I am obviously mistaken that it could host a nice development system as well as doing some real work.
It's no fun any more and that is the only reason I'm here
The original Z80 in the late 70's and early 80's rose to having 64KB of mostly RAM with some EPROM. It was a microprocessor. The P2 can clearly be considered a single chip microprocessor with 8x 32-bit cores and 512KB of Hub RAM and 200+MHz.
Back then, we had assemblers, linkers, and various compilers which all ran on that little Z80 with either a pair of 360KB-1.2MB floppies or if we were lucky a floppy and a 5MB HDD.
Lucky me - a Microsoft Z80 card in an Apple /// plus a Corvus? 5MB HDD where I designed/developed our own Z8 card running SDLC to an IBM mainframe and emulating an IBM 3270 Controller and 3274 Terminal, all on a n Apple //e or ///. We sold this to Apple USA in the early 80's. It certainly was not a toy.
Where is the P2 headed??? It can replace the whole microcomputers of the late 70's and early 80's. The tools of course don't exist for the P2 to do this, and any suggestion about this brings down the rath of those who cannot see this as a possible viable situation, except perhaps Chip.
But when I ask for the @@@ operator so we can determine the precise hub location for code, I get answers like this from Chip
Clearly, Chip does not believe there will be large programs run on the P2 as it is pretty much a given that tables of addresses, jump tables, and hub calls from cog, will need to know the precise location in hub. It WAS REQUIRED in P1 to do the sort of things the P2 is more suited to doing.I think the supposition that @@@ is needed might stem from some misunderstaning or even ignorance of what @ does. Minimal conveyance of @ values is required if you understand what's going on and plan things out a little.
And for Roy,
It WAS ADDED to homespun and bst, if not originally, then very soon afterwards, as my other post showed.
It WAS INDEED REQUIRED. All the experienced forumistas of the time agreed. There were no alternatives.
Anyway, where is P2 headed???
I am obviously mistaken that it could host a nice development system as well as doing some real work.
Comments
Jump tables don't require @@@. Like do you truly believe that? How can someone with as much experience as you believe that?
I'm just boggling at your reaction here.
I never said @@@ wasn't added to Homespun or BST, I said it was added AFTER they were released. You had said they were made to give us @@@, which is clearly wrong.
P2 is headed to having hosted development of Spin2 (Chip intends to do that). P2 will have huge programs, even bigger than 512K, because you will be able to dynamically load code and run it at any address (you can build code that uses all relative addressing). Chip even intends that for Spin2.
Not sure why you think the absence of @@@ = doom and gloom.
You can write huge blocks of assembler code that are relatively addressed from within, including jump tables and data tables, using JMPREL and LOC. They can even be moved around and executed. @@@ means that addresses must be fixed.
As for where the P2 will be used, I don't know. Hopefully, it will find favor with people inventing things for which other solutions are of little help. That's all I've got.
Homespun limited it to dat sections, and also turned of duplicate object removal when you used @@@ (based on the fix notes in the thread Cluso linked and the github page rosco linked). No idea on BST, it might have been less restrictive.
For any other object than the top object, I would have an initialization routine that I would call when the program first started up. The initialization routine would add "@0" to all the object offsets stored in the object so that they would be absolute addresses.
There are two different cases where I needed absolute addresses stored in memory. One case was in a Forth interpreter I wrote that needed addresses of Forth words. Using object offsets would have slowed it down. The other case is when I used arrays that contained a list of string addresses, or some other types of address lists. Its just more convenient to use absolute addresses.
Actually, now that I think about it I believe is was @@0 that I used, which gives the address of the start of the object.