| Posted By
TLC on 2010-11-15 14:45:17
| 256K
I created a small memory expansion controller board upon Hannes' and Solder's 256K memory expansion hack; you can find an album of photos and some comments at my FB profile.
Pros:
-- No CBM custom chips needed anymore (6529B eliminated) -- No piggyback needed -- Fix: proper memory bank register reset (the 6529B, the bank register chip in the original design didn't have a reset' input; consequently, pressing the reset button won't affect its contents). -- Built upon standard, easy-to-get-hold-of, simple components (no programmable logics involved at the first place).
Cons:
-- Installing the memory expansion still needs lots of work and stable skills inside the computer.
I originally created this circuit for my own purpose; however, preparing the PCB design for a small production run probably won't be too hard, nor very expensive. I'm currently considering whether that step, and offering them either by themself, or in an assembled form, and/or in a kit including the neccessary components on a first cost basis should be reasonable. (Reasonable = there is interest, and there is some chance that people can either perform the modifications themself, or they can find people around them for that).
|
|
Posted By
Csabo on 2010-11-15 16:36:04
| Re: 256K
TLC, why iz you da awesomeness?
Looks very cool. If you do decide to make them, you could "sign me up" for one I could pick it up next time I visit. Can you elaborate on how difficult it would be to install? Let's say you made a step-by-step guide and posted it, could a random hardware-lamer (like me) get it done?
|
|
Posted By
Luca on 2010-11-15 20:28:36
| Re: 256K
That's a fantastic piece of hardware implementations! Once ready, I would sign up for one, but I'm so scared about the word "desoldering" I may give up
|
|
Posted By
TLC on 2010-11-16 07:42:36
| Re: 256K
Csabo: the difficult part isn't really the installation but the "preparations". First, as we effectively replace the original 64k dram chips by 256k ones, plus the controller board installs at the place of the user port's 6529B, all ram chips + the 6529B need to be desoldered. I wouldn't suggest attempting that unless someone's already practiced (it's pretty easy to damage the motherboard). So the short answer is -- no. The more detailed answer is that you can get those skills ie. you can probably find some defective and/or leftover PCBs around you and practice (...that's how I got those skills myself)... if you can safely desolder chips, ie. the PCB seemingly survives the removal of a chip, you can also count on the survival of your Plus/4 motherboard. You'll need a good thermostate soldering iron and a desoldering pump.
There are some more steps to perform, but neither of them are hard and/or critical; they can be definitely done by someone who can already desolder chips.
(...Well, in fact, I could of course install the expansion myself; however, if I order, say, 10-15 boards and up, buy components, and send them out (either kits or assembled), that's perfectly fine, as long as I don't have to modify the respective 10-15 and up machines all by myself . From the other hand, ordering some 2-3-4 boards is possible, and modifying the respective number of machines is also fine, no problem, but the low number of cards will presumably rise the cards unit price (let alone shipping costs)... that's it).
|
|
Posted By
siz on 2010-11-16 08:44:42
| Re: 256K
As I mentioned yesterday on facebook: I would definitely like one of these cards if they'll be available. My plus/4 already has the 256k RAM chips and the "missing" A8 address line is wired on them (currently to the ground) so all I need is your control circuit.
|
|
Posted By
SVS on 2010-11-17 04:47:46
| Re: 256K
TLC, what are the programming modes of your creature? (I mean bank switching, common area set, etc.). I well know those of Solder' version and am curious of yours Thank you.
|
|
Posted By
siz on 2010-11-17 06:03:32
| Re: 256K
This is basically a Solder expansion. But uses a separate board for the control circuit instead of the dirty way of piggybacking ICs. So in a programmer's perspective this is a Solder expansion.
|
|
Posted By
Csabo on 2010-11-17 10:06:13
| Re: 256K
Thanks for the explanation, TLC. I definitely wouldn't attempt this myself then, but I'm still "down" for one unit. Who would want to miss out on this?
Being a Solder compatible extension means that - according to current count - you can use the following 9 pieces of software with it: http://plus4world.powweb.com/effects/256K_Support
|
|
|
Posted By
SVS on 2010-11-18 03:49:50
| Re: 256K
Csabo! You've forgotten first 256K utility: Mega-Assembler.
|
|
Posted By
siz on 2010-11-18 05:04:20
| Re: 256K
SVS: I'm terribly sorry to disappoint you but if you run a search for the string '256' ( http://plus4world.powweb.com/search.php?s=256 ) you'll find some other stuff that uses 256k. Csory modified his conversion of Macro Assembler to support 256k too. But that version requires Csory expansion to be present. Also his game conversions (especially The Bard's Tale series and other later adventure conversions like Borrowed Time, etc) can use his 256k mode as a disk cache. Edit: and I've almost forgotten Solder's tools like his modul-maker (eprom image creator, burner)
|
|
Posted By
Csabo on 2010-11-18 10:08:00
| Re: 256K
Guys, please, just edit the database. It's yours as much as mine.
Something is missing from some list? Add it.
Something is wrong? Fix it.
Don't have rights or don't see the edit buttons? Ask for it.
|
|
Posted By
SVS on 2010-11-18 10:08:26
| Re: 256K
@siz, pls. consider I've not written that Mega-Assembler is the "lone" 256K utility, nor the best one. I've only said the world "first" because it was written using one of the first 256K card Solder had just assembled.
|
|
Posted By
gerliczer on 2012-08-10 14:26:25
| Re: 256K
Hi TLC,
I have two questions. siz suggested at your Facebook page to take control signals form the PLA, but you dismissed the idea because of lack of space. Would it be possible to remove the PLA and incorporate it into the controller board and solder a socket into its original place from which the signals could be accessed more easily? Is it possible to further develop this board to be compatible with the Csory expansion too?
Edit 2012-08-10: What was that _scape_ doing there instead of space?
|
|
Posted By
siz on 2010-11-19 08:00:40
| Re: 256K
Hi gerliczer,
I've asked about the Csory expansion compatibility too. His reply: ---- Csory memory expansion... To tell the truth, this design started off with way higher expectations . I exactly knew that I won't piggyback chips in the computer anymore, and consequently, that I'll need to create a board. If I were to do that, it looked obvious to expand on the idea, and create something more complex (a 1 or 4 meg version, with both the Hannes + Csory logics implemented etc.). ...But the design didn't "want" to get simpler, no matter what approach I tried, so that it would fit. It's just too "complex" ie. it has a hell of exceptions that all need to be handled. Finally, I came to the conclusion that it simply won't fit, given the criterias (rather complex logics, together with the intent of not using modern components in a vintage gear). And that was the point of giving that up; from that on, I only concentrated on creating something that I can use in practice (ie. SVS' 256K asm), and leave the extras, if at all, for a presumable later run.
BTW, I only ever heard of Csory's 256K specific tools, ie. his 256K Macro Assembler, but I could never get hold of them (...I couldn't even see them in action, that is... ). Surely, a stable 256K Macro asm would still have made me to consider implementing his memory expansion scheme...
---- Oh, and I almost forget to add: I HAVE a copy of some of Csory's 256k tools. I just found them yesterday but I had no add software right (or I just don't know how to do that). I need to sort them and attach some words of comments to them before sending out to someone with the proper rights (most probably Csabo and/or Luca).
|
|
Posted By
gerliczer on 2010-11-19 08:56:06
| Re: 256K
Hi siz,
So the situation looks not very promising. Once I read somewhere on the internet about a hobby electronics project where the large logic networks were replaced with EPROM chips. All the possible outputs where stored as data for all the input combinations. Maybe this trick could be used to overcome some of the complexity.
|
|
Posted By
siz on 2010-11-19 09:36:41
| Re: 256K
Basically that's what a PLA does. There were some projects to replace the PLA in the C64 with a fast enough EPROM.
|
|
Posted By
TLC on 2010-11-19 10:59:16
| Re: 256K
Hi guys!
gerliczer: just as above... In a "perfect" version, Csory's extension might have been present. ...Or not. I don't know. There are too many factors.
As said, I started off from something different than just implementing the capabilities of the old memory expansion schemas. That gave a slightly different viewpoint, where expandability would have been a factor. Up to 1M, the needed number of banked address bits fit in both Hannes' and Csorys schemas (there are enough unused address bits for an extension to 1M in either bank registers). Above 1M, you'd see that you definitely need a "leap", because you run out of free extra address bits (ie. if "expanded" in a straightforward way, you'd find yourself banging memory bank bits in two bank registers for a single bank switch operation, where some bits of the respective bank register wouldn't even be part of the address). This would just be ugly. ...There are another problems; in fact, this "simple at first sight" logics of Hannes' expansion, topped by some late additions by Solder plus the overhead of Csory's logics imposes lots of "exceptions", which will cause the control logics to get reasonably complicated (which in turn increases the number of gates needed), especially if the number of extra address bits to-be-controlled rises. Already at 1M, you find yourself in a situation where you could do a "perfect" memory expansion (ie. no damn exceptions, "just" four bank registers for each 16k memory windows of the 64k memory space), in roughly the similar number of components that you'd need for implementing Hannes' + Csorys logics. Since at some point I came to the conclusion that the expanded (1M) Hannes/Solder/Csory logics plus rams won't fit in the allocated space anyway, and after having asked someone whose opinion I trust whether there are _that_ many stuffs exploiting Csory's memory banking logics (according to him, there weren't), I decided not to fiddle with anything but what was purely needed to start up with an expanded machine, and also decided not to implement Csory's banking logics.
It might be possible to add Csory's banking schema, but the circuit would need some modifications. At the moment, the address decoding logic won't decode $FD15 (...because I needed some extra functions in order to replace the original 6529B bank register by TTLs), and some extra gates would need to be added in order to implement the banking logic. As you can see on the photos: room is already tight, yet extending the board would still be possible. Or one could use SMD components, let alone programmable logics to turn down on the space factor; me won't, I find great enjoyment in using obsolete components and technics in respect to obsolete computers , consequently, that one will need to be done by someone else.
Replacing the PLA: well, theoretically possible... But that'd yet again decrease the available space for extra logics on a daughterboard.
Edit: Originally I didn't consider the installation of that lead very critical (ie. that it needs to be soldered), because someone installing the memory expansion would need to do lots of soldering in the machine anyway (removing 64k memory chips, installing sockets, connecting the extra address pins of the sockets together). It's unfortunately not possible to avoid the installing person's capability to solder things, even if the needed lead were to be installed without soldering...
siz: that's very nice that you could find Csory's 256K tools, and /me will definitely take a look at them once available. Many thanks in advance!
Csabo, Luca: actually, I didn't count on too many potential users of this hack either, for obvious reasons; small number of 256k-capable stuffs, complex installation process, ...actually, I was partly happy about that (ambivalent feelings...), because I sincerely didn't intend to encourage people to believe, at some presumable point, with a possibly high number of 64k+ machines available on the scene in some time, that expanded memory was "standard", ie. that they should get advantage of that in "standard Plus/4" democoding, like it was standard Plus/4 "feature", that it really wasn't and never will be. For me, re-implementing and installing Hannes'/Solders expansion logic was fun, and I think I'll also benefit from that later (because, ...from time to time, I'm fiddling with small experimental codes on the machine; it's very direct and "immediate", something that I'm missing using cross assemblers) -- as you can see, these might be pretty special motives. So far I only checked two 256k specific programs myself, ie. Bionics Dream World and SVS' Mega Assembler (also using them as test cases), so the number of available programs was not a factor for me either, so to say...
SVS: siz already answered your question -- this is a "classic" Hannes/Solder expansion, implemented on a daughterboard.
Availability...
I'm gonna still keep on waiting for some time (...also, taking the time to crash-test the prototype; according to past days experiments, it's already obvious that memory address multiplexing is time critical, the timing of the original machine is already on the edge, and that'll need to be addressed in a "production" version). I'd see if Csory's expansion is worth/possible to add to the design. Though, that low number of Csory-expansion specific stuffs must also be possible to hack to work with Solder's schema, as I guess. ...I don't know. As for the "production run"'s size: as things appear now, there won't be many but just a few machines to be modified; a production run of that size is still possible, and presumably not insanely expensive (...the board design is pretty simple, after all (an advantage of using conservative tech), so I can just live with less expensive PCB companies' services). But I'm gonna refer with some more precise estimations at that stage. ...As long as the relatively low number applies, I can and will be happy to install the memory expansions myself, if needed. That imposes different problems (organizing, and/or posting), but those should be resouble as I guess.
|
|
Posted By
gerliczer on 2012-08-10 14:24:15
| Up!
Hi TLC,
Are there any development regarding the RAM expansion? I'm not demanding anything, but almost a whole year passed since the last post and the recent putting on market of the SID card made me wonder.
Edit 2012-08-10: That _not_ was very much missing in the second sentence.
|
|
Posted By
TLC on 2011-10-07 07:08:16
| Re: 256K
Well, IMHO it's a dead end in its current form. Many possibilities, but none of them optimal.
First, some of you asked whether Csory's expansion logic could be included in an enhanced (or "final") version. Well, siz kindly sent me Csory's 256k Turbo Assembler ROM images. Inspecting the code revealed that it makes heavy use of two other (one of them previously undocumented) features of the expansion circuitry. First, TED memory fetch, when done from ROM, reads from bank 0, regardless to the active ROM bank. Second, a small slice of the expansion ROM is mapped in to address $fe00 permanently. There's no way TASM could run without those features implemented. Regardless to say, that made me less than enthusiastic about the whole matter. Above the added complexity, added incompatibility (...who said that no cartridges would ever try using their own character sets from ROM?...), there's a small, additional problem: implementing the first one needs trimming some traces on the motherboard, which is IMHO plain evil. Unless those problems could be sorted out, with, say, a configurable expansion module, I'd not play with the idea, at all. ...But a configurable expansion logic board would be different level, with its added complexity.
So, I can see a couple of options - with only the first two ones to be real in short terms IMHO.
- Re-designing the Solder memexp logic board that you've seen on the photos, as it was, and ordering a small production run. That's IMHO still within reach, only constrained by available time. - Re-designing the above board, but with SMD components. Benefits: smaller board. Relocating some components on the motherboard would no longer be neccessary, ie. simpler installation process. Drawbacks: more tricky to design. Old, contemporary chips could no longer be used. Probably also withing reach nevertheless. - Forget about discretes and SSI logic, and move to PLDs. Put a big-ass CPLD on a small board that replaces some of the chips (maybe the 6529B, maybe the FPLA), and "code". Benefits: small size. "Anything" could be implemented (within certain but rather far limits). Drawbacks: startup from next to 0, I'm currently not into PLDs at all. Consequently, time until it could come into "form" is slightly non-predictable. Looks a bit anachronic. Using contemporary components, or style, for that matter, is (by far) out of question. - A fully new design (an external expansion module). By far the most complicated and doubtful if ever to be realized. Occupies the expansion port. Higher current consumption. Definitely only possible (if at all) by using PLDs. Benefit: no installation process...
|
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |