Akalabeth Preamble Files

27 thoughts
last posted March 30, 2014, 10:53 p.m.

5 earlier thoughts

0

$03EA is a DOS routine (which calls $A851) to reconnect the DOS intercepts to the keyboard and screen streams.

The rest of the code above seems to check if the right memory bank is selected.

If the value at $E000 is #$4C (which means Applesoft BASIC is loaded) it will branch to $3CB (what I've labeled GO).

Otherwise it will write to $C081 and branch back to check $E000 again. If it fails to match #$4C it will write to $C080 before finally falling through to GO (because X is 0).

So I believe this will leave the memory bank switching in the desired state then jump to $D412 after setting the X register to #$14.

I'm not sure why there is the 02 in 3CA unless I've messed up my disassembly or if it's just necessary to keep certain addresses in the same place.

$3F2 is the reset vector. So if the RESET key is pressed, this code at $3B8 will be run.

$3F4 is just a check byte ($3F3 XOR #$A5) that is tested before the reset vector is called.

21 later thoughts