Login
Back to forumSee the full topicGo to last reply

Posted By

TLC
on 2010-09-04
16:21:32
 Re: Are You A Maze Maniac?

Sadly, it does crash on the real machine indeed (just tested). The title part starts up, then (having pressed space) the screen blanks as intended (for a second run of unpacking stuff), then nothing happens, the game menu never comes up. It did run well in Yape 0.86 in highest compatibility mode with emulating a "real" Plus/4 configuration (with ACIA and stuff).

Edit: In the main part, right after the first initializations, the code looks like this:

.1024 JSR $FFD2
.1027 TSX
.1028 ??? (---> $FF )
.1029 CMP ($45),Y (---> D1 45)
.102B LDA #$00

This looks like some bug (something might have overwritten the code).

$FF is an illegal opcode (X-indexed absolute ISC, ie. increment, then subtract from accu). X gets initialized from S, which is in turn a function of how SP is initialized upon reset, + whatever happens until the code gets here. I'd suggest that on the real machine, this single operand punches something betwen $45D1-$46D0 (that looks well like some code anyway), which in turn causes the stuff to crash.

(I might possibly be wrong in some details. I obviously didn't verify if SP really differs in Yape and the real machine at this particular point. At least, the unpacked program started up well even on the real machine, even though I left this seemingly suspicious part in the code -- which shows that the problem depends on how things get initialized before the code is started).

Edit (2):

The problem now looks less likely to be caused by accidentally overwriting something from $45D1 and on, rather than not saving SP (as probably originally intended), as $45D1 later would be read out and the value transferred back to SP).



Back to top


Copyright © Plus/4 World Team, 2001-2024