??? 05/22/06 14:31 Read: times |
#116836 - PLM/51 addressing Responding to: ???'s previous message |
Hi Jan: Thanks for jumping in. And as you suspected the declaration did have something to do with it. I discovered that if I hard coded the physical addresses within my write_output code everything worked as expected... /* addressing based from cards address */ if (port < 3) then valveaddr = (0c200h) + port; else valveaddr = (0c300h) + (port MOD 3); This showed that my arithmetic was ok but oddly something else was going on here. The problem was that my PL/M based pointer declared in my set_output procedure was not based on auxiliary memory as in the declaration you pointed out. The code fix was within set_output by declaring ptr as follows... declare valve based ptr byte auxiliary; Since in PL/M all memory declarations default to Main the ptr reference in set_output was incorrect. Live and learn. Can't blame PL/M. ;-) |
Topic | Author | Date |
PLM/51 addressing | 01/01/70 00:00 | |
Why ? | 01/01/70 00:00 | |
Why? | 01/01/70 00:00 | |
PLM/51 addressing | 01/01/70 00:00 | |
Looks like Pascal | 01/01/70 00:00 | |
PLM/51 addressing | 01/01/70 00:00 | |
Extend - not port | 01/01/70 00:00 | |
PLM/51 addressing | 01/01/70 00:00 | |
Ah... | 01/01/70 00:00 | |
a blind shot | 01/01/70 00:00 | |
PLM/51 addressing![]() | 01/01/70 00:00 |