;******************************************************************************
;* SuperFamicom/SuperNintendo HardwareRegister (PPU & CPU) Assembler Includes *
;* Taken From The Original Development Documantation -> (NOA-SFX-90/04/01/90) *
;* Written By Jean Luc Picard of ExMachina -> 20.3.1993 (CygnusED/TabSize 10) *
;* Watch out for the soon comming PPU & CPU Register Document from ExMachina. *
;******************************************************************************

;------------------------------Super FamiCom Registers (PPU)-------------------
IniDisp	Equ	$2100	;Initial Settings for Screen
ObjSel	Equ	$2101	;Object Size & Object Data Area Designation
OamAddL	Equ	$2102	;-Address for Acessing OAM 
OamAddH	Equ	$2103	;-(Object Attribute Memory)
Oam_Data	Equ	$2104	;Data For OAM Write
BGmode	Equ	$2105	;BG Mode & Character Size Settings
Mosaic	Equ	$2106	;Size & Screen Designation for Mosaic Display
BG1Sc	Equ	$2107	;-\
BG2Sc	Equ	$2108	;  \ Address For Storing SC Data of Each BG &
BG3Sc	Equ	$2109	;  / SC Size Designation (Mode 0 - 6)
BG4Sc	Equ	$210A	;-/
BG12NBA	Equ	$210B	;-BG Character Data
BG34NBA	Equ	$210C	;-Area Designation
BG1Hofs	Equ	$210D	;-H-Scroll Value Designation For BG 1 
BG1Vofs	Equ	$210E	;-V-Scroll Value Designation For BG 1 
BG2Hofs	Equ	$210F	;-H-Scroll Value Designation For BG 2 
BG2Vofs	Equ	$2110	;-V-Scroll Value Designation For BG 2 
BG3Hofs	Equ	$2111	;-H-Scroll Value Designation For BG 3 
BG3Vofs	Equ	$2112	;-V-Scroll Value Designation For BG 3 
BG4Hofs	Equ	$2113	;-H-Scroll Value Designation For BG 4 
BG4Vofs	Equ	$2114	;-V-Scroll Value Designation For BG 4 
VmaInc	Equ	$2115	;Vram Address Increment Value Designation
VmAddL	Equ	$2116	;-Address For                
VmAddH	Equ	$2117	;-Vram Read                       
VmDataL	Equ	$2118	;-Data for                    
VmDataH	Equ	$2119	;-Vram Read 
M7Sel	Equ	$211A	;Initial Setting In Screen Mode 7
M7A	Equ	$211B	;-\   
M7B	Equ	$211C	;  \  Rotation/Enlargement/Reduction in
M7C	Equ	$211D	;   \ Mode 7,Center Coordinate Settings &
M7D	Equ	$211E	;   / Multiplicant/Multiplier Settings of
M7X	Equ	$211F	;  /  Complementary Multiplication
M7Y	Equ	$2120	;-/   
CgAdd	Equ	$2121	;Address for Cg-Ram Write
CgData	Equ	$2122	;Data for Cg-Ram Write
W12Sel	Equ	$2123	;-\  
W34Sel	Equ	$2124	;  > Window Mask Settings (BG1-BG4,Obj.Color
WobjSel	Equ	$2125	;-/  
Wh0	Equ	$2126	;-\  
Wh1	Equ	$2127	;  \ Window Position
Wh2	Equ	$2128	;  / Designation
Wh3	Equ	$2129	;-/  
wBGloc	Equ	$212A	;-\ Mask Logic Settings
wOBJloc	Equ	$212B	;-/ For Window 1 & 2 on Each Screen
TM	Equ	$212C	;Main Screen Designation
TS	Equ	$212D	;Sub Screen Designation
TMW	Equ	$212E	;Window Mask Designation For Main Screen
TMS	Equ	$212F	;Window Mask Designation For Sub Screen
CgswSel	Equ	$2130	;Initial Settings For Fixed Color Addition
CgAdSub	Equ	$2131	;Add./Sub. Desig.For Each Screen,Obj & BG Col
ColData	Equ	$2132	;Fixed Color Data For Fixed Color Add./Sub.
SetIni	Equ	$2133	;Screen Initial Setting
rMpyL	Equ	$2134	;-\                               |In My
rMpyM	Equ	$2135	;  > Multiplication Result        |Original
rMpyH	Equ	$2136	;-/                               |Documentation
rSlHV	Equ	$2137	;Software Latch for H/V Counter   |This Labels
rOAMdata	Equ	$2138	;Read Data From OAM               |Was Printed
rVmDataL	Equ	$2139	;-\ Read Data                     |With a * as
rVmDataH	Equ	$213A	;-/ From Vram                     |first Char.
rCgData	Equ	$213B	;Read Data From CG-Ram            |This Means
rOpHct	Equ	$213C	;-\ H/V Counter Data By External  |Read Only !
rOpVct	Equ	$213D	;-/ or Software Latch             |I have Changed
rStat77	Equ	$213E	;PPU Status Flag & Version Number |this to
rStat78	Equ	$213F	;PPU Status Flag & Version Number |-> rLABEL !!!
ApuIO0	Equ	$2140	;-\  
ApuIO1	Equ	$2141	;  \ Communication Port
ApuIO2	Equ	$2142	;  / With APU
ApuIO3	Equ	$2143	;-/  
;------------------------------Super FamiCom Registers (CPU)-------------------
NmiTimEn	Equ	$4200	;Enable Flag For VBI,Timer Interrupt & Pad Read
WrIO	Equ	$4201	;Programmable I/O Port (Out Port)
WrMpyA	Equ	$4202	;-\ Multiplier & Multiplicant
WrMpyB	Equ	$4203	;-/ by Multiplication
WrDivL	Equ	$4204	;-\  
WrDivH	Equ	$4205	;  > Divisor & Dividend By Divide
WrDivB	Equ	$4206	;-/  
HtimeL	Equ	$4207	;-\ H-Count
HtimeH	Equ	$4208	;-/ Timer Settings
VtimeL	Equ	$4209	;-\ V-Count
VtimeH	Equ	$420A	;-/ Timer Settings
mDMAen	Equ	$420B	;Channel Desig. for General Purpose DMA & Trigger
hDMAen	Equ	$420C	;Channel Designation for H-DMA
MemSel	Equ	$420D	;Access Cycle Designation in Memory(2) Area
rRdNMI	Equ	$4210	;NMI Flag by V-Blank & Version Number
rTimeUp	Equ	$4211	;IRQ Flag by H/V Count Timer
rHVBjoy	Equ	$4212	;H/V Blank Flag & Pad Enable Flag
rRdIO	Equ	$4213	;Programmable I/O Port (In Port)
rRdDivL	Equ	$4214	;-\ Quotient of
rRdDivH	Equ	$4215	;-/ Divide Result
rRdMpyL	Equ	$4216	;-\ Product of Multiplication Result
rRdMpyH	Equ	$4217	;-/ Or Remainder of Divide Result
Joy1L	Equ	$4218	;-\    
Joy1H	Equ	$4219	;  \   
Joy2L	Equ	$421A	;   \  
Joy2H	Equ	$421B	;    \ Data For 
Joy3L	Equ	$421C	;    / Pad Controller I, II, III & IV
Joy3H	Equ	$421D	;   /   
Joy4L	Equ	$421E	;  /   
Joy4H	Equ	$421F	;-/    
PmDMA0Tr	Equ	$4300	;-\
PmDMA1Tr	Equ	$4310	;  \
PmDMA2Tr	Equ	$4320	;   \
PmDMA3Tr	Equ	$4330	;    \ Parameter For
PmDMA4Tr	Equ	$4340	;    / DMA Transfer
PmDMA5Tr	Equ	$4350	;   /
PmDMA6Tr	Equ	$4360	;  /
PmDMA7Tr	Equ	$4370	;-/
BadDMA0	Equ	$4301	;-\
BadDMA1	Equ	$4311	;  \
BadDMA2	Equ	$4321	;   \
BadDMA3	Equ	$4331	;    \ B-Bus Adress
BadDMA4	Equ	$4341	;    / for DMA
BadDMA5	Equ	$4351	;   /
BadDMA6	Equ	$4361	;  /
BadDMA7	Equ	$4371	;-/
TaDMA0L	Equ	$4302	;-
TaDMA0H	Equ	$4303	; \
TaDMA0B	Equ	$4304	;  \
TaDMA1L	Equ	$4312	;   |
TaDMA1H	Equ	$4313	;   |
TaDMA1B	Equ	$4314	;   |
TaDMA2L	Equ	$4322	;   |
TaDMA2H	Equ	$4323	;   |
TaDMA2B	Equ	$4324	;   |
TaDMA3L	Equ	$4332	;   |
TaDMA3H	Equ	$4333	;    \
TaDMA3B	Equ	$4334	;     \ Table Adress of A-Bus
TaDMA4L	Equ	$4342	;     / for DMA channel X (A1 Table Address)
TaDMA4H	Equ	$4343	;    /  Low/High/Bank
TaDMA4B	Equ	$4344	;   |
TaDMA5L	Equ	$4352	;   |
TaDMA5H	Equ	$4353	;   |
TaDMA5B	Equ	$4354	;   |
TaDMA6L	Equ	$4362	;   |
TaDMA6H	Equ	$4363	;   |
TaDMA6B	Equ	$4364	;   |
TaDMA7L	Equ	$4372	;  /
TaDMA7H	Equ	$4373	; /
TaDMA7B	Equ	$4374	;-     
DMA0DaSL	Equ	$4305	;-
DMA0DaSH	Equ	$4306	; \
DMA0DaSB	Equ	$4307	;  \
DMA1DaSL	Equ	$4315	;   |
DMA1DaSH	Equ	$4316	;   |
DMA1DaSB	Equ	$4317	;   |
DMA2DaSL	Equ	$4325	;   |
DMA2DaSH	Equ	$4326	;   |
DMA2DaSB	Equ	$4327	;   |
DMA3DaSL	Equ	$4335	;   |
DMA3DaSH	Equ	$4336	;    \  Data Adress Store By H-DMA
DMA3DaSB	Equ	$4337	;     \ & Number of Byte to Be Transfered
DMA4DaSL	Equ	$4345	;     / Settings by General Purpose DMA
DMA4DaSH	Equ	$4346	;    /  Low/High/Bank
DMA4DaSB	Equ	$4347	;   |   
DMA5DaSL	Equ	$4355	;   |
DMA5DaSH	Equ	$4356	;   |
DMA5DaSB	Equ	$4357	;   |
DMA6DaSL	Equ	$4365	;   |
DMA6DaSH	Equ	$4366	;   |
DMA6DaSB	Equ	$4367	;   |
DMA7DaSL	Equ	$4375	;  /
DMA7DaSH	Equ	$4376	; /
DMA7DaSB	Equ	$4377	;-     
Ta2DMA0L	Equ	$4308	;-
Ta2DMA0H	Equ	$4309	; \
Ta2DMA1L	Equ	$4318	;  \
Ta2DMA1H	Equ	$4319	;   |
Ta2DMA2L	Equ	$4328	;   |
Ta2DMA2H	Equ	$4329	;   |
Ta2DMA3L	Equ	$4338	;   |
Ta2DMA3H	Equ	$4339	;    \ Table Address of A-Bus
Ta2DMA4L	Equ	$4348	;    / By DMA (A2 Table Address)
Ta2DMA4H	Equ	$4349	;   |
Ta2DMA5L	Equ	$4358	;   |
Ta2DMA5H	Equ	$4359	;   |
Ta2DMA6L	Equ	$4368	;   |
Ta2DMA6H	Equ	$4369	;  /
Ta2DMA7L	Equ	$4378	; /
Ta2DMA7H	Equ	$4379	;-
NrLhDMA0	Equ	$430A	;-\
NrLhDMA1	Equ	$431A	;  \
NrLhDMA2	Equ	$432A	;   \
NrLhDMA3	Equ	$433A	;    \ The Number of Line to be
NrLhDMA4	Equ	$434A	;    / Transfered by H-DMA
NrLhDMA5	Equ	$435A	;   /
NrLhDMA6	Equ	$436A	;  /
NrLhDMA7	Equ	$437A	;-/

	.say	"**********************************************************"
	.say	"* SuperIncludes V1.4 Installed...                        *"
	.say	"* Yeah, All famicom registers are ready to use by name ! *"
	.say	"*--------------------------------------------------------*"
	.say	"*    Thanks for using this cool ExMachina Production.    *"
	.say	"* Have Unlimited Fun...            Sign: Jean Luc Picard *"
	.say	"**********************************************************"
