TVボーイとMC-10の大きな違いは割り込みです。MC-10のBASICでは割り込みアドレスが固定されており、しかもビデオメモリと被るため利用できません。
SCI TOF OCF ICF IRQ1 SWI NMI FAD6 FAD6 FAD7 FAD6 FAC5 FAD6 FAD6 4200 4203 4206 4209 420C 420F 4212
TVボーイ($F000-$FFFF)のゲームをMC-10($8000-$8FFF)にリロケートして、割り込み処理が必要な部分はアドレスがずれないように、固有ルーチン($7000-$7FFF)へジャンプさせます。
; ; File: frogger10.c10 ; org $7000 jmp START WAIT: ldaa $7F jsr WAIT_LOOP rts WAIT_LOOP: deca nop ;DUMMY nop ;DUMMY nop ;DUMMY nop ;DUMMY nop ;DUMMY nop ;DUMMY bne WAIT_LOOP rts SHOT: ldaa #$80 coma ;flip the bits staa $0002 ;store in keystrobe ldaa $BFFF ;get the key group bita #$08 beq keySPC ldaa #%11111110 ; check CTRL key staa 2 ldaa 3 bita #%00000010 beq keyCTRL ldaa #$FF rts INPUT: ldaa #$80 coma ;flip the bits staa $0002 ;store in keystrobe ldaa $BFFF ;get the key group bita #$04 beq keyW ldaa #$04 coma ;flip the bits staa $0002 ;store in keystrobe ldaa $BFFF ;get the key group bita #$08 beq keyZ ldaa #$02 coma ;flip the bits staa $0002 ;store in keystrobe ldaa $BFFF ;get the key group bita #$01 beq keyA ldaa #$08 coma ;flip the bits staa $0002 ;store in keystrobe ldaa $BFFF ;get the key group bita #$04 beq keyS ldaa #$FF rts keyCTRL: ldaa #$FB rts keySPC: ldaa #$FD rts keyW: ldaa #$FD rts keyZ: ldaa #$FB rts keyA: ldaa #$F7 rts keyS: ldaa #$EF rts ; org $8000 START: clra staa $0001 staa $0017 coma staa $0005 ; ldaa #$7F ldaa #$FF staa $0000