Live data from Hacker News

Unearthing my 1996 windowed OS in machine code for Am29000 homebrew computer

nanochess.org

31–34 of 34 posts

Re: Unearthing my 1996 windowed OS in machine code for Am29000 homebrew computer

#31

> The subtraction instruction has a set with reversed operands, so we have SUB, SUBU, SUBS, SUBC, SUBCU, SUBCS, but also SUBR, SUBRU, SUBRS, SUBRC, SUBRCU, SUBRCS. Pretty much the only use of "reversed subtraction" instruction on a 3-operand machine is to implement NEG (subtract from immediate zero) and NOT (subtract from immediate -1, which Am29000 can't actually do since it zero-extends the immediates)... but NOT i…

The BIOS originates from an era where most or all of the OS software was burned to a ROM on the computer. Then disks arrived and we wanted more, but we didn't want the OS to implement drivers for every hardware configuration. There wasn't enough room. Then there was enough room and it turned out BIOS functions mostly sucked.

Re: Unearthing my 1996 windowed OS in machine code for Am29000 homebrew computer

#32
post #8

Wow, blast from the past! I was on the architecture / micro-architecture team for the 29K and 29050, and your story of writing and debugging the emulator brought up similar memories of working on the performance simulator for these chips. Very impressive work -- congratulations!

Wow! Thank you! The floating-point implementation in the Am29050 is really great as it ran in parallel with the integer unit. Sorry, I need to ask, maybe you don't remember. What happens if you write into gr2-gr63? Not really needed to know, but I've been curious the last 30 years.

The FPU in the 29050 was based on the Am29325 bit-slice family FPU; an extra write port was added to the register file to allow for asynchronous FPU result writeback, which allowed the parallel operation.

gr2 and gr3 were used in the 29050 for FP condition code registers, but otherwise I'm pretty sure accessing the rest caused a trap.

Re: Unearthing my 1996 windowed OS in machine code for Am29000 homebrew computer

#33
post #32

Earlier quoted context omitted.

Wow! Thank you! The floating-point implementation in the Am29050 is really great as it ran in parallel with the integer unit. Sorry, I need to ask, maybe you don't remember. What happens if you write into gr2-gr63? Not really needed to know, but I've been curious the last 30 years.

The FPU in the 29050 was based on the Am29325 bit-slice family FPU; an extra write port was added to the register file to allow for asynchronous FPU result writeback, which allowed the parallel operation. gr2 and gr3 were used in the 29050 for FP condition code registers, but otherwise I'm pretty sure accessing the rest caused a trap.

Amazing! I didn't knew about the gr2 and gr3 register. I just searched for these in the user's manual, very sparse documentation. Thank you!

Re: Unearthing my 1996 windowed OS in machine code for Am29000 homebrew computer

#34
post #8

Wow, blast from the past! I was on the architecture / micro-architecture team for the 29K and 29050, and your story of writing and debugging the emulator brought up similar memories of working on the performance simulator for these chips. Very impressive work -- congratulations!

For the sake of archival/computing history, do you know if a copy of the am29k High-C compiler could turn up on archive.org one day?
Post reply on HN