Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news.belnet.be!newsgate.cistron.nl!het.net!newspump.monmouth.com!newspeer.monmouth.com!newshub.northeast.verio.net!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!newsfeed.internetmci.com!141.211.144.13!newsxfer3.itd.umich.edu!news.eecs.umich.edu!newshub.tc.umn.edu!newsstand.tc.umn.edu!usenet From: "George R. Gonzalez" Newsgroups: alt.folklore.computers Subject: Computers where you "cant" save all registers Date: Fri, 8 May 1998 10:45:29 -0500 Organization: University of Minnesota Lines: 29 Message-ID: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: b134-164.dhcp.umn.edu Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Newsreader: Microsoft Outlook Express 4.72.2106.4 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 I just recalled another funny thing about the CDC 6000 series-- it was very difficult to save and restore all the registers from a CPU program. The peripheral processors could cause a task switch, which would dump and reload all the CPU registers, all in hardware with one instruction. But user programs couldnt do this. (Well, in a way they could, the later models had a "XJ" Exchange Jump instruction, which exchanged the CPU into running the CPUMTR code, but this didnt dump your registers into anyplace you could get to them.) The basic glitch was that all memory store instructions required putting a new value into one of the A6 or A7 registers. There was an extremely slow and convoluted way, by doing conditional calls to 18 subroutines, each one saving a bit of an index register. Once you freed up an index register you could save A6 or A7 in that register, then you could store the rest of the registers away through that A register. Are there any other computers where it is difficult to impossible to save all the registers? (Let's not get into the trivial case of device registers that are write-only, like the old PC's EGA registers) ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed.uk.ibm.net!sackheads.org!ibm.net!news-lond.gip.net!news-peer.gip.net!news.gsl.net!gip.net!newsfeed.internetmci.com!206.25.34.3!skylink!not-for-mail From: "Jack Peacock" Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: Fri, 8 May 1998 12:34:19 -0700 Organization: Skylink Networks, Inc. (http://www.skylink.net./) Lines: 20 Message-ID: <6ivmsp$rp1$1@news.skylink.net> References: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: jack.simconv.com Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Newsreader: Microsoft Outlook Express 4.72.2106.4 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 George R. Gonzalez wrote in message <6iv99b$bej@epx.cis.umn.edu>... >I just recalled another funny thing about the CDC 6000 series-- it was >very difficult to save and restore all the registers from a CPU program. > >The peripheral processors could cause a task switch, which would dump and >reload all the CPU registers, all in hardware with one instruction. But >user programs couldnt do this. >(Well, in a way they could, the later models had a "XJ" Exchange Jump >instruction, which exchanged the CPU into running the CPUMTR code, but >this didnt dump your registers into anyplace you could get to them.) > True, but there was a standardized wordaround for this. In COMPASS (6000 assembler) it was common practice to reserve a B index register (IIRC it was B1 is declared to always be set to 1) as a constant value. There was a specific COMPASS directive to declare this, so that it would optimize where a "1" constant was used, plus if you wanted to do a snapshot dump the SNAP routine knew it could use the B1 register as a temporary. Jack Peacock ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed.uk.ibm.net!sackheads.org!ibm.net!news-feed.inet.tele.dk!bofh.vszbr.cz!news-xfer.netaxs.com!news-xfer.epix.net!nntp.epix.net!epix-news From: jtXXX@epix.net Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: Fri, 08 May 1998 15:56:45 -0400 Organization: epix Internet Services Lines: 20 Message-ID: <3553643c$3$wg$mr2ice@news.epix.net> References: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: tmbg-115ppp43.epix.net X-Newsreader: MR/2 Internet Cruiser Edition for OS/2 v1.47 b47 In <6iv99b$bej@epx.cis.umn.edu>, on 05/08/98 at 10:45 AM, "George R. Gonzalez" said: >Are there any other computers where it is difficult to impossible to save >all the registers? IBM 704 had sense lights - you could turn them on or off (one at a time), or test them; testing also put it into one of the states (don't remember which). So to save them, it was necessary to test them and log the results so that they could eventually be restored. I've seen the code to do this, it wasn't terribly pretty. -- Julian & Mary Jane Thomas jt at epix dot net http://www.epix.net/~jt In the beautiful Finger Lakes Wine Country of New York State! -------------------------------------------------- OS/2: Your brain. Windows: Your brain on drugs. ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news.belnet.be!newspump.monmouth.com!newspeer.monmouth.com!woodstock.news.demon.net!demon!howland.erols.net!news-peer.sprintlink.net!news-backup-west.sprintlink.net!news.sprintlink.net!131.103.1.114!news2.chicago.iagnet.net!qual.net!iagnet.net!news.uiowa.edu!not-for-mail From: jones@pyrite.cs.uiowa.edu (Douglas W. Jones,201H MLH,3193350740,3193382879) Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: 8 May 1998 17:13:06 GMT Organization: The University of Iowa Message-ID: <6ivef2$lus$1@flood.weeg.uiowa.edu> References: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: pyrite.cs.uiowa.edu Lines: 21 From article <6iv99b$bej@epx.cis.umn.edu>, by "George R. Gonzalez" : > > Are there any other computers where it is difficult to impossible to save > all the registers? I remember writing a page-fault handler for the Modcomp IV computer, under the MAX IV operating system. This system delivered all exception notices to the application trap handler, and it was quite happy to tell you the PC at the time of the exception, but it didn't tell you the condition codes, it merely left them in the PSW. User mode code could eaily test the condition codes one-by-one (there were only 4) and reconstruct their values, but the challenge was to restore the condition codes prior to the jump that returned control to the interrupted program. This was just barely possible. Of course, the OS could do it trivially, with the load PSW instruction, but my page-fault handler was user-level code. Doug Jones jones@cs.uiowa.edu ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!nntp.abs.net!island.idirect.com!news.uunet.ca!atbowler From: atbowler@thinkage.on.ca (Alan Bowler) Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: 8 May 1998 18:16:56 GMT Organization: Thinkage Ltd. Lines: 11 Message-ID: <6ivi6o$f1d$1@goblin.uunet.ca> References: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: 192.102.11.4 In article <6iv99b$bej@epx.cis.umn.edu> "George R. Gonzalez" writes: > >Are there any other computers where it is difficult to impossible to save >all the registers? The IBM 1620 had a subroutine call return mechanism that stored the return address in a register. There was no way to read that register (except the panel lights). The called routine could transfer to the address in the register, but that was all. Obviuously this did not allow you to call another subroutine using the same mechanism, and so was not the standard call mechanism. ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!chippy.visi.com!news-out.visi.com!ptah.visi.com!not-for-mail Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers References: <6iv99b$bej@epx.cis.umn.edu> <3553643c$3$wg$mr2ice@news.epix.net> X-Newsreader: NN version 6.5.1 (NOV) From: jot@visi.com (J. Otto Tennant) Lines: 17 Message-ID: <09N41.342$E34.1253317@ptah.visi.com> Date: Sat, 09 May 1998 00:09:32 GMT NNTP-Posting-Host: bambi.visi.com NNTP-Posting-Date: Fri, 08 May 1998 19:09:32 CDT jtXXX@epix.net writes: >In <6iv99b$bej@epx.cis.umn.edu>, on 05/08/98 > at 10:45 AM, "George R. Gonzalez" said: >>Are there any other computers where it is difficult to impossible to save >>all the registers? >IBM 704 had sense lights - you could turn them on or off (one at a time), >or test them; testing also put it into one of the states (don't remember >which). [...] Testing turned a sense light off. -- J.Otto Tennant jotto@pobox.com Forsan et haec olim meminisse juvabit. Charter Member of the Vast Right Wing Conspiracy ###### Path: ccw.ch!usenet From: Neil Franklin Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: Sat, 09 May 1998 01:59:02 +0200 Organization: My own Private Self Lines: 31 Message-ID: <35539C46.6A76CC94@ccw.ch.remove> References: <6iv99b$bej@epx.cis.umn.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.05 [en] (X11; I; Linux 2.0.27 i486) George R. Gonzalez wrote: > > I just recalled another funny thing about the CDC 6000 series-- it was > very difficult to save and restore all the registers from a CPU program. > > Are there any other computers where it is difficult to impossible to save > all the registers? Intel i860. Its visible-pipelines vector FPU at every task switch (and in every interrupt routine using _any_ FP instructions (also non vector ones)) had to be flushed out. In normal operation every vector sequence required an run in and an run out sequence. With an task switch or interrupt you did not know what type of vector sequence it was in so you needed an universal run out and after run in. Intel published the One True Sequence in its programming manual, multiple pages of code. Hundreds of cycles. This made interrupts so slow that Microsoft gave up on the i860 for NT. BTW the i860 was called N10 (N Ten (!)) while development. NT was originally intended for it. WNT = VMS + 111 is urban folklore AFAIK. -- private: Neil.Franklin@ccw.ch.remove http://www.ccw.ch/Neil.Franklin/ office: franklin@arch.ethz.ch.remove http://caad.arch.ethz.ch/~franklin/ Lawyers are killing society, perhaps we should return the favour. ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!ptdnetP!newsgate.ptd.net!news1.radix.net!not-for-mail From: johnl@Radix.Net (John A. Limpert) Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: Sat, 09 May 1998 08:03:41 GMT Organization: RadixNet Internet Services Lines: 41 Message-ID: <35540067.1096665109@news1.Radix.Net> References: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: port2.annex1.radix.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Newsreader: Forte Agent 1.5/32.451 On Fri, 8 May 1998 10:45:29 -0500, "George R. Gonzalez" wrote: >Are there any other computers where it is difficult to impossible to save >all the registers? I've programmed several old NASA telemetry simulation/processing computers (designed and built by Aydin/Monitor) that used a mark register or mark register stack (depth of 3) to handle subroutine linkage. The mark register stack was embedded in the hardware and couldn't be directly accessed by the program. A JSM (Jump & Save In Mark Register) instruction saved the contents of the current PC in the mark register. A JRT (Jump Return) instruction reloaded the contents of the mark register into the current PC. One of the interesting features on these computers was the use of multiple program counters. A typical machine had 5 or more program counters. Each instruction contained a 3 bit field that specified which program counter was to be used to fetch the next instruction. There was also a W (Wait) bit in each instruction word that put the CPU in an idle state until the next data word was received from the telemetry synchronizer hardware. When the CPU resumed execution, the data word was already in the accumulator where it could be processed and/or output. Even though the CPU was slow (approx. 1 us per instruction), it could process multi-megabit data streams with extremely low delay between input and output. There were large numbers of write only system configuration registers, but these weren't CPU registers in the modern sense. All of the I/O hardware was tightly integrated into the design of the CPU and instruction set. For example there was a DPR (Distribute to Printer) instruction that printed the contents of the accumulator on a calculator style printer that was attached to the system. -- John A. Limpert There Is No Lumber Cartel johnl@Radix.Net ###### Path: ccw.ch!elna.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed.uk.ibm.net!sackheads.org!ibm.net!dispose.news.demon.net!demon!peer.news.zetnet.net!zetnet.co.uk!not-for-mail From: lisard@zetnet.co.uk Newsgroups: alt.folklore.computers Subject: Re: Computers where you "cant" save all registers Date: 9 May 1998 19:57:20 GMT Message-ID: <6j2cf0$sj4$1@irk.zetnet.co.uk> References: <6iv99b$bej@epx.cis.umn.edu> NNTP-Posting-Host: man-155.dialup.zetnet.co.uk X-Everything: Net-Tamer V 1.08X Lines: 15 On 1998-05-08 grg@foundsys.com said: :Are there any other computers where it is difficult to impossible :to save all the registers? off-hand, we would proffer the intel 8008, whose inability to access memory via anything other than the HL register pair made interrupt processing all but impossible. (ie. you need to save the HL pair, but you also need to put something in the HL pair to do it. ouch...) -- Communa (together) we remember... we'll see you falling you know soft spoken changes nothing to sing within her... Net-Tamer V 1.08X - Test Drive