-
I wound up redoing the transliteration I'd been working on, and have about 3/4 of the code ready for optimization and final rewrite.
What remains may leave me bald by the time I finish.
I do now see that I will have to have at least four arrays - two based on constant tables that were in the original ROM (one 19-character x 1 row and the varLoad table of constants - I've defined it as a 26 x 5 array), one (maybe two) for the 8-digit numeric readout, and one for a specific section of RAM as there are multiple operations involved using the index register.
-
1 Attachment(s)
So, I've been working on the interrupt code and have run into an error I just can't see for some reason and it doesn't manifest if I try and cut it down and then force the error so I've just attached the whole section as is.
If you try and compile it as it lies, it will complain about an overflow in one label (which I am aware of; it will be replaced by an array pointer soon, so I'm not worried - for the moment)
Then the other error will be that the label NMI02 is referenced but not defined.
That's where I'm having a problem.
That line is currently commented out.
If I take off the comment flag and make the NMI02 label live, then the compiler just flips out and belches out a LONG list of 'undefined variable' errors.
-
Those are undefined reference errors!
Like
foo.cpp:(.text+0x89c): undefined reference to `ram_080'
It's because you have a main(), and the program compiled successfully.
If you want to verify that it actually compiles as a single file, without trying to make an executable out of it, do this.
Code:
g++ -c interrupt2.cpp
-
(I fixed it somehow... I wound up doing a line by line comparison with the original 6801 disassembly and made a bunch of clarifications and corrections, tried again, and the compiler was in a better mood. Would have liked to know what I did so I know not to do it again!)