I haven’t been doing much in the vintage computing arena recently, but I have finally got around to finishing off my crude implementation of Flip. The source code is up on GitHub.
My first attempt didn’t work very well. I was not ordering the boxes well and produced invalid MUSL because I used too many labels and GOTO statements. In the end I decided to reverse engineer the original Flocoder source for Flip. I created textual versions of some of the critical charts, you can see them in the source code (doc021 and doc031). The control structures represented by the charts didn’t look too easy to turn into normal structured code without GOTOs, so in the end I decided to take the easy path and code it with GOTOs just exactly as represented in the original Flip source charts.
My version of Flip can now take doc031 from the source code and produce the MUSL source from it. Furthermore, my initial MUSL parser is now able to parse the output from Flipping doc031, without any hand modifications to the Flip output.
The next step is going to be to try processing the other doc files and check that my parser can parse them all. After that I will try to get my MUSL parser to produce C code, so that I can generate a program that implements Flip from the Flocoder source.