Live data from Hacker News

Restoring YC's Xerox Alto day 8: it boots

righto.com

81–90 of 99 posts

Re: Restoring YC's Xerox Alto day 8: it boots

#81
post #26
post #19

What were the CPU/ ISA used in the Alto?

To the programmer, the Alto's instruction set is the same as the 16-bit Data General Nova minicomputer, with the addition of a few crazy instructions such as "copy character bitmap from font file to screen". The Alto's CPU is built from a whole pile of TTL chips on three boards. The Alto's arithmetic-logic unit, like many computers of that era, uses 74181 ALU chips. The CPU runs a crazy multitasking microcode, with o…

Just an addition, microcoded processors are conceptually very simple. One can start with considering the 74181 which has four lines to control which operation is performed with the two 4 bit inputs. So each microcode word has four bits to control the ALU. A few bits to select which words out of register file is presented to the inputs of the ALU, etc.

So conceptually a machine like that Alto is actually something you can grasp without a lot of pain. Very much unlike the early 8 bit processors like the 8080, Z80, 6502 where they used lots of ticks to keep the transistor count down.

Re: Restoring YC's Xerox Alto day 8: it boots

#83
post #69
post #17

I love that the first boot screenshot at https://lh3.googleusercontent.com/-JB4VOj7FgnU/V-lCHIADrsI/A... says: Date and Time Unknown Oh, you poor sweet computer, if we told you the answer, it would blow your little mind.

I happened to come across the Alto's time handling code [1] while looking for something else. The Alto counts seconds since Jan 1, 1901 and the time can run until 2036 since it uses a 32-bit value. (Unix time in comparison runs from 1970 to 2038; it runs half as long because it loses a bit by using a signed value.) The point of this is the Alto can handle dates until 2036, but will run into problems two years before…

Good to see they at least thought some reasonable amount of time into the future; in contrast, the Apple Lisa, released 10 years after the Alto and a few years after the IBM PC, had an RTC that only went to 1995:

https://systemfolder.files.wordpress.com/2009/11/lisaem-date...

http://lisafaq.sunder.net/lisafaq-hw-io-cop421_clock.html

(Apart from this shortsightedness, the rest of the Lisa's design is also... interesting. Proprietary custom ICs, a pretty much locked-down user-is-an-idiot GUI, and complete separation between users and developers. It failed then, but unfortunately the same strategy is now considered the norm 30 years later...)

Re: Restoring YC's Xerox Alto day 8: it boots

#84

Earlier quoted context omitted.

The PC had no RTC, so DOS would ask you the date and time every time you booted it: https://en.wikipedia.org/wiki/File:PC_DOS_1.10_screenshot.pn... ...and if you accepted the default, as many people at the time did, it would be 1980-01-01 00:00:00. DOS and the PC actually had no Y2K problem, storing the number of years since 1980 in a single byte --- which will overflow after 2235. It is notable that there is no year…

Yeah, yeah, get me the EGA card/memory update that includes the Dallas real time clock!

It's always weird hardware combinations like that that makes me look batch at the early PC era and wonder what drove some of those decisions. Like all the sound cards that included a free extra ide controller for running CD-ROMs, you couldn't boot off them most of time but it meant you could play games and music CDs, assuming you had the correct extra audio cable to connect the two (many systems couldn't read the raw data fast enough to play without the drive doing the decoding).

And then I could swear at least one of my video cards added a joystick port.

Re: Restoring YC's Xerox Alto day 8: it boots

#85

Earlier quoted context omitted.

As someone who was too young at the time, why would it crash? I thought the Y2K problem was just programs only storing the last two digits. So 2016 would be stored as 16 and displayed as 1916.

Yep, that's pretty much it. You could run into crashes if something was dependent on the date being in the future since when the machine was built (and hence you get a negative number when you shouldn't have), or if the machine was alive between 1999 and 2000 (in which case the BIOS or applications may complain because you've gone back in time). This /mostly/ affected date formats. Well built systems and programs mea…

Many RTC chips used in PC's behaved weirdly when set to any year >2000 (resp. <80 or so). These behaviors included setting year to some fixed value, setting it to correct value but not incrementing date ever again and so on.

Re: Restoring YC's Xerox Alto day 8: it boots

#86

Earlier quoted context omitted.

Yeah, yeah, get me the EGA card/memory update that includes the Dallas real time clock!

It's always weird hardware combinations like that that makes me look batch at the early PC era and wonder what drove some of those decisions. Like all the sound cards that included a free extra ide controller for running CD-ROMs, you couldn't boot off them most of time but it meant you could play games and music CDs, assuming you had the correct extra audio cable to connect the two (many systems couldn't read the raw…

Both of these make perfect sense. On early PCs everything was on a ISA card. Your parallel ports, serial ports, HD controller, floppy controller and video. Dallas RTC and video upgrade were probably the 2 most popular upgrades but you likely didn't have slots available for both, so putting both on a single card makes complete sense.

When sound cards came out with ide ports many computers still had ST-506 hard drives and not ide drives. Even if they did they might only have a single IDE port which was already being used or using it for a CD-ROM required on mounting your hardrive to switch master/slave jumpers on your hard drive. As since people at the time were installing sound cards for games and many need games requires CD-ROM drives the painting makes perfect sense. When soundcards with ports for CD-ROM drives first came out they weren't even necessarily ide ports. Some were SCSI or Sony CD-ROM ports.

Re: Restoring YC's Xerox Alto day 8: it boots

#87
post #71

Earlier quoted context omitted.

At my University (Swinburne, Melbourne, Australia) I studied Software Engineering with a minor in Digital Electronics. They said all along the goal wasn't for us to be as competent as the Electrical/Electronic Engineers, but to teach us their language and the basics so we could work together. It was great. My degree is accredited by the Australian Institute of Engineers.

At ANU I took one of our (quite few) digital electronics courses that taught me how to design simple digital logic on FPGAs. It ended up being probably one of my three favourite courses of my degree. I think what I got out of it was similar - I'm obviously not nearly as knowledgeable as a fully fledged electronics engineer, but I have some basic knowledge which allows me to cross the gap between software and hardware…

To anyone reading this who's currently a CS major - if you have the opportunity to do a course in digital logic design I'd highly recommend it. Regardless of what layer of the stack you end up working in, it's a lot of fun and very satisfying to understand how this stuff works.

Seconded.

There wasn't really a Computer Engineering degree back when I was in school, but I made do. As it turned out, some EE classes would qualify for the lab science credit, so I took those instead of more physics or chemistry.

I had been fascinated in electronics for a long time before starting college, so I had a blast in those classes.

And it has all helped me a lot since then. I'm working on radar systems these days, and it would have been useful to take a little more analog and RF design courses. But those weren't my interest way back then. I've picked up a lot on my own since then though.

Re: Restoring YC's Xerox Alto day 8: it boots

#88

Earlier quoted context omitted.

Interesting use of the word flash here. It's a magnetic disk though, no flash chips, so you would just say write. I imagine the issue was a lack of working drives, and Alto systems to run them.

And "flash memory" itself can't be flashed anymore. Isn't it called that because you could erase an EEPROM with a light?

And "flash memory" itself can't be flashed anymore. Isn't it called that because you could erase an EEPROM with a light?

That would be EPROM, not EEPROM. The 'EE' meant Electrically Erasable, so it didn't have (and didn't need) that little window on the top of the DIP package to shine the UV light upon the chip itself of EPROM.

Which was still a vast improvement upon PROM, which was write-once.

My first encounter with that stuff was a 2nd gen version of the floppy disk controller for my RS Color Computer. The newer version wasn't compatible with the Deft Pascal [1] compiler I had purchased, so some guys at the user group helped me to program the older 1.0 version of the firmware to see if that would work. It didn't. :-( The text editor was still handy though.

I eventually got OS-9 Level III running and picked up a C compiler on sale though.

[1] http://www.kenandmartha.com/coco/DEFT.html

Re: Restoring YC's Xerox Alto day 8: it boots

#89
post #81
post #26

Earlier quoted context omitted.

To the programmer, the Alto's instruction set is the same as the 16-bit Data General Nova minicomputer, with the addition of a few crazy instructions such as "copy character bitmap from font file to screen". The Alto's CPU is built from a whole pile of TTL chips on three boards. The Alto's arithmetic-logic unit, like many computers of that era, uses 74181 ALU chips. The CPU runs a crazy multitasking microcode, with o…

Just an addition, microcoded processors are conceptually very simple. One can start with considering the 74181 which has four lines to control which operation is performed with the two 4 bit inputs. So each microcode word has four bits to control the ALU. A few bits to select which words out of register file is presented to the inputs of the ALU, etc. So conceptually a machine like that Alto is actually something you…

> So conceptually a machine like that Alto is actually something you can grasp without a lot of pain.

Have you actually looked at the Alto's microcode? It's brain-explodingly bizarre. The first thing is it has 16 tasks (yes, in the microcode) and what an instruction does depends on what task is running. Second, every micro-instruction includes a computed goto, where the hardware can OR bits into the address. And because this is task-dependent, you can't figure out the control flow - maybe this instruction will proceed linearly, or maybe it will branch 4 ways depending on the status of the Ethernet board. Next, the circuitry uses PROMs in various places. You say the microcode has four bits tied to the 74181, but no, the four bits go into a mystery PROM which generates entirely different bits that go to the 74181. And then there's the constant PROM holding all the constant values used by the microcode. And the processor bus has the property that multiple sources can write the bus at the same time, with the values ANDed together. Not to mention the ALU shifter output is modified by a microcode function literally called MAGIC. And I'm just getting started here...

My point is that even by microcode standards, Alto microcode is bizarre and painful. And if you disagree, I have some microcode that needs explaining - MADTEST (Microcode Alto Diagnostic Test) fails on our Alto and nobody understands what it is doing.

Re: Restoring YC's Xerox Alto day 8: it boots

#90
post #86

Earlier quoted context omitted.

It's always weird hardware combinations like that that makes me look batch at the early PC era and wonder what drove some of those decisions. Like all the sound cards that included a free extra ide controller for running CD-ROMs, you couldn't boot off them most of time but it meant you could play games and music CDs, assuming you had the correct extra audio cable to connect the two (many systems couldn't read the raw…

Both of these make perfect sense. On early PCs everything was on a ISA card. Your parallel ports, serial ports, HD controller, floppy controller and video. Dallas RTC and video upgrade were probably the 2 most popular upgrades but you likely didn't have slots available for both, so putting both on a single card makes complete sense. When sound cards came out with ide ports many computers still had ST-506 hard drives…

In many cases you even saw the soundcards and CD-ROMs bundled together (and a pack-in demo CD or even a game) as that was such a common path to buy a computer, then upgrade it for sound and CD at the same time.
Post reply on HN