Sunday, 14 August 2022

Minstrel 4D Overview

There is a new kit on the block.

Introducing the Minstrel 4D. Shipping now from The Future Was 8 bit - 

https://tfw8b.com/product/minstrel-4d-turbo-jupiter-ace-compatible-computer-kit/

This is a much updated version of the Minstrel 4th. It has many added features, whilst still retaining compatibility with the Jupiter Ace.

The main specs remain the same as the Minstrel 4th.

  • Z80 CPU at 3.25MHz or 6.5MHz
  • 49K RAM (maximum supported)
  • 8K ROM (up to 15K ROM supported) (configurable 1 of 4 ROM images)
  • 32x24 monochrome display with 128 user definable characters (+128 inverse)
  • Microcontrolled based CRTC
  • PAL or NTSC composite video output
  • 1 bit mono sounder
  • Expandable via RC2014 bus
  • Forth in ROM
  • Jupiter Ace compatible

It is quite a bit larger than the 4th, to be able to fit in all the new stuff.

RC2014 Bus

There is now space for four RC2014 bus connectors ("Minstrel 4D is designed for RC2014").

Most RC2014 cards should work, other that those with ROM or RAM or a Z80, since those are already present on the bus. I/O addresses 0x01 and 0xFE are used by onboard devices, the others are free for expansion cards.

You can mount the fourth slot horizontally, to give better access to one of your cards, or you could even add a backplane if you want even more slots.

Keyboard

The most noticeable change is the keyboard. This is using the same 12x12 mm soft touch tactile switches as the Mini PET 40/80. 

The Minstrel 4D keyboard has the original 40 keys, with symbol shift, space and enter offset to the right by one, and an extra delete key (to save you pressing shift+0 all the time). 

On the end are four new buttons. One is a soft power on/off (as on the Mini PET 40/80). Power is from 9V DC (centre negative like the Minstrels, Mini PET, ZX Spectrum, Commodore 16 etc.). A heatsink is not required for normal use (~100mA), but you can fit one (or a switching replacement) if you need lots of power for RC2014 bus cards).

There is also a debounced reset button for a clean reset pulse.

There is a new Turbo button. This is used to toggle between the standard 3.25MHz and 6.5MHz. This can be switched on the fly, so you can still load programs from tape at 3.25MHz and then switch to 6.5MHz to run them faster. 

At power on, you get the usual black dot and you can start typing away as if it were a Minstrel 4th or a Jupiter Ace. This is when you start typing in Forth, rather than in BASIC as with most other machines of the era.

I bet one of the first things you are going to type will be vlist.

Menu

And then there is the Menu button. This is where all the new stuff lives.

When you press the Menu button the Z80 is reset, the screen clears and "LOAD menu menu" is magically typed on the screen.

Well, it's almost magic, it's actually using the "auto typing" feature of the Minstrel 4D, which is used by a lot of the features in the menu. One of the design goals of the Minstrel 4D was to run with an unmodified ROM, so all of the new features are external to the original system, which should give good compatibility.

This is interfaced with the keyboard, and effectively presses the keys one by one to type them in.

The keyboard interface is using the 74LS version of the chip, again for compatibility reasons (see http://blog.tynemouthsoftware.co.uk/2022/05/zx81-external-keyboards-and-the-minstrel-3.html for more on this)

The auto type then presses enter and some more new stuff happens.

The screen border now flashes during loading, like a ZX Spectrum. That makes it easier to find the right volume level. The tape input has also been improved from the Minstrel 4th, and now has 5 selectable voltage threshold levels from 0.5V to 2.5V to suit a wide range of input sources.

I have been lucky enough to borrow some genuine Jupiter Ace tapes, and have tested through loading all of these.

Back to the menu. That isn't loaded from tape, it is stored in the firmware of the Minstrel SD microcontroller, and is "played" into the ear port as if it were being loaded from tape.

One the menu loads, you are presented with a list of options.

I'll go into more details on this in a separate post, but just briefly:

XModem loading

Options 1,2 and 3 offer different versions of loading programs over serial using XModem.

There is a 6 pin header to connect a standard 5V FTDI type USB serial lead. 

N.B. Serial interface is for typing / loading files only, and is not a replacement for an RC2014 bus serial interface.

At the other end of that, you need a suitable terminal program. Here I am using Tera Term on Windows.

Select Transfer > XModem > Send from the menu, browse for a suitable .tap file to send and click OK.

When the sender is ready and waiting, press 1, 2 or 3 on the menu. Which one you chose depends what you want to do.

Each will parse the tap file to find the name of the first dictionary within, and then type the load command.

1 will type "LOAD name name" which will load name, and then type name to run it - useful for programs where you run things by typing the same name, e.g. load TUTTUT and then TUTTUT to run it.

2 will type "LOAD name", which will load name, and then leave you to type in the command to run it - useful for games where this if GO or RUN etc.

3 will type 0 0 BLOAD name, most of which will start themselves.

Once you make you choice, the command will be typed in and the program will start loading.

There is a lot going on here, the program is encapsulated in a tap file, which is then split up and put into XModem packets. The 4D then receives them and extracts the tap file from the XModem packets. It then extracts the actual program from the tap file and plays it into the ear port as if it was being loaded from tape. (all of this without being able to assemble the whole file as it it loading on the fly)

You can sit and ponder everything that is going on whilst it loads. Tut-Tut takes about 40 seconds, more than twice as fast as loading from tape (it automatically switches to turbo mode to load and then back to normal to run).

It can also cope with multi-part files, such as those created by Z88DK.

4 Type from Serial

This uses the same FTDI serial connection to allow you to type directly into the Minstrel 4D. Symbols are converted, so you type shift + 1 for ! as usual on a PC keyboard, which is translated to symbol shift + 1 on the Minstrel 4D etc.. The actual shift + 1 is delete line, and that is available by pressing F1 etc.

  • F1 = Delete Line
  • F2 = Caps Lock
  • F4 = Inverse
  • F9 = Graphics
  • F11 = Set normal clock
  • F12 = Set turbo
  • Cursor keys = Arrow Keys

5 Load from Tape

This exits from the menu and types "LOAD " for you. Fill in the name of the program and start your cassette recorder playing.

6 Browse SD card

Oh, did I mention it had an SD card?

That's where the name comes from, Minstrel 4D = Minstrel 4th + Minstrel SD.

You get a directory listing on the SD card (with long filename support). You can select a subdirectory to browse further, or select a file (I have put things into subfolders based on how they are loaded).

When you select a file a tap, you get a choice of ways to load it, 1, 2 and 3 as before. It parses the tap file to fill in the names on the menu.

When you select a txt or fs file, you have the option to have it typed in for you using the auto type feature.

No other file types are supported. (what else would you want to do?)

7 Built-in Programs

In case you haven't found an SD card yet, there are a few programs built in which can be loaded directly. This include Tut-Tut, which is currently being updated to add support for joysticks.

Oh yes, did I mention the Minstrel 4D has a joystick port?

You can use standard Atari / Commodore 9 way D joysticks with the Minstrel 4D. This port mapping is compatible with the Boldfield joystick interface, supported by several of their games. It lives on port 0x01, but there is an option to disable it, if that conflicts with any of your RC2014 cards.

The DIP switches also selects one of 4 ROM images (if you have burned your own ROM - the kit only has the standard ROM). You can also set PAL or NTSC for the video, and normal (white background, black text) and inverse (black background, white text), to suit your preference. (no jumpers was also a design goal on the Minstrel 4D)

The video has been improved from the Minstrel 4th, to remove snow on the screen during periods of frequent screen updates.

8 System Info

This screen shows various information about the system, including build version and date, serial port settings and information on the SD card.

9 Settings

This allows you to change various settings including the load threshold voltage, whether to boot straight to the menu at power on, and whether to switch to normal or turbo clock mode by default.

You can also change the save settings to turn on auto verify.

You save using the standard save command (the ROM is unmodified). When the Minstrel SD detects a save in progress, it will show the black bars on the screen and writes the file to the SD card in the root directory. If the file exists, it will append (1) to the filename, then (2) etc. until it finds an unused name.

When save has completed, if auto verify is turned on, it will type in VERIFY name for you and then play back the file to check it was saved correctly.

What else can I tell you?

The board is laid out in functional groups, which I think has turned out quite nicely. The schematics section in the manual will be split into similar functional blocks.

There are bus pullup resistors fitted now, which means unused ports are always read as 0xFF, rather than usually reading 0x58 on a Minstrel 4th or 0x20 on a Jupiter Ace. That is only really relevant to things using type 2 interrupts, such as the game Valkry - there will be much more about that in a future post.

RC2014 card support

Just a little footnote, in case you were asking, yes you can use Shirley Knott's USB keyboard interface

(note that this card blocks the use of shift on the built-in keyboard as it does on the Minstrel 4th. This may cause an issue with some of the autotyping functions on the menu which require shifted keys).

And yes, you can use a Jester Ace.

You use the same commands to load and run as normal with the Jester Ace.

Now you can see the driver loading.

And you can probably use them all together if you want to.

Update

The production board has a few small changes, the button artwork has been updated, and there is new a perspex top plate and base.

Advertisements

The Minstrel 4D is available for preorder from The Future Was 8 bit. This will be a self assembly kit, using all through hole components. These should be shipping in 2-3 months. Update 2022-12-09 - Shipping Now

https://tfw8b.com/product/minstrel-4d-turbo-jupiter-ace-compatible-computer-kit/

Patreon

You can support me via Patreon, and get access to advance previews of projects like this and behind the scenes updates. This now also includes access to my new Patreon only Discord server for even more regular updates.

https://www.patreon.com/tynemouthsoftware

Sunday, 7 August 2022

Commodore PET Dual Userport Joystick

There is a a new product, available now from The Future Was 8 bit - Dual Joystick Adapter for Commodore PET  and Mini PET- https://www.thefuturewas8bit.com/shop/tynemouth-products/pet-joystick-adaptor.html

Plugged into the user port of a Commodore PET or Mini PET, this gives you two 9 way D Atari / Commodore compatible joystick ports.

These are supported in some programs, and easy to add to your own code.

The joysticks are connected to the 6522 VIA port A. This can be read from either address 59457 (0xE841) or 59471 (0xE84F), although the former seems to be more commonly used. (the difference is E84F does not alter the handshaking lines, although those are not used in this case)

The signals are low when activated, so it is best to use 255-PEEK(59457) to check the value. 0 means nothing is moving, other values indicate movement.

Value (decimal)
Value (hex)
Port1
Port2
0
0x00
None
None
1
0x01
Up
None
2
0x02
Down
None
4
0x04
Left
None
8
0x08
Right
None
3
0x03
Fire
None
16
0x10
None
Up
32
0x20
None
Down
64
0x40
None
Left
128
0x80
None
Right
48
0x30
None
Fire

It's easier to see in the hexadecimal view, Port1 affects the lower nibble, Port2 the upper nibble. If both are moving, it will be a combination of the two (i.e. 0x41 is port 2 left, port 1 up).

It can also be seen that this is only 8 bits and there are 8 directions and 2 fire buttons. There are not another two inputs that can easily be used so it has become a standard on these things to use the combination of up and down at the same time to represent fire (1 is up, 2 is down, 1+2=3 is fire). That is slightly limiting in that you can't check for a combination of up and fire etc., but it does the job.

In case you forget, all those numbers and the test program are printed on the back of the PCB.

As it states on the back, there is no 5V power to the joystick ports, so autofire type circuits will not work. There is also no support for paddles, mice, light pens, light sabres, toasters or anything else you might try to plug into those ports. Simple directional joysticks only.

This version is using surface mounted parts, which looks a lot neater than my prototype.

Which, although it worked, was a little flimsy. This was built to test the userport on the original Mini PET, and the PCB version to test the Mini PET 40/80. This product has unfortunately been waiting in the wings for a long time.

This arrangement is supported in the Vice emulator. You first need to turn on Userport Joysticks under Input devices / Control port.

Only then is the drop down enabled under Input devices / Joystick

Select the type "PET" from the list.

In the previous blog post, the thing which caused the most interest was a photograph of a mains plug, so I thought I had better include one in here as well.

Joysticks are supported in the three PET titles from The Future Was 8 bit. My two remakes, Tut-Tut and 3D Monster Maze, and Misfit's Cheese and Chive.

Advertisements

The PET Dual Joystick Adapters and games on cassette are available from The Future Was 8 bit:

Update

The TFW8b version is no longer available, but I have designed a new version.

This is available from my SellMyRetro store, as assembled, kit and PCB only versions.


Patreon

You can support me via Patreon, and get access to advance previews of projects and behind the scenes updates. This now also includes access to my new Patreon only Discord server for even more regular updates.

https://www.patreon.com/tynemouthsoftware

Sunday, 31 July 2022

Commodore plus/4 7 pin power conversion

The Commodore plus/4 uses an unusual 4 pin square DIN plug for it's power. 

Into this you would normally plug a Commodore plus/4 power supply. However, these are known to not be very reliable.

One solution to this is to cut the lead off a plus/4 power supply and wire it to your own supply. There is an alternative if you have one of the earlier revision boards.

The original design plan for the plus/4 was to use the same 7 pin DIN power socket as the Commodore 64 and later VIC20s. The designer Bil Herd apparently kept changing the schematic to a 7 pin and production kept changing it back to the 4 pin.

It seems this may have continued until after the PCBs were designed, as the earlier boards (assembly no 310463) have some extra pads under the 4 pin socket. Later PCB revisions (e.g. assembly no. 250455) sadly do not have these extra pads.

If you desolder the 4 pin DIN plug, you get a pattern oh holes which might look familiar if you have worked on a Commodore 64.


If you look at the 4 pin DIN and compare it to a 7 pin DIN, you will see various pins in common.


And if you offer up a 7 pin DIN socket to the plus/4 PCB, you will see it fits perfectly.

You might be concerned that the pads would not be wired to the correct signals, but no, all the pins are already wired up correctly.


Pins 1, 2 and 3 are ground. Pins 4 and 5 are 5V DC. Pins 6 and 7 are the two 9V AC connections.

The poor 4 pin DIN socket looks sad now that it has been consigned to the spares bin.


They always remind me of the Cubes from Terrahawks.

When reassembled, it fits right in. 

One objection to this arrangement could be that it is possible to mix this up with the 8 pin DIN video connector.


However, they sold the Commodore 64 with that combination for years, and I don't think I have heard of anyone trying to power a C64 from "the other power socket" on the back.

Now that you have a 7 pin power connector on your plus/4 what should you plug in? 

Well, absolutely not a Commodore 64 power supply!

I use this aftermarket one from the 80s. It has severed me well over the years and is still solidly reliable.


I am not sure what brand it is, it just says it is suitable for computers requiring those voltages.


Inside it is pretty much as simple as it could be, mainly a large transformer.


The circuit is 4 diode bridge rectifier, a couple of smoothing capacitors and a 7805, the only embellishment being a hard wired fuse.


The date code looks like 1987.

Interesting to note the plug actually has only 4 pins present, as was common on the Commodore versions as well.

Shout out to the very 80s mains plug this one has always had.


7 pin conversion - check. 7 pin power supply - check. Time to test it out.

And there you go, one plus/4 running from a more reliable power supply.

I left the plus/4 running Diag264, and it seems happy, all the voltages look good, so that's job done.


I don't normally use a plus/4, the keyboards always seem to need attention. This one about half the keys need to be pressed very hard several times before they wake up. 

For any TED testing, I normally use a Commodore 16 with a 64K upgrade - see the post where I did that.

http://blog.tynemouthsoftware.co.uk/2019/02/commodore-16-64k-upgrades.html

However, it's always handy to have one around so I can use the built in software.

OK, maybe not.

Update

I noticed the label on the power supply was looking a bit tatty, so I made a new one.


I started with a patched up photo of the original, then made that black and white to more clearly see the letters and then replicated them as best as I could. It was difficult to find a font where the S was closer to an 8 and the y had a straight stroke. In the end, I couldn't get an exact match, but Calibri came close and the y was more noticeable that the S.

I did make one slight change, I couldn't leave it as 1.5a, I had to change it to 1.5A. I had to adjust the  kerning on the VA with an extra 25% between them to get that to line up, everywhere else was standard.


There, that's much better.


Advertisements

If you want to see more posts like this and behind the scenes progress on new projects, you can follow along and support me on Patreon:

https://www.patreon.com/tynemouthsoftware