[Coco] Writing a program for a cartridge

Barry Nelson barry.nelson at amobiledevice.com
Mon Jan 25 04:32:37 EST 2016


 Ok, I'm trying to write a program that will manipulate some hardware registers in a cartridge and change the rom that is mapped at $C000 and then cold start the computer once the new rom is mapped in. This is what is haveā€¦

        ORG        $C000
START   ORCC       #$50   Disable interrupts
        LEAX       TORAM,PCR 
        LDY        $3000
LOOP    CMPX       ENDRT  Copy code at TORAM into ram
        BEQ        EXIT
        LDA        ,X+
        STA        ,Y+
        BRA        LOOP
EXIT    JMP        $3000  Jump to copied code
TORAM   ORCC       #$50   Disable interrupts
        CLRA
        STA        >$0071  Clear flag to indicate cold start
        STA        $FF58   Clear cart interrupt flag, This disables the CART line
        STA        $FF5A   Clear bank # high bits for selecting the rom bank #
        LDA        #4
        STA        $FF59   Set bank # to 4
        STA        $FFDE   Turn on the ROM in the memory map
        ANDCC      #$AF   Enable interrupts
        JMP        [$FFFE] Do restart
ENDRT   EQU        *
        END        START

If I disable the cartridge autostart and type the commands below from basic it works, but the above code does not.

POKE &HFF58,0:POKE &HFF59,4:POKE &HFF5A,0:POKE &HFFDE,0:POKE &H71,0:EXEC PEEK(&HFFFE)*256+PEEK(&HFFFF)

> msmcdoug msmcdoug at iinet.net.au 
> Mon Jan 25 03:46:15 EST 2016
> 
> Might be easier if you described the issues you're having. 
> 
> 
> Sent from my Samsung device
> 
> -------- Original message --------
> From: Barry Nelson <barry.nelson at amobiledevice.com> 
> Date: 25/01/2016  6:59 pm  (GMT+10:00) 
> To: coco at maltedmedia.com 
> Subject: [Coco] Writing a program for a cartridge 
> 
> I am trying to write a cartridge based program and I am having some issues. I want to make sure I understand the cartridge startup sequence. As I understand it, if the cart pin is enabled, the code in the cartridge is executed starting at $C000. Is that correct? Is there anything else I should know about writing code to run from a cartridge?
> 
> -- 
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco



More information about the Coco mailing list