Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There is a saying "autres temps, autres moeurs"

In a way I agree - someone programming like this right now without very good cause would be a bit of a nightmare if you ever had to tangle with their code. But it really was another world back then.

They were so resource constrained [1]. That "drum" wasn't the hard disk, it was the memory! Think about waiting for the rotation of a drum for each instruction read. Then the actual capacity of it was only 4K. The laptop I am typing this on has about 32 million times more memory and I don't like to think how much faster it is.

You either used clever tricks, or you wrote very limited programs. There was no room for any overhead. The author of that story wasn't astonished by clever tricks, just the degree of cleverness.

[1] https://en.wikipedia.org/wiki/LGP-30#Specifications



When adding 256 kilowords of memory to your PDP-10 cost $230,000 (2022 dollars) you were either clever or unemployed.

If your programs couldn't run on the machine you had, they were no good. Nobody was going to spend a quarter million dollars on equipment for the sake of source code beautification.


In 1998 I was bringing up a new MIPS-based board that had been designed in-house

The CPU booted from an EEPROM and started running code. There was an FPGA on the board that controlled the memory. The FPGA needed to be loaded with a bit-stream that was also on the EEPROM. The trick was that I had to write a program to load the FPGA without referencing any memory -- I only had ROM and the CPU registers. Fortunately the MIPS had quite a few registers, but I had to abuse all the register-use conventions and the code jumped through some hoops in order to be able to get the FPGA loaded so we could start running from RAM.

There was all kinds of crazy stuff that was weird with that hardware that we had to fix in software... I didn't realize until switching jobs exactly how weird things were, I just thought it was normal.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: