Hacker News new | ask | show | jobs
by Froedlich 481 days ago
The only true "system programming" I've done was in Microsoft Macro Assembler, a product I grew to hate with a passion.

A non-answer, but tangentially relevant:

I once fiddled with Forth, but never actually accomplished anything with it.

Several OSs are written in Lisp; in some of them the difference between OS and application is a bit vague. At the time none of them were available to me to play with.

I discovered Oberon and fell in love. My first real programming language was Pascal, and Oberon is part of the same family. Oberon consisted of a compiler, operating system, user interface, application software, and tools, all self-hosted on Oberon. There was even an Oberon CPU at one time. But Oberon turned out to be just an academic curiosity, and wasn't available for any hardware I had access to anyway.

2 comments

Have a look at https://github.com/rochus-keller/Oberon which runs on different operating systems and architectures. You can even generate platform-independent C which I e.g. used to port the Oberon System 3 (https://github.com/rochus-keller/OberonSystem3).
"Microsoft Macro Assembler, a product I grew to hate with a passion."

Turbo Assembler FTW :)

MASM was always horrible.

nasm has been lovely, but I haven't used in 10+ years. https://github.com/netwide-assembler/nasm

Why all this MASM hate?

I barely ever used it, but I noticed that MASM 5.1 is included (together with MSC 5.1 and various other Microsoft tools from 1988) in Microsoft's MIT-licensed MS-DOS repo. Trying some hello world level examples there was nothing obviously annoying about it so far.

https://github.com/microsoft/MS-DOS/tree/main/v4.0/src/TOOLS

The macros! Wtf were they doing with the macros! They didn't want to have a normal assembler that kept people writing maintainable assembly code. They just had macro stacked on macros (my memory here is literally 30 years old, I had to write windows 3.1 vxd drivers) and it didn't help, because they had to use the same registers you were using to do their work. An obtrusive non-abstraction that made life painful.