Zaczalem troche eksperymentowac z cartridgami, i od razu trafilem na mur.
Kompiluje ponizszy kod. Ma zmieniac polozenie DL i polozenie pamieci ekranu, a potem wyswietlac na ekranie 1 cyfre.
DL jest standardowy.
Jak odpalam XEX'a to jest ok. Widze ekran i moja cyferke na srodku.
A potem robie 8kB plik ROM, umieszczam moj program (z pominieciem 6 bajtow naglowka) na poczatku, na koncu daje 6 bajtow inicjujacyh carta - wskazujacych na $A000.
Podpinam taki "cartridge" pod emulator 800win (jako "standard 8kB cartridge") i widze w monitorze, ze program sie wykonal: w 560,561 mam $A021 w 88,89 mam $4100.
W pamieci ekranu (pod adresem $4114) mam ten swoj znaczek (cyfre 5).
Tyle ze ekran jest smoliscie czarny.
Dlaczego?
org $A000
dliadr equ 560
obr equ 88
lic equ $600
LDA #<DL
STA dliadr
LDA #>DL
STA dliadr+1
LDA #$00
STA obr
LDA #$41
STA obr+1
lda #20
sta lic
lda #21
ldy lic
sta (obr),y
petla
jmp petla
DL dta $70,$70,$70,$42,$00,$41,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02
dta $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$41,$20,$BC,$2B,$2B,$2B,$2B
dta $2B,$2A,$2A,$2A,$2A,$35,$2A,$35