Last updated July 13 2016. Edited by Herb Johnson, (c) Herb Johnson, except for content written by Lee Hart, Sandy Robson and others. Contact Herb at www.retrotechnology.com, an email address is on that page..
In May 2016, I contacted Sandy Robson about his Web page about the Hand-Held Computer (HHC) he constructed in the late 1970's from a COSMAC 1802 processor and supported with a FORTH-79 based monitor and calculator program he created. Also on the page, were notes for use of an SD card, also in FORTH and with a simple interface. Sandy describes that calculator and how it was developed, on the linked Web pages which he created through 2004. He also shows some notes - schematics and FORTH/Assembler code - about an SPI interface to a SD/MMC flash memory card he implemented.
Sandy provides on his site, schematics of the HHC and the SD card interface, a hex dump of the HHC monitor, and the FORTH source listing of the monitor. As he explained to me later, he didn't expect anyone would want to re-implement his computer, but some were interested in an 1802 FORTH monitor, as a useful monitor. However, the monitor was developed using a Windows-based FORTH cross-compiler - which he no longer ran, having moved from Windows years ago. He simply offered the monitor binary so it could be patched to accommodate other console I/O, and used without recompiling.
I decided to disassemble the provided monitor binary, and generate an 1802 assembly language source - which also matched the FORTH monitor source provided. In that way, someone could implement, and modify, the FORTH monitor with only an 1802 assembler. I believed this was a useful example of FORTH on the 1802. Please note: I only had access to the FORTH monitor, not the actual HHC calculator code, which Sandy has not provided or wishes to - or may not be able to!
In the course of doing that work, Sandy found the exact source that corresponded to the binary version he provided; and agreed to add the assembly source to his Web pages, as well as permitting me to add those documents to my Web site.
In the course of my disassembly, Lee Hart also expressed interest. The three of us examined, corrected and discussed the 1802 assembly source I created; until we were all satisfied the ASM file produced exactly the binary provided. Also, it represented the FORTH source correctly, and the documentation was consistent with both. I also summarized some of our discussions, and Sandy's descriptions of details of how this FORTH operated, as a version of FORTH-79.
Another Web page shows a FIG-FORTH for the 1802 as distributed by Forth Interest Group many years ago.
This linked ZIP file contains the FORTH, ASM and binaries of Sandy's HHC FORTH-79 monitor for the 1802. It also contains descriptions of the code, an alternative FORTH monitor version, and edited commentary from Sandy's site. This package should be self consistent as described. Without the FORTH-79 cross compiler, any new FORTH words can be hand-constructed and reassembled; using the available vocabulary and the same methods as used in the monitor; and using an 1802 assembler. I have a portable 1802 cross assembler in C on my Web site which was used with this source.
These documents don't include details of the HHC computer, or the SD card serial interface. Those interested can look at Sandy's Web site for those details. Sandy is not particularly interested in doing further work on this project, or on the 1802 FORTH development systems he used to create it. Check his Web site for details. But he was pleased to revisit this project through my interest and Lee Hart's. Any errors or corrections should be called to my attention, I alone am responsible for the work I present here. - Herb Johnson
About dis-assembly: Disassembly of a program without assembly source, is an opportunity to learn assembly, to see programming methods in assembler. There's a few 1802 disassemblers available to automate the process. In this case I had the FORTH source, but I wanted to know how this FORTH works. Also, the ASM source allows me and others to make changes to the FORTH, without access to the Windows-based cross-compiler which created this particular FORTH program. A constant problem in any long-term use of a program, is what to do when the program or its support tools are no longer available. Use of common languages - C, assembler - works around obsolscence. - Herb