Salve ragazzi,
ero curioso di fare qualche esperimento di con le cartucce.
Ho reperito su codebase64 un po di esempi ed ho compilato ed eseguito con successo su vice:
cartconv -t normal -name "cartridge name" -i cart.prg -o cart.crt
* = $8000
.word coldstart ; coldstart vector
.word warmstart ; warmstart vector
.byte $C3,$C2,$CD,$38,$30 ; "CBM8O". Autostart string
coldstart
sei
stx $d016
jsr $fda3 ;Prepare IRQ
jsr $fd50 ;Init memory. Rewrite this routine to speed up boot process.
jsr $fd15 ;Init I/O
jsr $ff5b ;Init video
cli
warmstart
; Insert your code here
inc $d020
jmp *-3
* = $9fff ; fill up to -$9fff (or $bfff if 16K)
.byte 0
Leggevo che la gestione dei banchi mappati su $8000/$9fff si può fare modificando opportunamente $DE00 ma non ho trovato delle specifiche vere e proprie od esempi di codice.
Vorrei aggiungere al codice postato il meccanismo del bank switching, cercando di documentare un attimo le tipologie di cartuccia disponibili.
Grazie a tutti!