Color Maximite 2 programming project

Hello. I’m reaching out to see if any folks would be interested in a for-hire programming project to help develop Terminal software for a computer called the Color Maximite 2. Specifically, I need someone to help write file transfer routines for Xmodem, Zmodem, and possibly others using the MMBASIC language the system uses. I can supply development hardware, test environments, and reference material for protocol implementations. My goal is to develop the software to a state to where it can be distributed for use with a hardware accessory I’ve developed, for the benefit of the entire Color Maximite 2 community.

Thank you.

@frogbit You interested?

The Color Maximite is a neat little BASIC intrepretor. It emulates the Radio Shack TRS-80 Basic from back in the 1980’s.
MMBASIC has been ported to the 32 bit PIC32 and recently to the Raspberry PI, and other processors. I have only used it on a PIC32 processor.

A couple of years ago I requested the source code for MMBASIC, it is available free for personal use. Licensing for Commercial use is available. The source code is written in C. Suggest you contact the author at MMBASIC.COM to request your own source code.

It is easy to add new BASIC commands to the intrepretor. Perhaps you could add the file transfer routines in C and add them to the BASIC instruction set. Your routines would run faster in C than in BASIC.

It’s a neat version of BASIC. Now that it has been ported to the Raspberry PI, would be fun to try that. Personally, not interested in writing the file transfer routines for you.

1 Like

Thanks Rich. Xmodem routines already exist in MMBASIC, but they seem to be very primitive (128 Byte blocks, Checksum mode only) and act as a “black box” with limited information available to userspace during execution. The author of MMBASIC modified those built-in routines for me so they would operate using all of the COM ports available, but due to the issues above they have limited utility. Because of the antiquated design of those Xmodem routines many modern terminal programs and BBS’s have trouble negotiating successful transfers. In other words, it seems that the routines were implemented using the original 1978 design of the protocol, which causes problems for modern uses. For example, when receiving a binary file if a bit pattern matching the EOT character is received then it prematurely ends the transfer, not realizing that in modern versions of Xmodem it waits for two EOT’s before aborting.

The machine is fast enough that I have no doubts that a userspace implementation of the protocols would work fine, and speed is not a major concern here. I just believe that a computer only a true computer if it can exist without relying on another local computer to get software, but philosophy aside this is just a passion project. I love this little machine and hope to make it more useful to others out there.

So is the job to write new code in BASIC or fix the existing code in C or C++?

Bill, the task is to write new code in BASIC. Mainly because having the code in BASIC also allows more features to be implemented easily, and eliminates the need to try to upstream code into the firmware that may not be used by many folks. And having Xmodem in BASIC could also be a launching off point for supporting other derivatives like Ymodem later on.


1 Like

I may be interested.

Allow me to go read the documentation first…