Posted By
   Harry Potter on 2022-04-30 18:02:58
  |   WinVice xplus4 not registering cart made w/ cc65
  Hi!  I just started a port of AdvSkelVic65 to a C16 cartridge, and the cartridge is not running.  I am using cc65 and a custom cfg and crt0.s files.  The crto.s code follows:
  .segment	"STARTUP" 	.word	startup		;Cold start 	.word	$FEBC		;Warm start, default calls NMI exit. 	.byt	0, $43,$42,$4d ;magic to identify cartridge
  startup: ;Thi        sei        ldx #$ff        txs        lda $fb        pha        ;ldx #$02         ; cartrige 1 lo, kernal        sta $FDD2        jsr $FF84        ; Initialize I/O devices        jsr $FF87        ; RAM Test        pla        sta $FB        jsr $FF8A        ; Restore vectors to initial values        jsr $FF81        ; Initialize screen editor
  |   
 |  
Posted By
   BSZ on 2022-05-02 13:51:42
  |   Re: WinVice xplus4 not registering cart made w/ cc65
  If no one else writes it, I will: On plus/4, entry points are not just addresses, but jump instructions. This causes you to slip by 2 BYTE. Then the ROM ID BYTE if it is $00, it will not be called. Also, the warm-start address is wrong: this address ($FEBC) is I/O area in the plus/4. And no NMI either. I don't know about the rest.  
  |   
 |  
Posted By
   Harry Potter on 2022-05-02 15:09:36
  |   Re: WinVice xplus4 not registering cart made w/ cc65
  I solved those problems, but now, when the program waits for a key press, it stops responding.  It did this with both cgetc() and my CBMSimpleIO library's getkey() funcion.  printscr() works, though.
  |   
 |  
Posted By
   Harry Potter on 2022-05-03 06:40:37
  |   Re: WinVice xplus4 not registering cart made w/ cc65
  I found the problem: I forgot to reenable interrupts after setting up the kernal.
  |   
 |  
  |