Hacker News new | ask | show | jobs
by gumby 807 days ago
No, but it had been lying around unused in a machine room, powered up, for a few years. RMS published the GNU manifesto in 83 or 84.
1 comments

Wasn't VAX assembly very orthogonal and nice? I can understand if it was used as a compiler target, whereas x86 strikes me as harder to deal with?

So if you have the space and free electricity in 1987, sure, give me a fast VAX.

Not so much if you live in a student dorm, but I'm sure some have done that too.

Wasn't VAX assembly very orthogonal and nice?

This is the stuff of religious wars; and the VAX is the patron saint of the CISC school of ISA design. Large parts of the VAX ISA are very nice, and it's a lot of fun to program in assembler. There's (relatively for the time) lots of registers, and tons of addressing modes. But some of it is plain bonkers. How many variations of ADDL3 are there across all addressing modes? Dunno...thank gawd the doco is excellent. Then you get to things like INDEX and the numerous character string instructions and suddenly you got a migrane. You want BCD? Well of course you do. A CRC instruction? The customer is always right. Bit fields? Why wouldn't we? Didn't find something you like? We have the writable control store option so you can microcode your own instructions.

Yeah, I think I remember seeing the sysops load the VAX CPU microcode using a floppy on the front panel (?)

I don't disagree in general. Writing a disassembler must have been a real challenge.

It's a waste of gates in the CPU. You put a lot of unnecessary combinatorical logic on the critical path, which limits the clock speed.

RISC chips remove everything that is not needed for the output of a C compiler, making the chip smaller and faster.

But from the perspective of Stallman writing a C compiler and having to generate and read lots of assembly code, I can see how the VAX assembly was easy to deal with. He could skip past a lot of stuff like BCD/CRC.

I'm not intimately familiar with 386 assembly, but my impression is that you have a lot of interdependencies and special cases? That can't be fun when writing a compiler. But at least it's not an accumulator-based CPU architecture like the 6502 or the PIC16, where everything has to be done through a single register.

The 730 & 750 load microcode from cartridge tape (TU58). The 780/785 had a 'front end processor' (a baby PDP-11) which loaded microcode from floppies.

It's a waste of gates in the CPU.

Couple of things. First, VAX was designed when lots of stuff was still written in assembly, so they threw the kitchen sink at it. You didn't have a stdlib, you had huge numbers of assembly instructions. That wasn't how things evolved, but hindsight is 20-20, as they say. Second, C wasn't top-of-mind when designing VAX. The DEC systems programming language equivalent was BLISS, which is quite different than C. And FORTRAN & COBOL were probably more important.

And, yes, the folks who came up with RISC often cite the baroque nature of the VAX instruction set as inspiration for stripping things down. But there again, not driven by C per se; the first VLSI RISC, the IBM 801 (later PC RT), was targeted for a language called PL.8, a descendant of PL/I.

Sorry, I didn't mean to sound disparaging. Given my specific use case of running compiled C code, then an advanced CISC CPU has a lot of wasted gates. But that's not what the VAX was designed for as you pointed out.