No there should not be a line feed when you manually hit return. The ASR uses 0x13 to move the carriage left, nothing else. It uses 0x0A to roll the paper up, nothing else. I have forgotten if there is a LF key on the keyboard, but if there isn't , CTRL-J does it. Like David I spend a lot of hours on an ASR-33 connected to a HP 2000 E basic interpreter on an HP 2100 A mini.
@Mr. Contractor: "I remember a manual paper tape reader that me and Don Harrison hard wired it into an original IMSAI computer as we were tired with the teletype's 110 baud slow rate. We were amazed when we manally loaded the program and then started pulling the tape through the reader and the data appeared on the screen. The data was read by photocells under the tape and since the feedhole was smaller it was used to clock the data into the computer."
An IMSAI! When you say manual, you mean it wasn't from an ASR, right? I remember a BYTE Magazine article about making a tape reader with photocells, includine one to read the feed hole and use it for clocking in the data. Kind of a combined start- and stop-bit!
Speaking of the slow data rate of the TTY, I remember one December when I worked at the Social Security Administration. At that time a lot of our traffice went out over a GSA TTY network that was also shared with other agencies (our online system with cluster controllers was only a year old then). Someone had sent out a "MERRY CHRISTMAS AND HAPPY NEW YEAR!" message via paper tape, complete with ASCII art, that must have taken six or eight feet of paper to print out. They sent it with the All Points Routing Indicator in the header, sending it not just to all SSA stations (of which there were very many), but to ALL stations on the network. It took hours and hours for GSA to chase down and kill the traffic on the various relay points. I don't know what happened to the hapless operator who did that!
Let's do the math! At a conservative exstimate of 75 characters per line (72 characters per line (the usual for most TTYs) + 2 CR + 1 LF) × 6 lines per inch × 12 inches per foot × 6 feet (conservative) = 32,400 characters. At 10 characters per second (110 bps / 11 bits per character) and 60 seconds per minutes, that's 54 minutes! Eight feet would be another 18 minutes. That's one LMF message, to say nothing of the cost to send it!
STAR was dead on with the dashpot... it gets dirty with paper dust, oil from the mechanisms, and oily chad which gets everywhere.
This simplified shock absorber gets out of alignment due to the constant slamming of the printhead back to the left side for every RETURN.
I think 2 screws on top of the cup mounted on the frame get loose and you simply need to align it so the DASH plunger slids in freely... also adjust the sliding handle thats over the vent hole on the right so you hear that nice PHISSHH sound after every RETURN.
I remember a manual paper tape reader that me and Don Harrison hard wired it into an original IMSAI computer as we were tired with the teletype's 110 baud slow rate. We were amazed when we manally loaded the program and then started pulling the tape through the reader and the data appeared on the screen. The data was read by photocells under the tape and since the feedhole was smaller it was used to clock the data into the computer.
And yes, my ASR still works but is in the attic and the EX got it along with the house...
@FlyByPC...I have heard about FreeBASIC and might give it a try sometime. I used GWBasic here as it was from about the right era for the program. FreeBASIC says on its website that it is very compatible with QuickBASIC which I worked with a bit. I'll put FreeBASIC on my ever-growing list of things to do. I need to win the lotto and retire so I can get time for all the interesting stuff... :-)
It's nice that GWBASIC is still available, but you ought to check out FreeBASIC. It can be set to accept old-school GWBASIC syntax, but has a lot more modern capabilities, as well -- arrays of up to 2GB or so, high-resolution graphics in true color, user-defined types, and structured programming (functions, subroutines, etc.)
I use FreeBASIC with FBIDE: http://fbide.freebasic.net/
@betajet: "Thank you for contributing this week's dose of nostalgia."
You're welcome! When I'm not reading SciFi I'm reading history.
@betajet: "A Pascal semicolon is a statement separator. You put it between statements. Thou shalt never place a semicolon in front of "else". In contrast, a C semicolon is a statement terminator."
Coming from a PL/I background I probably thought of it as a terminator, thinking of "else" as a separate statement (line). My brief encounter with Pascal was 30-some-odd years ago.
I try to write code so I can follow it a later time (somewhat self-documenting), using indenting. I would write: if (x >= 0) y = x; else y = -x; in two lines as:
if (x >= 0) y = x; else y = -x;"
I can see how if you read the Pascal statement from left-to-right it's almost a complete sentence, not broken down into separate steps like above:
if x >= 0 then y:= x else y:= -x
but, "OTOH, in C you can write "y = x >= 0? x: -x;" is great for compact syntax and saving space back when disk space was dear. But hey, it was written by system programmers looking for something between assembler and a high level language. I hope to learn it and play with it some day (I like the bit where you can stuff in some assembler or machine code in-line; a hacker's dream (from the original def of hacker).
@Stargzer: If it's not returning, I'm not sure what the problem is.
If you type characters you can see them on the paper (very faint because the ribbon is 30 years old -- I iave to pick up a new one when I get round to it) -- but when you hit the return key, the carriage returrns but there's no line feed, which there shoudl be when you are manually typing on the keyboard.
The Betajet wrote: in C you can write "y = x >= 0? x: -x;" which much nicer than Pascal.
Flurmy wrote: Yuk! That's exactly what I try to avoid like hell.As you said, chacun a son goût, but I think I'm in good company. MISRA and alike strictly forbid mumbo jumbo like this.
Well, I learned LISP before I learned C. LISP's fundamental conditional operator is COND, which is an extended version of "a? b: c". LISP is a great language for reasoning about programs, and proving that they work. (For best results, use equivalent mathematical notations rather than lots of parentheses.) "a? b: c" is also a great notation for writing multiplexers in Verilog.
I'm puzzled that some people don't like "a? b: c", but I accept that some people would rather write Basic or Fortran :-)