Monday, July 6, 2015

Finished My Reading Assignment

I haven't made any posts since my first, but that doesn't mean I've been inactive.  Since my project involves a computer, an operating system, and a programming language that I don't know, I've been doing a lot of reading, specifically the OS/8 Handbook, which I finished yesterday.  This is a rather large tome (954 pages), but I skipped a number of sections that I didn't really need: How to setup the PDP-8 and the sections on the several assemblers, for instance. Since I'm using a prebuilt OS/8 image and I'm doing my game in Fortran, I don't really need those sections.

The Fortran section was interesting.  Being completely unfamiliar with the language, it was certainly interesting.  It is a curious language, at least to one like me who only has experience with more modern languages.  Honestly, it seems very different than anything I've worked with before.  C, BASIC, or Pascal (not sure which came first) are probably the oldest languages I've ever worked with, so I had to wonder if some of the clunkier aspects of Fortran are common to languages designed in that era.  I was surprised to see a number of interesting features though.  For instance, you can define a line identifier (just a number), and you would use that in your flow control statement (GO TO or IF, for example).  The cool thing about this, though, is that you can actually create a variable representing a line identifier (even though it's a number, it is distinct from other numeric types), and you can manipulate it mathematically.  The most surprising thing to me, though, is that it allows function references to be passed as parameters.  I realize that this is not particularly new, but it is a feature I wasn't really expecting with Fortran for some reason.

One curious aspect is that Fortran supports overlaying, meaning that it can swap out parts of the program with modules on disk.  So you can build a program as large as 300k to run in a 32k system.  This sort of system makes perfect sense, of course, but I'm curious why a limit of 300k?  It seems like you should really only be limited by the size of your storage media.

So having finished this book, my next step is to do "Hello World" in Fortran.  This will hopefully start getting me used to Edit or Teco (not sure which I'll use) and how to build and run a Fortran program.  And lest you think I'm done reading, I'm moving on to another PDP-8 introductory handbook, this one I think more focused on the PDP-8 itself and less on OS/8.

As a final note, I wanted to acknowledge Oscar Vermeulen, the man behind the PiDP-8/I kit.  Although the kit hasn't come out yet (and I've decided to wait several months until he has fully assembled units available), reading about his project and the thought of having a "real" PDP-8 has helped to stimulate my interest in the PDP-8.  And his web page, documentation, and software have helped me with this project.  If you're not familiar with his kit, definitely go take a look.

No comments: