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