08/25/2021 at 02:54 •
O.K.. here is the source code for most of the files that are needed to build the Propeller Debug terminal in C++.
This is also a good time to mention that once upon a long time ago, there was a version of Pascal (and there still is) called UCSD Pascal, since it was created at the University of California, in San Diego. Now as it turns out, UCSD Pascal became one of the first high level languages to become available for microcomputers such as the Apple II. This is noteworthy, since IIRC the compiler for UCSD Pascal took up "only" about 70 kilobytes on an Apple II floppy disk, and the whole operating system (including demos) only needed about four floppy disks total - back when floppies could only store about 143K! Of course it is well known that others have managed to get Apple I emulation up and running on such things as a DefCon badge which was equipped with a Parallax P1; which is not that hard since a 6502 emulator only requires about 10K on a P1; and yet - as a yet, nobody has released or hinted at when there will be a release of a fully self-hosting operating system for Propeller, or Arduino, or any other modern microcontroller for that matter. So even though there are off the shelf robots out there, like the Parallax Boe-Bot, nobody provides a tool chain that allows for remotely connecting to a fully integrated, and otherwise capable of being self-hosting system, which is capable of doing even simple things like blinking LED's, managing displays, controlling motors, etc.
Of course, since the Parallax P2 chip has eight cores which spec out at over 200Mhz, 64 channels of A-D and D-A conversion, etc., it would be the ideal candidate for Apple II GS emulation, and just not another Apple one on a DefCon badge novelty, and since we know that UCSD Pascal will run on the Apple II series, all the way back to the II/II+, why not port UCSD Pascal to a native Propeller platform instead, i.e., for performance reasons; but add in Apple II compatibility via 6502 emulation, in addition to the terminal modes; that are native to classic Pascal like languages?
Fortunately, the source code for UCSD Pascal is available (for non-commercial use) online, so porting it to C++ should not be a problem. Please take note of the fact that it isn't so much that I am in love with Pascal, but rather there are some unique features of UCSD Pascal that make it a worthy creature for study, and for either building upon, or for building things that are based on, I should say. In particular, UCSD Pascal had a very aggressive code segmentation model, similar to the way that Windows manages DLL's, but preceding Windows by several years.
By copying (I mean studying - cough, cough!) this model, we should be able to come up with an improved Large Memory model suitable for use with modern microcontrollers, which is compatible with the need for such things a concurrent multitasking, among other things, even though the early micros did not support that, yet it would not have been that hard to implement. In fact Microsoft in the early days actually created a version of "Time-Share BASIC" for the original Altair 8800, which it either did not market, or which just simply nobody wanted - even though it was claimed to be able to support up to 8 simultaneous users.