From 88e7b5776a07d01b09a3743b7e029a6697ef7caf Mon Sep 17 00:00:00 2001 From: mrdudz Date: Sun, 22 Nov 2015 19:02:47 +0100 Subject: [PATCH] some more fiddling --- asminc/gamate.inc | 2 +- cfg/gamate.cfg | 11 ++++++++++- libsrc/gamate/crt0.s | 17 ++++++++++++++++- src/common/target.c | 2 +- testcode/lib/gamate/Makefile | 22 +++++++++++++++++++++- testcode/lib/gamate/audiotest.s | 9 +++------ testcode/lib/gamate/lcdtest.s | 14 +++++++------- 7 files changed, 59 insertions(+), 18 deletions(-) diff --git a/asminc/gamate.inc b/asminc/gamate.inc index bce86ead9..fda288e5f 100644 --- a/asminc/gamate.inc +++ b/asminc/gamate.inc @@ -1,6 +1,6 @@ ; gamate symbols -.p02 +;.p02 LCD_WIDTH = 160 LCD_HEIGHT = 152 diff --git a/cfg/gamate.cfg b/cfg/gamate.cfg index 5eac46c4b..c6f2eed7d 100644 --- a/cfg/gamate.cfg +++ b/cfg/gamate.cfg @@ -4,20 +4,29 @@ # ld65 config file # ld65 --config gamate.cfg -o .bin .o +SYMBOLS { + __STARTUP__: type = import; + __STACKSIZE__: type = weak, value = $0300; # 3 pages stack +} + MEMORY { ZP: start = $0000, size = $100; CPUSTACK: start = $0100, size =$100; RAM: start = $0200, size = $200, define = yes; # ROM: start = $6000, size = $8000, fill = yes, fillval = $ff, file = %O, define = yes; +# STARTUP: file = %O, define = yes, start = $6000, size = $29, fill = yes; +# ROM: start = $6000 + __STARTUP_SIZE__, size = $8000 - __STARTUP_SIZE__, fill = yes, fillval = $ff, file = %O, define = yes; +# WARNING: fill value must be $00 else it will no more work ROM: start = $6000, size = $8000, fill = yes, fillval = $00, file = %O, define = yes; } SEGMENTS { + ZEROPAGE: load = ZP, type = zp, define = yes; + STARTUP: load = ROM, type = ro, define=yes; CODE: load = ROM, type = ro, define=yes; RODATA: load = ROM, type = ro, define=yes; DATA: load = ROM, run=RAM, type = rw, define = yes; BSS: load = RAM, type = bss, define = yes; - ZEROPAGE: load = ZP, type = zp, define = yes; } FEATURES { diff --git a/libsrc/gamate/crt0.s b/libsrc/gamate/crt0.s index 8d1c8b69c..66ff8054c 100644 --- a/libsrc/gamate/crt0.s +++ b/libsrc/gamate/crt0.s @@ -1 +1,16 @@ - + + .export __STARTUP__ : absolute = 1 ; Mark as startup + + .import reset, irq, nmi ; FIXME + + + .segment "STARTUP" + +checksum: + .word 0 + .byte 1, 0, 1 + .byte "COPYRIGHT BIT CORPORATION", 0, $ff + jmp reset + jmp nmi + jmp irq + diff --git a/src/common/target.c b/src/common/target.c index e89010123..ebd05cbf1 100644 --- a/src/common/target.c +++ b/src/common/target.c @@ -205,7 +205,7 @@ static const TargetProperties PropertyTable[TGT_COUNT] = { { "sim6502", CPU_6502, BINFMT_BINARY, CTNone }, { "sim65c02", CPU_65C02, BINFMT_BINARY, CTNone }, { "pce", CPU_HUC6280, BINFMT_BINARY, CTNone }, - { "gamate", CPU_6502, BINFMT_BINARY, CTNone }, + { "gamate", CPU_65C02, BINFMT_BINARY, CTNone }, }; /* Target system */ diff --git a/testcode/lib/gamate/Makefile b/testcode/lib/gamate/Makefile index 8d1c8b69c..943f6c195 100644 --- a/testcode/lib/gamate/Makefile +++ b/testcode/lib/gamate/Makefile @@ -1 +1,21 @@ - + +all: audiotest.bin lcdtest.bin + +audiotest.bin: audiotest.s +# ../../../bin/ca65 -t gamate -o audiotest.o audiotest.s +# ../../../bin/ld65 -t gamate -o audiotest.bin audiotest.o + ../../../bin/cl65 -t gamate -o audiotest.bin audiotest.s + +lcdtest.bin: lcdtest.s +# ../../../bin/ca65 -t gamate -o lcdtest.o lcdtest.s +# ../../../bin/ld65 -t gamate -o lcdtest.bin lcdtest.o + ../../../bin/cl65 -l bla.lst -t gamate -o lcdtest.bin lcdtest.s + +test1: lcdtest.bin + cd /home/groepaz/Desktop/mame/winmess/ && wine mess.exe gamate -window -skip_gameinfo -cart /home/groepaz/Desktop/cc65/github/cc65/testcode/lib/gamate/lcdtest.bin +test2: audiotest.bin + cd /home/groepaz/Desktop/mame/winmess/ && wine mess.exe gamate -window -skip_gameinfo -cart /home/groepaz/Desktop/cc65/github/cc65/testcode/lib/gamate/audiotest.bin + +clean: + rm -f lcdtest.o audiotest.o + rm -f lcdtest.bin audiotest.bin diff --git a/testcode/lib/gamate/audiotest.s b/testcode/lib/gamate/audiotest.s index 6d9670bca..a5b2143ce 100644 --- a/testcode/lib/gamate/audiotest.s +++ b/testcode/lib/gamate/audiotest.s @@ -1,3 +1,6 @@ + + .export reset, irq, nmi ; FIXME + .include "gamate.inc" .zeropage addr: .word 0 @@ -25,12 +28,6 @@ xpos: .byte 0 ypos: .byte 0 .code -checksum: .word 0 - .byte 1,0,1 - .byte "COPYRIGHT BIT CORPORATION", 0, $ff - jmp reset - jmp nmi - jmp irq chars: .incbin "cga2.chr" diff --git a/testcode/lib/gamate/lcdtest.s b/testcode/lib/gamate/lcdtest.s index 506016aad..b4798c677 100644 --- a/testcode/lib/gamate/lcdtest.s +++ b/testcode/lib/gamate/lcdtest.s @@ -1,4 +1,9 @@ + + .export reset, irq, nmi ; FIXME + + .include "gamate.inc" + .zeropage addr: .word 0 psa: .word 0 @@ -17,12 +22,6 @@ xpos: .byte 0 ypos: .byte 0 .code -checksum: .word 0 - .byte 1,0,1 - .byte "COPYRIGHT BIT CORPORATION", 0, $ff - jmp reset - jmp nmi - jmp irq chars: .incbin "cga2.chr" @@ -37,6 +36,7 @@ ydesc: .byte "0123456789ABCDEFGHIJKLMNOPQRSTUV", 0 rts .endproc + .proc irq inc irq_count lda count @@ -88,7 +88,6 @@ ydesc: .byte "0123456789ABCDEFGHIJKLMNOPQRSTUV", 0 sty lcd_y jsr printstringy - lda #format ldy #8 @@ -177,6 +176,7 @@ ydesc: .byte "0123456789ABCDEFGHIJKLMNOPQRSTUV", 0 lda #'V' jsr printsign + lda #1 sta nmi_enable -- 2.39.5