Most active commenters

    ←back to thread

    286 points spzb | 40 comments | | HN request time: 0.425s | source | bottom
    1. coreyh14444 ◴[] No.43533429[source]
    I definitely had cassette based games on the TRS-80, but most of the "wireless" transmission in my youth was via BASIC printed in the back of computer magazines. You had to type in the entire app yourself. I did this for basically every app they listed. Sometimes it was like tax prep software, but I didn't care, even though I was like 9 at the time. Yes, it took a very long time. Yes, you could easily introduce typos and bugs.
    replies(18): >>43533473 #>>43534190 #>>43534420 #>>43534655 #>>43534805 #>>43535259 #>>43535577 #>>43535687 #>>43536185 #>>43537570 #>>43538062 #>>43538702 #>>43539139 #>>43539623 #>>43539720 #>>43541831 #>>43543690 #>>43547857 #
    2. mysterydip ◴[] No.43533473[source]
    Sometimes the typos were in the magazine itself, and you wouldn't figure out the problem with the code you triple-checked you typed in properly until the errata in next month's issue :)
    replies(3): >>43534839 #>>43535117 #>>43539196 #
    3. section_me ◴[] No.43534190[source]
    The post man always bent our magazine and pushed it in the cat flap making the included disk useless (even though it was clearly marked "DO NOT BEND!"), so I remember having to type everything out and sometimes correct the typos introduced into the print version. Fun times.
    replies(1): >>43537123 #
    4. krige ◴[] No.43534420[source]
    Oh god yes

    And that in the era when you could see not much of your code all at once, and trying to catch the issue with LIST was a pain too

    5. llm_nerd ◴[] No.43534655[source]
    My older brother would type in games on the Atari 400 from magazines like Compute! The 400 had a brutal membrane keyboard, and we had no storage so you could then enjoy it until the device powered down and then that work was lost.

    The computer was half a decade old at this point but we were poor so it was pretty great to us.

    After he finished hours of typing in a game, he called my friend and I to see the magic of first run. My friend, having never seen the 400 before, pops open the cartridge cover to see what's in there, which is an action that powers off the computer.

    replies(1): >>43535131 #
    6. colkassad ◴[] No.43534805[source]
    I did the same with an Atari 400 that had a cassette tape. I remember it would take 30 minutes or so to load/save games I copied from magazines. The keyboard was torture. I then moved on to very rudimentary text adventures of my own once I felt a bit comfortable with BASIC. I'm very glad my father bought that for me...he was a painter and we didn't have a lot of money then. It was extremely formative.
    7. nonrandomstring ◴[] No.43534839[source]
    Also typeset in a non-fixed width font with long lines truncated to fit the copy layout!
    8. jonwinstanley ◴[] No.43535117[source]
    The compiler/interpreter couldn’t even tell you what line the error was on!

    You’d just get a big error message for the whole program.

    replies(2): >>43536420 #>>43537609 #
    9. jonwinstanley ◴[] No.43535131[source]
    Painful! I remember being able to at least store the finished program on a floppy. Luxury!
    10. dylan604 ◴[] No.43535259[source]
    A buddy of mine and I realized that if one of us read the code while the other typed, it was much less prone to errors. Once we got it all typed in, we'd switch places when debugging the inevitable typos made. The DATA lines full of nonsensical text (what we now know was hex encoded data) were the go to place for checking for typos.
    replies(1): >>43535561 #
    11. nunez ◴[] No.43535561[source]
    Wow; old-school driver-navigator pairing. Really cool!
    12. cstuder ◴[] No.43535577[source]
    The german C64 magazine "64er" had an application which allowed "easy" entry of assembly applications by means of a hex encoding and used a checksum on each line to prevent bugs from typos. Still an incredible chore.
    replies(1): >>43535992 #
    13. kolanos ◴[] No.43535687[source]
    Doing this is one of my earliest memories. I think I was 5 or 6. I hadn't even mastered reading yet and I was typing a game into an IBM XT clone (think it was QBasic) one character at a time. Don't think I would have bothered with a tax prep program, though. Now that's dedication.

    Edit: Could not have been QBasic as it wasn't released until 1991 and I was doing this in 1987-1988. So maybe GW Basic? Whatever came standard on an IBM XT clone from Taiwan.

    replies(1): >>43540925 #
    14. weinzierl ◴[] No.43535992[source]
    It was called "checksummer" which is a funny pun on check sum and "summer" which is the German word for buzzer. Oh, I should add that it made an annoying buzzer sound when you made a mistake.
    15. waltbosz ◴[] No.43536185[source]
    I remember my Dad read an article in some computer magazine back in the day about hacks you could do to the Balderdash video game for Atari. I'm not sure what he had to do, maybe use a hex editor on the binary. He was able to do things like make Rockford eat objects besides dirt and diamonds, or be invulnerable, or there could be multiple Rockfords on the screen at one.
    16. aaronbaugher ◴[] No.43536420{3}[source]
    After a while, magazines like Commodore Run and Compute started including a short program that would checksum each line as you entered it, so you could check that against a checksum in the magazine. Of course, you had to get that program typed in correctly first before you could use it to enter others.
    replies(3): >>43538009 #>>43538499 #>>43540775 #
    17. ztetranz ◴[] No.43537123[source]
    Floppy disks DO NOT BEND!

    Oh yes they do.

    replies(1): >>43537942 #
    18. nsenifty ◴[] No.43537570[source]
    There was something magical starting to type a listing that started with `10 GOSUB 10000`.
    19. ako ◴[] No.43537609{3}[source]
    For the zx81 i think it was usually some encoded binary form, so no compiler/interpreter involved.
    20. jandrese ◴[] No.43537942{3}[source]
    At least the 5 1/4 disks did. 3 1/2 disks did not like it at all. As long as you didn't crease anything the 5 1/4s would usually still work. The data wasn't especially dense on those (if you could see magnetic fields the patches would have been large enough to be visible to the naked eye) so the could take some abuse. At least until the magnetic coating started flaking off.
    21. tantalor ◴[] No.43538009{4}[source]
    I'm curious, can you say more about "as you entered it"?

    Do you mean like, "for lines 1-20 the checksum should be 0xDEADBEEF"? This would let you find the error before finishing the program.

    Or just at the end, it would checksum the whole thing?

    replies(2): >>43539670 #>>43540214 #
    22. Projectiboga ◴[] No.43538062[source]
    I typed out a blood alcohol calculator in BASIC on my Apple clone around 85 or 86, body weight, amount of drinks and it charted out BAC over time. It was interesting to see the variations between a number a drinks and timing. Don't recall if it was BYTE or some other source.
    23. moreati ◴[] No.43538499{4}[source]
    Semi related, I created linesum a few years back https://github.com/moreati/linesum to line by line sha256.
    24. nocman ◴[] No.43538702[source]
    The ones I did this from were "Compute!" and "Compute's Gazette! (for Commodore 64 and VIC-20)". They were all octal numbers, if I remember correctly, and the last number in each row was a checksum. I also paid my sister to type in some of them in for me. A lot of them were games, but there were also some very useful programs in there. I spent so many late nights typing away on that 8-bit machine. It was a cool time to be a kid who was interested in computers.
    25. ben7799 ◴[] No.43539139[source]
    This is what I had to do. It was probably beneficial. I was pretty young.. 10-12? My dad is also an engineer and would help me debug the programs after I typed them in, teaching me BASIC as we went. I wasn't necessarily able to understand it all but it probably built me a foundation for programming no different than introducing children to a 2nd language earlier rather than later.

    There were also books I checked out of the library. These sometimes presented additional difficulties as we didn't have a computer powerful enough to take advantage of everything in the book, or had a completely wrong environment.

    I must have been weirdly motivated but in some way I think this was better than the way everything is spoonfed and easy for kids today if they want it? My son is not motivated the same way, it's just too easy to go over to a game or something else that's less challenging. Quite a few of my friends who also became software engineers/computer scientists had a very similar experience in the late 80s and early 90s.

    26. kotor ◴[] No.43539196[source]
    My exact memory. When you did finally get everything correct, the program could take 15 minutes to load from the cassette tape. I remember upgrading my Commodore 64 with a floppy disk and loading programs in 2 minutes (which felt instantaneous by comparison).
    replies(1): >>43540868 #
    27. ryoshu ◴[] No.43539623[source]
    Main way I learned how to program was computer magazines and copying code. I still do things like redrawing reference architecture diagrams from scratch, because I can focus on each portion and think about how the data flows between services.
    28. onre ◴[] No.43539670{5}[source]
    I remember borrowing a book from the library, which had a type-in checksum program of this sort. It was done like was common for C=64 things of this kind - there's a BASIC FOR-loop iterating through a memory area, reading in bytes from DATA statements you've typed in and POKEing those bytes into memory, not completely unlike entering a program manually from the front-panel switches of an older computer.

    So, after typing that in and probably SYSing (C=64 BASIC command for executing machine code from arbitrary memory location) to some address, it did print out a two-digit (eight-bit) hex checksum after every BASIC line I entered on the C=64 and the program listing in the book had the correct checksums for every line, so spotting errors was more or less instantaneous.

    This stuff brings memories.

      FOR I=40960 TO 49152:POKE I,PEEK(I):NEXT I
      POKE 1,54
    
    From top of my head; loop through the BASIC interpreter area, reading byte by byte with PEEK and POKEing those bytes back to the same addresses. Sounds nonsensical? Not so, because the C=64 does have full 64 kB of RAM, but some of it is overlapped by ROMs. What happens here is that you're reading from ROM but writes always go to RAM, so you're copying the BASIC interpreter from ROM to RAM. After that, the POKE statement turns off the ROM overlap and the interpreter is now run from RAM, so you can edit it live - and obviously cause all sorts of interesting crash situations.

    It sure did help later with career in IT to have understood this kind of stuff at age of around ten.

    29. nurettin ◴[] No.43539720[source]
    The hardest programs to type were in 6502 assembly. One byte mistake and the entire program was botched.
    30. rufus_foreman ◴[] No.43540214{5}[source]
    A checksum for each line of code. COMPUTE! magazine used one, the article introducing it and explaining how to use it is at https://archive.org/details/1983-10-computegazette/page/n49/....

    The code listings had a comment (rem) at the end of each line with a checksum number, when you used the checksum program it would display a checksum at the top of the screen that would match if you entered the line correctly.

    An example page of code with checksums is at https://archive.org/details/1983-10-computegazette/page/146/....

    A life changing event for those of us entering code from magazine listings in the early '80s.

    replies(1): >>43548628 #
    31. unsui ◴[] No.43540775{4}[source]
    My favorite was the "TYPO II" ("Type Your Program Once") application, which was part of every Antic! Magazine program listing:

    https://www.atarimagazines.com/v3n9/TYPOII.html https://www.atarimagazines.com/antic/

    This was wrapper around the BASIC interpreter that printed out a 2-character checksum of each entered code line.

    The magazine printing also had an associated 2-character checksum for each line. Your job: make sure the checksums matched.

    As a teenager who only had cassette-based storage (couldn't afford a disk drive) and was addicted to typing in programs from Antic! and ANALOG magazines, this was a lifesaver.

    (ANALOG's checksum program wasn't quite as convenient, and, IIRC, required a disk drive?)

    replies(1): >>43541198 #
    32. ratg13 ◴[] No.43540868{3}[source]
    I never had a tape deck, and was constantly flustered by “press play on tape” messages.
    33. ForOldHack ◴[] No.43540925[source]
    GW Basic came with DOS, but there was a way to get real BASICA onto a clone, either through ROMS or with a patch.
    34. omoikane ◴[] No.43541198{5}[source]
    I took a look at the listing[1] and looks like it contains unprintable characters, maybe they were ASCII art of some sort?

    The checksum algorithm is fairly simple: line 32150 sums the products of all character positions and character codes, and lines 32160-32180 does a modulus to convert them to printable characters. The multiply-by-position bit is clever because it allows the checksum to flag transposed characters. ISBN-10 uses a similar scheme[2].

    [1] https://www.atarimagazines.com/software/displayfile.php?file...

    [2] https://en.wikipedia.org/wiki/ISBN#ISBN-10_check_digits

    replies(1): >>43541344 #
    35. unsui ◴[] No.43541344{6}[source]
    I naturally went down a rabbit hole to see if I could find why those characters weren't printing properly.

    https://www.atarimania.com/mags/pdf/Antic_Vol_7_No_4.pdf

    On p. 31, you can see the intended characters.

    I now remember that Atari actually had their own variant of ASCII, called ATASCII:

    https://en.wikipedia.org/wiki/ATASCII

    Atari 8-bits were actually really cool computers, in that they let you do things like redefine character sets entirely (to create custom character sets to effectively create tile-based displays), play with display-list interrupts, etc.

    replies(1): >>43541752 #
    36. omoikane ◴[] No.43541752{7}[source]
    Nice find :)

    I guess Atari character set has enough overlap with ASCII, so I could get the checksum to match:

        sum = 0
        "32000 REM TYPO II BY ANDY BARTON".codepoints.each_with_index{|c, i| sum += (i + 1) * c }
        print ((sum % 676) / 26 + 65).chr, (sum % 26 + 65).chr, "\n"
    
    (Ruby code, outputs "WB")
    37. LennyHenrysNuts ◴[] No.43541831[source]
    I had the Dragon 32, which is the only Welsh microcomputer ever made (I think). Fantastic machine.
    38. card_zero ◴[] No.43543690[source]
    "App"!?

    https://archive.org/details/TRS-80_Microcomputer_News_Volume...

    39. PeterStuer ◴[] No.43547857[source]
    For Speccies the added debuff was typing over the poorly scanned rolls of lowrez thermal printed code. The Spectrum's ecosystem's thermal printer's output was barely legible straight of the press, let alone as a second generation copy.

    https://www.youtube.com/watch?v=CnY_ra-cHM0

    40. tantalor ◴[] No.43548628{6}[source]
    That's awesome. Thanks!