first changes for atari5200 target

This commit is contained in:
Christian Groessler
2014-03-01 17:20:09 +01:00
parent 9c95306a69
commit c8f7f2f161
19 changed files with 608 additions and 218 deletions

View File

@@ -762,7 +762,15 @@ DOS = $0700
CARTCS = $BFFA ;##rev2## 2-byte cartridge coldstart address
CART = $BFFC ;##rev2## 1-byte cartridge present indicator
;0=Cart Exists
CARTFG = $BFFD ;##rev2## 1-byte cartridge flags
;D7 0=Not a Diagnostic Cart
; 1=Is a Diagnostic cart and control is
; given to cart before any OS is init.
;D2 0=Init but Do not Start Cart
; 1=Init and Start Cart
;D0 0=Do not boot disk
; 1=Boot Disk
CARTAD = $BFFE ;##rev2## 2-byte cartridge start vector
;-------------------------------------------------------------------------
@@ -770,83 +778,7 @@ CARTAD = $BFFE ;##rev2## 2-byte cartridge start vector
;-------------------------------------------------------------------------
GTIA = $D000 ;CTIA/GTIA area
; Read/Write Addresses
CONSOL = $D01F ;console switches and speaker control
; Read Addresses
M0PF = $D000 ;missile 0 and playfield collision
M1PF = $D001 ;missile 1 and playfield collision
M2PF = $D002 ;missile 2 and playfield collision
M3PF = $D003 ;missile 3 and playfield collision
P0PF = $D004 ;player 0 and playfield collision
P1PF = $D005 ;player 1 and playfield collision
P2PF = $D006 ;player 2 and playfield collision
P3PF = $D007 ;player 3 and playfield collision
M0PL = $D008 ;missile 0 and player collision
M1PL = $D009 ;missile 1 and player collision
M2PL = $D00A ;missile 2 and player collision
M3PL = $D00B ;missile 3 and player collision
P0PL = $D00C ;player 0 and player collision
P1PL = $D00D ;player 1 and player collision
P2PL = $D00E ;player 2 and player collision
P3PL = $D00F ;player 3 and player collision
TRIG0 = $D010 ;joystick trigger 0
TRIG1 = $D011 ;joystick trigger 1
TRIG2 = $D012 ;cartridge interlock
TRIG3 = $D013 ;ACMI module interlock
PAL = $D014 ;##rev2## PAL/NTSC indicator
; Write Addresses
HPOSP0 = $D000 ;player 0 horizontal position
HPOSP1 = $D001 ;player 1 horizontal position
HPOSP2 = $D002 ;player 2 horizontal position
HPOSP3 = $D003 ;player 3 horizontal position
HPOSM0 = $D004 ;missile 0 horizontal position
HPOSM1 = $D005 ;missile 1 horizontal position
HPOSM2 = $D006 ;missile 2 horizontal position
HPOSM3 = $D007 ;missile 3 horizontal position
SIZEP0 = $D008 ;player 0 size
SIZEP1 = $D009 ;player 1 size
SIZEP2 = $D00A ;player 2 size
SIZEP3 = $D00B ;player 3 size
SIZEM = $D00C ;missile sizes
GRAFP0 = $D00D ;player 0 graphics
GRAFP1 = $D00E ;player 1 graphics
GRAFP2 = $D00F ;player 2 graphics
GRAFP3 = $D010 ;player 3 graphics
GRAFM = $D011 ;missile graphics
COLPM0 = $D012 ;player-missile 0 color/luminance
COLPM1 = $D013 ;player-missile 1 color/luminance
COLPM2 = $D014 ;player-missile 2 color/luminance
COLPM3 = $D015 ;player-missile 3 color/luminance
COLPF0 = $D016 ;playfield 0 color/luminance
COLPF1 = $D017 ;playfield 1 color/luminance
COLPF2 = $D018 ;playfield 2 color/luminance
COLPF3 = $D019 ;playfield 3 color/luminance
COLBK = $D01A ;background color/luminance
PRIOR = $D01B ;priority select
VDELAY = $D01C ;vertical delay
GRACTL = $D01D ;graphic control
HITCLR = $D01E ;collision clear
.include "_gtia.inc"
;-------------------------------------------------------------------------
; PBI Address Equates
@@ -862,6 +794,20 @@ PDVI = $D1FF ;##rev2## parallel device IRQ status
PDVS = $D1FF ;##rev2## parallel device select
;-------------------------------------------------------------------------
; POKEY Address Equates
;-------------------------------------------------------------------------
POKEY = $D200 ;POKEY area
.include "_pokey.inc"
;-------------------------------------------------------------------------
; ANTIC Address Equates
;-------------------------------------------------------------------------
ANTIC = $D400 ;ANTIC area
.include "_antic.inc"
; PBI RAM Address Equates
PBIRAM = $D600 ;##rev2## parallel bus interface RAM area
@@ -874,52 +820,6 @@ PDIRQV = $D808 ;##rev2## parallel device IRQ vector
PDID2 = $D80B ;##rev2## parallel device ID 2
PDVV = $D80D ;##rev2## parallel device vector table
;-------------------------------------------------------------------------
; POKEY Address Equates
;-------------------------------------------------------------------------
POKEY = $D200 ;POKEY area
; Read Addresses
POT0 = $D200 ;potentiometer 0
POT1 = $D201 ;potentiometer 1
POT2 = $D202 ;potentiometer 2
POT3 = $D203 ;potentiometer 3
POT4 = $D204 ;potentiometer 4
POT5 = $D205 ;potentiometer 5
POT6 = $D206 ;potentiometer 6
POT7 = $D207 ;potentiometer 7
ALLPOT = $D208 ;potentiometer port status
KBCODE = $D209 ;keyboard code
RANDOM = $D20A ;random number generator
SERIN = $D20D ;serial port input
IRQST = $D20E ;IRQ interrupt status
SKSTAT = $D20F ;serial port and keyboard status
; Write Addresses
AUDF1 = $D200 ;channel 1 audio frequency
AUDC1 = $D201 ;channel 1 audio control
AUDF2 = $D202 ;channel 2 audio frequency
AUDC2 = $D203 ;channel 2 audio control
AUDF3 = $D204 ;channel 3 audio frequency
AUDC3 = $D205 ;channel 3 audio control
AUDF4 = $D206 ;channel 4 audio frequency
AUDC4 = $D207 ;channel 4 audio control
AUDCTL = $D208 ;audio control
STIMER = $D209 ;start timers
SKRES = $D20A ;reset SKSTAT status
POTGO = $D20B ;start potentiometer scan sequence
SEROUT = $D20D ;serial port output
IRQEN = $D20E ;IRQ interrupt enable
SKCTL = $D20F ;serial port and keyboard control
;-------------------------------------------------------------------------
; PIA Address Equates
;-------------------------------------------------------------------------
@@ -932,33 +832,6 @@ PORTB = $D301 ;port B direction register or memory management
PACTL = $D302 ;port A control
PBCTL = $D303 ;port B control
;-------------------------------------------------------------------------
; ANTIC Address Equates
;-------------------------------------------------------------------------
ANTIC = $D400 ;ANTIC area
; Read Addresses
VCOUNT = $D40B ;vertical line counter
PENH = $D40C ;light pen horizontal position
PENV = $D40D ;light pen vertical position
NMIST = $D40F ;NMI interrupt status
; Write Addresses
DMACTL = $D400 ;DMA control
CHACTL = $D401 ;character control
DLISTL = $D402 ;low display list address
DLISTH = $D403 ;high display list address
HSCROL = $D404 ;horizontal scroll
VSCROL = $D405 ;vertical scroll
PMBASE = $D407 ;player-missile base address
CHBASE = $D409 ;character base address
WSYNC = $D40A ;wait for HBLANK synchronization
NMIEN = $D40E ;NMI enable
NMIRES = $D40F ;NMI interrupt reset
;-------------------------------------------------------------------------
; Floating Point Package Address Equates
;-------------------------------------------------------------------------
@@ -1131,74 +1004,6 @@ MYDOS = 3
XDOS = 4
NODOS = 255
;-------------------------------------------------------------------------
; Antic opcodes
;-------------------------------------------------------------------------
; usage example:
;
; ScreenDL:
; .byte DL_BLK8
; .byte DL_BLK8
; .byte DL_CHR40x8x1 + DL_LMS + DL_DLI
; .word ScreenAlignment
; .byte DL_BLK1 + DL_DLI
; .byte DL_MAP320x1x1 + DL_LMS
; .word Screen
;
; .repeat 99
; .byte DL_MAP320x1x1
; .endrepeat
; .byte DL_MAP320x1x1 + DL_LMS
; .word Screen + 40 * 100 ; 100 lines a 40 byte, 'Screen' has to be aligned correctly!
; .repeat 92
; .byte DL_MAP320x1x1
; .endrepeat
;
; .byte DL_JVB
; absolute instructions (non mode lines)
DL_JMP = 1
DL_JVB = 65
DL_BLK1 = 0
DL_BLK2 = 16
DL_BLK3 = 32
DL_BLK4 = 48
DL_BLK5 = 64
DL_BLK6 = 80
DL_BLK7 = 96
DL_BLK8 = 112
; absolute instructions (mode lines)
DL_CHR40x8x1 = 2 ; monochrome, 40 character & 8 scanlines per mode line (GR. 0)
DL_CHR40x10x1 = 3 ; monochrome, 40 character & 10 scanlines per mode line
DL_CHR40x8x4 = 4 ; colour, 40 character & 8 scanlines per mode line (GR. 12)
DL_CHR40x16x4 = 5 ; colour, 40 character & 16 scanlines per mode line (GR. 13)
DL_CHR20x8x2 = 6 ; colour (duochrome per character), 20 character & 8 scanlines per mode line (GR. 1)
DL_CHR20x16x2 = 7 ; colour (duochrome per character), 20 character & 16 scanlines per mode line (GR. 2)
DL_MAP40x8x4 = 8 ; colour, 40 pixel & 8 scanlines per mode line (GR. 3)
DL_MAP80x4x2 = 9 ; 'duochrome', 80 pixel & 4 scanlines per mode line (GR.4)
DL_MAP80x4x4 = 10 ; colour, 80 pixel & 4 scanlines per mode line (GR.5)
DL_MAP160x2x2 = 11 ; 'duochrome', 160 pixel & 2 scanlines per mode line (GR.6)
DL_MAP160x1x2 = 12 ; 'duochrome', 160 pixel & 1 scanline per mode line (GR.14)
DL_MAP160x2x4 = 13 ; 4 colours, 160 pixel & 2 scanlines per mode line (GR.7)
DL_MAP160x1x4 = 14 ; 4 colours, 160 pixel & 1 scanline per mode line (GR.15)
DL_MAP320x1x1 = 15 ; monochrome, 320 pixel & 1 scanline per mode line (GR.8)
; modifiers on mode lines...
DL_HSCROL = 16
DL_VSCROL = 32
DL_LMS = 64
; general modifier...
DL_DLI = 128
;-------------------------------------------------------------------------
; End of atari.inc
;-------------------------------------------------------------------------