Memofest 2023, Where and When?

Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

Dave bought along his MTX512. It was the first one I have noticed as having the RS232 ports fitted. (Sorry no photo :oops: ).

Opening the case revealed an FDX interface board fitted, although Dave has never had an FDX.

We powered the MTX up, and apart from a fairly severe case of keyboard bounce it seemed to be in fully working order.

Although Dave did not bring it along, he says he has a 5 1/4 inch version of the SDX, but perhaps no disk drives.

Modern storage options that he could try are an MFX, although that would require removing the FDX / RS232 interface. Alternately a CFX or CFX-II could be fitted externally. We did briefly demo my CFX-II fitted to Dave's MTX.
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

My "second" MTX512:
20231028_082400.jpg
20231028_082400.jpg (861.21 KiB) Viewed 946930 times
It was acquired probably some time in the 90s, and has sat in a cupboard ever since. It was fished out to demonstrate the MFX. It suffers from rather stiff keys owing to the lack of use.

Both Jim and I demonstrated during the day the advantages of the network capability of the MFX to transfer files to and from the MFX.
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

My MFX is not a standard one, I have been playing with the firmware for the FPGA.

I have added 64-colour support to the 80-column display, rather than just 8 colours:
20231029_073328.jpg
20231029_073328.jpg (744.1 KiB) Viewed 946929 times
The MTX hardware is actually capable of producing 4096 (slightly) different colours (12-bits, although not on the same screen). I have added a colour palette (or lookup table) to the video output stage which can map 256 input colours to any of the 4K output colours:
20231029_073412.jpg
20231029_073412.jpg (764.67 KiB) Viewed 946929 times
The 80-column display has a font of 256 text characters and 256 graphics characters. I have made the text font completely redefinable:
20231029_073531.jpg
20231029_073531.jpg (899.58 KiB) Viewed 946929 times
This shows a font for code page 850, which provides the accented characters needed for European languages. CP850 is not actually ideal as that a number of the accented characters are on codes 0x80-0x87 which the MTX uses for the function keys. CP1252 would be better as that has the accented characters on higher codes, but I have yet to find a font for this.

I have also added a 320x240 pixel graphics mode:
20231029_073643.jpg
20231029_073643.jpg (1.01 MiB) Viewed 946929 times
I am still considering further graphics modes:
  • 320 x 240 x 2-bits per pixel
  • 320 x 240 x 3-bits per pixel
  • 160 x 120 x 8-bits per pixel
I have yet to write the ROM code which will enable any of these enhancements to be used from BASIC.

None of these enhancements require any hardware modifications, only an update to the FPGA hardware, so they may become available as an MTX upgrade at some point.
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

The VDP emulation has also been enhanced. Martin had already added multi-colour sprites which the TMS9929A cannot do. I have further added multi-colour 40-column text.
20231029_080708.jpg
20231029_080708.jpg (830.32 KiB) Viewed 946929 times
The emulated VDP output also goes through the colour palette so that any of the 16 VDP colours can be mapped to any of the 4K colours the MFX can produce:
Attachments
20231029_080814.jpg
20231029_080814.jpg (928.58 KiB) Viewed 946929 times
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

I demonstrated the Memotech emulator MEMU running on a Raspberry Pi Pico:
20231029_083201.jpg
20231029_083201.jpg (922.16 KiB) Viewed 946928 times
My latest version of MEMU for the Pico adds:
  • The emulation configuration dialog.
  • Silicon disks, including huge disk support.
These features were already in the PC versions of MEMU. Adding them to the Pico version means that this can now run HexTrain.

The Pico, and the VGA Demo board it is sitting on are both commercially available boards, with a total cost of under £25.

For all the details of HexTrain and the very clever coding which makes it possible to run on an MTX see the HexTrain page Andy Key's website.
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

Jim demonstrated the Sound Effects and Music code for the Memotech that he and I have been working on together.

Jim has code (EnvoSound, originally from RollaBearing) for producing sophisticated sound effects from the Memotech SN76489 sound chip. This code applies complex sound and frequency envelopes to the generated sound, controlled by a large number of parameters.

To assist in designing sound effects I developed a program (NoteEdit) to allow interactive selection of all the parameters and test playing the resulting sounds:
20231029_090446.jpg
20231029_090446.jpg (913.89 KiB) Viewed 946927 times
As well as sound effects, games need music. EnvoSound can produce the individual notes, but they need to sequenced to play a tune. Jim decided that the easiest way to compose music is as MIDI files. These can then be processed by Python code on a PC to produce compact "Memotech Sound" files (*.msd) which can be embedded in a game. To test the resulting music, a stand-alone player (msdplay) has been developed which can play the *.msd files.

The attached zip file contains the executables for NoteEdit, msdplay and one example file (blackbd.msd).
Attachments
Memofest_Sounds.zip
(5.65 KiB) Downloaded 25279 times
Martin A
Posts: 825
Joined: 09 Nov 2013 21:03

Re: Memofest 2023, Where and When?

Post by Martin A »

Bill B wrote: 29 Oct 2023 09:23 Modern storage options that he could try are an MFX, although that would require removing the FDX / RS232 interface. Alternately a CFX or CFX-II could be fitted externally. We did briefly demo my CFX-II fitted to Dave's MTX.
There's always the gotek route to bypass the lack of physical disc media these days.

The DIY option viewtopic.php?t=386 is there too.
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

All of the recent Memotech storage devices (CFX, CFX-II and MFX) store the CP/M disk images as successive 8MB slices at the beginning of the storage media, perhaps followed by the HexTrain data file. This leaves the rest of the, usually much larger, storage device unusable.

Also, each of the devices use different hardware to access the storage space. As a result, any program such as HexTrain which wishes to make use of the extra storage capacity needs to have a different version for each device.

To work around this I have been developing an "Extended Storage" interface, which can be implemented on each device to provide a standard way of accessing the entire capacity of the storage device. This consists of a few extra code entry points near the top of memory (similar to the existing disk access routines at 0xFFF0 - 0xFFFE). Programs can then simply call these routines and will obtain access to the storage by whatever means is appropriate to the device. That means that there only needs to be one version of the program.

One feature of this interface is that it will be possible to partition the media in the DOS/Windows sense. One partition can contain the CP/M disk images (and HexTrain data). Another partition can be FAT formatted, readable and writeable from Windows or Linux without requiring any special software.

Then a CP/M program using the Extended Storage interface can move files between the FAT partition and CP/M drive images:
20231029_093035.jpg
20231029_093035.jpg (860.21 KiB) Viewed 946922 times
So far this is for CP/M only, not from ROM BASIC.

If completed, implementing this will just require ROM updates for the devices. Existing (un-partitioned) media will continue to work.
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

One of the test boards I use while developing new firmware for the FPGA on the MFX:
20231029_100708.jpg
20231029_100708.jpg (1.25 MiB) Viewed 946919 times
It is a partial reproduction of the MFX, with interfaces for the video SRAM, VGA output and SD card. A Raspberry Pi Pico stands in for the Z80. Because the Pico is a 3.3v device (compared to the 5v Z80) no level shifters are required.

Unfortunately, the programming connectors on the FPGA board are not on the same 0.1 inch grid as the main FPGA connections, so it is not possible to include sockets for these on the matrix board. Instead the FPGA board is hung over the edge of the test board and a ribbon cable is used to connect to the programming socket. The Pico can then either program the FPGA or test it without having to unplug anything.

For testing an assembled MFX board I have a second test unit:
20231029_100804.jpg
20231029_100804.jpg (1.05 MiB) Viewed 946919 times
This can be plugged into the MFX edge connector to test everything on the board. This board is not able to do any reprogramming, but it does have a wandering probe to test the logic value on any of the pins on the MFX.

When developing the VHDL code for the FPGA I have frequently found it useful to simulate the operation of the code. For this I use ghdl. The resulting logic signals can then be displayed in GTKWave:
GTKWave.png
GTKWave.png (83.66 KiB) Viewed 946919 times
Bill B
Posts: 618
Joined: 26 Jan 2014 16:31

Re: Memofest 2023, Where and When?

Post by Bill B »

Other topics that were covered during the day include:
  • EPROM & PIC programmers using printer port.
  • History of CFX, Propeller video & CFX-II leading to MFX.
  • Andy's read-only PROM disk emulator.
  • MTX_Lib and the Code::Blocks GUI for developing Memotech programs in C.
  • My implementation of a ZMachine interpreter for playing text adventure games.
  • Martin showed his 3D printed, miniaturised FDX case for holding his REMemotech.
  • Any use of PIO socket?
  • CTC an asset for MTX.
  • Jim gave a review of his porting of original MTX games to modern hardware (PCs and Phones).
Probably other things that I forget at the moment.
Last edited by Bill B on 30 Oct 2023 00:02, edited 2 times in total.
Post Reply