せっかくなのでmk2のゲームも32KBカートリッジ化してみました。
---------------- 0000 3FFF BIOS ---------------- 4000 6FFF BIOS 7000 7FFF G-BASIC2 ---------------- 8000 8FFF LOADER ---------------- 9000 BFFF G-BASIC1 ---------------- F000 F0FF CPU RAM ----------------
フラッシュメモリカートリッジ用のローダーで読み込みました。
http://www.geocities.jp/parallel_computer_inc/cart.html
#include <libti99/vdp.h> void main() { /* VDP SETUP */ int x = set_bitmap_raw(VDP_SPR_8x8); VDP_SET_REGISTER(VDP_REG_MODE1, x); VDP_SET_REGISTER(VDP_REG_SIT, 7); // 1C00 /* VDP_SET_REGISTER(VDP_REG_CT, 0x80); // 2000 VDP_SET_REGISTER(VDP_REG_PDT, 0); // 0000 VDP_SET_REGISTER(VDP_REG_SDT, 3); // 1800 */ VDP_SET_REGISTER(VDP_REG_SAL,0x3E); // 1F00 /* RESTORE VRAM */ vdpmemcpy(0x0000, (unsigned char*)0x9000, 0x3000); vdpmemcpy(0x3000, (unsigned char*)0x7000, 0x1000); /* RETURN TO G-BASIC */ __asm__("lwpi >F0F0"); __asm__("li r0,>8F00"); __asm__("li r1,>00F0"); __asm__("li r2,>F000"); __asm__("movb *r0+,*r2+"); __asm__("dec r1"); __asm__("joc >0FFA"); __asm__("lwpi >F0A0"); __asm__("li r0,>8FF0"); __asm__("li r1,>0010"); __asm__("li r2,>F0F0"); __asm__("movb *r0+,*r2+"); __asm__("dec r1"); __asm__("joc >0FFA"); __asm__("limi >0003"); __asm__("b @>0F8C"); }