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-IP.

So by now I have 1 MPF-1B, 2 MPF-1P, 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.

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 books 
  • Outlook: DOER/MAKE on the Microprofessor

MPF-IP Part 6: FORTH, Part 5 - DOER/MAKE

The pinnacle of my Forth exploration - as promised, we are developing a simplified version of the infamous DOER / MAKE constructs from Leo Brodie's "Thinking Forth" book for the Microprofessor, and demonstrate its application by implementing yet another recursive version of the factorial function. Since DOER / MAKE is using the return stack to pass control we are also spending some time discussing flow of control via the return stack, as well...

Read more »

  • ‚Äč John's MT-80Z Microprofessor variant with PicoRAM 6116

    Michael Wessel14 hours ago 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

  • 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:

  • PicoRAM and the Microprofessor MPF-IP (One Plus)

    Michael Wessel12/25/2023 at 19:31 0 comments
  • PicoRAM 6116 for the Microprofessor MPF-1B

    Michael Wessel12/18/2023 at 01:06 0 comments
  • The Final FORTH Video is Available - DOER / MAKE on the Microprofessor

    Michael Wessel03/13/2022 at 07:45 0 comments

    As promised, we finally reached the end of our Forth exploration - Goodbye!

  • DOER / MAKE, ;AND and UNDO on the Microprofessor

    Michael Wessel03/12/2022 at 02:26 0 comments

    So, my whole Forth-learning endeavor started about 3 months ago when I couldn't wrap my head around how to write a recursive version of the Factorial function with the Microprofessor Forth. I quickly found Leo Brodie's excellent forthward-thinking "THINKING FORTH" book, and learned that this can be a use-case for DOER/MAKE. However, none of the 6 printed versions from the Appendix in the book would work out-of-the box on the Microprofessor, and what was worse, I only understood 20% of it! Having a PhD in computer science with quite a bit of background in programming languages, I couldn't accept this defeat by a > 50 year old language on an almost 40 year piece of Z80 hardware. So I had to figure it out, and it really took me down the FORTH rabbithole.

    I became serious about learning FORTH. Starting with Brodie's other excellent book, "Starting FORT", the meager MPF-IP Forth manual, and a lot of experiments and Trial&Error, here I am, 3 months later, with a fully functional version of DOER, MAKE, &AND, and UNDO!

    I will make one more MPF-IP Forth video in which I am going to share my findings - but here is already the code and examples as an exclusive preview to the upcoming video ;-) 

    Or, more readable: 

    : NOTHING ;
    : DOER CREATE ' NOTHING , DOES> @ >R ;
    VARIABLE MARKER 
    : (MAKE) R> DUP 2+ DUP 2+ SWAP @ 4 + ! @ ?DUP IF >R THEN ;  
    : MAKE COMPILE (MAKE) HERE MARKER ! 0 , ; IMMEDIATE
    : ;AND COMPILE EXIT HERE MARKER @ ! ; IMMEDIATE
    : UNDO ' NOTHING <COMPILE> ' ! ;

    If you have no idea what that means, why it looks like an Ancient Alien Language, or what it is good for, then maybe it will motivate you to learn FORTH yourself! It is very rewarding once you figure it out.

    Or watch my videos if you'd like to learn more about defining and compiling words, vectored execution, and similar black magic Death Star the Dark Side of the FORTH kind of stuff!

    Here is a use-case. However, direct recursive definitions (words) are only one possible application for (the vectored execution of) DOER/MAKE (but the one I was after for):

    DOER FAC 
    : SETUP MAKE FAC DUP 1 > IF DUP 1- FAC * THEN ; 
    SETUP
    3 FAC . -> 6  

     Or, even indirect recursion is possible:  

    DOER ODD
    DOER EVEN
    
    : SETUPODD  MAKE ODD  DUP 2 < IF ELSE 1- EVEN THEN ; 
    : SETUPEVEN MAKE EVEN DUP 2 < IF 1 SWAP - ELSE 1- ODD THEN ;
    
    SETUPODD
    SETUPEVEN 
    
    10 EVEN . -> 1
    10 ODD  . -> 0
    11 EVEN . -> 0
    11 ODD  . -> 1

    The Brodie book gives this example (slightly adjusted by myself), which also demonstrates :AND and UNDO:

    DOER JOE  
    : SETUPJOE MAKE JOE ." HI JOE " ;
    SETUPJOE
    JOE -> HI JOE
    
    FORGET SETUPJOE
    : SETUPJOE MAKE JOE ." HELLO JOE " 
                        ;AND ." NOW! ";
    SETUPJOE -> NOW!  
    JOE -> HELLO JOE 
    UNDO JOE
    JOE ->  

    Stay tuned for the video soon! 

  • FORTH on the MPF-IP - Part 4 - Compiler Extensions & Recursion

    Michael Wessel02/27/2022 at 04:09 0 comments

    This time we are covering enough of FORTH to finally succeed at defining recursive words. The video is a bit longer this time (~1 hour), but it is done! If you want to learn how to extend the colon compiler by means of IMMEDIATE / compiling words, how to use COMPILE, LITERAL, and COMMA, and how to execute FORTH at compile time, then this video is for you. I also cover vectored execution, which lets you deal with forward references. We'll discuss various ways to implement a recursive version of the factorial function, and used self-defined defining and compiling words such as LABEL and REC to implement indirect recursion, using the classic ODD / EVEN example. I conclude by giving you some literature pointers and book recommendations. Maybe there will be one more (really final) video, in which I am going to share my version of the "standard" DOER / MAKE constructs - it wasn't easy to port this from Brodie's "Thinking FORTH"to the Microprofessor, so it is worth sharing. Next time though! So stay tuned for one more final video...

View all 19 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