Notes for Propeller Debug Terminal.
This is a C++ port of the Delphi code originally posted by Chip Gracey to the Parallax forums. Many issues are addressed in this code base that I hope others will find useful in developing their own Parallax Propeller P1/P2, Arduino or other microcontroller-based projects. Serial port interfacing using the FTDI USB hardware conversion is well developed, so that part of the code base can be used as a part of a framework for other developers who trying to develop their own bespoke applications. Thus, if you have been getting that dreaded "port in use error by another application" with some other program written in Java for the Arduino (for example), and requiring you to reboot or die, then you will find reasonably correct COM port interfacing code example here which should help banish that issue -- for once and for all. Just in case you are trying to build a real application ... and not just run test cases in the manufacturer's sandbox.
Likewise, many people are going to want to go beyond the typical ANSI terminal mode, which is usually all that is available when remotely debugging or otherwise interfacing with experimental external hardware. Now you should be able to incorporate UNICODE based symbols for things like chess fonts, Astrological symbols, Emojis etc. Additionally, providing for improved accessibility for users who need special input device (not provided) for reasons of disabilities will also be possible. Of course, if you are already using, or have used an IME (Input method editor) with another application, then you should have no problem adapting the Code base for use with Arabic, Chinese, Greek, Japanese, Mayan, or any other context that requires UNICODE awareness.
Usage: You will need Visual 2005 or later to compile the source files. Simply create an MFC project that supports Document/View Architecture with the Multiple Document and Multiple View settings, and then incorporate components that you are interested in from this repository. Thus, the purpose of this application is to provide some supportive tech to those who might already have an working application in the pipeline, but who are also fighting some show-stoppers issue(s) that are preventing their bespoke application's proper integration into a GUI based environment. Note that the full Graphical Debug protocol provided by PNUT (which is a separate commercial product provided by Parallax) is not yet fully working but is a work in progress. The GUI portion is working, but there are still some issues with managing the message map architecture, i.e., the message crackers and translators that will route Parallax debugging protocol messages to the correct GDI or OpenGL components. This will eventually be done in a sub-dialect of Lisp, called "Frame Lisp".
In the meantime, you can nonetheless access the native FORTH interpreter which is built into the Parallax P2 Propeller chip directly, or you can upload binary images built with other tool sets - using applications built with this framework, and then interact with those programs using a GDI aware terminal program that you have the source code to and which can be customized as you see fit.
To get the oscilloscope features and other graphical debugging features you will need to include a library called Frame Lisp, which has not yet published, as it is being updated for Unicode support, and undergoing further debugging. This will be remedied in a future update, "real soon now." In the meantime, the boilerplate needed for MFC based Document-View architecture is functional to the point of being able to upload binaries to the propeller P2 hardware and interact in text mode via keyboard and mouse if desired, as well as create and manage multiple debugging windows. Port speeds of up to 3Mbits/sec. are known to be reliable with the available and tested hardware. If you are not wanting to wait for Frame Lisp, you can also find some assembly language code written by Chip Gracey at Parallax, which was published along with the original Delphi code mid-summer of 2020 and made available on the Parallax forms. The original assembly language routines could be reworked and recompiled under MASM, and then linked to their corresponding C++ counterparts, instead of the original Delphi.
Eventually I will be adding additional features, such as Audio/MIDI streaming, more fully functional oscilloscope and spectrum analyzer modes, OpenGL support, as well as project management and library management functions, all within a GUI environment that will immediately seem familiar to anyone who has used an IDE in the past. Imagine a robot that uses a Propeller chip as its brain, and if the robot has a program where it tries to map out a maze that it is trying to solve; wouldn't it be nice to be able to "see" into the "mind" of the robot, at it builds its "world view model or database!"
COPYRIGHT AND LICENSE NOTICE:
All code C++ contained herein is Copyright 1995-2021 Gerold Lee Gorman and is made available for use under the MIT license. Some code is a derivative work of materials provided by Chip Gracey, which was originally written in Delphi and provided to users of the Parallax forums without charge. Other portions may be code that was created by the Visual Studio 2005 framework, i.e., boiler plate code, which has been customized for this application. If there are licensing terms which apply to portions of the code which might be derivative works of others; then those licensing restrictions and permissions are also in effect as to any applicability towards or with respect to derivative works.