Jump to content

Recommended Posts

Posted

If anyone is interested, I am almost finished with the engineering of my "Blocky Kong" machine -- a nearly life-sized, fully playable Donkey Kong-inspired game, controlled by several Interface A attached to a single Apple //e. :)  My goal is to have the whole thing done by the end of July, and then to debut the model at Brickfair (Chantilly, Virginia) which is the first weekend of August. I've been posting frequent updates in my "Square Pistons" group on Facebook. Blocky Kong moves sideways and vertically, controlled by a joystick; he jumps over barrels; he climbs ladders; and ultimately he rescues the princess. I am using touch sensor for collision detection with barrels; to control the limits of the jumps; and to detect when a ladder is present, etc.

Posted
On 4/23/2025 at 7:28 PM, evank said:

If anyone is interested, I am almost finished with the engineering of my "Blocky Kong" machine

Well, Evan, I surely am. 

I am on your personal preview channel as well - I think it would be really nice to sharing your ever so small progress steps here in repetitive fashion as well! 

I mean, just watching a "mount" moving at full "2D speed" within a good-sized LEGO frame, controlled by a joystick/Apple 2 (clone?) using 4.5V interface A stuff with your custom software is certainly worth >numerous< posts here!

All the best
Thorsten

  • 5 months later...
Posted (edited)

Long time, no post!

OK, time for more totally crazy stuff. This is all made up, but it can exist in reality, as you still can buy fully functional IBM XTs (#5150 or #5160), as well as IBM expansion units + interface cards (#5161) …

("Wer wartet mit Besonnenheit, der wird belohnt zur rechten Zeit – nun, das Warten hat ein Ende, leiht Euer Ohr einer Legende … RAMM – STEIN …")

Let us assume, you have an IBM XT. Maybe the #5150 – with just two floppy drives and cassette BASIC. This means you have 5 ISA slots available, one for the floppy controller, one for the graphics card, one for the printer port. That leaves you with 2 ISA slots. Let us further assume, you have the IBM 5161 expansion unit (https://vintagecomputer.ca/ibm-5161-expansion-unit/), which is essentially a passive 8 slot ISA backplane - with an interface card sitting in a beautiful IBM XT enclosure. This card connects via a thick data cable to the additional interface card required in the XT, so now only 1 ISA slot in the XT is free, and 7 in the expansion unit.

1280x960.jpg

Top case: IBM XT (#5150 or #5160 with two 5 1/4" floppy drives); lower case: IBM expansion unit (#5161, with one hard drive). Internally, there is a passive 8 ISA slot back plane connected via 2 interface cards, one in the XT and one in the expansion unit.
NOTE: THIS IS NOT MY STUFF, this is taken from this reddit post: https://www.reddit.com/r/retrobattlestations/comments/dpt47y/expanding_the_ibm_pc_with_the_ibm_5161_expansion/

Let us further assume, you have a truly epic LEGO Technic Control 4.5V project going, which requires operating 6 x 8 = 48 LEGO 4.5V motors and 2 x 8 = 16 touch or light sensors at the same time, controlled by one BASIC program. (I know at least one person doing such stuff, but he is limited to 5 (or so) slots in his Apple ][e clone, right @evank?). Let us further assume, you have eight 9771 ISA cards as well as eight 9750 Interface A devices at your disposal, which is perfectly matching with your epic project demands.

The problem is: 9771 cards only provide two addresses you can select from: dec 925 or dec 926. This is a true dilemma for your epic project! But: Don’t give up! Here is a rather simple proposal to expand the address range for 9771 cards by a factor of 4 = 8 individual addresses! You only have to cut (reversibly!) two traces on each 9771 card and add 6 wires (reversibly) to a tiny expansion board, which easily finds space on the large empty top area on the 9771 cards.

Further below is the proposed circuit diagram, and yes, I will try that in the coming dark months with my own 9771 card sitting in my IBM XT (#5160). And no, I don’t have the 5161 unit, no 8 9771 cards, only 2 9750 interfaces, but I honestly believe it should work. I also don’t plan for any 48 4.5V motor project, well, in the near future. Just select any >one< (or more, but that does not make that much sense) of the S1 DIP switches for the address range dec 920 to dec 927.

All this is called “fundamental research” :pir-huzzah2: some people refer to as a true waste of money. But, this is what I do in my professional life all day ;) BTW, this fundamental research opened the door to ASML's clean rooms - two of my PhD students are now allowed (after taking some online training and tests) to get keys to the clean room, where the proto scanners are located - @JopieK knows, what's going on there.  

Oh, and I will try to low level format, partition, and then soft format any of the three 30 MByte Seagate 238 RLL hard disks I found recently. If anyone works, it will go into the XT, the Seagate ISA RLL controller is waiting (another ISA slot gone …).

Here’s the proposed diagram –just ordered a couple of 74HCT238s. The LS version is hardly available anymore; 74LS138 are, but then I would need to invert its diode OR’ed outputs. Bread board is in the planning, so stay tuned! This is gonna be bigger than the microchip.

1280x823.jpg

Changes/additions to the original 9771 card are R2 + R3, IC6, S1 (8 DIP switches), D1 - D8 (OR gate).

EDIT: THERE IS STILL THIS NASTY BUG IN THE DIAGRAM: IC2b, pin 6, connects to IC1a, pin 11. Pin 6 and 12 need to be connected. Sorry!

(I sure hope, that @BrickTronic is watching this, as I screwed up so many times, and he caught it!) 

All the best
Thorsten

Edited by Toastie
Posted
1 hour ago, JopieK said:

You could first use an FPGA maybe before you make the PCB version?

Oh, that is not necessary! First, as I said in the text somewhere (and I now added that to the picture caption), I don't have any 5161 nor multiple 9771 cards! The picture is taken from a reddit post. Second, what I will do is taking my single 9771 card sitting in my IBM XT, and cut two lines on that one. Then I'll just place the 74238, 8 DIP switch, 8 diodes, 2 resistors on a perf board, glue that board on the large free area of the LEGO ISA card and connect it with 6 wires to the 9771 circuitry ...

Sorry for the confusion - I wish though I had all these machines ...

Best
Thorsten  

        

Posted

My bet :)

But at least you could verify if it works, but the perf board would also do the job of verification of course!

Posted (edited)
On 10/14/2025 at 11:42 PM, Toastie said:

 

...Just select any >one< (or more, but that does not make that much sense) of the S1 DIP switches for the address range dec 920 to dec 927.
...

 

Here’s the proposed diagram –just ordered a couple of 74HCT238s. The LS version is hardly available anymore; 74LS138 are, but then I would need to invert its diode OR’ed outputs. Bread board is in the planning, so stay tuned! This is gonna be bigger than the microchip.

1280x823.jpg

Changes/additions to the original 9771 card are R2 + R3, IC6, S1 (8 DIP switches), D1 - D8 (OR gate).

(I sure hope, that @BrickTronic is watching this, as I screwed up so many times, and he caught it!) 

...

Hello,

The good old Wired-OR will work.
You mentioned that it would be easier to use a 74LS138.
Then only wire the Diodes-Kathode to Switch and all Anodes together with Pull-Up-Resistor (Wired-AND).
This Diode-Point inverted (you can re-use IC3a or IC3b) with output to IC1a NAND-Gate

But why not use 74LS85 to compare A0 to A2 to a 3-Bit DIP-Switch ?

Anyhow, there are many ways ro ROMe :-)

Have fun and let us participate how it is working !
 

Jo

Edited by BrickTronic
Posted
2 hours ago, BrickTronic said:

The good old Wired-OR will work.
You mentioned that it would be easier to use a 74LS138.
Then only wire the Diodes-Kathode to Switch and all Anodes together with Pull-Up-Resistor (Wired-AND).
This Diode-Point inverted (you can re-use IC3a or IC3b) with output to IC1a NAND-Gate

EDIT: Go to the second quote below: Jo has just >>sunk<< my approach described above. Yeah, why not using 74LS85? I tell you why: I had never heard of it, just looked at its function table a couple of minutes ago, had to read Jo's question 5 times, and finally, got it. This is >so< elegant!!! 

First: Thank you very much Jo for checking!!! I trust your assessment very much, you know that.

Second: 74LS183 would be "easier to use" as I have them floating around here. I had exactly scribbled down what you described. Nice. And yes, using the now obsolete IC3a/b would make nice inverters.

However, here is more about my choice of 74HCT238 over 74LS138: I'd like to be able to "restore" the 9771 card to its original design/behavior - for no obvious reason than - I want to. Don't ask me why; I am trying to do that with all the "ancient" machines I am tinkering with. It is simply my respect for the original designers and hardware layout - I know it sounds absurd, but so is the entire world of today :pir-skel:

All I need to do is cutting 3 traces on the 9771 card (>tiny< cuts with a razor blade :pir-triumph:) and then solder >tiny< loop back wires to a female DuPont connector I am planning to reversibly hot glue to the enormous empty space area of the ISA card. If I now plug in a male DuPont connector with 3 bridges, it should work as before on addresses dec 925 or dec 926.

For the new address range 920 - 927, I'd remove the male DuPont connector and replace it with a little perf board, carrying the 74HCT238, 8 bit DIP switch, 8 diodes, and two 1k resistors. To make it work, I have to additionally wire A0, A1, +5V, GND in parallel to the female DuPont connector, which are unused in original mode, but populated when using the lill' board ...

And why 8 addresses? Just to theoretically outpace @evank's  Apple ][ setup; he uses up-to (I believe) five 9767 cards ... The difference would be: My hardware addition only works on an IBM XT system with the 5161 extension box with 8 cards. But I don't have 5161, nor 8 9771 cards. It is just for fun, that's really all. I am busted, though, when he finds an Apple expansion board ... BUT, be aware folks, I am prepared to go to 16 cards should that happen - I shall then just swap 74LS238 with 74LS154! :pir-huzzah2:

As I said: More crazy stuff to come.

3 hours ago, BrickTronic said:

But why not use 74LS85 to compare A0 to A2 to a 3-Bit DIP-Switch ?

Because you are a brilliant genius, Jo, and I am a lousy chemist pretending to know a bit about TTL circuits. This is insanely elegant, and I will certainly do exactly that! Let me draw up your proposal! My original approach using the DuPont loop back connector and the additional lines A0, A1, +5V and GND lines still works as intended, but I just need one 74LS85 and a 3 bit DIP switch. Need to order the former, have the latter. And the best part is: "These devices are fully expandable to any number of bits without external gates", says the data sheet.

Thanks a million, Jo, you made my day!!!

I will be back ...

Best regards
Thorsten

Posted (edited)

As I said, I'll be back ...

@BrickTronic Jo, "quick" question - do you think, this could work? I just ordered a couple of 74LS85's - these are really powerful! 

Specifically: The B inputs are floating, when a corresponding switch S is not closed. Well, as far as I remember, LS chips are quite stable regarding open inputs as they are internally pulled high. If not, then I would need to add 4 pull up resistors to the B inputs, right? Also, an address is inversely selected, right? All S closed = 0000 (0), all open = 1111 (15). Correct?

Thank you very much for pointing me to 7485, a really enjoyable chip! (I know, the nerd I am. It's OK :pir-wink:

All the best
Thorsten

1280x830.jpg 

NOTE: For the first time, IC6b, pin 6 connects correctly to IC1a, pin 11 (and not 12 as always before in this thread) 

Edited by Toastie
Posted (edited)
15 hours ago, Toastie said:

...

@BrickTronic Jo, "quick" question - do you think, this could work?

...

 

1280x830.jpg 

Hello,

Yes, will work, depending on Switch S1 Position an Address in Range 0x390 to 0x39F
You also can remove R2 and wire IC6 (I think there is no IC6b ) Pin 3 direct to 5V ...

Hope you will report success soon and how your "Hack" looks like

Jo

Edited by BrickTronic
Posted
22 hours ago, Toastie said:

here is more about my choice of 74HCT238 over 74LS138: I'd like to be able to "restore" the 9771 card to its original design/behavior - for no obvious reason than - I want to. Don't ask me why; I am trying to do that with all the "ancient" machines I am tinkering with. It is simply my respect for the original designers and hardware layout

I'll drink to that.

22 hours ago, Toastie said:

And why 8 addresses? Just to theoretically outpace @evank's  Apple ][ setup; he uses up-to (I believe) five 9767 cards

LOL I appreciate some friendly competition!

Your data is slightly wrong:

  • There are effectively seven available expansion slots on my Apple //e. In daily use, some of them are already taken up. I typically run a serial card and disk controller card. That leaves five slots for Lego 9767 cards. But I * have * run all seven slots full of Lego cards, just to prove the point. :) I demonstrated six in use at Brickworld Chicago and Brickfair DC, both in 2024.
  • When I use my clone (Laser 128), there are only two slots. Oddly they are required to be numbers 5 and 7, thanks to decisions by the Laser engineers.

Also you might consider using an IBM 5160 (PC-AT) which has more slots than a 5150.

I might know someone who has an extra 9771 card ;) if you need more.

I'm still working on "Blocky Kong". I am trying to get it working on six interfaces, so I can keep the disk controller. Worst case, if I need all seven, then I'll use a tape player.

Posted (edited)
2 hours ago, evank said:

LOL I appreciate some friendly competition!

Oh yes :pir-huzzah2: - I am writing such words (and in public) only to a very good and deeply trusted friend, believe me!

2 hours ago, evank said:

effectively seven available expansion slots on my Apple //e

Alright, challenge accepted ;) OK, I have the 5160 XT (the IBM AT was a 5170, wasn't it?) I need the floppy controller and graphics card to a bare minimum. That leaves me with 5 cards, as I can't use slot 8 with any of these cards, including 9771 (https://www.minuszerodegrees.net/5160/misc/5160_slot_8.htm). 

Let's now assume, I'd have the expansion card for 5161 (which cannot go into slot 8 of the 5160 XT either), a 5161 expansion unit, and the expansion card that goes into 5161. That leaves me with 4 slots in the XT. In the 5161 expansion unit, the extender card goes into slot 8 (https://minuszerodegrees.net/5161/misc/5161_basics.htm), which gives me 7 free extra slots. 4+7=11. In other words, my minimally invasive address decoding addition to 9771 cards needs to resolve 16 addresses to beat @evank's record - and all that is totally and utterly fictional!!! 

However, I love such nonsense. Totally. It is fun. And this is why I will use @BrickTronic's proposal to do so :pir-huzzah2:

Evan, please keep us updated on Blocky Kong! This thing is a blast. I truly love it.

All the best
Thorsten

Edited by Toastie
Posted
7 hours ago, BrickTronic said:

Hope you will report success soon and how your "Hack" looks like

I am at it - thank you very much for your support! I really appreciate that.

Will do as you suggested, Jo!

All the best and have a nice weekend
Thorsten

  • 2 weeks later...
Posted (edited)

Dear all,

I like to announce that anyone in possession of 16 LEGO 9771 ISA cards can now build a 4.5V project operating 16 x 6 = 96 motors and 16 x 2 = 32 sensors and use them from within one program. All you need is access to the ISA bus via port addressing. I know at least one person who thinks along these lines, as bigger is better!

So, here we go, @evank, @BrickTronic, @alexGS, and all other TC Control freaks :pir-huzzah2:

First, I like to show some photographs of the original 9771 that I got from a very friendly person here on EB, essentially for free. The photos I found in the webs were a bit blurry, but I may not have searched long enough. All pictures are also here: https://bricksafe.com/pages/Toastie/9771-isa-card  

1280x1228.jpg

1280x1238.jpg

Here is the "plan", based on @BrickTronic's proposal to use a 74LS85 (4-bit magnitude comparator = 16 addresses resolved) instead of my idea (74LS238, 3 line to 8 line demultiplexer), which would have required an additional wired OR gate + pull up/down resistors = 8 addresses resolved), as illustrated in the circuit diagrams shown a few posts further up. I also followed Jo's advice and directly connected IC6/3 to +5V. 4 trace cuts as indicated are necessary - they are easily “repairable” should the card be restored to original configuration:

800x684.jpg800x476.jpg

Here is the real thing with the additionally soldered wires connecting to the little perfboard via a Dupont plug and socket. The original configuration, listening to address 925 (0x39D) with closed “address switch” bridge or 926 (0x39E) with open bridge, is restored by replacing the perfboard with the plug shown on top of the interface card. Note that no further harm (other than  - reversibly - cutting four traces on the PCB. The perfboard is fastened using the original hole in the 9771 PCB with a plastic screw, brass nut, and rubber washer, so it hardly "wiggles". No glue applied other than for fastening the additional wires, again, fully reversible - simply apply "hot glue heat" for removal:

800x923.jpg      

This is the perfboard; the switches are resembling 1101 = 13 (on = GND = 0; off = internally pulled up in 74LS85 to +5V = 1) at base address 1110010000 = 912; 912 + 13 = 925 which is the original address as used in TCLogo:  

640x593.jpg

The address range is thus from 912 (0x390, all switches ON = 0000) to 927 (0x39F, all switches OFF = 1111). This range happens to be the same as used in the IBM XT (5150/60) for the IBM cluster interface ISA card. This card is a predecessor of the token ring or Ethernet cards, which came later. The cluster interface allowed to hooking-up 63 XTs (IBM "cluster") to one XT file server. Should you plan on that, then sorry, the approach shown here won't work for you :pir-wink:.

Some notes:

TCLogo only works when using address 925 (0x39D). With QBasic or the like, all addresses work, when using "OUT address, 6 bit pattern", or "IN address, variable".

The 74LS85 manages the 1 kHz PWM pattern (always) applied in TCLogo, see posts a couple of pages ago, easily - well it should, as the LS chip can do the comparison in about 25 ns = 40 MHz (https://www.ti.com/lit/ds/symlink/sn54ls85.pdf?ts=1761490286532). The power levels in TCLogo go from 1 (minimum) to 7 (maximum). In this photograph, the leftmost lamp is running at power level 6, the rightmost at power level 1. 4.5V Lamps are not necessarily the best power meters, but one gets the idea:

640x221.jpg 

Here is a photograph showing the setup:

1280x2274.jpg

And this is my first TCLogo program. It took me hours to figure out how to increment the value of a variable using the LEGO instructions for TCLogo. Google's AI told me how to do it: MAKE "variable :variable + 1. Which now sounds perfectly OK. I tried so many other things ...

And I know that there are ten better ways of doing this in Logo, but hey, I could have printing "Hello world" on the screen as my first Logo program ...

800x499.jpg

Note to Jo: The IC labeling, e.g., IC1a, although there is no further gate in 74LS30, is caused by the program (Target 3001, free version PCBPool). It always assigns an "a" to any IC, regardless of its interior. Sorry for that, but I am not an electrical engineer and just happy that I sort of know, how to use Target 3001. I bet there is a way to tell Target not to do it this way, but I couldn't figure out how ...)   

All the best,
Thorsten

 

Edited by Toastie
Posted (edited)
2 hours ago, Toastie said:

4.5V Lamps are not necessarily the best power meters, but one gets the idea:

640x221.jpg 

 

Hello Thorsten,

This is fabulous news, thank you for summarising various discussions (which I’d hardly kept up with) and giving us a concrete example.

I gasped/choked when I saw the wires/perfboard added to the original, pristine 9771 🥹

I burst out laughing when I saw the ‘power meter’, like a VU meter on an 80s stereo… needs translucent green/red bricks for effect 😁

I like to use TC-Logo for original LEGO activities (from the workbooks) but I think ‘Technic Multicontrol’ justifies the use of BASIC (as @evank prefers).

You inspire me to create a new interface board, same idea as your 9771 addressing enhancement (perhaps six outputs)  - I would like to make this connect to the header on the Pocket386 that is available on AliExpress. I don’t have one yet (waiting for Black Friday or 11.11 or whatever sales they have, as it’s a somewhat pricey toy) but it exposes the ISA bus at the back of the unit, and is compact, with a modern display.

I realise some old laptops might expose the ISA bus through a docking connector, but they tend to be all different and difficult connectors to find, and then of course there are the usual problems with using 35-year-old hardware - so I’m going to start with this new PC, as then other people could buy the same and use the same interface board. Link below to the product (do not buy at this price as that fluctuates wildly, there are lots of listings for the same item with lower prices, higher shipping, etc.) and it also exists in 8086 form, clear casing, etc. 

Anyway, that will be my next Interface-A project, and will be useful for controlling my 12V train layout, which really needs more than three motors.

Thanks again for your post! 🥰

-Alex

https://a.aliexpress.com/_mseT8DJ

Edited by alexGS
Posted

This needs to be tested. We need to gather 9771 cards and loan them to @Toastie -- I think I've got four or five. Once there are 16 cards committed, then we all mail them on loan to Germany.

Posted
36 minutes ago, evank said:

This needs to be tested. We need to gather 9771 cards and loan them to @Toastie -- I think I've got four or five. Once there are 16 cards committed, then we all mail them on loan to Germany.

Oh, how lovely is that! In that case, I would make 15 PCB's for the committed cards (which would further shrink the size of the "add-on" significantly.
Then I have to order a passive ISA-bus extension back plane, the ISA bus connectors, and then check it out.

As I have total confidence in Jo's suggested 74LS85/4bit switch approach used on my perfboard, how about a lill' punt? If it works, I get 2 of @evank's 9771 cards, and >extended< bragging rights on his website? :pir-laugh: And if it fails, then restore all cards to original configuration, and sacrifice my IBM XT to the Gods of Silicon?

Just to clarify: It is all out there, this is no hollow promise: If this works (reference thread and picture source: https://www.vogons.org/viewtopic.php?f=46&t=41599) with 13 ISA graphics cards, it will work with 16 9771 cards for sure:

640x480.jpg

Source: http://i.imgur.com/40ecbL4.jpg

So world, send me your 9771 cards for an upgrade, you have been waiting for almost 4 decades!

All the best
Thorsten

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...