Skip to main content


My first apps pushing real memory requirements, "hundreds of KB to MB", were on Unix systems. The second was Windows 95. The peculiarities of PC memory issues were just running config tools to get Tie Fighter running. Seeing it spelled out so painfully makes me glad I missed all that. #history #ComputerHistory #programming #RetroComputing
in reply to Hank G ☑️

@Hank G ☑️ So many of us were bloodied by the Commodore 64 and its “oh, no, the last 40% is just there to look pretty” nonsense long before any of that.
in reply to Sarah Brown

My first programming experience ever was 6502 as well, BASIC not assembly though. I never got too fancy with the graphics or memory requirements. Even my first structured programming on the Mac and PC using Pascal and then C were small enough programs to make worrying about all that memory segmentation
stuff on either platform, albeit far less complicated on 1980s Mac. As I think of trying retro computing challenges I may end up experiencing it eventually.
in reply to Hank G ☑️

@Hank G ☑️ Assembly on the C64 was no problem. You had all 64k to play with.

The issue was with BASIC. They ended up shipping the VIC-20’s BASIC interpreter shoehorned in because the fancy pants one with graphics and sound stuff they were making wasn’t ready. The interpreter they shipped didn’t understand anything about accessing RAM paged under ROMs and memory mapped IO, so you were limited to 38k, and despite the C64 having bit map and sprite graphics, as well as a really nice sound chip, there were no BASIC commands to access any of it.

in reply to Sarah Brown

Fascinating history of those times and how scrappy everything was. Although I was an Apple not Commodore user back then I still read all of Brian Bagnall's books on the soup to nuts history of the company and its products.
in reply to Hank G ☑️

@Hank G ☑️

Ah, when reading EMS, XMS, HMA, and UMB and Memmaker I feel the pain again. This was such an enormous bullshit compared to 68K systems or the first RISC machines.

Nevertheless, when I started with automotive software in 2004 there was it again: the Motorola Star256 and S12x MCUs (late descendants of the 68HC11/12 architecture which are based on the 6800 design (as the 6502)) and a world of wonderful bank switching.

Forget to restore the PPAGE register and your software runs havoc .

in reply to Hank G ☑️

QEMM and Intel AboveBoards, AST SixPacks trying to get 'moar' out of your pc for games and grabby programs.
in reply to Hank G ☑️

in reply to Hank G ☑️

I remember the days when you were lucky (or rich) to have 1 MB on your personal PC.
in reply to Hank G ☑️

My first useful computer was the Atari ST. 512K of memory and a graphical interface!
in reply to Hank G ☑️

Even then the C compiler really sucked. So badly it was not usable.
in reply to Hank G ☑️

My first was an Apple IIc with 128 KB of RAM. The machines I learned Pascal on were my school lab's Mac 128s, 512s, and one Mac Plus, and their XT class machines. The next semester I graduated to the local University's Unix servers over a VT100 terminal. I really didn't have to push memory limits in a substantial way until several years later but by then it was all unified memory models on Unix and Windows (thank god).

rastilin reshared this.

in reply to Hank G ☑️

@Mark Miller Sorry for the really late reply to this, but I feel like it's worth noting ...

The Atari 400/800 were not backwards compatible with any previous home computer, so there was no reason to worry about supporting an existing software base of BASIC programs.

In contrast, C64 BASIC was largely backwards compatible with the VIC-20 and PET computers, and indeed a lot of early C64 programs were simply PET programs. (The VIC-20 had only been on the market about a year before the C64, so there wasn't such a big library of VIC-20 BASIC programs compared to the PET.)

The PET line didn't have any graphics or sound capabilities beyond PETSCII characters, so there was no need for special graphics or sound commands.

So, the PET used Microsoft BASIC - including string features - and by the time the C64 was being developed it made sense to support those features for backwards compatibility.

in reply to Hank G ☑️

"... every memory access can reference any address, and all accesses are legal (including those that wrap around!) which means null or dangling pointer dereferences don’t cause any sort of crash."

This was not my experience, but maybe this changed after the 8086. I programmed in C on DOS in the mid='90s on a Pentium system, using Borland C++ 3.0, and every time I referenced an errant pointer (typically NULL), the entire machine locked up; definitely a crash. It was so bad that Ctrl-Alt-Del didn't work. I had to hit the computer's Reset button to reboot.

I imagine the compiler was working in real mode, because, as it came, it was only able to access the first 640K of memory. Late in the project, I started using a DOS extender, so it could access 1 MB, but I experienced this crashing problem well before I started using the extender.

in reply to Hank G ☑️

@tomgrzbow@societas.online - I had a 4 MB Atari Mega STe, and used a couple C compilers on it: Sozobon C in TOS, and GCC on MiNT. Sozo C was a K&R compiler, which was pretty standard for C compilers of the time. It was an "okay" language to use, if you were careful with it. It was very risky, because it didn't hold your hand much at all. You had to know what you were doing. As I say, that was true of all K&R compilers. GCC was ANSI compliant, so it had a little more protection. It would count parameters, and warn you if you tried using incompatible types. Some of the better K&R compilers had more warnings, and good syntax error messages, but if your bugs didn't have to do with syntax, they were extremely permissive.
in reply to Hank G ☑️

@Isaac Kuo - That makes sense.

Atari was concerned with MS-Basic compatibility. They ended up selling MS-Basic in a couple different configurations for the Atari 800. In the manuals, there were sections dedicated to how to port MS-Basic programs from the Apple II, Commodore PET, and TRS-80 to Atari MS-Basic.

I know hardly anyone, though, who used MS-Basic on the Atari. Atarians accepted Atari Basic as the standard. Several years later, Turbo Basic from the German Happy Computer Magazine became preferred, as it was a much faster extension of Atari Basic, with more commands. Though, it still lacked strings/string arrays.

in reply to Hank G ☑️

Since we're talking about "first machines," I'll chime in. :) My first was an Atari 130XE with 128K RAM. I used it for word processing, and as a VT-52/VT-100 emulator while in school. I mainly programmed in Basic on it, but once I learned C, I got a C compiler that ran on it, and ported my Pascal programs from school to C to run on it. They all worked.

I first learned Pascal on the Apple II while I was in high school, using Apple Pascal. I also took Pascal in college (a required freshman course for my major), using a CDC supercomputer (I think because it was such a large class--around 300 students per section, of CS and non-CS majors). I learned C in college, using Unix minicomputers.

in reply to Hank G ☑️

I started with Fortran batch programming on a multi-user IBM 3033 mainframe at the local university (LSU). These were "mini-course" night classes, but there was no explicit age restriction so I took some (I was 9 at the time).

The experience of programming on a batch time-share system gave me a some weird early expectations of what computing was like.

I don't know how common it was for people to learn computer programming on mainframes back in the day.

Unknown parent

Hank G ☑️
Ironically the Apple IIc could boot to the Applesoft BASIC prompt almost instantly. Loading stuff off floppies on the other hand could take awhile...
in reply to Hank G ☑️

@Mark Miller

Yeah, by the time the Atari Mega STe came out, the software situation had improved considerably. Sadly, the machines did not sell.

;-(

in reply to Hank G ☑️

My first was an Atari 130XE with 128K RAM. I used it for word processing, and as a VT-52/VT-100 emulator while in school

I used to dial into work using my 512ST (and a US Robotics modem) from my rather remote abode when the weather was bad. This was circa 1983! I’m the first tele-commuter I have met. And I was using my telephone line!

in reply to Hank G ☑️

@tomgrzbow@societas.online - "Yeah, by the time the Atari Mega STe came out, the software situation had improved considerably. Sadly, the machines did not sell."

I wasn't aware of the software situation on the ST until I bought mine in '92. By then, the ST was pretty much dead. Not much was written taking advantage of the STe's capabilities, except for graphics/sound demos. I used ANSITerm on it. That might've had an STe enhancement or two. I forget. Not much in the way of games came out for the STe models, either. Most were written for the STf. Some didn't work on the STe.

It was the same story with the Falcon. Too little, too late. I always thought it had unrealized potential.

The main thing I got out of the Mega STe was the easy ability to go faster, since I could switch it to 16 Mhz, and ease of expansion. I was able to expand the memory up to 4 MB (originally bought it at 1 MB), and add an internal HD. Once I had that, I was able to get into some C programming on it, and install MiNT.