;****************************************************
;* ExMachina Design Present : SysInfo V1.02 made by *
;*                 Odo of ExMachina                 *
;*               Last UpDate 04.07.93               *
;****************************************************

	heap	O=200k
	smc+

	rs=	$1300		;Set VarBase Address
scrollx	rs.w	0
scrolly	rs.w	0
scrolly2	rs.w	0
waitcnt	rs.w	0
ScText	Rs.w	0
CharNameBase	Rs.w	0
ScrollLine	Rs.w	0
SpeedChk	Rs.w	0
PPU1VER	rs.b	0
PPU2VER	rs.b	0
CPUVER	rs.b	0
PALVER	rs.b	0

	.include	snes:include/SuperInclude.i

ExMachina:	.Include	Snes:Include/ResetHandler.I
	CLC			;Clear Carry Bit
	XCE			;set 16 bit native mode
	SEI			;set interrupt flag(NO INTS)
	MODE	A8X16
	jsr	InitRegs
Start:	REP	#$10		;X&Y 16 Bit
	SEP	#$20		;Acc  8 Bit
	LDX	#$1ff		;Load Stack Address
	TXS			;Set stack pointer to $1ff
	LDA	#$00		;Clear Accu
	XBA     		;Exchange A and B Accu
	LDA	#$00		;Load Accu With Zero
	PHA			;And push it on the Stack
	PLB			;Set data bank register to 0
	LDA	#$00		;Clear the
	TCD			;Direct Register
	Ldx	#0		;Load Clear Data
	stx	scrollx		;Clear Scroll X Ofset
	Ldx	#$0000		;Load Initial Data
	stx	scrolly		;Init Scroll Y Ofset
	Ldx	#$00E0		;Load Initial Data
	stx	scrolly2		;Init Scroll2 Y Ofset
	Ldx	#$0200		;Init
	Stx	waitcnt		;WaitCounter
	Ldx	#$80A0
	Stx	ScrollLine	
	Ldx	#$0000
	Stx	CharNameBase
	Ldx	#AscText
	Stx	ScText
	Ldx	#0004		;Initial Wait For No Crap
	Stx	SpeedChk
	lda	#$00
	Sta	PALVER
	Lda	$213f
	and	#%00011111
	cmp	#$10
	bge	PalMode
	Sta	PPU2VER
	jmp	Cont
PalMode:	Lda	#1
	sta	PALVER
	Lda	$213f
	and	#%00001111
	Sta	PPU2VER
Cont:	Lda	$213e
	and	#%00001111
	Sta	PPU1VER
	Lda	$4210
	and	#%00001111
	Sta	CPUVER
	
	JSR	setup_screen	;copy character & palette data in
	lda	#$81
	Sta	NmiTimEn		;enable NMI + PAD
	LDA	#$0f
	STA	IniDisp		;turn screen on.
	rep	#$20		;Reset Status Bits
	lda	scrolly
	sep	#$20		;set Status Bits
	sta	BG2Vofs
	xba			;Exchange A and B Accu
	sta	BG2Vofs
	rep	#$20		;Reset Status Bits
	lda	scrolly2
	sep	#$20		;set Status Bits
	sta	BG1Vofs
	xba			;Exchange A and B Accu
	sta	BG1Vofs
loop:	wai			;Wait for Interrupt
	brl	loop

setup_screen:	JSR	WaitVblank		;Force Blank
	STZ	CgAdd		;Clear Address for Cg-Ram Write
	LDX	#$2200		;register $2122 -Colour data
	STX	PmDMA0Tr		;Set as Parameter for DMA 0 Transfer
	LDX	#palette		;address for color data
	STX	TaDMA0L		;Set as Table Address of A-bus DMA 0/L
	LDA	#^palette		;bank for color data
	STA	TaDMA0B		;Set as A-bus DMA 0 Table Bank
	LDX	#32		;set number of bytes to be
	STX	DMA0DaSL		;transfered by general purpose DMA 0
	LDA	#%00000001		;Select DMA 0 for Start Trigger
	STA	mDMAen		;Activate Selected DMA('S)

	LDA	#$00		;Select VRAM address
	STA	VmAddL		;Set Address for Vram Read /L
	LDA	#$10		;Select VRAM address to $1000
	STA	VmAddH		;Set Address for Vram Read /H
	LDX	#$1801		;register $2118 - Vram data
	STX	PmDMA1Tr		;Set as Parameter for DMA 1 Transfer
	LDX	#Gfx		;address for Gfxdata
	STX	TaDMA1L		;Set as Table Address of A-bus DMA 1/L
	LDA	#^Gfx		;bank for Gfxdata
	STA	TaDMA1B		;Set as A-bus DMA 1 Table Bank
	LDX	#$8000		;set number of bytes to be
	STX	DMA1DaSL		;transfered by general purpose DMA 1
	LDA	#%00000010		;Select DMA 1 for Start Trigger
	STA	mDMAen		;Activate Selected DMA('S)
	LDA	#%10000000		;Select H/L Increment
	STA	VmaInc		;Set Vram Increment Value Designation
	LDA	#$80		;Set BG1 SC Base Addr to $5000/Size 0 
	STA	BG1Sc		;Write SC-Data Address & SC Size Desi.
	LDA	#$80		;Set BG2 SC Base Addr to $0000/Size 0 
	STA	BG2Sc		;Write SC-Data Address & SC Size Desi.
	LDA	#$11		;Select Address for BG2&1 CharData
	STA	BG12NBA		;Set The Adresses (4k Word/Segment)
	LDA	#%00000001		;Select BG 1 & 2 Only
	STA	TM		;Turn background 1 & 2 on
	LDA	#%00000000		;Select No Sub-Screen		
	STA	TS 		;Set Sub-Screen Selection
	LDA	#$02		;Select BG Mode & Char Size
	STA	BGmode		;Set the Selected Parameters
	Jsr	setup_GFX		;Copy CharNames to Vram
	jsr	Print
	lda	PALVER
	cmp	#$00
	beq	Nextone
	Ldx	#Dt
	Stx	ScText
	Ldx	#$8156
	Stx	ScrollLine
	jsr	Print
	jsr	WaitVblank
	Ldx	#$8160
	Stx	ScrollLine
	Ldx	#PalText
	Stx	ScText
	jsr	Print
	Ldx	#Ending
	stx	ScText
	jsr	Print
Nextone	Lda	PALVER
	cmp	#$1
	beq	NoNTSC
	jsr	WaitVblank
	Ldx	#$8160
	Stx	ScrollLine
	Ldx	#NtscText
	Stx	ScText
	jsr	Print
	Ldx	#Ending
	stx	ScText
	jsr	Print
NoNTSC:	Lda	PPU2VER
	Ldx	#$8119
	Stx	ScrollLine
	jsr	SearchTxt
	Lda	CPUVER
	Ldx	#$8139
	Stx	ScrollLine
	jsr	SearchTxt
	Lda	PPU1VER
	Ldx	#$80f9
	Stx	ScrollLine
	jsr	SearchTxt
	RTS

SearchTxt:	Cmp	#$0
	bne	Search2
	Ldx	#Vt0
	Stx	ScText
	jsr	Print
Search2	Cmp	#$1
	bne	Search3
	Ldx	#Vt1
	Stx	ScText
	jsr	Print
Search3	Cmp	#$2
	bne	Search4
	Ldx	#Vt2
	Stx	ScText
	jsr	Print
Search4	Cmp	#$3
	bne	Search5
	Ldx	#Vt3
	Stx	ScText
	jsr	Print
Search5	Cmp	#$4
	bne	Search6
	Ldx	#Vt4
	Stx	ScText
	jsr	Print
Search6	Cmp	#$5
	bne	Search7
	Ldx	#Vt5
	Stx	ScText
	jsr	Print
Search7	Cmp	#$6
	bne	Search8
	Ldx	#Vt6
	Stx	ScText
	jsr	Print
Search8	Cmp	#$7
	bne	Search9
	Ldx	#Vt7
	Stx	ScText
	jsr	Print
Search9	Cmp	#$8
	bne	Searcha
	Ldx	#Vt8
	Stx	ScText
	jsr	Print
Searcha	Cmp	#$9
	bne	Searchb
	Ldx	#Vt9
	Stx	ScText
	jsr	Print
Searchb	Cmp	#$a
	bne	Searchc
	Ldx	#Vta
	Stx	ScText
	jsr	Print
Searchc	Cmp	#$b
	bne	Searchd
	Ldx	#Vtb
	Stx	ScText
	jsr	Print
Searchd	Cmp	#$c
	bne	Searche
	Ldx	#Vtc
	Stx	ScText
	jsr	Print
Searche	Cmp	#$d
	bne	Searchf
	Ldx	#Vtd
	Stx	ScText
	jsr	Print
Searchf	Cmp	#$e
	bne	SearchFin
	Ldx	#Vte
	Stx	ScText
	jsr	Print
SearchFin	Cmp	#$f
	bne	SearchExit
	Ldx	#Vtf
	Stx	ScText
	jsr	Print
SearchExit	rts	

WaitVblank	PHP
	SEP	#$20
wait1	LDA	rRdNMI		;Get NMI flag by VBlank & Version Nr.
	BIT	#%10000000		;Check Blank NMI
	BNE	wait1		;Waiting...
wait2	LDA	rRdNMI		;Get NMI flag by VBlank & Version Nr.
	BIT	#%10000000		;Check Blank NMI
	BEQ	wait2		;If Flag Clear Continue
	PLP
	RTS

setup_GFX	Jsr	WaitVblank		;Wait for VBlank
	Lda	#$00		;Set Vram
	Sta	VmAddL		;addr 
	Lda	#$80		;to
	Sta	VmAddH		;$5000
	Ldx	#CharPosTab	;load the addr of Char Position
.Loop	Lda	$1,x		;get Character Name
	Sta	VmDataL		;Store character in VRAM
	Lda	$0,x		;Get Color 
	Sta	VmDataH		;Store col etc in VRAM
	Inx			;Increment X
	Inx			;Twice
	Cpx	#CharTabEnd	;compare with end of table
	Bne	.Loop		;go and get another char
	Rts

VBI:	rti

Print:	Ldx	ScText
	Lda	$0,x
	cmp	#0
	beq	PrintExit
	cmp	#$20
	beq	SpaceChk
	SBC	#$22
	ADC	#$A0
	jmp	Continue
SpaceChk:	sbc	#$21
	adc	#$A0
Continue:	Sta	CharNameBase
	Inx	
	Stx	ScText
	Ldy	ScrollLine		;Set Vram
	Sty	VmAddL		;addr 
	Ldy	CharNameBase	;get Character Name
	Sty	VmDataL		;Store character in VRAM
	Ldx	ScrollLine
	Inx
	Stx	ScrollLine
ScExit	Jmp	Print

PrintExit:	Ldx	#$0000
	Stx	ScText
	rts

		; Don't Use a >!<
AscText:	dc.b	"PRESENTS : SYSINFO    BY ODO/E@M"
	dc.b	"                                "
	dc.b	"      5C77-PPU VERSION : X      "
	dc.b	"      5C78-PPU VERSION : X      "
	dc.b "      SNES-CPU VERSION : X      "
              dc.b "       DISPLAY MODE : NTSC      ",0

NtscText:	dc.b	"                                "
	dc.b	"SYSTEM PERFORMANCE IN NTSC MODE:"
	dc.b	"                                "
	dc.b "CLOCK FREQUENCY.....21.47727 MHZ"
	dc.b "CLOCK CYCLES FOR 1 LINE.....1364"
	dc.b "NUMBER OF SCAN LINES.........262"
	dc.b "V-DISPLAY TIME....224(NI)/239(I)"
	dc.b "NUMBER OF FRAMES PER SECOND...60"
	dc.b	"                                "
	dc.b	$0
PalText:	dc.b	"                                "
	dc.b	"SYSTEM PERFORMANCE IN  PAL MODE:"
	dc.b	"                                "
	dc.b "CLOCK FREQUENCY.....21.28137 MHZ"
	dc.b "CLOCK CYCLES FOR 1 LINE.....1364"
	dc.b "NUMBER OF SCAN LINES.........312"
	dc.b "V-DISPLAY TIME....224(NI)/239(I)"
	dc.b "NUMBER OF FRAMES PER SECOND...50"
	dc.b	"                                "
	dc.b	$0
Ending:	dc.b	"  PRESS RESET TO LEAVE SYSINFO  ",0

Vt0:	dc.b	"0",0
Vt1:	dc.b	"1",0
Vt2:	dc.b	"2",0
Vt3:	dc.b	"3",0
Vt4:	dc.b	"4",0
Vt5:	dc.b	"5",0
Vt6:	dc.b	"6",0
Vt7:	dc.b	"7",0
Vt8:	dc.b	"8",0
Vt9:	dc.b	"9",0
Vta:	dc.b	"A",0
Vtb:	dc.b	"B",0
Vtc:	dc.b	"C",0
Vtd:	dc.b	"D",0
Vte:	dc.b	"E",0
Vtf:	dc.b	"F",0
Dt:	dc.b	"PAL ",0

InitRegs:	sep	#$20
	lda	rStat77		
	lda	rStat78
	lda	#$80
	sta	$2100
	stz	$2101
	stz	$2102
	stz	$2103
	stz	$2105
	stz	$2106
	stz	$2107
	stz	$2108
	stz	$2109
	stz	$210a
	stz	$210b
	stz	$210c
	stz	$210d
	stz	$210d
	stz	$210e
	stz	$210e
	stz	$210f
	stz	$210f
	stz	$2110
	stz	$2110
	stz	$2111
	stz	$2111
	stz	$2112
	stz	$2112
	stz	$2113
	stz	$2113
	stz	$2114
	stz	$2114
	lda	#$80
	sta	$2115
	stz	$2116
	stz	$2117
	stz	$211a
	lda	#$01
	stz	$211b
	sta	$211b
	stz	$211c
	stz	$211c
	stz	$211d
	stz	$211d
	stz	$211e
	sta	$211e
	stz	$211f
	stz	$211f
	stz	$2120
	stz	$2120
	stz	$2121
	stz	$2122
	stz	$2122
	stz	$2123
	stz	$2124
	stz	$2125
	stz	$2126
	stz	$2127
	stz	$2128
	stz	$2129
	stz	$212a
	stz	$212b
	stz	$212c
	stz	$212d
	stz	$212e
	lda	#$30
	sta	$2130
	stz	$2131
	lda	#$e0
	sta	$2132
	stz	$2133
	stz	$4200
	lda	#$ff
	sta	$4201
	stz	$4202
	stz	$4203
	stz	$4204
	stz	$4205
	stz	$4206
	stz	$4207
	stz	$4208
	stz	$4209
	stz	$420a
	stz	$420b
	stz	$420c
	stz	$420d
	rts

CharPosTab:	Dc.w	$0000,$0001,$0002,$0003,$0004,$0005,$0006,$0007	;
	Dc.w	$0008,$0009,$000a,$000b,$000c,$000d,$000e,$000f
	Dc.w	$0010,$0011,$0012,$0013,$0014,$0015,$0016,$0017
	Dc.w	$0018,$0019,$001a,$001b,$001c,$001d,$001e,$001f
	Dc.w	$0020,$0021,$0022,$0023,$0024,$0025,$0026,$0027	;
	Dc.w	$0028,$0029,$002a,$002b,$002c,$002d,$002e,$002f
	Dc.w	$0030,$0031,$0032,$0033,$0034,$0035,$0036,$0037
	Dc.w	$0038,$0039,$003a,$003b,$003c,$003d,$003e,$003f
	Dc.w	$0040,$0041,$0042,$0043,$0044,$0045,$0046,$0047	;
	Dc.w	$0048,$0049,$004a,$004b,$004c,$004d,$004e,$004f
	Dc.w	$0050,$0051,$0052,$0053,$0054,$0055,$0056,$0057
	Dc.w	$0058,$0059,$005a,$005b,$005c,$005d,$005e,$005f
	Dc.w	$0060,$0061,$0062,$0063,$0064,$0065,$0066,$0067	;
	Dc.w	$0068,$0069,$006a,$006b,$006c,$006d,$006e,$006f
	Dc.w	$0070,$0071,$0072,$0073,$0074,$0075,$0076,$0077
	Dc.w	$0078,$0079,$007a,$007b,$007c,$007d,$007e,$007f
	Dc.w	$0080,$0081,$0082,$0083,$0084,$0085,$0086,$0087	;
	Dc.w	$0088,$0089,$008a,$008b,$008c,$008d,$008e,$008f
	Dc.w	$0090,$0091,$0092,$0093,$0094,$0095,$0096,$0097
	Dc.w	$0098,$0099,$009a,$009b,$009c,$009d,$009e,$009f
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000	;
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	Dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
CharTabEnd:

;vectors
	ORG		$ffea	;VBI Vector 
	dcr.w	VBI
	ORG		$fffc	;Reset Vector
	dcr.w	$8000

	.pad
Gfx:	.bin		ExM:ExM-SysInfo.Snes/ExM-SysInfoGFX.Mod1
palette	.bin		ExM:ExM-SysInfo.Snes/ExM-Logo.Col
