Jump to content
Sign in to follow this  
Omega-TI

It wouldn't be a TI-99/4A anymore... but so what, it's a "spare".

Recommended Posts

How many TI's do you own?  From a previous poll (taken years ago), some people have quite a few "spares" or what we commonly call "backup systems".  Most of us, myself included, like to keep our machines compatible with all software and hardware.... but what if you wanted to experiment with making "one spare" into something more than a 4A?  What method or design angle would you take?  Would you keep it as simple as possible?  Would you keep the original CPU, would you add hardware like a solder-on board to remove wait states to exploit the 16 bit potential?  Crank up clock speed?  How fast could a TI be hot rodded anyway?

 

 

I know some of the gurus here have pondered some "possible changes/upgrades" over the years, while we many never do it, it's fun to explore the possibilities, who knows we might learn something.

 

 

 

 

 

Share this post


Link to post
Share on other sites

I think the lack of responses in this thread is because the engineering "decisions" made for the 99/4A have been discussed, argued, hashed over, and beaten to death many times.  If you "fix" these things then the end result is circular, i.e. you end up with a system that is not compatible with anything else, or only partially compatible, which leads back to not making and breaking-changes so you can stay compatible.

 

If you are happy to just mess around with your custom system, then there is nothing wrong with that and such projects can be very fun and rewarding.  However, I suspect most people get a lot of enjoyment from sharing and being a part of a community (i.e. the human need for belonging and being a social animal), so most people will probably not go down the road of the one-off isolated system, or making mods that cause incompatibility (which limits what you can do in terms of hot-rodding the system, etc.).

  • Like 1

Share this post


Link to post
Share on other sites

One idea might be to have such a system start in "Compatible mode", where the VDP still owns the memory, waitstates are still there, etc...  but introduce a new signal to switch the system out of compatible mode, and into 16bit native mode, which then is the new "how it COULD have been" full 16bit memory access with VDP not owning memory, no 8bit multiplexer in the way, and none of those nasty waitstates.  It would then be able to start and run normal TI/99 code without modification, but would still be able to hotrod into something else entirely.

 

The wiring logic would be foolishly complicated to do that though, and there's no telling what it would do to the sidecar bus without the waitstates in place, or with raw 16bit accesses going over it. (DSRs and pals would not be expecting to be in such an alien configuration, and so they would need to be culled from the memory map, etc...  Getting peripherals working would require whole new drivers that know what's what, and all that...)

 

Maybe you could still hang the sidecar bus of the VDP behind the multiplexer, but move the (lower 16k)RAM into 16bit native, and that would be enough? Give something a little bigger for scratch pad in enhanced mode too?

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, matthew180 said:

I think the lack of responses in this thread is because the engineering "decisions" made for the 99/4A have been discussed, argued, hashed over, and beaten to death many times.  If you "fix" these things then the end result is circular, i.e. you end up with a system that is not compatible with anything else, or only partially compatible, which leads back to not making and breaking-changes so you can stay compatible.

 

If you are happy to just mess around with your custom system, then there is nothing wrong with that and such projects can be very fun and rewarding.  However, I suspect most people get a lot of enjoyment from sharing and being a part of a community (i.e. the human need for belonging and being a social animal), so most people will probably not go down the road of the one-off isolated system, or making mods that cause incompatibility (which limits what you can do in terms of hot-rodding the system, etc.).

 

I agree with almost everything you said, I also like to keep my main two systems compatible.  I was thinking though that with so many people having multiple consoles, it might be interesting to have a project or two where people could follow along, build, or even buy a pre-built board to take part.  Sadly not everyone, including myself can afford to join the semi-compatible Geneve club.

 

The idea of "how fast" or "how much addressable memory" have always interested me.  Could one use a different CPU on a board, soldering a few extra wires to the motherboard for the extra lines?  Instead of a CPU could one use a modern FPGA arrangement?  

 

To me, the idea of an Extended BASIC program running as fast as an assembly program on the 4A would be cool to say the least.

 

1 hour ago, wierd_w said:

One idea might be to have such a system start in "Compatible mode", where the VDP still owns the memory, waitstates are still there, etc...  but introduce a new signal to switch the system out of compatible mode, and into 16bit native mode, which then is the new "how it COULD have been" full 16bit memory access with VDP not owning memory, no 8bit multiplexer in the way, and none of those nasty waitstates.  It would then be able to start and run normal TI/99 code without modification, but would still be able to hotrod into something else entirely.

 

The wiring logic would be foolishly complicated to do that though, and there's no telling what it would do to the sidecar bus without the waitstates in place, or with raw 16bit accesses going over it. (DSRs and pals would not be expecting to be in such an alien configuration, and so they would need to be culled from the memory map, etc...  Getting peripherals working would require whole new drivers that know what's what, and all that...)

 

Maybe you could still hang the sidecar bus of the VDP behind the multiplexer, but move the (lower 16k)RAM into 16bit native, and that would be enough? Give something a little bigger for scratch pad in enhanced mode too?

 

Excellent point and come to think of it, isn't that sort what the F18A does?  The F18A is 100% compatible UNTIL you tell it to do otherwise.   There is plenty of room to play in the area above the motherboard and with today's small components much could be accomplished in that space.

 

But, Texas Instruments "stopped up the drain", we would just be opening it back up (like getting rid of the wait states for starters.

Share this post


Link to post
Share on other sites

Honestly, I'd love a full size TI 99/8 machine, even if the entire innards are a raspberry pi, but if it looked and acted like a TI 99/8, complete with all external ports, I'd be thrilled and happily fork over cash for that.

 

  • Like 2

Share this post


Link to post
Share on other sites
25 minutes ago, jstimson said:

Honestly, I'd love a full size TI 99/8 machine, even if the entire innards are a raspberry pi, but if it looked and acted like a TI 99/8, complete with all external ports, I'd be thrilled and happily fork over cash for that.

 

That's another machine out of my price range!  Somewhere on this site, it shows a picture of a used BMW going for less money than 99/8!  

Being that one can only do so much with a compatible 4A, and other avenues like the Geneve and 99/8 are price prohibitive for many people, an ongoing side-project like this could quite literally give us YEARS of enjoyment!  

Share this post


Link to post
Share on other sites

More than a year ago, I made an template of a console PCB in KiCad.   Then I stuffed in all the components I could imagine for a new Geneve. The idea was it would re-use a 4A console case.

 

Some wacky ideas that went in: In addition to the 99105 computer, a separate 9995 co-processor for keyboards, mouse, joysticks, Hexbus.  Two VDPs. A cartridge and a TIPI slot. SD cards accessed through the console side door! 

 

It was a fun idea to begin with, but I got frustrated with fitting parts into the console space. It was too crowded to go forward (or route all the traces.)

 

While I was excited about replacing the console motherboard for the "stealth" look, I don't think anyone else was a fan.  I moved on, to a set of smaller modules. That has evolved into a 16-bit Eurocard backplane. So it's nothing like modding the console anymore.

 

Here are some pictures from that:

 

4AMainboard3D.thumb.png.e77fe3892d0d47325713af0d6c3d9231.png

 

4AMainboardFootprints.thumb.PNG.567822c5003d88dc755d09a75bde0d65.PNG

  • Like 7

Share this post


Link to post
Share on other sites
20 hours ago, Omega-TI said:

I agree with almost everything you said, I also like to keep my main two systems compatible.  I was thinking though that with so many people having multiple consoles, it might be interesting to have a project or two where people could follow along, build, or even buy a pre-built board to take part.  Sadly not everyone, including myself can afford to join the semi-compatible Geneve club.

That requires physical soldering, desoldering, and electronics skills that I don't think most people have acquired, so it limits the the number of participants in an already small community.  I think those who can do these things already are.  There is really a lot of hardware hacking going on in this community, probably a lot more than other retro-systems.  AFAIK, most of the projects are single-person endeavors though, and I can only imagine what 3 or more people here focusing on a single project could achieve.  However, in my experience the biggest blockers to a group-based projects is a decisive list of goals that everyone can agree upon, and enough of an interest cross-section as to what the end results would be.

 

20 hours ago, Omega-TI said:

The idea of "how fast" or "how much addressable memory" have always interested me.  Could one use a different CPU on a board, soldering a few extra wires to the motherboard for the extra lines?  Instead of a CPU could one use a modern FPGA arrangement?

Without constraints, those questions are impossible to answer.  Emulation can run a system faster than has ever been possible, and as computers get faster, so do the emulators.  If you stick to hardware, then you still have the same situation, al-la the 100MHz 9900-core inside the F18A, etc.  How fast are you wanting to go?

 

As for addressable memory, there are any number of ways to make more RAM available to the CPU, and it just depends on what your consider acceptable.  If you limit to just "instruction-supported direct CPU addressable", then it will always be 64K, unless you use an FPGA and expand the address bus and modify the instruction-set (I've done this a little, and emulators can also more easily do this as well).  But, as soon as you are willing to add something like a memory-mapper / memory-paging, there is no actual limit, just practical limits.

 

We live in a strange (and somewhat interesting) time, with a lot of very fast and cheap computing hardware and electronics available to us.  To me the question is not how fast *can* we go, but more the question of how fast *should* we go, and still have a system that resembles the 99/4A?

 

IMO, an FPGA is a really good place to experiment with these ideas.  It is much easier and faster to model and test hardware with the FPGA.  Once you have something working, and you still want to do the design with discrete ICs, then at least you have a blue-print and know the design will work.  Alas, it might not be as "hands on" as working with a breadboard and discrete ICs, but IMO it is just as fun and rewarding, and very accessible (and getting more so every month).

21 hours ago, Omega-TI said:

To me, the idea of an Extended BASIC program running as fast as an assembly program on the 4A would be cool to say the least.

Well, there is *overdrive* in Classic99, and the BASIC assembler, both available right now.  An interpreted BASIC will never run as fast as an assembly program (simply due to the interpreter overhead), so again, there needs to be some criteria as to when the goal is achieved.  In the case of the 99/4A, having a BASIC dialect where the interpreter is *written in* assembly would go a long way towards making a native BASIC much faster and nicer on the 99/4A (that, and getting the hell out of VRAM for anything other than video).  I think the modern Forth interpreters demonstrate how fast such a BASIC might be.

 

 

 

Share this post


Link to post
Share on other sites
13 hours ago, FarmerPotato said:

It was a fun idea to begin with, but I got frustrated with fitting parts into the console space. It was too crowded to go forward (or route all the traces.)

I have also done things like this, but more of a thought experiment, or just sketching the ideas on paper.  I never put that much effort into any kind of actual layout.  The old ICs are *big*, and I think it is easy to forget that today with all the miniature components that surround us.  Computers used to be bigger because they needed to be bigger.  Making the boards smaller was the catalyst for the modern "chipsets".  It is also hard to do a good layout, something that is lost on most people, and it can make doing the projects frustrating when your work is compared (size, cost, quality, availability, support, etc.) to something main-stream like an Rpi, or even a modern computer or smart-phone.

 

13 hours ago, FarmerPotato said:

While I was excited about replacing the console motherboard for the "stealth" look, I don't think anyone else was a fan.

This is what I was talking about above where I find it rare that there is a sufficient cross-section of goals to facilitate a project collaboration.  It is important that you are doing the project because *you* want to and are having fun.  If other people happen to also be interested, then great.  If not, they are welcome to do their own projects that satisfy their own goals.

 

Cool looking board, by the way.  It would probably be prohibitively expensive though, I think.

Share this post


Link to post
Share on other sites
6 hours ago, matthew180 said:

I have also done things like this, but more of a thought experiment, or just sketching the ideas on paper.  I never put that much effort into any kind of actual layout.  The old ICs are *big*, and I think it is easy to forget that today with all the miniature components that surround us.  Computers used to be bigger because they needed to be bigger.  Making the boards smaller was the catalyst for the modern "chipsets".  It is also hard to do a good layout, something that is lost on most people, and it can make doing the projects frustrating when your work is compared (size, cost, quality, availability, support, etc.) to something main-stream like an Rpi, or even a modern computer or smart-phone.

 

I have learned a lot about how difficult the routing can be, from trying out a lot of ideas.

 

I started with a simple 4A side port module, unscrambling the address and data lines, then a 512K cart. I've tried a lot of schemes for routing data and address lines vertical or horizontal. There is always a really hard problem when a few signals have to go all the way across the board.  PLCCs are great for saving space but the pin layout kills me. And invariably I have to start from scratch three times, because a corridor between chips no longer permits any more traces, there is an impassable wall,  or VCC or ground is cut off (I use top and bottom plane fills for those.) Or I underestimate the caps and such, putting them in too late. (I use big 1206 or 0803.) Or the board space is just too tight. Or my technician says "I can't solder this" on final inspection, before it goes to fab. 

 

This board is probably unroutable. I put some effort into that before I gave up on this form factor.  The 3.3V FPGA was sort of central terminal, with all the CPU lines buffered into it, and "fast" memory bus and "slow 8-bit bus" going in and out. 

 

6 hours ago, matthew180 said:

Cool looking board, by the way.  It would probably be prohibitively expensive though, I think.

I just updated the BOM from where I left off. The ICs cost $183.

 

The costliest parts, which I've sourced in Qty 10, were:

 

$30 TMS99105ADJL

$30 DRAM 32MB (you can use just 2MB for $10)

$20 V9958 x 2

$17 SRAM 2MB

$10 TMS9901  x 2

$8   TMS4464s x 8

$8   ICE40HX-4K FPGA

$6   TMS9902 x 3

$5   LT1675 RGB Switch (superimposer)

$4   TMS9995

 

The modern ICs in the list are the SRAM, the FPGA and the video switch.

 

I hate to think how much money I would pay for multiple spins of this big PCB! All along, I've put cost-efficiency near the top of my list.

 

All Geneve2020 modules right now are made on 10x10cm plug-in cards, which you can get dirt cheap (yeah, dirtypcbs as low as $2). My 160x100mm motherboard cost $20 in a group buy (it's a standard retrobrewcomputing bus.)  

Eventually the 100x100 modules must coalesce into 100x160 boards.   At this point I budget $350 BOM for the final product.

 

 

6 hours ago, matthew180 said:

This is what I was talking about above where I find it rare that there is a sufficient cross-section of goals to facilitate a project collaboration.  It is important that you are doing the project because *you* want to and are having fun.  If other people happen to also be interested, then great.  If not, they are welcome to do their own projects that satisfy their own goals.

 

 

 

I listen to what is top of folks' priority for wanting a new computer. MDOS compatibility. SD cards. Works in a PC case (in addition to my cool enclosure). Support for legacy PBox (future 3rd party option.) I'm going for standalone GPL with superior compatibility.  Almost everything else is whatever I think fits my design goals and pet ideas (yeah some of those have to be killed.)  So that maximizes my fun.

 

I don't yet know how to  bring in other people. I want to work with TheBF on the FORTH BIOS. I want pnr's Macrostore disassembly so that any 99105 can work.  I need serious help with the analog VGA I've put together (I get a textbook 15khz signal out, but I don't get anything to sync.) And I have never done a DRAM refresh (that will be Verilog)

 

As a learner, my Verilog has gone from "it sucks", to "it finally works!" Recently it's more like "hey I followed the textbook, made a Mealy-Moore machine by the book, and it works great in simulation. Now about those glitches." I read in Matthew's interview with EETimes that I needed to get the Pong book. Best advice so far!

 

 

 

 

 

 

Share this post


Link to post
Share on other sites
17 hours ago, FarmerPotato said:

I don't yet know how to  bring in other people.

It can be difficult for sure.  I think you just have to set things up to allow for collaboration (i.e. use a version control like github, create an information website with stated goals, etc.), and wait for people to show interest.

 

17 hours ago, FarmerPotato said:

I need serious help with the analog VGA I've put together

I can probably help with that. ;)

 

17 hours ago, FarmerPotato said:

And I have never done a DRAM refresh ...

I can probably help with that too:

 

https://dnotq.io/sdram/sdram.html

https://github.com/dnotq/sdram

 

17 hours ago, FarmerPotato said:

(that will be Verilog)

I strongly dislike the way I have seen most people write Verilog (it looks too much like software languages, and the shit I have seen people write, it is a wonder it works at all).  IMO, VHDL is a lot better to learn first, since it will probably be unfamiliar to most people, and that helps break any mindset you have that is grounded in software.  When you are working with FPGAs, you are *not* programming, you are *describing* hardware (that is the "H" in HDL), and it is not even remotely the same.  I find it best to think in terms of how you might build such a circuit using TTL logic ICs; do that, and you will find your HDL makes a lot more sense and you will be able to solve more complicated problems.

 

17 hours ago, FarmerPotato said:

As a learner, my Verilog has gone from "it sucks", to "it finally works!"

Been there, but even my "it finally works!" was still a case of "just barely", and there was so much I still did not realize or understand.

 

17 hours ago, FarmerPotato said:

Recently it's more like "hey I followed the textbook, made a Mealy-Moore machine by the book, and it works great in simulation. Now about those glitches."

Yeah, all the Mealy / Moore theory and such, I never use it in practice; the information is just not helpful to solving problems (that I have found).  I'm sure you could look at various HDL designs and identify "ah, this is Mealy-style" or whatever, but I have never sat down to describe some circuit and thought "oh, I'll use a Moore-style FSM here...".

 

Understanding clocks and timing is critical in FPGAs, just as it is in discrete digital electronics.  It is probably one of the areas that most people getting into FPGAs take for granted and don't understand.  However, there are some basic rules, that once you learn and follow, it becomes much easier and your circuits will work much better.  Those who know me have heard me say before: when working with FPGAs, the bugs are (almost) always timing.

 

17 hours ago, FarmerPotato said:

I read in Matthew's interview with EETimes that I needed to get the Pong book. Best advice so far!

 

Uhm, you know that is me, right? ;)  And yes, Pong's books are exceptional IMO.  He wrote the book twice, once for VHDL and Verilog, and of course I recommend leaning VHDL first.

 

I find FPGA work a very lonely space in the hobby realm.  I have always been looking for people to talk to about it, so if you want to have some discussions, let's hook up on Discord (my username is dnotq#6613).

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...