• Pac Man disassembly

    From chrpkwcz@gmail.com@21:1/5 to All on Sat Jan 28 13:51:38 2017
    As I understand the operation of Atari 800 cartridges, the initialization address for the cart is stored at $BFFE and $BFFF.

    In the Pac man .rom file, the address stored there is $A14E. The instruction at $A14e is a RTS.
    Doesn't the RTS instruction pull a return address from the stack?
    What does the system do here?

    Also, the start address for the cart is stored at $BFFA and $BFFB. The vector stored here is $A386. This seems to be the start of the executable code.

    TC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From chrpkwcz@gmail.com@21:1/5 to chrp...@gmail.com on Sun Jan 29 05:52:21 2017
    Nevermind! Got it!

    According to DeReAtari (Chapter 8), the initialization code is not JMP'd to, it is 'JSR'd to. Thus the RTS simply returns to the OS.

    Then, the OS performs a JMP to the startup vector stored at $BFFE/F.

    TC

    On Saturday, January 28, 2017 at 4:51:39 PM UTC-5, chrp...@gmail.com wrote:
    As I understand the operation of Atari 800 cartridges, the initialization address for the cart is stored at $BFFE and $BFFF.

    In the Pac man .rom file, the address stored there is $A14E. The instruction at
    $A14e is a RTS.
    Doesn't the RTS instruction pull a return address from the stack?
    What does the system do here?

    Also, the start address for the cart is stored at $BFFA and $BFFB. The vector stored here is $A386. This seems to be the start of the executable code.

    TC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)