2015-07-12 12:27:24 +00:00
|
|
|
;
|
|
|
|
; PCE definitions. By Groepaz/Hitmem.
|
|
|
|
;
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-08-29 13:58:57 +00:00
|
|
|
; FIXME: screen dimensions my change according to selected video mode
|
|
|
|
screenrows = (224/8)
|
|
|
|
charsperline = 61
|
|
|
|
|
|
|
|
CH_HLINE = 1
|
|
|
|
CH_VLINE = 2
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-09-07 10:55:36 +00:00
|
|
|
; huc6270 - Video Display Controller (VDC)
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-08-29 13:58:57 +00:00
|
|
|
VDC_MAWR = 0 ; Memory Address Write Register
|
|
|
|
VDC_MARR = 1 ; Memory Address Read Register
|
2015-09-07 10:55:36 +00:00
|
|
|
VDC_VWR = 2 ; VRAM Write Register (write only)
|
|
|
|
VDC_VRR = 2 ; VRAM Read Register (read only)
|
|
|
|
VDC_UNK03 = 3 ; (unknown)
|
|
|
|
VDC_UNK04 = 4 ; (unknown)
|
|
|
|
VDC_CR = 5 ; Control Register
|
|
|
|
VDC_RCR = 6 ; Raster Counter Register
|
|
|
|
VDC_BXR = 7 ; Background X-Scroll Register
|
|
|
|
VDC_BYR = 8 ; Background Y-Scroll Register
|
|
|
|
VDC_MWR = 9 ; Memory-access Width Register
|
|
|
|
VDC_HSR = 10 ; Horizontal Sync Register
|
|
|
|
VDC_HDR = 11 ; Horizontal Display Register
|
|
|
|
VDC_VPR = 12 ; Vertical synchronous register
|
|
|
|
VDC_VDW = 13 ; Vertical display register
|
|
|
|
VDC_VCR = 14 ; Vertical display END position register
|
|
|
|
VDC_DCR = 15 ; (DMA) Control Register
|
|
|
|
VDC_SOUR = 16 ; (DMA) Source Register
|
|
|
|
VDC_DESR = 17 ; (DMA) Destination Register
|
|
|
|
VDC_LENR = 18 ; (DMA) Length Register
|
|
|
|
VDC_SATB = 19 ; Sprite Attribute Table
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-07-15 11:18:12 +00:00
|
|
|
; VDC port
|
|
|
|
; Note: absolute addressing mode must be used when writing to this port
|
|
|
|
|
2015-07-12 12:27:24 +00:00
|
|
|
VDC_CTRL = $0000
|
|
|
|
VDC_DATA_LO = $0002
|
|
|
|
VDC_DATA_HI = $0003
|
2014-11-29 13:18:48 +00:00
|
|
|
|
|
|
|
; huc6260 - Video Color Encoder (vce)
|
|
|
|
|
|
|
|
; The DAC has a palette of 512 colours.
|
|
|
|
; bitmap of the palette data is this: 0000000gggrrrbbb.
|
|
|
|
; You can read and write the DAC-registers.
|
|
|
|
|
2015-08-29 13:58:57 +00:00
|
|
|
VCE = $0400 ; base
|
2015-07-14 15:22:47 +00:00
|
|
|
|
2015-08-29 13:58:57 +00:00
|
|
|
VCE_CTRL = $0400 ; write$00 to reset
|
|
|
|
VCE_ADDR_LO = $0402 ; LSB of byte offset into palette
|
|
|
|
VCE_ADDR_HI = $0403 ; MSB of byte offset into palette
|
|
|
|
VCE_DATA_LO = $0404 ; LSB of 16-bit palette data
|
|
|
|
VCE_DATA_HI = $0405 ; MSB of 16-bit palette data
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-07-14 15:22:47 +00:00
|
|
|
; programmable sound generator (PSG)
|
|
|
|
|
2015-08-29 13:58:57 +00:00
|
|
|
PSG = $0800 ; base
|
2015-07-14 15:22:47 +00:00
|
|
|
|
2015-09-04 12:14:17 +00:00
|
|
|
PSG_CHAN_SELECT = $0800
|
|
|
|
PSG_GLOBAL_PAN = $0801
|
|
|
|
PSG_FREQ_LO = $0802
|
|
|
|
PSG_FREQ_HI = $0803
|
|
|
|
PSG_CHAN_CTRL = $0804
|
|
|
|
PSG_CHAN_PAN = $0805
|
|
|
|
PSG_CHAN_DATA = $0806
|
|
|
|
PSG_NOISE = $0807
|
|
|
|
PSG_LFO_FREQ = $0808
|
|
|
|
PSG_LFO_CTRL = $0809
|
|
|
|
|
2015-07-14 15:22:47 +00:00
|
|
|
; timer
|
|
|
|
|
2015-08-29 13:58:57 +00:00
|
|
|
TIMER = $0c00 ; base
|
2015-07-14 15:22:47 +00:00
|
|
|
|
2015-07-12 12:27:24 +00:00
|
|
|
TIMER_COUNT = $0c00
|
|
|
|
TIMER_CTRL = $0c01
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-07-12 12:27:24 +00:00
|
|
|
JOY_CTRL = $1000
|
2014-11-29 13:18:48 +00:00
|
|
|
|
2015-07-12 12:27:24 +00:00
|
|
|
IRQ_MASK = $1402
|
|
|
|
IRQ_STATUS = $1403
|
2014-11-29 13:18:48 +00:00
|
|
|
|
|
|
|
CDR_MEM_DISABLE = $1803
|
2014-11-29 14:35:20 +00:00
|
|
|
CDR_MEM_ENABLE = $1807
|
|
|
|
|
2015-07-12 12:27:24 +00:00
|
|
|
; Write VDC register
|
|
|
|
.macro VREG arg1,arg2
|
|
|
|
st0 #arg1
|
|
|
|
st1 #<(arg2)
|
|
|
|
st2 #>(arg2)
|
|
|
|
.endmacro
|