Close
0%
0%

Exploring the Microprofessor

A journey to explore and better understand the Multitech Microprofessor machines in my retro computer collection

Public Chat
Similar projects worth following
The Microprofessor series of educational Z80 single board computers always intrigued me. They were quite popular in the early 80s - computer learning packages including the MPF-1B were advertised even on the subways in my hometown Hamburg / Germany when I was a kid.

I always wanted to own a Multitech (nowadays: Acer) Microprofessor

even in the early 80s. I started my journey into computer programming on a similar system, the Busch 2090 Microtronic: 

At the time the Multitech Microprofessor MPF-1B was becoming popular in my hometown Hamburg / Germany, I was about 12 years old. I then got the Microtronic at the age of 13, and it was certainly a better choice for my juvenile brain. However, the Microprofessor just seemed so much more capable and professional. So much I did realize.

Fast forward ~ 34 years later, I started adding a number of Microprofessors to my collection of retro computers. Since 2016, I added:

  • professor Wichit Sirichote's modern re-implementation, extended version of the MPF-1B, the CPU 80 from his Build your own microcontroller kit series of single board computers 
  • the MPF-1B with printer
  • the MPF-IP ("I" Plus, or 1 Plus?)  with alphanumeric VFD display (!), and printer 
  • and another MPF-IB, 
  • and finally, the original MPF-1 which I got inexpensively for 50 $ from EBay; the display was broken and had to be fixed.

Here are a few great web sites which provide documentation and ROM images: 

So by now I have 1 MPF-1B, 2 MPF-1P, 1 MPF-1, and 2 printers (they are identical expect for their EPROMS - I have one set up for the MPF-1B, and one for the MPF-1P), BASIC and Forth EPROMs for the 1P, and BASIC for the 1B. I also extended the SRAMs of these machines; i.e., my MPF-1B has 8 KBs of SRAM by now. My MPF-1 has a blue LED display, runs the Monitor + TinyBASIC in U6 with a 2732 <-> 2532 EPROM adapter, and has another 2 KBs of SRAM (6116) in U7.

Here are a few pictures of my two MFP-IP's; one is set up for Forth, the other one for BASIC: 





This Hackaday project is an ongoing documentation of my exploration into the wonderful world of Microprofessor machines.  By now, I have made a number of videos - stay tuned for future updates!


MPF-1B Part 1: Monitor, Z80 machine code, printer, disassembler.


MPF-1B Part 2: Palo Alto TinyBASIC.


A modern, extended version of the MPF-1B Part 3: "CPU 80" by Prof. Wichit Sirichote.



MPF-IP Part 1

  • board overview / review
  • monitor
  • line assembler
  • editor
  • 2pass assembler
  • printer


MPF-IP Part 2: BASIC

  • BASIC installation
  • Ssieve of Erastosthenes
  • prime numbers
  • printer
  • cassette storage
  • ZX81


MPF-IP Part 3: FORTH, Part 1

  • FORTH
  • installation
  • documentation
  • background
  • history
  • comments on meta-programming and comparison to Lisp
  • stack
  • Reverse Polish Notation (RPN)
  • HP calculators
  • basic FORTH operations
  • user-defined words
  • outlook to upcoming videos


MPF-IP Part 4: FORTH, Part 2

  • ." string printing
  • interpreter
  • dictionary / vlist
  • colon (:) compiler
  • bottom-up programming philosophy
  • compound words
  • notes on forward-references and recursion
  • do ... loop
  • iterative definition of factorial
  • relational operators
  • if... else... then


MPF-IP Part 5: FORTH, Part 3 - THE DARK SIDE OF THE FORTH

Well, still no recursive definitions; too much ground needed to be covered first - but next time!

  • The dark side of the Forth
  • FORTH vs LISP
  • under the hood
  • the structure of words
  • dictionary
  • code field
  • parameter field
  • LFA, PFA, CFA
  • ' (TICK)
  • modifying definitions
  • execute
  • variables
  • address interpreter
  • defining words
  • create
  • , (COMMA) 
  • DOES>
  • user-defined defining words

MPF-IP Part 5: FORTH, Part Forth umm 4 - Recursion in FORTH

Finally, we have everything to define recursive words! This is going to be a little bit longer (over an hour), but you will learn the following: 

  • compiling words
  • IMMEDIATE
  • LATEST
  • COMPILE, EXECUTE, LITERAL
  • comma (,)
  • recursive definition of factorial
  • compilation execution: (* ... *)
  • vectored execution
  • indirect recursive definitions: ODD & EVEN
  • LABEL, REC, DEF 
  • FORTH...
Read more »

blue-display-gerbers.zip

Gerbers for blue display board.

x-zip-compressed - 31.89 kB - 09/10/2024 at 14:44

Download

blue-display.pdf

Schematics for blue display board.

Adobe Portable Document Format - 127.74 kB - 09/10/2024 at 14:44

Preview

MPF-1_Basic_U7.zip

The so-far missing (= not to be found on other MPF sites) MPF-1 TinyBASIC 2716 EPROM image for U7.

x-zip-compressed - 4.45 kB - 06/29/2024 at 17:45

Download

  • PicoRAM 6116 build and demo video by "Mein Elektronik Hobby" (in German)

    Michael Wessel10/17/2024 at 04:01 0 comments

    New PicoRAM 6116 build and demo video on the YouTube channel "Mein Elektronik Hobby" (in German). Glad it worked out of the box for you, Werner, and thanks for the positive review!

  • Using EPROM Images without EPROMS

    Michael Wessel07/08/2024 at 14:22 0 comments


    The U7 socket on the Microprofessor MPF-1 is usually occupied by a 2716 EPROM containing user programs (or Tiny BASIC). However, by cutting a few PCB traces and setting the J1 jumper accordingly, it can also accommodate an additional 2 KBs of memory, using a 2nd 6116 SRAM. Hence, PicoRAM 6116 can be used instead of a standard 2716 user EPROM in U7. I got a couple of programs in a 2716 EPROM BIN image from the user DISCMIX on the German Classic Computing (Vintage Computer) Forum. In this video we are running his programs via PicoRAM 6116, and I also demonstrate how to convert EPROM BIN images such as the ones I got from DISCMIX into a PicoRAM digestible HEX format.

  • Lens filters make a huge difference...

    Michael Wessel07/02/2024 at 01:41 0 comments

    So far I (foolishly) tried to convince myself that the contrast of my MPF-1 Blue LED display was good enough and had good readability - however, luckily I am not that good at prolonged periods of self-deception, and my inner critic kicks in. So, something had to be done to increase the contrast - after all, my eyes are not that young anymore.

    Blue Lens Filters are kind of hard to come by, but there is something similar - Gel Filters. Supposedly, they are for party / disco spot lights. What can I say - the difference is stunning, like night and day: 

  • The Missing TinyBASIC ROM for the MPF-1 showed up (U7)!

    Michael Wessel06/29/2024 at 17:40 0 comments

    Many thanks to the TMS museum who saw my post inquiring about the U7 2716 TinyBASIC ROM image for the MPF-1 on the Vintage Computer Federation Forums and sent a dump of his version to me! I got permission to share it here.

    I hence would indeed be able now to run the MPF-1 in original "BASIC-extended" configuration - for now, I'll leave my 2732 Monitor + TinyBASIC EPROM installed in U6 though; another 2 KBs in U7 is quite useful as well.

    But, I needed to test the new ROM of course, and hence put it in a 2716, changed the J1 settings - and indeed, this ROM image works great. I can start BASIC from 0x2000 as well now. Awesome!

    The Jumper J1 settings for a 2716 in U7 are: 1-2 3-4 5-6. As stated previously, for the 6116 extra 2 KBs of SRAM you'll need to set J1 to 1-2 4-5 6-7 instead.

  • Installing TinyBASIC on the MPF-1 the hard way

    Michael Wessel06/28/2024 at 23:13 2 comments

    After fixing and upgrading my recently acquired 50 $ Microprofessor MPF-1 with a blue LED display (which turned out to be a bigger project than I thought!) I still needed to install the TinyBASIC, as the original MPF-1 only came with the monitor - in this case, a single 2716 EPROM in socket U6. TinyBASIC was then available as an upgrade EPROM for socket U7 - this would either be a 2516 or 2716 EPROM. These are still DIP24 sockets. 

    You can see the original, standard MPF-1 with monitor in U6 and TinyBASIC in U7 here:
    http://xjd0zipgwho4za58.myfritz.net:10381/Museum/MULTITECH-MPF-1.html

    Only the later MPF-1B revisions changed these socket to DIP28, and a 2732 was then used to house both the monitor as well as TinyBASIC. U7 was left unpopulated on the 1B. Instead, U7 can be used for user programs, or for additional SRAM, by setting the J1 jumper (see below).

    These two revisions hence had BASIC in different memory ranges - from 0x0800 - 0x0fff on the 1B, and from 0x2000 - 0x27ff on the 1, given that this is the memory range into which U7 is mapped into.

    Unfortunately, the 2 KB U7 TinyBASIC from 0x2000 - 0x27ff was nowhere to be found on the usual internet sources of MPF ROM images (e.g., https://electrickery.hosting.philpem.me.uk/comp/mpf1/doc/) So I had to look for a different solution if I wanted to use TinyBASIC: 

    Now, 2732 EPROMs come as both DIP 28 and DIP 24 versions; the MPF-1 uses DIP 24 for its U6 socket, and the MPF-1B uses a DIP 28 socket for U6. I hence decided to try the original MPF-1B 4 KB Monitor + TinyBASIC ROM image on the MPF-1, and programmed a DIP 24 2732.

    Unfortunately, the MPF-1 didn't boot with the DIP 24 2732. I hence consulted the manual and found that it lists the 2516 as well as the 2532 as supported EPROMs for U6. Which is strange, given that my MPF-1 actually came with a 2716 in U6 - but it definitely did not like the 2732. However, the mentions of the 2532 in the manual encouraged me to try again, this time with a 2532. 

    Even though I had some 2532 in my parts bin, I was actually not able to program one... as my EPROM programmer only supports 27xxx EPROMs. Hence, I decided to try with one of these 25xx <-> 27xx EPROM adapters; these work bidirectionally, so you can either use a 27xx EPROM and use it as a 25xx, or vice versa. As soon as I had the 2732 in the adapter, now acting as a 2532, the MPF-1 worked out of the box! It is now, by all means and purposes, equivalent to an MPF-1B, and I can use TinyBASIC and the monitor: 

    You can get these adapters on Ebay.

    Now, given that I had both the Monitor and TinyBASIC in U6, I still had U7 available - I can't leave a socket unpopulated, so what should I put there? Another EPROM? U7 can be configured for SRAM as well as for EPROM use. I opted for more SRAM - another 6116 SRAM would give me full 4 KBs of RAM, from 0x1800 to 0x27ff!

    The J1 jumper modification requires cutting the default jumper traces for the vias / holes for J1, and then soldering in a pin header to accommodate "real" physical jumpers like in the picture. Next, for U7 to support the 6116 SRAM, the jumpers need to be set as follows - 1-2 4-5 6-7: 

  • ​ John's MT-80Z Microprofessor variant with PicoRAM 6116

    Michael Wessel06/12/2024 at 16:13 0 comments

    John W. added PicoRAM 6116 to his E&L MT-80Z MPF-1 clone and, after initial troubles, got it to work flawlessly. Very nice machine and progress - thanks for sharing, John! Good to know that PicoRAM 6116 also works well with the less common Microprofessor family members.

  • The World's First MPF-1 with a BLUE LED DISPLAY!

    Michael Wessel05/04/2024 at 19:59 0 comments


    No, just changing the resistor values doesn't do it... here are the schematics and Gerbers.

  • Using the MPF-1P Printer and PicoRAM 6116 simultaneously

    Michael Wessel04/13/2024 at 19:47 0 comments

    Let's print out a solution for the Towers of Hanoi with 5 disks:

  • The Towers of Hanoi on the MPF-1P!

    Michael Wessel04/12/2024 at 17:54 0 comments

  • Next-Level Software Development with PicoRAM 6116

    Michael Wessel02/26/2024 at 05:58 0 comments

    PicoRAM 6116 is taking Microprofessor MPF-1B software development to the next level - instead of keying in hex codes with the monitor, use a comfortable state-of-the.art Z80 assembler on the PC or Mac, assemble / compile the HEX file there, put it on SD card, and feed it to the Microprofessor! In this video I am developing a "Towers of Hanoi" program for the MPF-1B (recursive version) using asm80.com:

View all 24 project logs

Enjoy this project?

Share

Discussions

Yann Guidon / YGDES wrote 12/17/2023 at 21:47 point

YESSSSSS
/
Jaaaa !!!!

  Are you sure? yes | no

william massano wrote 10/14/2023 at 17:07 point

I have an MPF-1P with the old basic prom. I do not have the capability of burning my own.  Can anyone burn a copy of the new basic. I will , of course, reimburse you for the time and materials. Contact me

  Are you sure? yes | no

R Hormann wrote 07/01/2022 at 17:35 point

@x48x4b  What a great series. I've recently bougt a MPF-IP with the IOM-MPF-IP experimental board from Multitech myself and would like to experiment more with it. It came however without documentation so I'm struggling. Do you have a copy of the documentation that you can share?

  Are you sure? yes | no

Mitsuru Yamada wrote 02/14/2022 at 07:37 point

Thanks for introducing Microprofessor series.  I had never heard of this board computer those days, because the only board computers available in the stores in my country at that time were those made by several large domestic electrical manufacturers.  The RPN notation also used in the FORTH language almost eliminates the need for parsing, so I used it in the floating-point interpreter I built myself last year. 

  Are you sure? yes | no

Michael Wessel wrote 02/02/2022 at 20:48 point

@x48x4b that's great, thanks for sharing - did Sargon chess require a lot of modifications? Would be great if you could upload the code with your mods somewhere. So how much RAM does it need? It might be a nice DIY exercise to build an expansion board for the MPF.... with extra SRAM, RS232, and maybe speech.

  Are you sure? yes | no

x48x4b wrote 02/03/2022 at 06:39 point

I had to modify the memory organisation and took out the video section. The original Sargon was installed on a Wavemate Jupiter III. This had a Z80. But e.g. it had a video board, which my MPF does not have. Instead I wrote a routine to direct the output to the serial interface. What I did not change at all are the chess algorithms. My current version uses x1d2d bytes excluding stack. I will tidy it up and post it somewhen.

  Are you sure? yes | no

x48x4b wrote 02/10/2022 at 07:32 point

This is my machine from the 1980ies, in todays working condition: https://www.mycloud.ch/s/S00E8C2E8289DDE0E50B95028DFF9DB989ABBE58C10 It is an MPF-IP with the stock accessory boards IOM-MPF-IP and EPB-MPF-IP and 16k RAM, On the bread board section, I have installed an additional PIO, 4 motor drivers and 2 A/D converters. This was done in the 1980ies, to be used withe my Fischertechnik robot.Today, the accessory boards can occasionally be found on Ebay.

The Sargon code for my MPF-IP is here:

https://www.mycloud.ch/s/S007B47874D00053B738BFE0EA9720BCA96DFA769FB 

  Are you sure? yes | no

x48x4b wrote 01/26/2022 at 16:42 point

An MPF-IP (with accessory boards) can be used to run a chess program, to see how, check out the following mkv-video (watch it on VLC):

https://www.mycloud.ch/s/S000DB711BCA0EE2949ADD0A240A68026A2650D987D

  Are you sure? yes | no

Michael Wessel wrote 02/02/2022 at 17:23 point

@x48x4b, very cool! What kind of expansion board is that? And it seems it has RS232 terminal? Is that a DIY board? And has extra RAM?

  Are you sure? yes | no

x48x4b wrote 02/02/2022 at 17:53 point

It is the original IOM-MPF-IP experimental board from Multitech with a 8251 UART, a Zilog CTC and a bread board area. There are also sockets to add 3x2 kByte static RAM and other stuff. I purchased it in the 1980ies to drive my Fischertechnik Robot. Later the MPF-IP and the IOM-MPF-IP were stored away for more than 35 years on our attic. In the Corona lock down time, I reactivated it to have some fun. The reactivation turned out to be challenging because some of the chips had to be replaced, and some of the electrical contacts were bad. The goal of the project was to run the original Sargon chess program from Dan and Kathe Spracklen, which actually succeeded.

  Are you sure? yes | no

Bob S. wrote 01/19/2022 at 15:11 point

This was a great little learning tool back in the 80's. I had a Tandy Model I and bought this MP to brush up on Z80 assembly. It is a fun tool to work with. I had loaned mine out in 1989 and just recently found one for a good price on Ebay. Needed a PIO chip and Jumpers added. I also made a small preamp for the cassette input so that I could record programs with a PC or cheap digital hand-held recorder that didn't have the appropriate output level. Worked well. Still fun to tinker with and a good platform for problem solving.

I always thought a PIC processor (8bit) version of this kind of thing would be nice... with the keyboard and display, etc. Haven't really found one...

  Are you sure? yes | no

Michael Wessel wrote 01/19/2022 at 16:03 point

Bob, yes, I think they are highly effective for Z80 machine language bare metal programming. And unlike some other CPU trainers in my collection they are well-documented and have useful firmware routines for input and output. I also love that it doesn't matter when you crash the machine - hit reset, your program is still there, and continue! No need to save and re-load your work all the time. At some point I'd like to create a speech synth expansion for it. Enjoy your microprofessor!

  Are you sure? yes | no

Ken Yap wrote 01/18/2022 at 01:43 point

Thanks for documenting this series. I never had one but vaguely remember seeing ads for it. Looking forward to watching your videos. 👍

  Are you sure? yes | no

Michael Wessel wrote 01/18/2022 at 01:59 point

Thank you! Yes they are really neat little machines!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates