Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!amdahl!JUTS!rbw00 From: rbw00@ccc.amdahl.com ( 213 Richard Wilmot) Newsgroups: comp.arch Subject: Re: skip instructions Summary: Wierder skipping Keywords: Punctuation,Honeywell,item marks,word marks Message-ID: <7b=C02CO071s01@JUTS.ccc.amdahl.com> Date: 8 May 91 23:29:07 GMT References: <1182@opus.NMSU.Edu> <1991May05.174307.8952@iecc.cambridge.ma.us> Reply-To: rbw00@JUTS.ccc.amdahl.com ( 213 Richard Wilmot) Distribution: comp Organization: Amdahl Corporation, Sunnyvale CA Lines: 45 >It seems to me the real reason was variable length instructions. DEC >machines up through the PDP-10 all had fixed length single word >instructions, so it was obvious what skipping one would mean. Ditto the IBM >scientific machines up through the 7094, and their clones such as the GE >635. The IBM 360 and PDP-11 both had variable length instructions and >condition codes. > >Variable length instructions make skips a lot less appealing. I once used a >machine that had single word skips but a combination of one and two word >instructions (Varian 620, for you historians) and some impressively strange >bugs resulted from skipping into the middle of a two-word instruction. > Oooh. Skipping into the middle of instructions. Honeywell built a family of machines starting with the H200 which were punctuation machines. Storage manipulation started at an address and continued until the source had a specified punctuation mark (two extra, non-data bits) set (on). This was really dreamy for compilers and text manipulation. Addresses were of several different lengths and there were instructions to change the current address width (CAM: Change Addressing Mode). Instructions consisted of opcode followed by register [?] and displacements (of the correct length for current addressing mode) [this is from my hazy memory - didn't have room for those manuals]. Instruction would begin extraction and execution on seeing the word mark that was set at the end of every instruction. So you could have fully coded instructions that were presently off because their word marks (in the preceding instructions) were not set, then your program would turn those instructions on by setting the punctuation bit. But if you branched to one of these instruction addresses then it would extract and execute from the following word mark. So instructions not preceded by word marks were turned off unless they were branched to. Dijkstra?? :-) GOTOs worked, they always did something. Punctuation machines were fun. We need to bring them back to handle null terminated strings. :-)) >John R. Levine, IECC, POB 349, Cambridge MA 02238, +1 617 492 3869 >johnl@iecc.cambridge.ma.us, {ima|spdcc|world}!iecc!johnl >Cheap oil is an oxymoron. -- Dick Wilmot | I declaim that Amdahl might disclaim any of my claims. (408) 746-6108