From: jmfbahciv@aol.com Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: Mon, 22 Oct 01 09:03:02 GMT Organization: UltraNet Communications, Inc. Lines: 51 Message-ID: <9r11kj$em9$2@bob.news.rcn.net> References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> X-Trace: UmFuZG9tSVajEMuVP7y5wDoojaVHDNzwyVkFmqfIY0OprAWZ/o1dbyCorP5ZZ9X3 X-Complaints-To: abuse@rcn.com NNTP-Posting-Date: 22 Oct 2001 11:58:11 GMT X-Newsreader: News Xpress Version 1.0 Beta #4 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.hanau.net!fr.clara.net!heighliner.fr.clara.net!news.tele.dk!small.news.tele.dk!4.1.16.34!cpk-news-hub1.bbnplanet.com!news.gtei.net!feed2.news.rcn.net!feed1.news.rcn.net!rcn!207-172-216-31 Xref: chonsp.franklin.ch alt.sys.pdp10:7222 In article <87sncckmaa.fsf@prep.synonet.com>, Paul Repacholi wrote: >"David Thompson" writes: > >> Chris Torek wrote in comp.lang.c: > >> > OT digression that probably should move to alt.folklore.computers >> > or some such; note that I never laid hands on an actual PDP-10 >> > (although I typed at MIT-ITS now and then :-) ). > >> alt.sys.pdp10 is more specific and much less crowded; suggest >> followups there but M$OE won't set them, sorry. > >> > >Chris Torek writes: > >> > >>There have been machines with registers in "ordinary" RAM (e.g., >> > >>PDP-10, TI 9900) but it is relatively unusual. > >> > In article <9qa40d$kif@gap.cco.caltech.edu>, >> > glen herrmannsfeldt wrote: > >> > >On the PDP-10 I believe that they were real registers that looked >> > >like ordinary RAM. > >> > The low however-many words of memory were the registers. If you >> > paid extra for the "hardware registers" option, you got a pile of >> > transistors that would overlay this low-address-space and run at > >> > >There are stories of programs with a small loop loading the >> > >instructions into the registers and executing them much faster >> > >than in ordinary RAM. > >> > Right: if you put code in low memory, that low memory was of >> > course also the registers. Point the program counter at the low >> > memory and it executes the contents of the registers. If you paid >> > extra for the "hardware registers" option, it goes that much >> > faster. > >Until the KL came along. TECO's searches are the classic example. >Compilers could not handle the overlapped register/memory at all well, >and that contributed to the demise of the 6/10 arch. What? I think you need new glasses. /BAH Subtract a hundred and four for e-mail. ###### From: jmfbahciv@aol.com Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: Tue, 23 Oct 01 07:20:28 GMT Organization: UltraNet Communications, Inc. Lines: 47 Message-ID: <9r3g0i$iti$3@bob.news.rcn.net> References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> X-Trace: UmFuZG9tSVYS+j7DX2Kgg2+PaD1WCCi/UlnR1nQsyapQ2BU4rzcAc/iIiXXpQGTt X-Complaints-To: abuse@rcn.com NNTP-Posting-Date: 23 Oct 2001 10:15:46 GMT X-Newsreader: News Xpress Version 1.0 Beta #4 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!t-online.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!feed2.news.rcn.net!feed1.news.rcn.net!rcn!207-172-216-27 Xref: chonsp.franklin.ch alt.sys.pdp10:7243 In article , Jim Thomas wrote: >>>>>> "Paul" == Paul Repacholi writes: > > Paul> "David Thompson" writes: > >> Chris Torek wrote in comp.lang.c: > > >> > In article <9qa40d$kif@gap.cco.caltech.edu>, > >> > glen herrmannsfeldt wrote: > > >> > >There are stories of programs with a small loop loading the > >> > >instructions into the registers and executing them much faster > >> > >than in ordinary RAM. > > >> > Right: if you put code in low memory, that low memory was of > >> > course also the registers. Point the program counter at the low > >> > memory and it executes the contents of the registers. If you paid > >> > extra for the "hardware registers" option, it goes that much > >> > faster. > > Paul> Until the KL came along. TECO's searches are the classic example. > >Which version of TECO? At least as of Texas TECO the old style search is >30 (base 10) words. That doesn't fit in the registers. And that's not >counting the 6 registers it used as registers. I don't remember any >version of the search code running in fast memory. > > Paul> Compilers could not handle the overlapped register/memory at all well, > Paul> and that contributed to the demise of the 6/10 arch. > >Them's fighting words :-) But I was not in on the F10 design and can't >defend it :-( Alan? It certainly wasn't the demise of the PDP-10 architecture. I certainly don't remember any conversations about the system not being "fast enough". In addition, sharable code wasn't in the low core. I can guarantee you that all of the compiler's segments were sharable. A hundred kiddies writing a 10 line Fortran program would bring the system down if the EXEs weren't sharable. /BAH /BAH Subtract a hundred and four for e-mail. ###### From: "David Thompson" Newsgroups: comp.lang.c,alt.sys.pdp10 References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Lines: 69 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Message-ID: Date: Mon, 22 Oct 2001 02:13:05 GMT NNTP-Posting-Host: 12.89.145.89 X-Complaints-To: abuse@worldnet.att.net X-Trace: bgtnsc06-news.ops.worldnet.att.net 1003716785 12.89.145.89 (Mon, 22 Oct 2001 02:13:05 GMT) NNTP-Posting-Date: Mon, 22 Oct 2001 02:13:05 GMT Organization: AT&T Worldnet Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!newshub2.rdc1.sfba.home.com!news.home.com!sjcppf01.usenetserver.com!usenetserver.com!news-west.rr.com!news-east.rr.com!wn2feed!worldnet.att.net!135.173.83.71!wnfilter1!worldnet-localpost!bgtnsc06-news.ops.worldnet.att.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7227 Chris Torek wrote in comp.lang.c: > OT digression that probably should move to alt.folklore.computers > or some such; note that I never laid hands on an actual PDP-10 > (although I typed at MIT-ITS now and then :-) ). > alt.sys.pdp10 is more specific and much less crowded; suggest followups there but M$OE won't set them, sorry. > >Chris Torek writes: > >>There have been machines with registers in "ordinary" RAM (e.g., > >>PDP-10, TI 9900) but it is relatively unusual. > > In article <9qa40d$kif@gap.cco.caltech.edu>, > glen herrmannsfeldt wrote: > >On the PDP-10 I believe that they were real registers that looked > >like ordinary RAM. > > The low however-many words of memory were the registers. If you 16 > paid extra for the "hardware registers" option, you got a pile of > transistors that would overlay this low-address-space and run at Or rather, a bunch of transistors and other components carefully mounted on circuit boards placed in backplanes installed in the racks and connected to the right places, accompanied by a nice thick binder of schematics, wirelists, etc. Most of the cost was in the labor of designing, building, testing, and maintaining the things; the actual components were probably only USD 100 or so (in USD of the time). > higher speed. An instruction that meant "use R1" would read and/or > write the memory address for R1, and if you had the expensive > option, this would be the fast transistors. Because of that: > Although it was an option in the (initial) design and price list, I think the collective memory on alt.sys.pdp10 (last time this came up) is that no 10 was ever actually delivered without it. Any that was would have been unbearably slow. Later CPU models used integrated circuits and any possible cost savings became much less than the engineering and adminstrative overhead so "fast" registers became standard. > >There are stories of programs with a small loop > >loading the instructions into the registers and executing them much > >faster than in ordinary RAM. > > Right: if you put code in low memory, that low memory was of course > also the registers. Point the program counter at the low memory and > it executes the contents of the registers. If you paid extra for the > "hardware registers" option, it goes that much faster. > > (This all happened because memory was made of "core": little magnetic > donuts with wires run through it, which had slow cycle times. > Magnetic core memory uses destructive read, sort of like DRAM but > for different reasons, and requires rewrite-after-read. ... Right. Which is why a lot of (us) old farts, and a lot of software and/or documentation that traces well back, often refer to any primary memory as "core". And perhaps also why some of us forget everything if you interrupt us mid-cycle. -- - David.Thompson 1 now at worldnet.att.net ###### Sender: prep@k9 Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> From: Paul Repacholi Message-ID: <87sncckmaa.fsf@prep.synonet.com> Lines: 83 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Organization: iQnet Cache-Post-Path: angelina.pe!unknown@p215.perth01.dial.usertools.net X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) Cache-Post-Path: news.satix.net!unknown@news-01.core.usertools.net X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) NNTP-Posting-Host: news.satix.net X-Trace: ozemail.com.au 1003746776 203.132.96.3 (Mon, 22 Oct 2001 20:32:56 EST) NNTP-Posting-Date: Mon, 22 Oct 2001 20:32:56 EST Distribution: world Date: 22 Oct 2001 18:21:33 +0800 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!newsfeed.stanford.edu!newsfeed.berkeley.edu!ucberkeley!sjc1.nntp.concentric.net!newsfeed.concentric.net!newsfeed.ozemail.com.au!ozemail.com.au!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7230 "David Thompson" writes: > Chris Torek wrote in comp.lang.c: > > OT digression that probably should move to alt.folklore.computers > > or some such; note that I never laid hands on an actual PDP-10 > > (although I typed at MIT-ITS now and then :-) ). > alt.sys.pdp10 is more specific and much less crowded; suggest > followups there but M$OE won't set them, sorry. > > >Chris Torek writes: > > >>There have been machines with registers in "ordinary" RAM (e.g., > > >>PDP-10, TI 9900) but it is relatively unusual. > > In article <9qa40d$kif@gap.cco.caltech.edu>, > > glen herrmannsfeldt wrote: > > >On the PDP-10 I believe that they were real registers that looked > > >like ordinary RAM. > > The low however-many words of memory were the registers. If you > > paid extra for the "hardware registers" option, you got a pile of > > transistors that would overlay this low-address-space and run at > Or rather, a bunch of transistors and other components carefully > mounted on circuit boards placed in backplanes installed in the > racks and connected to the right places, accompanied by a nice thick > binder of schematics, wirelists, etc. Most of the cost was in the > labor of designing, building, testing, and maintaining the things; > the actual components were probably only USD 100 or so (in USD of > the time). > > higher speed. An instruction that meant "use R1" would read > > and/or write the memory address for R1, and if you had the > > expensive option, this would be the fast transistors. Because of > > that: > Although it was an option in the (initial) design and price list, I > think the collective memory on alt.sys.pdp10 (last time this came > up) is that no 10 was ever actually delivered without it. Any that > was would have been unbearably slow. Later CPU models used > integrated circuits and any possible cost savings became much less > than the engineering and adminstrative overhead so "fast" registers > became standard. Correct. There was at least one machine ordered without FM, but was shipped with it. Unknown is if DEC swallowed the cost and shipped it to avoid an odd-ball, or if they did a deal post sale. Did the KI have a front panel 'Fast Memory Enable' switch? > > >There are stories of programs with a small loop loading the > > >instructions into the registers and executing them much faster > > >than in ordinary RAM. > > Right: if you put code in low memory, that low memory was of > > course also the registers. Point the program counter at the low > > memory and it executes the contents of the registers. If you paid > > extra for the "hardware registers" option, it goes that much > > faster. Until the KL came along. TECO's searches are the classic example. Compilers could not handle the overlapped register/memory at all well, and that contributed to the demise of the 6/10 arch. > > (This all happened because memory was made of "core": little > > magnetic donuts with wires run through it, which had slow cycle > > times. Magnetic core memory uses destructive read, sort of like > > DRAM but for different reasons, and requires rewrite-after-read. > > ... > Right. Which is why a lot of (us) old farts, and a lot of software > and/or documentation that traces well back, often refer to any > primary memory as "core". And perhaps also why some of us forget > everything if you interrupt us mid-cycle. -- Paul Repacholi 1 Crescent Rd., +61 (08) 9257-1001 Kalamunda. West Australia 6076 Raw, Cooked or Well-done, it's all half baked. EPIC, The Architecture of the future, always has been, always will be. ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 22 Oct 2001 17:32:12 GMT Organization: California Institute of Technology, Pasadena Lines: 26 Message-ID: <9r1l6s$om6@gap.cco.caltech.edu> References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> NNTP-Posting-Host: yak.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.sys.pdp10:7226 jmfbahciv@aol.com writes: (snip about the PDP-10 being able to execute instructions out of registers, among other things.) (someone wrote) >>Until the KL came along. TECO's searches are the classic example. >>Compilers could not handle the overlapped register/memory at all well, >>and that contributed to the demise of the 6/10 arch. >What? I think you need new glasses. It might mean that compilers couldn't generate code that would optimize loops this way. I did hear about some machines that had the ability to execute out of registers disabled. It made instruction fetch in the normal case a little faster. To me, the main advantage of mapping the registers to the beginning of addressable memory is that separate memory and register addressing modes are not required. On machines with a fixed instruction size there is no advantage to a register addressing mode in reducing code size. It would seem to complicate instruction decode slightly, and if commonly used is a waste of instruction bits. Even worse is the complication due to the indirect bit and indirect addressing. -- glen ###### Sender: prep@k9 Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> From: Paul Repacholi Message-ID: <87r8rvgzw2.fsf@prep.synonet.com> Lines: 31 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Organization: iQnet Cache-Post-Path: angelina.pe!unknown@p140.perth02.dial.usertools.net X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) Cache-Post-Path: news.satix.net!unknown@news-01.core.usertools.net X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) NNTP-Posting-Host: news.satix.net X-Trace: ozemail.com.au 1003787497 203.132.96.3 (Tue, 23 Oct 2001 07:51:37 EST) NNTP-Posting-Date: Tue, 23 Oct 2001 07:51:37 EST Distribution: world Date: 23 Oct 2001 04:53:33 +0800 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!uni-erlangen.de!news-nue1.dfn.de!newsfeed.r-kom.de!news0.de.colt.net!colt.net!news.maxwell.syr.edu!newsfeed.direct.ca!look.ca!newsfeed1.earthlink.net!newsfeed.earthlink.net!sjc1.nntp.concentric.net!newsfeed.concentric.net!newsfeed.ozemail.com.au!ozemail.com.au!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7248 gah@ugcs.caltech.edu (glen herrmannsfeldt) writes: > (someone wrote) That was me. > >>Until the KL came along. TECO's searches are the classic example. > >>Compilers could not handle the overlapped register/memory at all > >>well, and that contributed to the demise of the 6/10 arch. > >What? I think you need new glasses. > It might mean that compilers couldn't generate code that would > optimize loops this way. I did hear about some machines that had > the ability to execute out of registers disabled. It made > instruction fetch in the normal case a little faster. The problem was, that with registers and memory overlapping, and indirection, it was a massive job to do and sort of register allocation etc in the compiler. You could often not know what *may* get stepped on by an indirection. Bad juju if you want to get mega-smarts from the compiler. Worse if you can't throw hundreds on MB at the compiler as well... So it was just another nail in the coffin. -- Paul Repacholi 1 Crescent Rd., +61 (08) 9257-1001 Kalamunda. West Australia 6076 Raw, Cooked or Well-done, it's all half baked. EPIC, The Architecture of the future, always has been, always will be. ###### From: David Eppstein Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: Mon, 22 Oct 2001 15:02:03 -0700 Organization: UC Irvine, Dept. of Information & Computer Science Lines: 21 Distribution: world Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <87r8rvgzw2.fsf@prep.synonet.com> NNTP-Posting-Host: hyperbolic.ics.uci.edu User-Agent: MT-NewsWatcher/3.1 (PPC) X-Face: %L;%tM$D+%zkQ$zp8f/vAx*mr6T79jgxh,SC!$,8.r%HBe}KZ)iMb$tB.Z,30 3QLpj-NoP*NzsIC,boYU]bQ]H'y<#4ga3$21: Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.stanford.edu!logbridge.uoregon.edu!tethys.csu.net!csulb.edu!news.service.uci.edu!eppstein Xref: chonsp.franklin.ch alt.sys.pdp10:7241 In article <87r8rvgzw2.fsf@prep.synonet.com>, Paul Repacholi wrote: > The problem was, that with registers and memory overlapping, and > indirection, it was a massive job to do and sort of register > allocation etc in the compiler. You could often not know what *may* > get stepped on by an indirection. Bad juju if you want to get > mega-smarts from the compiler. Worse if you can't throw hundreds on MB > at the compiler as well... I seem to remember that in KCC the solution was to store all local variables on the stack, and to assume that all registers were dirty after a function call. Not great for efficiency compared to hand-coded assembly... but its peephole optimizer did have enough intelligence to remove the stack operations for simple leaf functions. Another fun compiler trick was trying to duplicate human programmers' ability to use nested conditional skips to avoid breaking control flow. -- David Eppstein UC Irvine Dept. of Information & Computer Science eppstein@ics.uci.edu http://www.ics.uci.edu/~eppstein/ ###### From: Jim Thomas Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 22 Oct 2001 13:36:35 -1000 Organization: Canada France Hawai`i Telescope Lines: 32 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003793795 19571 128.171.80.135 (22 Oct 2001 23:36:35 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 22 Oct 2001 23:36:35 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!t-online.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7256 >>>>> "Paul" == Paul Repacholi writes: Paul> "David Thompson" writes: >> Chris Torek wrote in comp.lang.c: >> > In article <9qa40d$kif@gap.cco.caltech.edu>, >> > glen herrmannsfeldt wrote: >> > >There are stories of programs with a small loop loading the >> > >instructions into the registers and executing them much faster >> > >than in ordinary RAM. >> > Right: if you put code in low memory, that low memory was of >> > course also the registers. Point the program counter at the low >> > memory and it executes the contents of the registers. If you paid >> > extra for the "hardware registers" option, it goes that much >> > faster. Paul> Until the KL came along. TECO's searches are the classic example. Which version of TECO? At least as of Texas TECO the old style search is 30 (base 10) words. That doesn't fit in the registers. And that's not counting the 6 registers it used as registers. I don't remember any version of the search code running in fast memory. Paul> Compilers could not handle the overlapped register/memory at all well, Paul> and that contributed to the demise of the 6/10 arch. Them's fighting words :-) But I was not in on the F10 design and can't defend it :-( Alan? Nothead ###### From: Jim Thomas Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 22 Oct 2001 13:46:43 -1000 Organization: Canada France Hawai`i Telescope Lines: 31 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <87r8rvgzw2.fsf@prep.synonet.com> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003794407 19571 128.171.80.135 (22 Oct 2001 23:46:47 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 22 Oct 2001 23:46:47 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7252 >>>>> "Paul" == Paul Repacholi writes: Paul> gah@ugcs.caltech.edu (glen herrmannsfeldt) writes: >> (someone wrote) Paul> That was me. >> >>Until the KL came along. TECO's searches are the classic example. >> >>Compilers could not handle the overlapped register/memory at all >> >>well, and that contributed to the demise of the 6/10 arch. >> >What? I think you need new glasses. /BAH wrote that. >> It might mean that compilers couldn't generate code that would >> optimize loops this way. I did hear about some machines that had >> the ability to execute out of registers disabled. It made >> instruction fetch in the normal case a little faster. Paul> The problem was, that with registers and memory overlapping, and Paul> indirection, it was a massive job to do and sort of register Paul> allocation etc in the compiler. You could often not know what *may* Paul> get stepped on by an indirection. Bad juju if you want to get Paul> mega-smarts from the compiler. Worse if you can't throw hundreds on MB Paul> at the compiler as well... ? Umm, isn't the compiler generating the indirection (which ISTR it did not do very often anyway)? Seems much easier than load/store timing and delay slot optimization :-) Nothead ###### From: inwap@best.com (Joe Smith) Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: Tue, 23 Oct 2001 01:07:16 +0000 (UTC) Organization: Chez Inwap Lines: 19 Message-ID: <9r2fs4$21uv$1@nntp1.ba.best.com> References: <3BC66931.137F0DB5@iprimus.com.au> <87sncckmaa.fsf@prep.synonet.com> NNTP-Posting-Host: shell3.ba.best.com X-Trace: nntp1.ba.best.com 1003799236 67551 206.184.139.134 (23 Oct 2001 01:07:16 GMT) X-Complaints-To: abuse@best.com NNTP-Posting-Date: Tue, 23 Oct 2001 01:07:16 +0000 (UTC) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!newshunter!cosy.sbg.ac.at!news.cs.utwente.nl!newsgate.cistron.nl!news.maxwell.syr.edu!news1.best.com!nntp1.ba.best.com!inwap Xref: chonsp.franklin.ch alt.sys.pdp10:7247 In article , Jim Thomas wrote: >>>>>> "Paul" == Paul Repacholi writes: > >> > Right: if you put code in low memory, that low memory was of > >> > course also the registers. Point the program counter at the low > >> > memory and it executes the contents of the registers. If you paid > >> > extra for the "hardware registers" option, it goes that much > >> > faster. > > Paul> Until the KL came along. TECO's searches are the classic example. > >Which version of TECO? At least as of Texas TECO the old style search is >30 (base 10) words. That doesn't fit in the registers. DEC TECO verion 21 or earlier - the one that came before Texas TECO. -Joe -- See http://www.inwap.com/ for PDP-10 and "ReBoot" pages. ###### Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> From: Ric Werme X-Newsreader: NN version 6.5.0 CURRENT #119 Lines: 47 Message-ID: Date: Tue, 23 Oct 2001 01:12:51 GMT NNTP-Posting-Host: 24.128.105.166 X-Complaints-To: abuse@mediaone.net X-Trace: typhoon.ne.mediaone.net 1003799571 24.128.105.166 (Mon, 22 Oct 2001 21:12:51 EDT) NNTP-Posting-Date: Mon, 22 Oct 2001 21:12:51 EDT Organization: Road Runner Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!fu-berlin.de!news.maxwell.syr.edu!cyclone2.usenetserver.com!usenetserver.com!news-east.rr.com!chnws02.mediaone.net!chnws06.ne.mediaone.net!24.128.8.70!typhoon.ne.mediaone.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7263 Jim Thomas writes: >>>>>> "Paul" == Paul Repacholi writes: > Paul> Until the KL came along. TECO's searches are the classic example. >Which version of TECO? At least as of Texas TECO the old style search is >30 (base 10) words. That doesn't fit in the registers. And that's not >counting the 6 registers it used as registers. Back in the early days of BLISS at C-MU, the macro facility was written in TECO. I could tell from the console lights (KA-10) when it was nearly done as it spent less and less time executing from registers. It may not have been a search routine, it may have been insert/delete code. The "6 registers it used as registers" can often hare an instruction. Only if you have byte pointers or need AOBJN pointers do you need to allocate a whole register. If you just need a random index register, the low half of an instruction works fine, e.g. 10/ addm 1, buff 11/ skipe 1(10) 12/ aoja 10, 10 13/ popj p, 10/ skipn 0(12) 11/ popj p, 12/ addm 1, buff 13/ aoja 12, 10 will add whatever is in AC 1 to a block of memory that is terminated with a zero. AC 10 is both instruction and index register. Note that the the right half of AC 11 is available, actually the whole effective address bits are available! While I rarely needed to write code to run in registers, I was surprised at the change in mindset it required. And I really wished that location 20 could be used for the exit instruction. On TOPS-10 it changed each interrupt or so. -Ric Werme -- "When we allow fundamental freedoms to be sacrificed in the name of real or perceived emergency, we invariably regret it. -- Thurgood Marshall Ric Werme | werme@nospam.mediaone.net http://people.ne.mediaone.net/werme | ^^^^^^^ delete ###### From: "Mike McMahon" Newsgroups: alt.sys.pdp10 References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Lines: 32 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Message-ID: Date: Tue, 23 Oct 2001 01:17:13 GMT NNTP-Posting-Host: 65.96.243.27 X-Complaints-To: abuse@mediaone.net X-Trace: typhoon.ne.mediaone.net 1003799833 65.96.243.27 (Mon, 22 Oct 2001 21:17:13 EDT) NNTP-Posting-Date: Mon, 22 Oct 2001 21:17:13 EDT Organization: Road Runner Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!cyclone2.usenetserver.com!usenetserver.com!news-east.rr.com!chnws02.mediaone.net!chnws06.ne.mediaone.net!24.128.8.202!typhoon.ne.mediaone.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7260 "Jim Thomas" wrote in message news:wwitd7mem4.fsf@atlas.cfht.hawaii.edu... > Which version of TECO? At least as of Texas TECO the old style search is > 30 (base 10) words. That doesn't fit in the registers. And that's not > counting the 6 registers it used as registers. I don't remember any > version of the search code running in fast memory. The inner loop of the ITS TECO search was nine instructions and ran in the ACs. Even though it ran a bit slower on KLs, RMS insisted on keeping it this way, since it ran _so much_ faster on KAs. The search string was compiled into a linked list of instruction sequences, with elements like CAIN for a simple constant character. The search loop then did ILDB through the buffer and XCTed these as it went. Special characters turned into PUSHJ instructions. The linked list elements were the OR alternatives. Why this was more the right thing makes sense when you remember that the purpose was not to speed up the S command typed on a VT05. Rather it was to make the language commands like indentation in EMACS run faster. These, for the all important LISP mode in particular, were full of syntax wildcards and other complex searches. These "internal" searches happened much more often than user-initiated ones. Also, the default interactive search command in EMACS was Incremental Search, which caused some heated debate back then, but is now taken for granted by GNU-Emacs users. Except when searching for something very specific in a very large file, all the CPU time went to updating the display for the incremental behavior. Editors with only the simpler commands would do better with a search with the same simple semantics, but a better implementation algorithm, such as Boyer-Moore. ###### Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> From: Ric Werme X-Newsreader: NN version 6.5.0 CURRENT #119 Lines: 36 Message-ID: Date: Tue, 23 Oct 2001 01:19:42 GMT NNTP-Posting-Host: 24.128.105.166 X-Complaints-To: abuse@mediaone.net X-Trace: typhoon.ne.mediaone.net 1003799982 24.128.105.166 (Mon, 22 Oct 2001 21:19:42 EDT) NNTP-Posting-Date: Mon, 22 Oct 2001 21:19:42 EDT Organization: Road Runner Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!cyclone2.usenetserver.com!usenetserver.com!news-east.rr.com!chnws02.mediaone.net!chnws06.ne.mediaone.net!24.128.8.70!typhoon.ne.mediaone.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7262 John Sauter writes: >glen herrmannsfeldt (excerpted): >It might mean that compilers couldn't generate code >that would optimize loops this way. Hardly a reason to bring the demise of an architecture! It wasn't until RISC systems and their larger register files did compilers start passing arguments in registers, that was a much bigger impediment than the rare cases of executing out of registers. I did hear about >some machines that had the ability to execute out of >registers disabled. It made instruction fetch in the >normal case a little faster. >John Sauter: >I find that hard to believe. Didn't the bootstrap code >run in the registers? I heard the ITS folks at MIT removed that as it saved a ucode test and gave a decent speedup. Umm, which bootstrap code? The paper tape reader, DECtape, and magtape, at least on the KA and KI used the hardware bootstrap mechanism to load a block of bootstrap code into memory. The paper tape boot, IIRC, read the RIM10B loader into _core_ and jumped to that. -- "When we allow fundamental freedoms to be sacrificed in the name of real or perceived emergency, we invariably regret it. -- Thurgood Marshall Ric Werme | werme@nospam.mediaone.net http://people.ne.mediaone.net/werme | ^^^^^^^ delete ###### From: Arthur Krewat Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Organization: Kilonet.net Lines: 28 Message-ID: <3BD4CBDC.B67ECF68@bartek.dontspamme.net> References: <3BC66931.137F0DB5@iprimus.com.au> <87sncckmaa.fsf@prep.synonet.com> <9r2fs4$21uv$1@nntp1.ba.best.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.78 [en] (X11; U; SunOS 5.8 i86pc) X-Accept-Language: en Date: Tue, 23 Oct 2001 01:47:54 GMT NNTP-Posting-Host: 24.186.100.134 X-Trace: news02.optonline.net 1003801674 24.186.100.134 (Mon, 22 Oct 2001 21:47:54 EDT) NNTP-Posting-Date: Mon, 22 Oct 2001 21:47:54 EDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!cyclone2.usenetserver.com!usenetserver.com!news01.optonline.net!news02.optonline.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7251 Joe Smith wrote: > > > Paul> Until the KL came along. TECO's searches are the classic example. > > > >Which version of TECO? At least as of Texas TECO the old style search is > >30 (base 10) words. That doesn't fit in the registers. > > DEC TECO verion 21 or earlier - the one that came before Texas TECO. As of 24A, there was still some utilization of fast ac's, but no mention in the search routine. I have an idea it got too big :) I wonder if fast ac's are even a gain with KL/KS architecture? I'm sure it's a wash with the current simulators... From TECO.MAC 24A(235): ;PUT MOVE ROUTINE IN FAST ACS HRLI 11,200000+B+A*40 ;AC11:=MOVE A,[Q(PT/5)](B) HRLOI 12,241000+A*40 ;AC12:=ROT A,-1 HRLI 13,245000+A*40 ;AC13:=ROTC A,-(REM(REQ/5))*7 HRLI 14,202000+B+AA*40 ;AC14:=MOVEM AA,[Q(PT/5)+1](B) HRLI 15,245000+A*40 ;AC15:=ROTC A,(REM(REQ/5))*7-43 MOVE 17,[JRST,NROOM7] ;AC16:=SOJGE B,11 MOVE 16,.+1 ;AC17:=JRST NROOM7 SOJGE B,11 ;B:=B-1. DONE? aak ###### From: Arthur Krewat Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Organization: Kilonet.net Lines: 21 Message-ID: <3BD4CD6D.6EE1674C@bartek.dontspamme.net> References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.78 [en] (X11; U; SunOS 5.8 i86pc) X-Accept-Language: en Date: Tue, 23 Oct 2001 01:57:51 GMT NNTP-Posting-Host: 24.186.100.134 X-Trace: news02.optonline.net 1003802271 24.186.100.134 (Mon, 22 Oct 2001 21:57:51 EDT) NNTP-Posting-Date: Mon, 22 Oct 2001 21:57:51 EDT Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!cyclone2.usenetserver.com!usenetserver.com!news01.optonline.net!news02.optonline.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7250 Ric Werme wrote: > > >I find that hard to believe. Didn't the bootstrap code > >run in the registers? > > I heard the ITS folks at MIT removed that as it saved a ucode test and > gave a decent speedup. > > Umm, which bootstrap code? The paper tape reader, DECtape, and > magtape, at least on the KA and KI used the hardware bootstrap > mechanism to load a block of bootstrap code into memory. The paper > tape boot, IIRC, read the RIM10B loader into _core_ and jumped to > that. The way I heard it and remember it, it was the PDP-6, or at least the KA10 where they were trying to figure out the least number of instructions so that the bootstrap fit into the registers. And, as a side-effect, less switches for the operator to twiddle with. The less the operators do, the better :) aak ###### From: Jim Thomas Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 23 Oct 2001 13:16:55 -1000 Organization: Canada France Hawai`i Telescope Lines: 13 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <87sncckmaa.fsf@prep.synonet.com> <9r2fs4$21uv$1@nntp1.ba.best.com> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003879015 14331 128.171.80.135 (23 Oct 2001 23:16:55 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 23 Oct 2001 23:16:55 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!fu-berlin.de!news.maxwell.syr.edu!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7271 >>>>> "Joe" == Joe Smith writes: Joe> In article , Joe> Jim Thomas wrote: >> Which version of TECO? At least as of Texas TECO the old style search is >> 30 (base 10) words. That doesn't fit in the registers. Joe> DEC TECO verion 21 or earlier - the one that came before Texas TECO. You wouldn't happen to have the source ? :-( Nothead ###### From: Jim Thomas Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 23 Oct 2001 13:24:42 -1000 Organization: Canada France Hawai`i Telescope Lines: 40 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003879482 14331 128.171.80.135 (23 Oct 2001 23:24:42 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 23 Oct 2001 23:24:42 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news.uni-stuttgart.de!feed.textport.net!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7270 >>>>> "Mike" == Mike McMahon writes: Mike> "Jim Thomas" wrote in message Mike> news:wwitd7mem4.fsf@atlas.cfht.hawaii.edu... >> Which version of TECO? At least as of Texas TECO the old style search is >> 30 (base 10) words. That doesn't fit in the registers. And that's not >> counting the 6 registers it used as registers. I don't remember any >> version of the search code running in fast memory. Mike> The inner loop of the ITS TECO search was nine instructions and ran Mike> in the ACs. Even though it ran a bit slower on KLs, RMS insisted on Mike> keeping it this way, since it ran _so much_ faster on KAs. Mike> The search string was compiled into a linked list of instruction Mike> sequences, with elements like CAIN for a simple constant character. Mike> The search loop then did ILDB through the buffer and XCTed these as Mike> it went. Special characters turned into PUSHJ instructions. The Mike> linked list elements were the OR alternatives. Mike> Why this was more the right thing makes sense when you remember that Mike> the purpose was not to speed up the S command typed on a VT05. Mike> Rather it was to make the language commands like indentation in Mike> EMACS run faster. These, for the all important LISP mode in Mike> particular, were full of syntax wildcards and other complex Mike> searches. These "internal" searches happened much more often than Mike> user-initiated ones. Also, the default interactive search command Mike> in EMACS was Incremental Search, which caused some heated debate Mike> back then, but is now taken for granted by GNU-Emacs users. Except Mike> when searching for something very specific in a very large file, all Mike> the CPU time went to updating the display for the incremental Mike> behavior. Editors with only the simpler commands would do better Mike> with a search with the same simple semantics, but a better Mike> implementation algorithm, such as Boyer-Moore. Interesting, thank you! But since the internal search patterns were somewhat known, was there any discussion of "pre-compiled" B-M search tables and a B-M search as the default? Or were most of the searches of the .* type that B-M can't deal with? Nothead ###### From: Jim Thomas Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 23 Oct 2001 13:28:09 -1000 Organization: Canada France Hawai`i Telescope Lines: 11 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003879689 14331 128.171.80.135 (23 Oct 2001 23:28:09 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 23 Oct 2001 23:28:09 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news.uni-stuttgart.de!feed.textport.net!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7269 >>>>> "Ric" == Ric Werme writes: Ric> Umm, which bootstrap code? The paper tape reader, DECtape, and Ric> magtape, at least on the KA and KI used the hardware bootstrap Ric> mechanism to load a block of bootstrap code into memory. The paper Ric> tape boot, IIRC, read the RIM10B loader into _core_ and jumped to Ric> that. And what was the "core" address of the code? 0 no? Nothead ###### Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> From: Ric Werme X-Newsreader: NN version 6.5.0 CURRENT #119 Lines: 51 Message-ID: Date: Wed, 24 Oct 2001 01:43:05 GMT NNTP-Posting-Host: 24.128.105.166 X-Complaints-To: abuse@mediaone.net X-Trace: typhoon.ne.mediaone.net 1003887785 24.128.105.166 (Tue, 23 Oct 2001 21:43:05 EDT) NNTP-Posting-Date: Tue, 23 Oct 2001 21:43:05 EDT Organization: Road Runner Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!news.uni-stuttgart.de!uni-erlangen.de!newsfeeds.belnet.be!news.belnet.be!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!cyclone2.usenetserver.com!usenetserver.com!news-east.rr.com!chnws02.mediaone.net!chnws06.ne.mediaone.net!24.128.8.70!typhoon.ne.mediaone.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7274 Jim Thomas writes: >>>>>> "Ric" == Ric Werme writes: > Ric> Umm, which bootstrap code? The paper tape reader, DECtape, and > Ric> magtape, at least on the KA and KI used the hardware bootstrap > Ric> mechanism to load a block of bootstrap code into memory. The paper > Ric> tape boot, IIRC, read the RIM10B loader into _core_ and jumped to > Ric> that. >And what was the "core" address of the code? 0 no? No. The hardware boot function first told the device to rewind (DECtapes and magtapes did, the PTR didn't), then it read one IOWD, I think into AC0. IOWDs (I/O word) have a negative count in the left half and the address (-1?) in the right half. The device keeps reading and the CPU stores data per the IOWD, incrementing both halves, until the count is exhausted. Execution begins with the last word read, almost always some sort of jump. (Duh!) Hmm. The PTR must've done something to skip all the blank tape before the RIM10B code. Oh, lessee if I'm right - The "Phone Book" calls it "readin mode", the CPU does the functions of a DATAI to location 0, and then a series of BLKIs. The RH is address-1. "Upon completing the block, the processor halts only if the single instruction switch is on. Otherwise it leaves readin mode, and begins normal operation by executing the last word in the block as an instruction." The MACRO manual includes the RIM10B code because it could generate bootable paper tapes. That loaded at location 1 and fit in the registers. If you look, you should be able to find a WWW page that describes it. However, there was no point in protecting that code since it was on the beginning of all tapes. Some other posts mentioned PDP-6. That makes some sense. While I never used one, I did visit SAIL's. I don't think it supported readin mode, but I don't think it had fast ACs, either, making it pretty hard to keep the bootstrap around in shadow memory. The MACRO manual lists the RIM10 bootstrap and says it's normally toggled into memory ard started at location 20. On PDP-11s before ROM cards showed up, we generally tried to keep bootstrap code at the top of memory. -Ric -- "When we allow fundamental freedoms to be sacrificed in the name of real or perceived emergency, we invariably regret it. -- Thurgood Marshall Ric Werme | werme@nospam.mediaone.net http://people.ne.mediaone.net/werme | ^^^^^^^ delete ###### From: inwap@best.com (Joe Smith) Newsgroups: comp.lang.c,alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: Wed, 24 Oct 2001 02:43:50 +0000 (UTC) Organization: Chez Inwap Lines: 49 Message-ID: <9r59t6$2abe$1@nntp1.ba.best.com> References: <3BC66931.137F0DB5@iprimus.com.au> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> NNTP-Posting-Host: shell3.ba.best.com X-Trace: nntp1.ba.best.com 1003891430 76142 206.184.139.134 (24 Oct 2001 02:43:50 GMT) X-Complaints-To: abuse@best.com NNTP-Posting-Date: Wed, 24 Oct 2001 02:43:50 +0000 (UTC) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news.ifi.unizh.ch!news.imp.ch!news.imp.ch!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news1.best.com!nntp1.ba.best.com!inwap Xref: chonsp.franklin.ch alt.sys.pdp10:7267 In article , Ric Werme wrote: >John Sauter writes: > I did hear about >>some machines that had the ability to execute out of >>registers disabled. It made instruction fetch in the >>normal case a little faster. I remember seeing comments in the KL microcode that if the PC was executing the opcode in AC and it modified AC+1, there was a big performanc hit. Something about a roundabout path to the the modified data back into the opcode fetch+decode registers. In other words, executing code from the ACs was not too bad, just as long as you didn't have self-modifying code in the ACs. >>John Sauter: > >>I find that hard to believe. Didn't the bootstrap code >>run in the registers? > >I heard the ITS folks at MIT removed that as it saved a ucode test and >gave a decent speedup. > >Umm, which bootstrap code? The paper tape reader, DECtape, and >magtape, at least on the KA and KI used the hardware bootstrap >mechanism to load a block of bootstrap code into memory. The paper >tape boot, IIRC, read the RIM10B loader into _core_ and jumped to >that. True, but you could skip the first step by using shadow memory. 1) After running core-heating diagnostics, turn "Fast Memory" off. 2) Put bootstrap tape into paper-tape reader. Press Read-In-Mode button. 3) RIM10B loader gets stored in core locations 0-16, loads medium-short bootstrap routine (one that can load SYS:SYSTEM from disk). Halts. 4) Turn "Fast Memory" on. RIM10B loader still in core locations 0-16. 5) Press "Continue" to run the bootstrap. Load Monitor. If the system crashes, turn "Fast Memory" off, set address to 000001, press "Continue". No need to reload RIM10B loader from paper tape since the copy in core memory is still good. The KL and KS did not use the RIM10B loader; they had front-end systems that poked the bootstrap program into -10's memory. I believe that the routine to determine how much physical memory was present executed in physical page zero, not the ACs. -Joe -- See http://www.inwap.com/ for PDP-10 and "ReBoot" pages. ###### From: gah@ugcs.caltech.edu (glen herrmannsfeldt) Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 24 Oct 2001 05:54:32 GMT Organization: California Institute of Technology, Pasadena Lines: 19 Message-ID: <9r5l2o$snj@gap.cco.caltech.edu> References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> NNTP-Posting-Host: yak.ugcs.caltech.edu X-Newsreader: NN version 6.5.0 #1 (NOV) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!news.tesion.net!news.belwue.de!fu-berlin.de!logbridge.uoregon.edu!nntp-server.caltech.edu!gah Xref: chonsp.franklin.ch alt.sys.pdp10:7268 Jim Thomas writes: >>>>>> "Mike" == Mike McMahon writes: > Mike> "Jim Thomas" wrote in message > Mike> news:wwitd7mem4.fsf@atlas.cfht.hawaii.edu... > >> Which version of TECO? At least as of Texas TECO the old style search is > >> 30 (base 10) words. That doesn't fit in the registers. And that's not > >> counting the 6 registers it used as registers. I don't remember any > >> version of the search code running in fast memory. (snip) >Interesting, thank you! But since the internal search patterns were >somewhat known, was there any discussion of "pre-compiled" B-M search >tables and a B-M search as the default? Or were most of the searches of >the .* type that B-M can't deal with? Boyer-Moore was 1977 I think. I presume TECO-10 was older than that. -- glen ###### Sender: prep@k9 Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> From: Paul Repacholi Message-ID: <876695rn0r.fsf@prep.synonet.com> Lines: 22 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Organization: iQnet Cache-Post-Path: angelina.pe!unknown@p215.perth02.dial.usertools.net X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) Cache-Post-Path: news.satix.net!unknown@news-01.core.usertools.net X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) NNTP-Posting-Host: news.satix.net X-Trace: ozemail.com.au 1003949848 203.132.96.3 (Thu, 25 Oct 2001 04:57:28 EST) NNTP-Posting-Date: Thu, 25 Oct 2001 04:57:28 EST Distribution: world Date: 25 Oct 2001 01:00:36 +0800 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!newsfeed-zh.ip-plus.net!news.ip-plus.net!Amsterdam.Infonet!News.Amsterdam.UnisourceCS!skynet.be!skynet.be!newsfeed.direct.ca!look.ca!newshub2.rdc1.sfba.home.com!news.home.com!sjc1.nntp.concentric.net!newsfeed.concentric.net!newsfeed.ozemail.com.au!ozemail.com.au!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7281 Ric Werme writes: > Some other posts mentioned PDP-6. That makes some sense. While I > never used one, I did visit SAIL's. I don't think it supported > readin mode, but I don't think it had fast ACs, either, making it > pretty hard to keep the bootstrap around in shadow memory. The > MACRO manual lists the RIM10 bootstrap and says it's normally > toggled into memory ard started at location 20. The 6 definatly has registers!! Failed Circus hated that part of the CPU, know as 'The Harp' from the second set of interconections on the front of cards. To do anything, it had to be unsoldered to remove the cards. I'm certain it also had Readin-Mode as well. -- Paul Repacholi 1 Crescent Rd., +61 (08) 9257-1001 Kalamunda. West Australia 6076 Raw, Cooked or Well-done, it's all half baked. EPIC, The Architecture of the future, always has been, always will be. ###### From: Jim Thomas Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 24 Oct 2001 13:40:36 -1000 Organization: Canada France Hawai`i Telescope Lines: 19 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r5l2o$snj@gap.cco.caltech.edu> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003966837 13014 128.171.80.135 (24 Oct 2001 23:40:37 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 24 Oct 2001 23:40:37 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!enews.sgi.com!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7291 >>>>> "glen" == glen herrmannsfeldt writes: glen> Jim Thomas writes: >> Interesting, thank you! But since the internal search patterns were >> somewhat known, was there any discussion of "pre-compiled" B-M search >> tables and a B-M search as the default? Or were most of the searches of >> the .* type that B-M can't deal with? glen> Boyer-Moore was 1977 I think. I presume TECO-10 was older than that. Communications of the ACM, October 1977, Vol. 20 Number 10, page 762 copied and pasted from Texas TECO where I put it in about 1978 - argh, the edit history "standard" for TECO did not include dates. TECO-10 was older but was not neglected :-) Nothead ###### From: Jim Thomas Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration Date: 24 Oct 2001 13:50:23 -1000 Organization: Canada France Hawai`i Telescope Lines: 33 Message-ID: References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> NNTP-Posting-Host: atlas.cfht.hawaii.edu X-Trace: news.hawaii.edu 1003967424 13014 128.171.80.135 (24 Oct 2001 23:50:24 GMT) X-Complaints-To: usenet@hawaii.edu NNTP-Posting-Date: 24 Oct 2001 23:50:24 GMT X-Newsreader: Gnus v5.7/Emacs 20.6 Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!newsfeed00.sul.t-online.de!t-online.de!newsfeeds.belnet.be!news.belnet.be!feed2.onemain.com!feed1.onemain.com!newsfeed.direct.ca!look.ca!hammer.uoregon.edu!news.hawaii.edu!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7293 >>>>> "Ric" == Ric Werme writes: Ric> Jim Thomas writes: >>>>>>> "Ric" == Ric Werme writes: Ric> Umm, which bootstrap code? The paper tape reader, DECtape, and Ric> magtape, at least on the KA and KI used the hardware bootstrap Ric> mechanism to load a block of bootstrap code into memory. The paper Ric> tape boot, IIRC, read the RIM10B loader into _core_ and jumped to Ric> that. >> And what was the "core" address of the code? 0 no? Ric> No. Ric> .... Ric> Oh, lessee if I'm right - The "Phone Book" calls it "readin mode", the Ric> CPU does the functions of a DATAI to location 0, and then a series of Ric> BLKIs. The RH is address-1. .... Ric> The MACRO manual includes the RIM10B code because it could generate Ric> bootable paper tapes. That loaded at location 1 and fit in the Ric> registers. .... Umm, again :-) You said "_core_" up above in reference to a previous discussion about running code out of the fast AC's. I asked what the "_core_" address was. You said it was not 0 and described how RIM10-B read into 0-17(8). Them's the fast AC's, i.e., it runs out of the registers as I was prompting. :-) Or else I misunderstood your point :-( Nothead ###### Newsgroups: alt.sys.pdp10 Subject: Re: [OT PDP-10 stuff] Re: Pointers to pointers to functions declaration References: <3BC66931.137F0DB5@iprimus.com.au> <9q886k$ddl$1@elf.eng.bsdi.com> <9qa40d$kif@gap.cco.caltech.edu> <9qa8qo$fk8$1@elf.eng.bsdi.com> <87sncckmaa.fsf@prep.synonet.com> <9r11kj$em9$2@bob.news.rcn.net> <9r1l6s$om6@gap.cco.caltech.edu> <3BD4B89B.BDC49BC7@Empire.Net> From: Ric Werme X-Newsreader: NN version 6.5.0 CURRENT #119 Lines: 53 Message-ID: Date: Thu, 25 Oct 2001 01:32:24 GMT NNTP-Posting-Host: 24.128.105.166 X-Complaints-To: abuse@mediaone.net X-Trace: typhoon.ne.mediaone.net 1003973544 24.128.105.166 (Wed, 24 Oct 2001 21:32:24 EDT) NNTP-Posting-Date: Wed, 24 Oct 2001 21:32:24 EDT Organization: Road Runner Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!isdnet!nntp.abs.net!feeder.qis.net!feed2.onemain.com!feed1.onemain.com!cyclone2.usenetserver.com!usenetserver.com!news-east.rr.com!chnws02.mediaone.net!chnws06.ne.mediaone.net!24.128.8.70!typhoon.ne.mediaone.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.sys.pdp10:7296 Jim Thomas writes: >>>>>> "Ric" == Ric Werme writes: > Ric> Jim Thomas writes: > >>>>>>> "Ric" == Ric Werme writes: > Ric> Umm, which bootstrap code? The paper tape reader, DECtape, and > Ric> magtape, at least on the KA and KI used the hardware bootstrap > Ric> mechanism to load a block of bootstrap code into memory. The paper > Ric> tape boot, IIRC, read the RIM10B loader into _core_ and jumped to > Ric> that. > >> And what was the "core" address of the code? 0 no? > Ric> No. >Umm, again :-) You said "_core_" up above in reference to a previous >discussion about running code out of the fast AC's. I asked what the >"_core_" address was. You said it was not 0 and described how RIM10-B read >into 0-17(8). Them's the fast AC's, i.e., it runs out of the registers as >I was prompting. :-) Or else I misunderstood your point :-( My point was that readin mode didn't necessarily start at 0. (Even Rim10B starts at 16.) And when I typed that I had misplaced my memory about where RIM10B ran from. Another one that definitely ran in core was: The DECtape layout reserved blocks 0, 1, & 2 for a DECtape bootstrap routine. Hit readin, the CTY would LF, and then you could type the name of the file to load or ask for a directory. (One day the CPU died mysteriously and my clue to diagnose it was that the filename would print followed by infinite '_'s (left arrows). A story for another day....) So we'd have to type the name of the boot program for the disk, wait for the directory to be read (block 100, decimal I think), wait for the boot program to load and then type the name for the disk file to load. Pain in the neck, especially when the RCA memory was misbehaving. Unfortunately, the disk boot program was four blocks long. So I wrote a hack to write it at the start of the tape anyway and then updated the directory block to mark block 3 in use. It was so much better - readin didn't have to rewind the tape far, so we could pretty much push the button, turn around and type the file name, or perhaps just hit return, I forget. -Ric -- "When we allow fundamental freedoms to be sacrificed in the name of real or perceived emergency, we invariably regret it. -- Thurgood Marshall Ric Werme | werme@nospam.mediaone.net http://people.ne.mediaone.net/werme | ^^^^^^^ delete