Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!ames!sgi!dragon!nubbins.wpd.sgi.com!martyi From: martyi@nubbins.wpd.sgi.com (Marty Itzkowitz) Newsgroups: comp.arch Subject: Re: IBM 7094 II Message-ID: <1990Nov30.164726.441@relay.wpd.sgi.com> Date: 30 Nov 90 16:47:26 GMT References: <9011272349.AA25956@ucbvax.Berkeley.EDU> <12073@life.ai.mit.edu> Sender: news@relay.wpd.sgi.com ( CNews Account ) Reply-To: martyi@sgi.com Organization: Silicon Graphics, System Software Division Lines: 26 The 7094II, and its predecessor machines the 704, 709, 7090, and 7094I, also have the distinction of being responsible for those strange terms in LISP, cdr and car. Machine words were divided into 4 fields, the opcode, the tag, the decrement and the address, and there were instructions to load and store out of these fields. The first LISP implementation kept two pointers in a word, referred to as "contents of decrement register" and "contents of address register", hence the acronyms, "cdr" and "car". The 709x series were fun to work with. If you wired an audio amplifier to the bits of the MQ register, you could play music by loading bit patterns into the word. There was a set of sense registers that could be loaded from switches on the console. Most of these machines used an auxiliary 1401/1410/1460 to read user jobs from cards and write them onto tape for the 709x. The 1401 was also an interesting machine--it had the least-RISCY instruction I know of: WRP xxx write-read-punch-and-branch. It would read a card from the card reader into a hard-wired buffer, punch a card from a second hard-wired buffer, print a line on the line printer from a third buffer, and then branch unconditionally to xxx. I couldn't resist writing a program to read a card deck, label and serialize the cards, and produce a listing, just to use this instruction! Marty Itzkowitz