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
From 0 to 1 MB in DOS
A tour on how DOS was able to use most of the 1 MB address space of the 8086Julio Merino (Blog System/5)
like this
reshared this
Hank G ☑️
Unknown parent • •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.
eeepee likes this.
eeepee
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 .
Hank G ☑️ likes this.
Mark Wollschlager
in reply to Hank G ☑️ • • •Hank G ☑️ likes this.
Hank G ☑️
Unknown parent • •Mark Miller
in reply to Hank G ☑️ • • •@Sarah Brown - I read up on what happened with Basic on the C-64. It was a slightly modified version of Microsoft's generic version of Basic for the 6502. The reason it didn't have more was Commodore wanted it to run inside an 8K ROM, and there wasn't much room left. Incidentally, the Basic in the C-64 was very similar to the version that was in the PET and Vic-20. Commodore didn't expand its command set much until the C-16, Plus/4, and C-128, when they had more ROM to play with.
I like talking about what Atari did with the problem, because it shows a contrast. They had the same issue with MS-Basic, but they went a different route to solve it. They really wanted MS-Basic to be the standard used on the Atari 400/800, but they couldn't fit it in 8K ROM, while also including Atari-specific features. So, they went to Shepardson Microsystems to create a different version of Basic. Shepardson got inspiration from Data General Business Basic. In order to fit what Atari wanted in it, they had to make some compromises. They got rid of strings and string arrays, substituting a buffer
... show more@Sarah Brown - I read up on what happened with Basic on the C-64. It was a slightly modified version of Microsoft's generic version of Basic for the 6502. The reason it didn't have more was Commodore wanted it to run inside an 8K ROM, and there wasn't much room left. Incidentally, the Basic in the C-64 was very similar to the version that was in the PET and Vic-20. Commodore didn't expand its command set much until the C-16, Plus/4, and C-128, when they had more ROM to play with.
I like talking about what Atari did with the problem, because it shows a contrast. They had the same issue with MS-Basic, but they went a different route to solve it. They really wanted MS-Basic to be the standard used on the Atari 400/800, but they couldn't fit it in 8K ROM, while also including Atari-specific features. So, they went to Shepardson Microsystems to create a different version of Basic. Shepardson got inspiration from Data General Business Basic. In order to fit what Atari wanted in it, they had to make some compromises. They got rid of strings and string arrays, substituting a buffer structure. They reduced the number of bits used for floating-point, and the accuracy of the math routines, to save ROM space (though, this ended up being moved to the Atari's operating system, freeing up space in Basic's ROM). By doing this, they were able to fit the Atari-specific features in Basic.
What you got in the C-64 was MS-Basic without compromises, with some access points for programmers to the Commodore-specific features.
Hank G ☑️ likes this.
tomgrzybow
in reply to Hank G ☑️ • • •Hank G ☑️ likes this.
tomgrzybow
in reply to Hank G ☑️ • • •tomgrzybow
in reply to Hank G ☑️ • • •tomgrzybow
in reply to Hank G ☑️ • • •Hank G ☑️
in reply to Hank G ☑️ • •rastilin reshared this.
Isaac Kuo
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.
Hank G ☑️ likes this.
Mark Miller
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.
Hank G ☑️ likes this.
Mark Miller
in reply to Hank G ☑️ • • •Hank G ☑️ likes this.
Mark Miller
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.
Hank G ☑️ likes this.
Mark Miller
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.
Hank G ☑️ likes this.
Isaac Kuo
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.
Hank G ☑️ likes this.
Hank G ☑️
Unknown parent • •tomgrzybow
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.
;-(
Hank G ☑️ likes this.
tomgrzybow
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!
Hank G ☑️ likes this.
tomgrzybow
in reply to Hank G ☑️ • • •How many of us could afford a Sun-1?
(not many)
https://en.wikipedia.org/wiki/Sun-1
first generation of Sun Microsystems computers
Contributors to Wikimedia projects (Wikimedia Foundation, Inc.)Hank G ☑️ likes this.
Mark Miller
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.
Hank G ☑️ likes this.
tomgrzybow
in reply to Hank G ☑️ • • •I got quite alot of value out of my 512, I must say!