Was it really possible for a PDP-11 to address more than 32K words memory without an MMU?Were there any LSI-11 like home computers outside of Russia?What was the clock speed and ips for the original PDP-11?PDP-11 JMP and JSR - how was the target specified?

Is it impolite to ask for an in-flight catalogue with no intention of buying?

Hangman Game (YAHG)

Tesla coil and Tesla tower

How to say "cheat sheet" in French

Suffocation while cooking under an umbrella?

Co-supervisor comes to the office to help her students, which distracts me

1, 2, 4, 8, 16, ... 33?

Comma Code - Automate the Boring Stuff with Python

Can anyone put a name to this Circle of Fifths observation?

Do we have any particular tonal center in mind when we are NOT listening music?

What is the difference between 「変更」 and 「変化」?

Received a package but didn't order it

Strange Sticky Substance on Digital Camera

relating two diagrams in tikzcd

Should the average user with no special access rights be worried about SMS-based 2FA being theoretically interceptable?

Aesthetic proofs that involve Field Theory / Galois Theory

Can I take new (still in their boxes) PC parts in my checked in luggage?

Should we use wheatstone bridges nowadays?

Line segments inside a square

Could Apollo astronauts see city lights from the moon?

Does Sitecore have support for Sitecore products in containers?

Lost Update Understanding

Why did UK NHS pay for homeopathic treatments?

Is it allowed to buy a Probe Bahncard 50 repeatedly?



Was it really possible for a PDP-11 to address more than 32K words memory without an MMU?


Were there any LSI-11 like home computers outside of Russia?What was the clock speed and ips for the original PDP-11?PDP-11 JMP and JSR - how was the target specified?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








3















In an answer by user RichF, it is claimed that the previous-address-space moves were able to access 'all of memory' without memory management being enabled.



The instructions MFPI (move from previous instruction space), MFPD (… previous data space), MTPI (move to previous instruction space), MTPD (… previous data space) facilitate implementation of OS kernel services; user space and kernel space are usually non-overlapping so the kernel can't immediately see user space. Memory management generally uses the current-mode (kernel/super/user) field from the processor status (PSW) to determine which map to use; these instructions use the previous-mode field instead.



I've never really thought about what the previous-mode moves would do if the MMU was not enabled. The answer I linked to above says that the previous-mode bits from the PSW are used directly as the high-order 2 bits of the 18-bit bus address (the low 16 bits are provided via the usual operand).



I've poked around the manuals I have at home, and on bitsavers, but I can't see any mention of this usage. The instruction definitions all assume the MMU is enabled. E.g., for MFPD (from the 11/70 handbook, even though it says 11/45 in the text):




This instruction is provided in order to allow interaddress space
communication when the PDP-11/45 is using the Memory Management unit.



The address of the source operand is determined in the current address
space. That is, the address is determined using the SP and memory
pages determined by PS<15:14>. The address itself is then used in the
previous D space (as determined by PS<13:12> to get the source
operand. This operand is then pushed on to the current R6 stack.




OH, I'm supposed to have an actual question? OK: does anyone have documentation or actual experience to say what these 4 instructions do when memory management is not enabled? Was this 'off-label' use model-specific?










share|improve this question






























    3















    In an answer by user RichF, it is claimed that the previous-address-space moves were able to access 'all of memory' without memory management being enabled.



    The instructions MFPI (move from previous instruction space), MFPD (… previous data space), MTPI (move to previous instruction space), MTPD (… previous data space) facilitate implementation of OS kernel services; user space and kernel space are usually non-overlapping so the kernel can't immediately see user space. Memory management generally uses the current-mode (kernel/super/user) field from the processor status (PSW) to determine which map to use; these instructions use the previous-mode field instead.



    I've never really thought about what the previous-mode moves would do if the MMU was not enabled. The answer I linked to above says that the previous-mode bits from the PSW are used directly as the high-order 2 bits of the 18-bit bus address (the low 16 bits are provided via the usual operand).



    I've poked around the manuals I have at home, and on bitsavers, but I can't see any mention of this usage. The instruction definitions all assume the MMU is enabled. E.g., for MFPD (from the 11/70 handbook, even though it says 11/45 in the text):




    This instruction is provided in order to allow interaddress space
    communication when the PDP-11/45 is using the Memory Management unit.



    The address of the source operand is determined in the current address
    space. That is, the address is determined using the SP and memory
    pages determined by PS<15:14>. The address itself is then used in the
    previous D space (as determined by PS<13:12> to get the source
    operand. This operand is then pushed on to the current R6 stack.




    OH, I'm supposed to have an actual question? OK: does anyone have documentation or actual experience to say what these 4 instructions do when memory management is not enabled? Was this 'off-label' use model-specific?










    share|improve this question


























      3












      3








      3








      In an answer by user RichF, it is claimed that the previous-address-space moves were able to access 'all of memory' without memory management being enabled.



      The instructions MFPI (move from previous instruction space), MFPD (… previous data space), MTPI (move to previous instruction space), MTPD (… previous data space) facilitate implementation of OS kernel services; user space and kernel space are usually non-overlapping so the kernel can't immediately see user space. Memory management generally uses the current-mode (kernel/super/user) field from the processor status (PSW) to determine which map to use; these instructions use the previous-mode field instead.



      I've never really thought about what the previous-mode moves would do if the MMU was not enabled. The answer I linked to above says that the previous-mode bits from the PSW are used directly as the high-order 2 bits of the 18-bit bus address (the low 16 bits are provided via the usual operand).



      I've poked around the manuals I have at home, and on bitsavers, but I can't see any mention of this usage. The instruction definitions all assume the MMU is enabled. E.g., for MFPD (from the 11/70 handbook, even though it says 11/45 in the text):




      This instruction is provided in order to allow interaddress space
      communication when the PDP-11/45 is using the Memory Management unit.



      The address of the source operand is determined in the current address
      space. That is, the address is determined using the SP and memory
      pages determined by PS<15:14>. The address itself is then used in the
      previous D space (as determined by PS<13:12> to get the source
      operand. This operand is then pushed on to the current R6 stack.




      OH, I'm supposed to have an actual question? OK: does anyone have documentation or actual experience to say what these 4 instructions do when memory management is not enabled? Was this 'off-label' use model-specific?










      share|improve this question














      In an answer by user RichF, it is claimed that the previous-address-space moves were able to access 'all of memory' without memory management being enabled.



      The instructions MFPI (move from previous instruction space), MFPD (… previous data space), MTPI (move to previous instruction space), MTPD (… previous data space) facilitate implementation of OS kernel services; user space and kernel space are usually non-overlapping so the kernel can't immediately see user space. Memory management generally uses the current-mode (kernel/super/user) field from the processor status (PSW) to determine which map to use; these instructions use the previous-mode field instead.



      I've never really thought about what the previous-mode moves would do if the MMU was not enabled. The answer I linked to above says that the previous-mode bits from the PSW are used directly as the high-order 2 bits of the 18-bit bus address (the low 16 bits are provided via the usual operand).



      I've poked around the manuals I have at home, and on bitsavers, but I can't see any mention of this usage. The instruction definitions all assume the MMU is enabled. E.g., for MFPD (from the 11/70 handbook, even though it says 11/45 in the text):




      This instruction is provided in order to allow interaddress space
      communication when the PDP-11/45 is using the Memory Management unit.



      The address of the source operand is determined in the current address
      space. That is, the address is determined using the SP and memory
      pages determined by PS<15:14>. The address itself is then used in the
      previous D space (as determined by PS<13:12> to get the source
      operand. This operand is then pushed on to the current R6 stack.




      OH, I'm supposed to have an actual question? OK: does anyone have documentation or actual experience to say what these 4 instructions do when memory management is not enabled? Was this 'off-label' use model-specific?







      pdp-11






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 8 hours ago









      another-daveanother-dave

      3,1321 gold badge10 silver badges25 bronze badges




      3,1321 gold badge10 silver badges25 bronze badges























          1 Answer
          1






          active

          oldest

          votes


















          2
















          Dave, I'm not sure how it worked on every PDP-family chip. What I can tell you for certain is that, on an LSI-11/73 and Q-Bus, the MFP? and MTP? instructions did allow random access to any word in the 18-bit address space. No MMU need be involved.



          Description of MFPD from the PDP-11 Architecture Handbook (c) 1983:




          Pushes a word onto the current R6 stack from an address in previous space determined by PS <13:12>. The source address is computed using the current registers and memory map. When MFPI is executed and both previous mode and current mode are User, the instruction functions as thought it were MFPD.




          MTPD is similar but not exactly parallel:




          This instruction pops a word off the current R6 stack determined by PS bits <15:14> and stores that word into an address in previous space as determined by PS bits <13:12>. The destination address is computed using the current registers and memory map.




          I never thought about it before, but if the MMU were not active, the current memory map would be the flat, actual, contiguous 18-bit address bus. An MMU would likely allow kinds of fragmented mapping, but I didn't want that.




          background



          from memory, about 40 years ago: The OS was Forth, and I was programming in Forth and Forth's embedded assembler. I did not want to calculate a 15-bit HSI (Hue, Saturation, Intensity) to RGB (Red, Green, Blue) for every pixel on the fly. Instead, as the program started, it would load three, pre-calculated, static 64kb LUTs (R, G, and B). Then, as needed, the color transform would simply be direct look-ups using the same HSI index for the 3 pixel colors. IIRC, the color DAC received 8-bit values, so only the low-order byte was used for each component.






          share|improve this answer

























          • That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

            – another-dave
            2 hours ago














          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "648"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );














          draft saved

          draft discarded
















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f12377%2fwas-it-really-possible-for-a-pdp-11-to-address-more-than-32k-words-memory-withou%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2
















          Dave, I'm not sure how it worked on every PDP-family chip. What I can tell you for certain is that, on an LSI-11/73 and Q-Bus, the MFP? and MTP? instructions did allow random access to any word in the 18-bit address space. No MMU need be involved.



          Description of MFPD from the PDP-11 Architecture Handbook (c) 1983:




          Pushes a word onto the current R6 stack from an address in previous space determined by PS <13:12>. The source address is computed using the current registers and memory map. When MFPI is executed and both previous mode and current mode are User, the instruction functions as thought it were MFPD.




          MTPD is similar but not exactly parallel:




          This instruction pops a word off the current R6 stack determined by PS bits <15:14> and stores that word into an address in previous space as determined by PS bits <13:12>. The destination address is computed using the current registers and memory map.




          I never thought about it before, but if the MMU were not active, the current memory map would be the flat, actual, contiguous 18-bit address bus. An MMU would likely allow kinds of fragmented mapping, but I didn't want that.




          background



          from memory, about 40 years ago: The OS was Forth, and I was programming in Forth and Forth's embedded assembler. I did not want to calculate a 15-bit HSI (Hue, Saturation, Intensity) to RGB (Red, Green, Blue) for every pixel on the fly. Instead, as the program started, it would load three, pre-calculated, static 64kb LUTs (R, G, and B). Then, as needed, the color transform would simply be direct look-ups using the same HSI index for the 3 pixel colors. IIRC, the color DAC received 8-bit values, so only the low-order byte was used for each component.






          share|improve this answer

























          • That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

            – another-dave
            2 hours ago
















          2
















          Dave, I'm not sure how it worked on every PDP-family chip. What I can tell you for certain is that, on an LSI-11/73 and Q-Bus, the MFP? and MTP? instructions did allow random access to any word in the 18-bit address space. No MMU need be involved.



          Description of MFPD from the PDP-11 Architecture Handbook (c) 1983:




          Pushes a word onto the current R6 stack from an address in previous space determined by PS <13:12>. The source address is computed using the current registers and memory map. When MFPI is executed and both previous mode and current mode are User, the instruction functions as thought it were MFPD.




          MTPD is similar but not exactly parallel:




          This instruction pops a word off the current R6 stack determined by PS bits <15:14> and stores that word into an address in previous space as determined by PS bits <13:12>. The destination address is computed using the current registers and memory map.




          I never thought about it before, but if the MMU were not active, the current memory map would be the flat, actual, contiguous 18-bit address bus. An MMU would likely allow kinds of fragmented mapping, but I didn't want that.




          background



          from memory, about 40 years ago: The OS was Forth, and I was programming in Forth and Forth's embedded assembler. I did not want to calculate a 15-bit HSI (Hue, Saturation, Intensity) to RGB (Red, Green, Blue) for every pixel on the fly. Instead, as the program started, it would load three, pre-calculated, static 64kb LUTs (R, G, and B). Then, as needed, the color transform would simply be direct look-ups using the same HSI index for the 3 pixel colors. IIRC, the color DAC received 8-bit values, so only the low-order byte was used for each component.






          share|improve this answer

























          • That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

            – another-dave
            2 hours ago














          2














          2










          2









          Dave, I'm not sure how it worked on every PDP-family chip. What I can tell you for certain is that, on an LSI-11/73 and Q-Bus, the MFP? and MTP? instructions did allow random access to any word in the 18-bit address space. No MMU need be involved.



          Description of MFPD from the PDP-11 Architecture Handbook (c) 1983:




          Pushes a word onto the current R6 stack from an address in previous space determined by PS <13:12>. The source address is computed using the current registers and memory map. When MFPI is executed and both previous mode and current mode are User, the instruction functions as thought it were MFPD.




          MTPD is similar but not exactly parallel:




          This instruction pops a word off the current R6 stack determined by PS bits <15:14> and stores that word into an address in previous space as determined by PS bits <13:12>. The destination address is computed using the current registers and memory map.




          I never thought about it before, but if the MMU were not active, the current memory map would be the flat, actual, contiguous 18-bit address bus. An MMU would likely allow kinds of fragmented mapping, but I didn't want that.




          background



          from memory, about 40 years ago: The OS was Forth, and I was programming in Forth and Forth's embedded assembler. I did not want to calculate a 15-bit HSI (Hue, Saturation, Intensity) to RGB (Red, Green, Blue) for every pixel on the fly. Instead, as the program started, it would load three, pre-calculated, static 64kb LUTs (R, G, and B). Then, as needed, the color transform would simply be direct look-ups using the same HSI index for the 3 pixel colors. IIRC, the color DAC received 8-bit values, so only the low-order byte was used for each component.






          share|improve this answer













          Dave, I'm not sure how it worked on every PDP-family chip. What I can tell you for certain is that, on an LSI-11/73 and Q-Bus, the MFP? and MTP? instructions did allow random access to any word in the 18-bit address space. No MMU need be involved.



          Description of MFPD from the PDP-11 Architecture Handbook (c) 1983:




          Pushes a word onto the current R6 stack from an address in previous space determined by PS <13:12>. The source address is computed using the current registers and memory map. When MFPI is executed and both previous mode and current mode are User, the instruction functions as thought it were MFPD.




          MTPD is similar but not exactly parallel:




          This instruction pops a word off the current R6 stack determined by PS bits <15:14> and stores that word into an address in previous space as determined by PS bits <13:12>. The destination address is computed using the current registers and memory map.




          I never thought about it before, but if the MMU were not active, the current memory map would be the flat, actual, contiguous 18-bit address bus. An MMU would likely allow kinds of fragmented mapping, but I didn't want that.




          background



          from memory, about 40 years ago: The OS was Forth, and I was programming in Forth and Forth's embedded assembler. I did not want to calculate a 15-bit HSI (Hue, Saturation, Intensity) to RGB (Red, Green, Blue) for every pixel on the fly. Instead, as the program started, it would load three, pre-calculated, static 64kb LUTs (R, G, and B). Then, as needed, the color transform would simply be direct look-ups using the same HSI index for the 3 pixel colors. IIRC, the color DAC received 8-bit values, so only the low-order byte was used for each component.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 3 hours ago









          RichFRichF

          5,2601 gold badge17 silver badges38 bronze badges




          5,2601 gold badge17 silver badges38 bronze badges















          • That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

            – another-dave
            2 hours ago


















          • That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

            – another-dave
            2 hours ago

















          That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

          – another-dave
          2 hours ago






          That seems to be the standard description from all the handbooks. The 'not exactly specified' part is the meaning of 'current .. memory map' when the map hardware is not enabled. The strange bit, to me, is that processor-mode bits would get used directly as address bits when the MMU usage is for map selection. Not that I'm refuting your actual experience, of course. I'll go look at the 11/73 description (a latter-day PDP-11 from my viewpoint!). Thanks.

          – another-dave
          2 hours ago



















          draft saved

          draft discarded















































          Thanks for contributing an answer to Retrocomputing Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f12377%2fwas-it-really-possible-for-a-pdp-11-to-address-more-than-32k-words-memory-withou%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

          Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

          François Viète Contents Biography Work and thought Bibliography See also Notes Further reading External links Navigation menup. 21Google Bookspp. 75–77Google BooksDe thou (from University of Saint Andrews)ArchivedGoogle BooksGoogle BooksGoogle BooksGoogle booksGoogle Bookscc-parthenay.frL'histoire universelle (fr)Universal History (en)ArchivedAdsabs.harvard.eduPagesperso-orange.frArchive.orgChikara Sasaki. Descartes' mathematical thought p.259Google BooksGoogle BooksGoogle Bookspp. 152 and onwardGoogle BooksGoogle BooksScribd.comGoogle Books1257-7979Google BooksGoogle BooksGoogle BooksGoogle BooksGoogle BooksGoogle BooksGallica.bnf.frGoogle BooksGoogle Books"François Viète"Francois Viète: Father of Modern Algebraic NotationThe Lawyer and the GamblerAbout TarporleySite de Jean-Paul GuichardL'algèbre nouvelle"About the Harmonicon"cb120511976(data)1188044800000 0001 0913 5903n82164680ola2013766880073431702w6vt1sb70287374827140948071409480