How useful were the 6809/6309's indirect addressing modes?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite












Much like the VAX, the 6809 and 6309 have a preponderance of indirect addressing modes (in VAX parlance, "deferred"), though neither go so far as to include a VAX-like doubly-indirect mode.



To what extent were these modes useful/actually used?



I can obviously think of contrived instances where these would be a good fit, but it's difficult to determine whether these would show up in the "real world". It's worth noting that the 6809's cousin, the 68HC12, removed all but two of these indirect modes.










share|improve this question









New contributor




Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.























    up vote
    2
    down vote

    favorite












    Much like the VAX, the 6809 and 6309 have a preponderance of indirect addressing modes (in VAX parlance, "deferred"), though neither go so far as to include a VAX-like doubly-indirect mode.



    To what extent were these modes useful/actually used?



    I can obviously think of contrived instances where these would be a good fit, but it's difficult to determine whether these would show up in the "real world". It's worth noting that the 6809's cousin, the 68HC12, removed all but two of these indirect modes.










    share|improve this question









    New contributor




    Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.





















      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      Much like the VAX, the 6809 and 6309 have a preponderance of indirect addressing modes (in VAX parlance, "deferred"), though neither go so far as to include a VAX-like doubly-indirect mode.



      To what extent were these modes useful/actually used?



      I can obviously think of contrived instances where these would be a good fit, but it's difficult to determine whether these would show up in the "real world". It's worth noting that the 6809's cousin, the 68HC12, removed all but two of these indirect modes.










      share|improve this question









      New contributor




      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      Much like the VAX, the 6809 and 6309 have a preponderance of indirect addressing modes (in VAX parlance, "deferred"), though neither go so far as to include a VAX-like doubly-indirect mode.



      To what extent were these modes useful/actually used?



      I can obviously think of contrived instances where these would be a good fit, but it's difficult to determine whether these would show up in the "real world". It's worth noting that the 6809's cousin, the 68HC12, removed all but two of these indirect modes.







      assembly 6809






      share|improve this question









      New contributor




      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 2 hours ago









      manassehkatz

      1,556215




      1,556215






      New contributor




      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 3 hours ago









      Kevin Keith

      1112




      1112




      New contributor




      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Kevin Keith is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          3
          down vote













          The 6809 offers to combine indirect with either a fix extended (16 Bit) address or all indirect indexed modes. These modes are extreme useful for all kinds of linked list and/or table processing. essentially the basic for any operating system, thus simplifying and speeding up OS programming including any kind of list defined I/O. Especially the later is quite powerful in a concurent setup (*1). And that's where the 6809 was targeted at: modular multi-process environments. Such an environment is filled with dynamic structures that are build and managed at runtime, usually not holding much predefined addresses and structures.



          The 68HC12 was optimized as a sinclechip controller, not a general purpose CPU. Unlike a general purpose environment, a controller does usually operate on predefined structures with no or just a small amount of dynamic structures.




          *1 - Think for example an I/O subsystem where each pending request is defined with a control block holding the address of a data buffer and a pointer within. During an interrupt to send or receive a character X could point to the control block for the actual operation (so no need to move that block into a fixed address) and use the actual buffer pointer within the structure with [X+offset] in a single operation. Increment (or decrement) it the same way and finish the I/O routine.






          share|improve this answer






















            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',
            convertImagesToLinks: false,
            noModals: false,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            noCode: true, onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            Kevin Keith is a new contributor. Be nice, and check out our Code of Conduct.









             

            draft saved


            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f8003%2fhow-useful-were-the-6809-6309s-indirect-addressing-modes%23new-answer', 'question_page');

            );

            Post as a guest






























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            3
            down vote













            The 6809 offers to combine indirect with either a fix extended (16 Bit) address or all indirect indexed modes. These modes are extreme useful for all kinds of linked list and/or table processing. essentially the basic for any operating system, thus simplifying and speeding up OS programming including any kind of list defined I/O. Especially the later is quite powerful in a concurent setup (*1). And that's where the 6809 was targeted at: modular multi-process environments. Such an environment is filled with dynamic structures that are build and managed at runtime, usually not holding much predefined addresses and structures.



            The 68HC12 was optimized as a sinclechip controller, not a general purpose CPU. Unlike a general purpose environment, a controller does usually operate on predefined structures with no or just a small amount of dynamic structures.




            *1 - Think for example an I/O subsystem where each pending request is defined with a control block holding the address of a data buffer and a pointer within. During an interrupt to send or receive a character X could point to the control block for the actual operation (so no need to move that block into a fixed address) and use the actual buffer pointer within the structure with [X+offset] in a single operation. Increment (or decrement) it the same way and finish the I/O routine.






            share|improve this answer


























              up vote
              3
              down vote













              The 6809 offers to combine indirect with either a fix extended (16 Bit) address or all indirect indexed modes. These modes are extreme useful for all kinds of linked list and/or table processing. essentially the basic for any operating system, thus simplifying and speeding up OS programming including any kind of list defined I/O. Especially the later is quite powerful in a concurent setup (*1). And that's where the 6809 was targeted at: modular multi-process environments. Such an environment is filled with dynamic structures that are build and managed at runtime, usually not holding much predefined addresses and structures.



              The 68HC12 was optimized as a sinclechip controller, not a general purpose CPU. Unlike a general purpose environment, a controller does usually operate on predefined structures with no or just a small amount of dynamic structures.




              *1 - Think for example an I/O subsystem where each pending request is defined with a control block holding the address of a data buffer and a pointer within. During an interrupt to send or receive a character X could point to the control block for the actual operation (so no need to move that block into a fixed address) and use the actual buffer pointer within the structure with [X+offset] in a single operation. Increment (or decrement) it the same way and finish the I/O routine.






              share|improve this answer
























                up vote
                3
                down vote










                up vote
                3
                down vote









                The 6809 offers to combine indirect with either a fix extended (16 Bit) address or all indirect indexed modes. These modes are extreme useful for all kinds of linked list and/or table processing. essentially the basic for any operating system, thus simplifying and speeding up OS programming including any kind of list defined I/O. Especially the later is quite powerful in a concurent setup (*1). And that's where the 6809 was targeted at: modular multi-process environments. Such an environment is filled with dynamic structures that are build and managed at runtime, usually not holding much predefined addresses and structures.



                The 68HC12 was optimized as a sinclechip controller, not a general purpose CPU. Unlike a general purpose environment, a controller does usually operate on predefined structures with no or just a small amount of dynamic structures.




                *1 - Think for example an I/O subsystem where each pending request is defined with a control block holding the address of a data buffer and a pointer within. During an interrupt to send or receive a character X could point to the control block for the actual operation (so no need to move that block into a fixed address) and use the actual buffer pointer within the structure with [X+offset] in a single operation. Increment (or decrement) it the same way and finish the I/O routine.






                share|improve this answer














                The 6809 offers to combine indirect with either a fix extended (16 Bit) address or all indirect indexed modes. These modes are extreme useful for all kinds of linked list and/or table processing. essentially the basic for any operating system, thus simplifying and speeding up OS programming including any kind of list defined I/O. Especially the later is quite powerful in a concurent setup (*1). And that's where the 6809 was targeted at: modular multi-process environments. Such an environment is filled with dynamic structures that are build and managed at runtime, usually not holding much predefined addresses and structures.



                The 68HC12 was optimized as a sinclechip controller, not a general purpose CPU. Unlike a general purpose environment, a controller does usually operate on predefined structures with no or just a small amount of dynamic structures.




                *1 - Think for example an I/O subsystem where each pending request is defined with a control block holding the address of a data buffer and a pointer within. During an interrupt to send or receive a character X could point to the control block for the actual operation (so no need to move that block into a fixed address) and use the actual buffer pointer within the structure with [X+offset] in a single operation. Increment (or decrement) it the same way and finish the I/O routine.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 2 hours ago

























                answered 2 hours ago









                Raffzahn

                38.4k486154




                38.4k486154




















                    Kevin Keith is a new contributor. Be nice, and check out our Code of Conduct.









                     

                    draft saved


                    draft discarded


















                    Kevin Keith is a new contributor. Be nice, and check out our Code of Conduct.












                    Kevin Keith is a new contributor. Be nice, and check out our Code of Conduct.











                    Kevin Keith is a new contributor. Be nice, and check out our Code of Conduct.













                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f8003%2fhow-useful-were-the-6809-6309s-indirect-addressing-modes%23new-answer', 'question_page');

                    );

                    Post as a guest













































































                    Popular posts from this blog

                    How to check contact read email or not when send email to Individual?

                    Displaying single band from multi-band raster using QGIS

                    How many registers does an x86_64 CPU actually have?