Easy-to-use programming language that drove Apple, IBM, and Commodore PCs debuted in 1964.
See full article...
See full article...
I have found using cassette drives for storage to be the aspect of ancient computing my kids took the most effort to convince I wasn't just making up for comedy purposes.Ah. Tandy on TRS-80 and cassettes as well.
Commodore 64, here but it was a hand-me-down from my brother. I was taking paramedic certification classes at the community college and added a computer programming class as part of the sciences req.Texas Instruments TI-99/4A here with cassette drive connected to a 13" black and white tv.
edit: corrected model number format.
Thanks for posting this as this was also my introduction to programming. It really was an excellent book! (I still have mine too -- Along with the TI-99/4A, PEB, Speech Synthesizer and even an MBX add-on). Played Tombstone City and one day decided the TI could do more than play games, so I picked up this book and started typing. I was simply hooked!TI-99/4A here as well. Mr. Bojangles was my first "long" project from the manuals, and it was the first time I discovered that nothing is saved and the tape adapter cable was a lifesaver. Damn good times.
View attachment 79747
Mine was on a C64. I later did BASIC on an Apple II and remember missing some of the features of the C64 BASIC. If I'm recalling correctly, you could edit lines on the C64, but on the Apple you had to rewrite the whole line if there was an error.My first coding experience was BASIC on a VIC-20 with cassette tape store. Memories...
That’s one of the reasons new versions of C# Top Level Statements to eliminate most of the overhead. In C# 10, you can just write “Console.WriteLine(“Hello world!”);”Which is my complaint with modern programming languages. Transitioning from spaghetti code to structured code (Pascal first, before I learned C) wasn't much of a problem; even in BASIC, I used a lot more GOSUBs than GOTOs. But OOP has such a huge learning overhead -- and typing overhead. In BASIC, you could type "100 PRINT "HELLO, WORLD" and RUN (or RUNSKI, on at least one machine), and it WORKED.
One minor but interesting nit: Woz, absolute national treasure as he is, sadly didn't write AppleSoft BASIC. He was too busy working on the Disk ][ system. Jobs negotiated a flat-fee license of Microsoft's 6502 BASIC for (an insanely low) $31K USD, and in return, got a bug-riddled drop of source code that they had to make work on the Apple ][. Part of this process involved sending the code to a 3rd party over 110 baud modems to be cross-assembled!Woz is such a Hero and Genius! An Absolute National Treasure. It’s been over 4 decades already and I still remember and cherish memories with my Dad and the Apple II. Integer Basic, AppleSoft, call-151, hr, hgr, beagle bros’ small code snippets, autoproofreader, and so much more!
Formula Nibble was by far and away my favorite thing they ever printed. I remember trying to follow along with the article going over the assembly code and being mystified.I sold several graphics utilities to Nibble magazine, mostly tools to help you create and use Shape Tables for graphics. Also sold them a racing game called Formula Nibble which was mostly 6502 assembler for speed but used Basic as the front end.
View attachment 79762
Certainly looks primitive, huh? But at that time, state of the art was white roadside posts moving past you as you drove. I had color! Four of them!!
Nibble sold disks containing an issue's programs which was a popular alternative to typing in pages and pages of 6502 assembler and then trying to find all the typos you made.
My very first memory of using a computer was an Apple ][ with a cassette tape as the storage medium when I was 5 or 6 years old.I have found using cassette drives for storage to be the aspect of ancient computing my kids took the most effort to convince I wasn't just making up for comedy purposes.
..."the lessons learned from these projects informed the development of BASIC, which started in 1963."As part of the deal to buy the GE computer, the undergraduates built the operating system in BASIC for General Electric's version of time-sharing." It's hard to imagine writing disk controllers, etc., in BASIC, and I don't think that's actually what was done; the Dartmouth Time Sharing System https://en.wikipedia.org/wiki/Dartmouth_Time_Sharing_System was probably written in assembler, as would have been common in the early 60s.
Correction: Line numbers were a leftover from a time when we didn't have text editors. Most of the BASICs people around here have been nostalgic for have been microcomputer BASICs that had screens -- but there was often no way to edit a text file. The line numbers told the interpreter the order in which to run the lines -- but it was also how you could replace a line of code when it didn't work.But I still haven't seen any nostagia for having to use fracking line numbers (shudder). The first time I touched Pascal I was so amazed to realize that we just didn't need them. They were just a silly leftover from when we computed with punch cards and teletype machines instead of having a screen. Mind. Blown.
Yes. It was pretty rough to work with. 63 bytes of instructions, as I recall.But did anyone have the BASIC Programming cartridge for the Atari 2600?
As a kid I thought it was cool to have... but not being able to save your work immediately put a damper on putting any effort into using it.
None of the clones bothered reimplementing the BASIC ROM. Their workalike was GW-BASIC, which took more RAM than BASICA (since it had to duplicate the ROM functionality), but ran the same programs at the same speed.
That can't be real. I mean, it explains that shitty E.T. game.Yes. It was pretty rough to work with. 63 bytes of instructions, as I recall.
The 2600 had 128 bytes of RAM, leaving about 64 for your BASIC program. The cartridge itself was probably 4K.That can't be real. I mean, it explains that shitty E.T. game.
You’re certain it wasn’t 4 am in the afternoon?Sixty years ago, on May 1, 1964, at 4 am in the morning
Times Sinclair 1000 with cassette for me and then a C64 with Simon’s Basic.My first coding experience was BASIC on a VIC-20 with cassette tape store. Memories...
Well, you can still do that today with Python on the console screen, if you objective is to get the kind of output you could have gotten from Applesoft BASIC 40 years ago.The buety about the days of basic, was that it just worked, no worrying about environmental variables, libraries, configuration files and settings. You could literally type sonething in from the magazines or tutorials of the day and they worked.
This little anecdote breathed life into my dayMy fondest memory of BASIC is when I was in middle school computer class and I made a program that looked like I had logged/hacked into the "Central Trust International Exchange" (I had recently seen the movie Wargames). This was in a room full of Apple II computers plugged into a very long square metal tube of power outlets/surge protectors.
When the teacher saw what I was doing, she freaked out, thinking I was going to get the school raided by the FBI or something and pulled the plug on the entire row of computers, wiping out not only my program but all of the work of the other kids in that row.
These computers were not even networked, much less connected to a modem.
I ended up with a detention and a call to my father, and was even further ostracized by most of the other kids for being a huge nerd and screwing up their assignment, but the other two nerdy kids in my class also thought it was hilarious.
Honest question from a rank amateur who hasn’t written anything in Windows since VB6: is there any reason why anyone should be using VB.NET over C#?IMO they did a lot of stuff that made VB.NET unnecessarily un-VB-like in the move to .NET (I say as someone who started professionally in VB6, VBScript, and classic ASP, worked mostly in VB.NET for years, and ended up switching to C# because Microsoft just supports it better and it doesn't seem like they're trying to force stuff developed for other languages into it nearly as much), and in introducing new functionality to VB.NET.
That's where Djikstra's "GOTO Considered Harmful" maxim comes from... the world of line numbers, global variables, and global state. Combine that with extremely, extremely tight memory constraints, and programmers pulled all kinds of egregious bullshit to make their code run.... doing things like jumping into the middle of other routines to re-use the code at the end of the function. Add one line to the program and you could mess up all the jump targets and spend a week debugging the resultant mess.But I still haven't seen any nostagia for having to use fracking line numbers (shudder). The first time I touched Pascal I was so amazed to realize that we just didn't need them. They were just a silly leftover from when we computed with punch cards and teletype machines instead of having a screen. Mind. Blown.
Awesome! Can I take this as a permission from you to embed longjmp() willy-nilly in my C code?That's where Djikstra's "GOTO Considered Harmful" maxim comes from... the world of line numbers, global variables, and global state. Combine that with extremely, extremely tight memory constraints, and programmers pulled all kinds of egregious bullshit to make their code run.... doing things like jumping into the middle of other routines to re-use the code at the end of the function. Add one line to the program and you could mess up all the jump targets and spend a week debugging the resultant mess.
Programmers are still fixated on the "goto is bad!" maxim, but they've forgotten why it was so bad. In a modern language, with subroutines, local namespaces, and controlled points of code entry and exit, it's very difficult to make any kind of real mess with gotos. Sometimes they just make more sense, or will let you write much faster code. If a goto fits your use case, go for it. It's not a code smell anymore, because you couldn't even possibly cause the kind of problems you did in BASIC.
If you have spaghetti problems in a modern language, it will be from bad design, not goto.![]()

You can always screw things up in C. You don't need long jumps for that.Awesome! Can I take this as a permission from you to embed longjmp() willy-nilly in my C code?
(Just kidding, I haven’t written any C in years, and don’t remember ever using longjmp outside of exercises.)
Hmmm, can't remember if the TRS-80 had GOSUB. That was my first exposure to BASIC, so I may not have learned about it yet at the point. But definitely on the Commodore 64 and 128, and I learned to make use of it.Oh no, it wasIt wasn't so bad if you had GOSUB at least. In the timeframe you're talking about you probably didn't, and AppleBASIC didn't, so I remember using REM to mark routines and printing them out to add textual labels on paper to keep track. At one point there was a TSR-style utility that came out that let you edit and renumber lines which was a godsend. Forget the name.
When I was a kid, I use to go to the Lawrence Livermore Science Lab and go to their public computer room where they had dozens of paper teletypes for the public to use to play with BASIC.
Same here, but in the Army. My first duty assignment, my assignment was to program an Apple //e to render radar returns from a JSTARS reconnaissance aircraft. That Apple //e came with a 5MB profile hard drive and a serial interface. We would receive the radar returns through the interface, and my program would render them on the screen. Of course BASIC was too slow so I used 6502 assembly. The filesystem on the hard drive slowed down substantially if you had too many files, so I had to create and manage sub directories to keep the file count manageable.Same. BASIC on the venerable IIe in middle school (we were bussed to the "extension campus" for such advanced material). Also got to use Parallax BASIC in my high school electronics class to program Stamp-based microcontroller.
There's a boot-to-BASIC environment for the Pi Pico, in fact you can turn the board into the equivalent of an entire retro computer (with modern storage and peripherals): https://geoffg.net/picomite.html
Oh thank you so much for this! I lost so many hours to super Star Trek as a kid! Awesome to be able to play it again.For those of us who may have learned programming from David Ahl's Creative Computing magazine and books with their many BASIC games. there is a project which is looking to convert many of them to modern languages:
https://github.com/coding-horror/basic-computer-games