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.
|
|
|