This machine was given to me by Ruud Baltissen. Thanks Ruud!
When BASIC became a requirement in the 1980's for educational computers, the MPF-1 became too limited. It has a Tiny-BASIC, but with only a six 7-segment display and a hex-keyboard, usage is not very user- friendly.
The MPF-1Plus or MPF-1P, was Multitech's anwser to this problem. With a 20 character display of 14-segment characters (virtual line-length is 40 characters) and a 'full' ASCII keyboard, the MPF-1P resembles a (miniature) normal computer.
The Monitor code in the U2 ROM is about 4 kByte, the remainder is the 2-pass assembler. The monitor has some support for the PRT-MPF-IP and a TV card, TVA-MPF-1P or TVB-MPF-1P, allowing to send memory dumps or listings to a multi-line device.
The computer came incomplete, but in overall good condition. The power connector, speaker and the monitor ROM were added. The cassette port sockets will come later.
Some minor repairs:
The MPF-IPlus supported a battery backupped RAM, assuming low-power CMOS RAM is installed. Below the board there is a holder for two AA-batteries and at the left a switch to enable/disable the battery power to the RAMs.
|IOM-MPF-1P||The IOM-MPF-1P board contains the brings back the extra's that were part of the 1B, but were
absent from the 1P, a Z80 PIO, a Z80 CTC, an experiment area and adds some more: a 8251 PCI
(programmable communication interface) with RS232c connector, 6 kByte RAM and 2 kByte ROM.
The contents of the ROM is a bit underwhelming, as it are mere simple demo's for the interface chips:
************ IOM_MPF_IP ************ FEB. 13TH 1983 by Charles Chang IOM_MPF_IP is an I/O memory board. The address of ROM is from B000H to BFFFH. The address of RAM is from D800H to EFFFH. The I/O address of PIO is from 68H to 6BH. The I/O address of CTC is from 64H to 67H. The I/O address of 8251 is from 60H to 63H. It contains three demo. programs. The first program uses PIO as a traffic light controller. The second program uses CTC to design a clock. The third program transfers data between IOM_MPF_IP and CRT through RS_232.
The printer is a Daini Seikosha MTP201A thermal printer, capable of 20 characters per line or 138 dots. The driver uses characters of 5x7 dots. Paper width is 58 mm, of which 46 mm is used for printing.
The PRT-MPF-IP ROM contains four routines:
The MPF-1P monitor checks for the presence of a PRT-MPF-1P during startup by reading address 6000h (start of the PRT-MPF-1P ROM). If the value is CDh, a printer is assumed to be attached. Ctrl-P toggles the display output to the printer. The displays then reflects the printer state: 'PRT ON' or 'PRT OFF'
While printing, the printer draws considerable current, more than 1.5A. Make sure you use an appropriate power supply.
There are several versions of the board, which is usable for both the MPF-IP and the MPF-1(B), but with different ROMs. The second ROM socket is mapped to the 7xxxh region.
|TVA-MPF-1P||This board is based on the EF9367 graphical processor or GDP. The
memory on this board is completely controlled
by the GDP, so doesn't appear in the MPF-1P memory range. The GDP
exposed four address lines, implicating 16 I/O
or memory locations. A ROM dump is in the
The ROM location is probably 0xA000 - 0xA7FF, The EF9367 registers are accessed in 0xAFE0 - 0xAFEF range (this is derived from a ROM-disassembly).
The boards looks like it is a third party design.
|TVB-MPF-1P||This board is based on the MC6847 character based video processor
or VDG. The VDG scans a memory range which it shares with the main CPU.
Configuration is done with an 8 bit Mode Control register. So both ROM
and RAM appear in the memory range. At least one port is used for the
Image is from forum.system-cfg.com.
|Third-party board: Video-MPF-1 from Bardehle||
This uses an MC6845 CRT controller and generates a 40 x 20 video signal, that isn't quite PAL compatible. Not a problem for the old vacuum tube analog monitors, but modern TFT-displays want something more standard.
There are at least two versions of this board; the original with the EPROM at 0800h-0FFFh and RAM at 3000h-37FFh, and a newer version with EPROM at A000h-A7FFh and RAM at 4000h-47FFh. For the original version the monitor ROM on the MPF-1 was exchanged by a combined monitor (0000-07FFh) / VIDMON ROM (0800-0FFFh). But the later MPF-1B had a monitor / Tiny-Basic ROM. So the VIDMON ROM was relocated to A000h-A7FFh.
Useful routines for version 2.0:
The 2.1 and 2.2 versions were developed for the MPF-1(B), and might not work on the MPF-IP.
The character set image is the result of the key sequence: [ADDR], A, 0, 0, 7, [GO], [ADDR], A, 0, 1, 6, [GO].
The 2.0 ROM has a deliberate routine to replace every printed [`afg by afhi^. Why is a mystery to me.
The manual for version 1.0 is at the Virtual library. A modified ROM is also available here fixing the character mangling.
One way to use it is to copy the data from the ROM in the range a49dh-a4c1h to RAM, modify the even values, load the start address in HL and jump to A019h.
Annotating the disassembly and adding features is a work in progress at: github.
There is now a remake of the VIO-MPF-I!
|Other planned extensions:||At the back of the printer box I found a list of all other planned/available extensions for
the MPF-I Plus, which could or could not work with the I-A and I-B. The IOM-MPF-IP board device
ports conflict with an unmodified I-A or I-B.
This is the code to get a single string on the display. Other calls allow for composing a string in the input buffer and convert the whole buffer to 14-segment patterns for the display.
Z80-Assembler Release 1.9 Wed Jan 11 10:41:20 2023 Page 1 Source file: test_1234.asm Title: LOC OBJECT CODE LINE STMT SOURCE CODE 1 1 00e6 2 2 ESCAPE: EQU 000E6h ; Re-enter monitor 09b9 3 3 CLEAR: EQU 009B9H ; Clear DISPBF, reset DISP and OUTPTR. 0886 4 4 PRTMES: EQU 00886h ; Call MSG. If a PRT-MPF is connected, output to printer too. 0246 5 5 SCAN: EQU 00246H ; Call SCAN2 and BEEP. 6 6 7 7 ORG 0F900h ; 8 8 START: f900 cd b9 09 9 9 CALL CLEAR ; Clear display. f903 21 0f f9 10 10 LD HL, MYMSG ; Point to start of message text. f906 cd 86 08 11 11 CALL PRTMES ; Calls MSG, calls DEC_SP, sets IX to DSPBF f909 cd 46 02 12 12 CALL SCAN ; Display the buffer contents and wait until a key is pressed. f90c c3 e6 00 13 13 JP ESCAPE ; Back to monitor. 14 14 f90f 54 45 53 54 15 15 MYMSG: DEFM 'TEST 1234' f913 20 31 32 33 15 16 f917 34 15 17 f918 0d 16 18 DEFB 0Dh f919 17 19 END
Enter from the startup prompt with CONTROL-D. This results in '<D>=^'.
The disassembler is more useful in combination with the printer or TV-interface.
Last update: 2023-07-15