Back to the base topic, did the ASR-33 do lowercase?
The paper tape seems to truly be ASCII (true 7-bit ASCII, not UTF-8 or Code Page 437) but this program was all uppercase, and I think that's all we used, so we couldn't generate codes 0141 to 0172. I guess I'm looking at it backwards, it had a set of characters, and those characters were represented in ASCII; it is not necessary that tape with defined ASCII be read, and it's reasonable and simple for it to interpret 0141 'a' as 0101 'A'.
I remember the Teletypes recognized 0007, ^G, BEL, but we were discouraged from using it, because we had 16 such Teletypes arranged around the room. (Also two CRT terminals, probably earlier than VT-100.)
At that point, high school students had varying typing skills, and even with the program written out in longhand before class, we were limited by how many characters we could type in half of a 40-minute period. (Twice as many students as terminals.)
I think it was a sans serif font. Does anyone know a reasonable facsimile? Or have a sample we could feed into one of those "What font is this?" programs? It had a certain look, and books at the time (I had one which was a scientific approach to Monopoly, where the authors had run a simulation to find the odds of any property being hit) tended to show the results of computations as photographs of the printout, rather than typesetting the table the way the publisher would almost any other piece of manuscript.
@Chesler... "Is semicolon a delimeter to PRINT that says don't do a carriage return?" Yes, as I recall
; Semicolon means stop where you are and wait for the next print command
. comma means advance to the next TAB stop (useful for tables)
nothing means do a new line
I've often thought that the inventors of ASCII - who would have been computer nerds - should have thought to put in characters like not equals, equal to or Greater / Less than, etc. But they didn't, so we are stuck with these weird substitutions. I once wrote a terminal emulator in QuickBasic and it needed some weird characters. Fortunately I found a font editing program that let me create them.
I still love Basic and have never learned C (though that is one thing I want to do) and am doing some blogs on the PICAXE MCUs at the moment - great little things if you're a BASIC tragic like me.....
You're right, not that hard to hand translate, with the table on page B-4. Human error in splicing together the photocopies.
So the missing lines are, as we figured:
50 F = N
60 N = N-1
I made little pencil marks on the tape so I can take more photocopies and splice them together and post it to Flicker, but I think this dead horse is sufficiently beaten now (until I get stuck on real work and need to divert for few minutes...)
In every Basic I've ever used the interpreter would tell you if you had an uninitialized variable. In fact, one of my favorite computer pranks was when I was at the remote end of a software demo. Two very clever guys from a different high school had created a program in Basic that allowed separate time-shared teletype sessions to chat, using shared files as storage.
OK, so they're in the other room and the program is working fine. We're sending back and forth the usual "HELLO", "HOW ARE YOU?", "FINE THANKS", and other unimaginative messages you can expect from teen-agers who did math instead of literature. I got a diabolical inspiration and sent the message "UNDEFINED VARIABLE IN LINE 1320". They panicked, and started giving commands like "LIST" and "RUN", not realizing that the program was still running perfectly. I dashed into the next room and asked "what happened?" and let them sputter a bit before confessing.
Wirth's Law: "Software is getting slower faster than hardware is getting faster."
I did take a Tic-Tac-Toe (on a cylinder or something funky) I'd written for Data Structures and it was an amazing example of Moore's Law. In 1982 each move took the computer about three hours. In 2005 the same code was running in interactive time (and I learned it was a very boring game, guaranteed win for the first mover.)
I don't recall pre-initialized variables, certainly not to 1, so I suspect there are lines missing, given there are no lines 50 or 60, and the GOTO 60.
@Chesler....you could initialise F by saying F=1 or F=N, but unless the machine defaults to initialising variables to 1 your initial program would not work. But I don't know how that machine behaved....
> "What am I doing debugging/reverse engineering this?"
Well you can see how far you have come since those early days,,,,and a bit of nostalgia is always a good thing I find.
I loved playing with GWBASIC again but I was forever trying to position the cursor with the mouse, or cut and paste....NOT! But as I remarked above, the power of that little program in 60K is awesome compared to todays's bloated code. But then would I want to go back to Wordstar or MS-Word DOS versions without WYSIWYG? I don't think so..... Then again GWBASIC appears on the screen ready to work about 0.4 second after clicking it. You never gain anything without also gaining a disadvantage.....
Replay available now: A handful of emerging network technologies are competing to be the preferred wide-area connection for the Internet of Things. All claim lower costs and power use than cellular but none have wide deployment yet. Listen in as proponents of leading contenders make their case to be the metro or national IoT network of the future. Rick Merritt, EE Times Silicon Valley Bureau Chief, moderators this discussion. Join in and ask his guests questions.