Thursday, July 30, 2015

Challenge wrap-up and retrospective

Well, to no one's surprise at least among those who have been following this blog, I am not going to complete my project.  I did actually get some coding done on Hammurabi, but honestly I didn't get very far.  It's not a big game, and I think I'm finally well positioned to get some serious work done on it, so it would still be possible to knock it out today if I had the time, but I just don't.  So I'll just accept that it's not going to get done.

But by no means do I consider this project a failure.  To refresh our memory, my project was to develop a text-based game (Hammurabi) in Fortran on a PDP-8 running OS/8 using the simh simulator instead of a real machine (since I don't have one and don't have several thousand in spare cash to get one).  But the real point of the project, from my standpoint at least, was really to learn about a system and language that I knew nothing about.  And in that I think I succeeded.

When I started at the beginning of July, all I knew of the PDP-8 was that it was a minicomputer from 1965 that had been an important step in computer history.  I had actually seen several at VCF SE a few months ago, but hadn't touched or worked on any.  I hadn't even seen the front panel light up - and I wouldn't have known what the lights meant if it had!

Similarly, I had never worked in - nor knew anything about - Fortran.  In fact, when I first contemplated this project, I actually wanted to use COBOL, but I couldn't find a COBOL for the PDP-8.  Then I thought about ALGOL, given it seems to have been an influential language, but I finally settled on Fortran only because the OS/8 Handbook had two large sections on Fortran (though, as it turned out, it was for two different versions of Fortran, so really only one section was of use to me).

By the end of this retrochallenge, I feel I'm pretty comfortable with OS/8, TECO, and Fortran.  I still have a lot to learn, but I can get around the system and do common things pretty easily.  My only regret in this regard is that by choosing a high level language like Fortran, I really didn't gain as much knowledge of the PDP-8 architecture as I might have if I'd done a project in PAL8 assembly language.  But still I'm very happy with what I accomplished and where I ended up, even if I didn't actually finish the project.

Having spent a month with the PDP-8 and OS/8, I can say that I really like the system - better in some ways than most microcomputers, in fact.  Most microcomputers use BASIC as their operating environment, and while I used BASIC extensively back in the day, I really don't like it much now.  When I first got into vintage computing, I did a few BASIC projects for the sake of nostalgia and discovered that, unlike the microcomputer systems themselves, BASIC just hasn't aged well - for me, at least.  So I like that OS/8 is an operating system that just include BASIC as another utility that you can run, but not something that you're forced to use.  So I fully intend to do more with the PDP-8.  I'm still looking forward to getting my PiDP-8 in the second run in October, and between then and now I want to continue to sharpen my PDP-8 skills.

I actually have several PDP-8 projects in mind.  I'd like to attempt to build a full-screen editor, possibly with VT100 support, though that's not really a small project.  I'd also like to write something to be able to transfer files between OS/8 disk images and the host filesystem.  I don't like writing code that I can't put up on Github, and I certainly don't intend to port git to OS/8!  Also I really like what Cat's Eye Technologies did for their challenge and thought about doing something similar for the PDP-8.

On the other hand, while I don't hate Fortran, I can't say I'm overly fond of it either.  I could see using it as a glue language to bring assembly modules together - that's what Adventure did.  But honestly I doubt I'll use it at all again.  That doesn't mean I regret learning it, or that I think it's a horrible language.  It actually has some cool features, though ultimately for me nothing that will compel me to use it.  It probably falls into the class of languages that I would use if there was a specific purpose, but I won't go out of my way to use it.

So where to from here?  Well, as I said, I will continue to work with the PDP-8.  My two top projects will be to develop a file transfer utility, and to learn PAL8.  There is an open source PAL-8 cross-assembler that I could use, if I get the file transfer utility done, but I probably will just stick with doing assembler on the PDP-8 itself for the moment.  I plan to continue to blog about my PDP-8 experiences, using this very blog, so if you have any interest, feel free to check back.

Finally, with regards to the Retrochallenge itself, this is my first time participating and I can say without any hesitation that I love it!  I'm not a particular focused person, and I often drift from project to project, but this was great for keeping me on target.  And watching the other projects as they developer over the past month was very inspirational.  My only regret is that the Retrochallenge only occurs twice a year!  Already thinking about what to do for January...

No comments: