Actually, the Model 30 was simply a "physically huge" microprocessor. The microprogram was stored in CROS (capacitor read only storage) in words about 60 bits long. The native instruction set looks a lot like a pic. Cycle time was 1.5 or 2.0 usec. The power was in the Selector channels which were implemented in hardware. The multiplex channel was all software & drivers! The higher models had either more hardware or all hardware. Most of the old guys at the time were convinced it was a big mistake. It would not surprise me if someone elected to redo it on an 18Fxxx PIC. Except for the motive issue! John Ferrell My Competition is not my enemy! http://DixieNC.US ----- Original Message ----- From: "dr. Imre Bartfai" To: "Microcontroller discussion list - Public." Sent: Wednesday, November 17, 2004 2:02 AM Subject: Re: [OT] Basic Stamp application > Maybe I did not express myself on a most accurate way. I did not mean > verbatim "self-modifying code" but it is "as if" it modified itself on the > fly. But I think it may be a good practice if you think of it as a > procedure call where the working register of EX is actually a parameter of > that. Furthermore I do not know another way to make a variable-length MVC > except an IC ... STC loop which is an overkill in this situation. > Regards, > Imre > > PS: I wish sometimes it would be there a micro with 360 instruction set... > > On Mon, 8 Nov 2004, John Ferrell wrote: > >> You have me confused! >> As I recall, the IBM 360 "EX" instruction is an 'execute'. Its function >> is to execute the instruction located at the memory location defined by >> the address (base + displacement) in the instruction without altering the >> Program instruction register. Regardless of the result of the executed >> instruction, the next instruction executed would be the one following the >> EX. >> >> I never found a use for it other than in a hand loaded loop for hardware >> testing and then there was always a better way. >> >> My memories of the mid 1960's are not always as sharp as I would like... >> BTW, self modifying code was a "Thou shalt not.." then! >> >> John Ferrell >> My Competition is not my enemy! >> http://DixieNC.US >> >> ----- Original Message ----- From: "dr. Imre Bartfai" >> To: "Microcontroller discussion list - Public." >> Sent: Monday, November 08, 2004 5:06 AM >> Subject: Re: [OT] Basic Stamp application >> >> >>> EX is a very funny instruction in the 360 series and works as follows: >>> >>> LA 4,9 loads R4 with the constant 9 >>> EX 4,COPY executes the instruction COPY >>> * OR'ing its 2nd byte with the >>> * current content of R4 >>> BR 14 return >>> COPY MVC TO(1),FROM move chars from FROM to TO, >>> * predefined length is zero which is >>> * actually modified by EX >>> >>> So one could write a self-modifying program without actually changing >>> the code. >>> >>> Imre >>> >>> >>> +-----------------------------------------------------------------------+ >>> | The information transmitted is intended only for the person or entity >>> | >>> | to which it is addressed and may contain confidential and/or >>> | >>> | privileged material. Any review, retransmission, dissemination or >>> | >>> | other use of, or taking of any action in reliance upon, this | >>> | information by persons or entities other than the intended recipient >>> | >>> | is prohibited. If you received this in error, please contact the >>> | >>> | sender and delete the material from any computer. >>> | >>> +-----------------------------------------------------------------------+ >>> >>> On Thu, 4 Nov 2004, Byron A Jeff wrote: >>> >>>> On Wed, Nov 03, 2004 at 10:10:39AM +0100, dr. Imre Bartfai wrote: >>>>> >>>>>> On Mon, Oct 25, 2004 at 11:32:21AM -0400, Peter Johansson wrote: >>>>>>> Herbert Graf writes: >>>> >>>> Actually for the record, I wrote that piece of code. It's written in >>>> NPCI. >>>> I have a language spec here: >>>> >>>> http://www.finitesite.com/d3jsys/README-NPCI.html >>>> >>>>>> >>>>>> proc clearbits(copy char count, copy char start) >>>>>> while (count) >>>>>> portb:start = 0 // Clear the bit in PORTB referenced by start. >>>>>> start = start+1 >>>>>> count = count-1 >>>>>> endwhile >>>>>> endproc >>>>>> >>>>>> The portb:start=0 line is a significant chunk of code because it >>>>>> represents >>>>>> a variable bit number. But the compiler gives a compact abstraction >>>>>> for the >>>>>> concept. >>>>> >>>>> Therefore I miss the EX assembly statement used in the IBM/360 (and >>>>> successors) architecture. Does know somebody similar on another >>>>> processors? >>>> >>>> I couldn't get a description from Google. What does that instruction >>>> do? >>>> >>>> BAJ >>>> _______________________________________________ >>>> http://www.piclist.com PIC/SX FAQ & list archive >>>> View/change your membership options at >>>> http://mailman.mit.edu/mailman/listinfo/piclist >>>> >>> _______________________________________________ >>> http://www.piclist.com PIC/SX FAQ & list archive >>> View/change your membership options at >>> http://mailman.mit.edu/mailman/listinfo/piclist >> >> >> _______________________________________________ >> http://www.piclist.com PIC/SX FAQ & list archive >> View/change your membership options at >> http://mailman.mit.edu/mailman/listinfo/piclist >> > _______________________________________________ > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist _______________________________________________ http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist