Mam problem z uruchomieniem prostego kodu z użyciem formatu Cart'a. Asembler MADS. Kompiluje mi się jako 16KB .OBX, uruchomiony w Altirra wyskakuje okno wyboru typu Cartridge'a - wybieram 16K i na tym się kończy i nic nie działa.
Dopiero zaczynam cokolwiek na ATARI tak więc prosze o wyrozumiałość ;)
- Co jest źle w kodzie?
- Mam ustawiony CART TYPE 1 ale kompiluje się jako 16KB, dlaczego?
- Gdy mamy ROM wielkości 8KB zaczyna się od 8000 czy A000 ?
- Proszę o wszelkie info o formacie CAR, czy jak chcę ROM wielkosci 16KB to automaycznie wyłączy się BASIC czy muszę to zrobić dodatkowo.
OPT O+ H- F+ C- ?+
CART_CRC = 0
CART_TYPE = 1 ; Standard 8KB Cartridge.
.BYTE 'CART'
.BYTE [CART_TYPE >> 24] & $FF
.BYTE [CART_TYPE >> 16] & $FF
.BYTE [CART_TYPE >> 8] & $FF
.BYTE [CART_TYPE >> 0] & $FF
.BYTE [CART_CRC >> 24] & $FF
.BYTE [CART_CRC >> 16] & $FF
.BYTE [CART_CRC >> 8] & $FF
.BYTE [CART_CRC >> 0] & $FF
.BYTE $00
.BYTE $00
.BYTE $00
.BYTE $00
;#########################
SDMCTL = $022F
SDLSTL = $0230 ; Display List starting address.
CHBAS = $02f4 ; CHaRacter Base Register.
COLOR0 = $02c4 ; Color for %01.
COLOR1 = $02c5 ; Color for %10.
COLOR2 = $02c6 ; Color for %11 (Normal).
COLOR3 = $02c7 ; Color for %11 (Inverse).
COLOR4 = $02c8 ; Color for %00 (BGR).
Charset = $3C00 ; CHaRacter Set.
Screen = $4000 ; Screen Buffer.
Blank8 = $70 ; 8 Blank Lines.
LMS = $40 ; Load Memory Scan.
JVB = $41 ; Jump while VBlank.
Antic2 = 2 ; Antic mode 2.
Antic5 = 5 ; Antic mode 5.
Gray_Medium = $06
Gray_Light = $0A
Green = $c2
Brown = $22
Black = $00
;#########################
ORG $8000
;#########################
Start:
LDA #%00100001
STA SDMCTL
MWA #DList SDLSTL
MVA #>Charset CHBAS
LDX #$00
Loop:
MVA Chars,x Charset+8,x ; Set-Up CHaRacter Set.
INX
CPX #16
BNE Loop
; Change Colors.
mva #Gray_Medium COLOR0 ; %01.
mva #Gray_Light COLOR1 ; %10.
mva #green COLOR2 ; %11.
mva #brown COLOR3 ; %11 (Inverse).
mva #black COLOR4 ; %00.
LDY #$00
Loop2:
MVA Scene,y Screen,y
INY
CPY #40
BNE Loop2
JMP * ; Forever Loop.
DList:
.BYTE Blank8, Blank8, Blank8
.BYTE Antic5 + LMS, <Screen, >Screen
.BYTE Antic5, Antic5, Antic5, Antic5, Antic5, Antic5
.BYTE Antic5, Antic5, Antic5, Antic5, Antic5
.BYTE JVB, <DList, >DList
Scene:
.BYTE 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
Chars:
.BYTE %10101010
.BYTE %10100101
.BYTE %01010101
.BYTE %00000000
.BYTE %01010010
.BYTE %01010010
.BYTE %01010010
.BYTE %00000000
.BYTE %01001010
.BYTE %01001010
.BYTE %00001001
.BYTE %00000000
.BYTE %10101001
.BYTE %10010101
.BYTE %01010101
.BYTE %00000000
ORG $BFFA
.WORD $FFFF
.BYTE $00
.BYTE %00000000
.WORD Start
end