Sunday 14 April 2024

XGeco Pro / TL866 II Plus (not a Mini Pro) Repair

This is the EPROM programmer I use the most these days. This has programmed all the EPROMs for all the Minstrel and Mini PET kits, PET ROM/RAM boards and pretty much everything else I have touched.

Although that is an old photo, taken when I got it 5 years ago.

I still refer to this as a Mini Pro, although that was the first revision, I had one of those, and I got this to replace that when it was getting a bit tired. 

This is the second revision, the XGeco Pro according to the top moulding, the TL866 II plus according to the label.

These days it is a little worse for wear, and it keeps popping the top of the ZIF socket. The screw threads are unfortunately stripped.

I can push it back down, and hold it to keep it working, but it's days are numbered.

These look to be Chinese rip offs of the original 3M Textool sockets. Often labelled up (if you look closely) as "3N Textdol" or other variations of that.

I think the originals used a nut and bolt arrangement, rather than the self tapper into plastic seen here, but this one has done very well with probably tens of thousands of chips.

I am not sure if the original 3M Zif sockets are still in production, all I could find for sale on Digi Key were the same Chinese rip offs sold via Adafruit, which is a little worrying. (the marketplace on DigiKey seems to be infected with loads of Ali Express knock off "new old stock" black topped scrap ICs .... but that's a rant for another day)

Time to replace the socket, and I'd rather not use another one of those, so I have an older but very much still functional Aries socket of much better build quality.

This also has thin pins, so I can fit a socket to enable it to be easily replaced in future.

The blue ones have wide pins that don't fit into turned pin sockets, you have to wedge them into cheap style IC sockets or solder them direct.

I often end up making stacks of a blue ZIF socket wedged into a dual wipe IC socket pushed into a turned pin socket.

Handy to easily swap those in and out with just a normal IC.

There were three of them in the Penultimate +2 development board.

Time to take this thing apart and replace the ZIF socket.

Inside the case, there are two PCB stacked together. Mostly via dual row headers, but also via two soldered ground connections.

With those two pins desoldered, the stack can be split up.

The bottom board has the voltage regulators, and underneath the main microcontroller (with the number scratched off).

With the ZIF socket desoldered, the top board is mainly IO expanders and switching transistors.

And the same on the back. Including four good old 75HC595s shift registers.

I have fitted an IC socket, so I can swap ZIF sockets without having to dismantle it again in the future.

With the IC socket fitted, the layers can be reassembled and it can be put back in the case.

I ended up adding a second IC socket to raise the ZIF socket up higher as there was a notch at the back of the new ZIF socket that hit the case, and I didn't want to modify the case (or the socket).

And there we go, reassembled with the new(ish) ZIF socket.

And that tests out fine. Ready to program ROMs and microcontrollers for the next batch of Minstrels or Mini PETs or whatever I dream up next.

I should probably get around to ordering a new one, just in case. They are now onto the third generation, the T48, which now comes in a black case, with that looks like that same type of ZIF socket as this.

It has always been a little difficult with these as XGecu don't seem to have an official UK outlet. So you are left to buy from ebay or Amazon, and take a risk that some of these are fakes. This was particularly a problem with the early Mini Pro, but less so these days. Although some of the listings have photoshopped out the XGeco branding (or maybe have their own case without it?). Either way, I am avoiding the ones that do not explicitly say "XGeco T48".

Looking through Amazon, the price and accessories vary quite a bit, although I am not sure this is quite the T48 I was looking for.

You may ask why I am looking for a new one at all, haven't I just fixed the old one? Well, having that be flaky reminded me how much I use and rely on that, so having a backup would probably be a good idea, and the new one supports more devices, which might come in handy at some point, particularly if support for the old one is dropped.

Roll forward a couple of days and the T48 has arrived. Looks to be a genuine one.

All very nice.

Turns out the new one uses the same ZIF socket arrangement as I chose to repair the older one, including a turned pin IC socket to allow it to be changed in future.

The new programmer is supported by the same software as the old one, which detected the device correctly and updated the firmware on first use.

Both being supported by the same software means I can make use of the multi-program option, and program multiple devices at once. One in the old TL866 II Plus, and one in the new T48.

However, one thing I did not expect. They have reversed the position of the target device in the new programmer.

Pin 1 is now at the LED and USB connector end, the opposite end to the ZIF socket handle, which was pin 1 on the old programmers.

That might take a bit of getting used to, but at least I am setup with a few options for EPROM programming now.


Advertisements

If you want to see what I program with these devices, the full range of Minstrel and Mini PET kits and accessories are available form my SellMyRetro store.

All the links can be found here:

Patreon

You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. These are often in more detail than I can fit in here, and some of these posts contain bits from several Patreon posts. This also includes access to my Patreon only Discord server for even more regular updates.

Sunday 7 April 2024

VIC20 Penultimate +2 Cartridge V7.42

This was posted on Patreon a while ago, but has been held back, waiting for the official announcement and accompanying video (see end of post), the actual updated hardware and software started shipping several months ago.

The VIC20 Penultimate +2 Cartridge was launched last year and has been doing very well. This was quite a signification upgrade in terms of hardware and software to the previous Penultimate+ Cartridge.

Since launch, I have been building up a list of more things to add, and that is always a bit of a problem as adding new things means removing old ones.

The plan with the PU+2 (actually, let me stop here and interject. Back at the start of development, TFW8b kept referring to the Penultimate Cartridge as the PU. I was vehemently opposed to that, since it wasn't the PenUltimate cartridge, however that name just seems to have stuck and even now I find myself using it. Still hate myself for doing so though)

Anyway, the plan with the PU [sic] was always to keep refreshing things, adding more modern titles, and removing the less good of the older ones. Always tricky as people have favourites, and it is always the big 16K games that have supporters and only the tiny 2K titles that we can agree to get rid of.

I have been toying with an idea to squeeze more space out, so now is the time to give that a go.

Some historical background

The original VIC20 ROM/RAM cartridge I designed had only 8K banks, and DIP switches to select which of those was mapped into BLK5 on the VIC20. That limited the range to only 8K cartridges, but that included Avenger and Gorf and things like that, as well as the Diagnostics.

When I upgraded that, I moved to 16K banks. That allows 16K games like Dig Dug to be used. The 16K bank would consist of two 8K blocks, for example as one in BLK3, one in BLK5. This version also had 32K of RAM, so not quite the maximum, but enough for most things.

The first Penultimate Cartridge that was actually called a Penultimate Cartridge still retained 16K blocks, but added more ROMs and more RAM so that it could provide the maximum available 35K of RAM.

Not sure if I have mentioned this before, but there was brief dead end where I tried to integrate an IEEE-488 interface.

The idea being to combine that with a PET MicroSD to make an all in one cartridge.

It was a nice idea, but a bit pointless. It needs a ROM in block 5 to operate, so means you can't load anything into the block, so you can't load any cartridge images or 32K games. The non-cartridge VIC20 software is mostly small, so there is little advantage of the faster IEEE-488 interface. And like all the other disk interfaces for the cartridge port, it will never be 100% compatible as not all of the disk functions are vectored.

So that was abandoned and I went back to the V2.2 board as the basis for the first menu driven PU (sorry, I am just going to have to accept that name).

The was tidied up nicely to make the menu driven version of the Penultimate Cartridge.

Then TFW8b came along and invested a bucked load of money into an injection moulding tool to turn this into a proper product.

The case colour and label got better over time.

That was still using 16K banks, so 8K cartridges would mean wasting half the space, 4K cartridges wasted 12K of space. That was just the limitation of the way the banking and mapping into RAM was achieved. The idea was just to give a few games to test out the system.

For any of you that didn't see one of those, you may be surprised to see the menu was a lot more basic than the later versions.

The Penultimate+ Cartridge

The Penultimate+ Cartridge was a major reworking and allowed the wasted half of the 16K banks to be used. So two 8K cartridges could be fitted into a 16K bank.

To cope with the much larger ROM and all the extra games within, this was when the fancy graphical menu was added, thanks to help from Misfit.

This cartridge for the first time included 32K games, although still based on 16K blocks, so had loaders that loaded the game into RAM from two 16K ROM blocks.

There were also an increasing number of games converted from tape or disk games (or simply PRG files for modern games). At this stage, those were converted to cartridge images with loader routines to copy the PRG file into RAM and run it.

There were a few revisions of this along the way, removing old titles to replace them with new ones, but it continued like that for many years.

The Penultimate +2 Cartridge

The Penultimate +2 Cartridge was a big change. (the label artwork was later improved slightly)

Firstly, a second ROM chip was added, which doubled the storage capacity, but moreover the structure was changed. Thing were now arranged in 32K banks, so for the first time, a game like Cheese and Onion could be loaded directly from ROM in one go.

The PRG conversion were also integrated into the cartridge menu, so raw PRG files could be included in the ROM space rather than having to be encapsulated into a cartridge with a dedicated loader, taking up more space.

(the multipart games are still converted into cartridges as they all have different requirements and load mechanisms - see lots of previous blog posts about multipart game conversions).

The meant a 32K bank could contain a single 32K game, two 16K games, four 8K games, or four 4K cartridge games. It could not be eight 4K cartridge games as the ROMs always have to start at the bottom of the 8K boundary when they are mapped into the VIC20 address space.

That meant that between the ROMs there were spaces of various sizes, 4K, 12K, 20K, 28K etc. that could be used to fit PRG games in. This opened up a lot of possibilities and lots of Unexpanded VIC20 games are less than 4K (most use the full 0E blocks, 3584 bytes). Thus a whole load more titles could be added and the PU+2 gained a massive games list.

More titles then appeared, and we went through the usual process of trying to identify some titles to remove. We could agree on some things. Q*Bert is awful. We have two better versions of Q*Bert and that one is only there because it is actually what was released under that name. That and a few little 4K filler games we could have removed, but nothing to replace them with. All the larger games that were suggested for removal had one or other of the TFW8b team defending them.

Time for a change

This is where the Penultimate +2 V7.4x comes in.

With a major change to the firmware, and a minor change to the hardware, I refined the method of addressing the ROM contents. It is still in 32K banks, but the contents of this can now be addressed in 256 byte blocks.

Cartridge games still have to start on 8K boundaries, but the space after those can be packed tightly with no more than 256 bytes wasted between games. So far example, one 32K bank can now contain 9 unexpanded VIC PRG games. And all combinations within.

This meant an awful lot of work as each game had to be repositioned within the ROM and the menu updated to reflect this. Many of the previous simple cartridge conversions were replaced with the original PRG files, freeing up more space.

I was effectively defragmenting the Penultimate Cartridge. I had big lists of games and was shuffling thing around trying to completely fill each 32K chunk with exactly 128 x 256 byte blocks.

I was working in hexadecimal as that seemed easier, you may have heard me complaining at the time about that, trying to find lots of different ways to add up to $80 blocks.

At the end of the process, I had added all the new games we had found, plus several others, and had removed nothing. Not even Q*Bert.

TFW8b was running out of the original PU+2 boards, which can be identified by white LEDs in the "Rod's Random ROM Runner" mode. 

As soon as they ran out, the new board with the hardware and software changes started to ship. The new boards have blue LEDs as I originally intended, so they now match the label.

When the button is lit up red, pressing it will reset the VIC20 or restart the current game.

When the button is lit up blue, pressing it will start a random game.

New Games

As I was finishing off the final gaps in the ROM, I went back through some of the games I had previously tried to convert to cartridges, and managed to fight my way through five of them.

Four of those were added into the last of the space. The fifth will forever remain the lost game as 1) TFW8b hates it and 2) the conversion posts seem to get less and less interest the more I do, so I never wrote it up. (update - I did write it up - http://blog.tynemouthsoftware.co.uk/2024/02/converting-vic20-multi-part-games-vegas-jackpot.html)

There are two new games from Davide Bucci

Cavern Explorer (http://davbucci.chez-alice.fr/index.php?argument=varie/vic20cavernexp/vic20cavernexp.inc&language=English)

A nice falling / driving game trying to avoid obstacles and collect stuff.

And a Alien Invasion (http://davbucci.chez-alice.fr/index.php?argument=varie/vic20alieninv/vic20alieninv.inc)

A very playable space invaders.

There seems to have been some confusion over the name, AlienInv.prg, which was in a D64 image called Alien Invaders, which is what I called it on the menu, but the game itself has the title of Alien Invasion, so I will fix that in the next update. The original version will therefore instantly become a rare collectors item (available on ebay in a ziplock bag). Anyone with the "Alien Invaders" version will need to insure their cartridges for $1M.

There are four games from majikeyric (https://majikeyric.itch.io/)

This is a really interesting puzzle game where you move a robot around platforms using two magnets, one either side.

Spikes is one of those frustrating games you keep going back to.

You have to keep the ball bouncing without toughing any of the spikes.

Fall is one of a pair of two player games that you have to play both parts as a single player.

Two climbers are descending and you need to move them from one wall to another to avoid obstacles, but you have to deal with both at the same time, which requires quite a bit of multitasking and coordination.

Jump is the same sort of thing, but sideways.

This time you have two runners and you need to make them both jump over the obstacles.

The rest of the new games are old games from a bag of VIC20 tapes that Rod found in the bottom of Emu's cage.

Utilities and Development Tools

It is not just games. The utilities section has been expanded quite a bit. So much so, that I have split it into two parts, it is now Utilities and Development Tools.

The utilities menu is now less busy, more space to add things in future (any suggestions?)

I have added quite a few things to the development menu, and the extra space on the menu has let me show the appropriate SYS commands, to save to have to look those up.

Lots of new things here.

Programmers Aid has an unusual load address ($7000), so needed a special mode to have that and the maximum RAM.

I have added a version of VICMON that is active at the same time at $6000.

Super Expander also has a VICMON added, in case you want to disassemble your slightly wobbly circles.

Also new is wAx assembler that a few people recommended. (http://beigemaze.com/wax2)

Seems to have quite a lot of nice features:

So that is another one to explore.

And finally, Waterloo Structured BASIC.

This adds some things like procedures and loop structures to BASIC.


Where can I buy one?

Pleased you asked. You can order a PU+2 from The Future Was 8 bit :

https://tfw8b.com/product/vic20-penultimate-plus-two/

Oooh, have we got a video?

The updated cartridge is covered in another great video from Robin, 8 bit show and tell:


Patreon

You can support me via Patreon, and get access to advance previews of posts like this and behind the scenes updates. These are often in more detail than I can fit in here, and some of these posts contain bits from several Patreon posts. This also includes access to my Patreon only Discord server for even more regular updates.

https://www.patreon.com/tynemouthsoftware