This is a page about my MC14500B IDE program which is an editor / emulator / debugger / assembler / disassembler / ISP programmer for the MC14500B, all in one portable Windows executable. I learned about the MC14500B one bit processor on an Internet forum and I was facinated by this little device. I ordered a PLC14500 board from Tindie and designed mt own hardware, a breadboard design and an Arduino shield version. There ere no real tools but the processor is quite simple and reading the datasheet and the programming manual I wrote an assembler and disassembler and an emulator, then I decided to adap my IDE framework for the MC14500B processor. It took som time to create a fully working hardware emulator for the PLC14500 board and a working emulator for my own board, and I tried to visualize the boards on screen. Then I write my own bootloader for the Arduino Nano and added the ISP option to the IDE so you could upload the code directly to the boards. For development and debugging MC14500B assembler code, this IDE can be used.
Regards, Hein Pragt.
I also have a Facebook Group on Retro Computing and Electronics, feel free to join!
MC14500B editor / assembler / emulator / debugger
To be able to program for the MC14500Byou need an assembler or compiler. I like to write (puzzle) in MC14500B assembler but there were no real usefull tools available for for Windows 7,8,10,11. After some searching I decided that it was time for a new project, building a complete integrated MC14500B development environment. I wrote an two pass assembler and used the base code (framework) of my Z80 and 8052 IDE. The result is MC14500B workbench, a portable x64 (and X32) Windows program that includes an editor, assembler, disassembler, emulator, single step debugger, Intel hex write function, a VT100 terminal window and a ISP programmer.
Installation
Download the zip file and unzip it at the place where you want to install it on your hard drive. Then create a shortcut to the program to the desktop and the program is ready for use. It is a so-called portable program which means that it does not use external sources or libraries and does not use the registry. After removing the directory from this program, it has also disappeared completely from your system.
First time use
To practice there is an example directory, from which you can load example programs after which it will be displayed in the editor window. Now you can convert this into machine code by means of the assemble button, this will appear on the left of the screen and be put into the virtual memory of the emulator. By simply pressing the run button you can execute the program on the selected on screen board and follow it on the screen. This will not be very fast because every instruction will perform a screen update of all registers, ports and leds. If you want the program to run faster, you can disable the update of the registry block by means of the update checkbox. You can now modify the program, reassemble it and run it again.
Ifyou have a board connected you can use (select) the terminal window to “talk”to the Arduino Nano, and if you have loaded my bootloader, you can then simply upload the code to the board using the ISP menu. This is also the menu where you select the communication port.
In the main directory there is also the .ino sourcecode file of my custom bootloader for the Arduino Nano. Just load the code in the Arduino IDE, compile it an upload it to the Arduino Nano using the serial cable. You can now check the code inside the Arduino eeprom or do a factory reset (smoketest program) on the board using the Arduino IDE terminal of the terminal of my IDE at 9600 Baud,
By means of the step button you can execute the program instruction by instruction and check the output and the registers and ports. You can also enter the break address, the emulator will then stop at a run command at this address and display the registers of that moment. When 0000 is entered in the break field it will be ignored.
You can save the modified code as an asm file again but also save it as a hex file so that you can load the binary code in a circuit or ep(rom) for a real MC14500B circuit. You can also disassemble the internal emulator memory code after which the source code will appears in the edit screen in the middle. The assembler and disassembler are default loaded with all the friendly names of all the I/O in a standard symbols table. This generated sourcecode can then be changed and written back into the emulator memory by means of assemble button.
I/O map
The IDE currently supports two hardware boards that will be displayed on the screen with working leds and buttons. Inside the IDE is a real hardware emulation of the complet circuit of the board and all the chips so it should work exactly as the real hardware. My board is not yet ready but I am using this tool to debug it. My board will support JMP and RTN instruction with a ONE level stack :-). With the top menu you call also connect te VT100 terminal to the input and output lines of the board, this will be useful on my board.
Version 1.02
Version 1.02 is the second version with some improvements after testing with different hardware. I will be maintaining the program based on my own needs, bug reports and feature reuests.
Download
Here you can download the latest version if this IDE for a small fee. This download is a zip file containing a portable x64 (and a x32 version) Windows exe programs, an examples directory and my custom Arduino Nano boatloader sourcecode. After weeks of debugging I think the project is ready for release, if you find any bugs please report them to me. The progams are digitally signed using my codeding certificate for your safety and to make them thrusted by Windows. It seems my IDE programs work fine on (Linux) WINE as well.
Download at: https://www.heinpragt.nl/?product=mc14500b-processor-ide
- Version 1.02
- Fixed error in hex dump bootloader (16e byte);
- Improved ISP uploader for PLC14500 board;
- Improved ISP uploader for HP14500 (Arduino shield) board;
- Fixed terminal bug in HP145000 emulation.
- Version 1.01
- Initial release, it might be not completely bug free, I will test on, wait for remarks amd release the next version soon.
MC14500B links, tips and documents
- My technical page aboput the MC14500B processor;
- Retro trainer board based on the MC14500 1-bit ICU. The project is OSHW certified and is available on Tindie;
- Wikipedia page about the MC14500Bprocessor;
- A hackaday.com MC14500B microcontroller project;
- A MC14500B programmers handbook (pdf).