So, this is present on IIe and IIc. Too lazy to test on IIgs right
now. But I wonder how it went unnoticed and unfixed for so much time.
Found where the stack gets reset on a IIGS. $FA62 is the start of the
RESET handler and within the first few bytes of a IIGS, the listing
starts like this
LDA #FB
TCS
which resets the stack pointer right off the bat at the start of the
RESET. No where in a IIe, IIc, and even a IIc+ is there any code to
reset the stack pointer in the RESET subroutine before it jumps into
the Applesoft cold start at $E000. Applesoft itself has been
basically untouched from the II+ up to the IIGS, and I am still
collecting and fixing errors in the applesoft code. I think I am
about up to 30 fixes so far and no entry points have been
compromised. There is a great article called Bandaids in one of the
Nibble magazines that have some great applesoft fixes. In some
places, the code is very inefficient but it makes space for some good
patches.
Maybe once I feel that the Applesoft code is fixed and runs the way I
believe it should have been, I might release it for anyone to use in
their emulators. That is if anyone writes applesoft programs any
more. Let me know if there is any interest there.