On Saturday, August 3, 2019 at 3:58:50 AM UTC-4,
denisb...@gmail.com wrote:
>
> Now, surely it is loading the first character, comparing it to zero and then exiting. Shouldn't the BNE be BEQ?
On Saturday, August 3, 2019 at 8:14:15 AM UTC-4, Antoine Vignau wrote:
> First is beq, second is bne. from memory, X is preserved so we are supposed to be good,
> av
That is indeed the answer! When I first typed in the code, it appears that I typed BNE instead of BEQ after loading a character, before sending it to COUT.
When I typed it into Merlin 8, I got it right, and that's why it worked then.
When I typed it again for Merlin 16 (not 16+) I made the same error, or maybe I just copied the original Merlin 16+ source file, so the error was there.
I changed the first BNE to BEQ in Merlin 16+ and it worked, but only after quitting Merlin 16+, running BASIC.SYSTEM, and running the binary from there using -AV1. It DID NOT work when running from the Merlin 16+ Main Menu Disk Command line, using -AV1.
Further investigation shows that it will run from the Merlin 16 (not+) or Merlin 8 Main Menu Disk Command line.
So, after more study of the Merlin 16+ Supplement manual, I found a discussion about EXE files on page 28 saying:
"When an EXE file is launched from the Main Menu disk command, or by the Command Box as a shell command, it is executed in full 16=bit mode (as per Apple Protocol)...
As I read further, it started getting into things I don't quite understand yet.
So, is there a way to launch the assembled 8-bit file as an 8-bit program without leaving Merlin and starting Basic System, like it appears that Merlin 16(not+) does? That seems like a major time waster when developing an 8-bit program.
Thanks again!
-Dave