	nolist
;Uncomment one of the lines below to select your compilation target

;BuildCPC equ 1	; Build for Amstrad CPC
;BuildMSX equ 1 ; Build for MSX
;BuildTI8 equ 1 ; Build for TI-83+
;BuildZXS equ 1 ; Build for ZX Spectrum
;BuildENT equ 1 ; Build for Enterprise
;BuildSAM equ 1 ; Build for SamCoupe
;BuildSMS equ 1 ; Build for Sega Mastersystem
;BuildSGG equ 1 ; Build for Sega GameGear
;BuildGMB equ 1 ; Build for GameBoy Regular
;BuildGBC equ 1 ; Build for GameBoyColor 
ScrWid256 equ 1

;CpcPlus equ 1			;We can build for CPC plus if we want!

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	ifdef vasm
		include "..\SrcALL\VasmBuildCompat.asm"
	else
		read "..\SrcALL\WinApeBuildCompat.asm"
	endif
	read "..\SrcALL\CPU_Compatability.asm"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	read "..\SrcALL\V1_Header.asm"
	ifdef BuildCONSOLE
		read "..\SrcALL\V1_VdpMemory_Header.asm"
	else
		read "..\SrcALL\V1_BitmapMemory_Header.asm"
	endif
	
	read "..\SrcALL\Multiplatform_ReadJoystick_Header.asm"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	ifdef BuildTI8
ScreenWidthG equ ScreenWidth*2
ScreenHeightG equ ScreenHeight*2
	else
ScreenWidthG equ ScreenWidth
ScreenHeightG equ ScreenHeight
	endif
	
	ifdef BuildGBC
BuildCONSOLE equ 1
	endif
	
	ifdef BuildGMB
BuildCONSOLE equ 1
	endif
	
	ifdef BuildSGG
BuildCONSOLE equ 1
	endif
	
	

	ifdef BuildCONSOLE
	ifdef BuildMSX			;The starting memory address of the game ram depends on the system
GameRam equ &C000
	else
GameRam equ &D800
		endif
	else
		ifdef BuildMSX
GameRam equ &C000
		else
		ifdef BuildTI8
GameRam equ &F000
			else
GameRam equ &7000
			endif
		endif
	endif
	
	
MonitorRam 						equ GameRam
Monitor_TMP1 					equ MonitorRam; &C011
Monitor_NextMonitorPos_2Byte	equ MonitorRam+2;&C012;-13
Monitor_EI_Reenable_2byte 		equ MonitorRam+4;&C014;-5
Monitor_Special					equ MonitorRam+6;&C016

KeyboardScanner_KeyPresses		equ GameRam+16
UseSampleKeymap				equ 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	Call DOINIT				; Get ready
	call ScreenINIT			; Set up graphics screen
	
	ifdef BuildZXS
		ld sp,&BFFF
	endif
	ifdef BuildSAM
		ld sp,&BFFF
	endif
	
	
	ld a,&C9
	ld (&0038),a			;Disable internal hardware interrupts, we don't need them!
	di
	call GetHardwareVer
	call EnableFastCPU
	di
	halt
	call monitor
	;call Monitor_MemDump
	;db 32
	;dw &4000
	
	;call BankSwapper_INIT
	

	;ld h,1	; H=Page
	;ld l,1	; L=Slot
	;ld d,1	; D=subslot
	;call BankTest
	
	
	
	
	call Monitor_MemDump
	db 4
	dw &C000
	
	ld a,4
	call BankSwapper_SetCartBank
	
	call Monitor_MemDump
	db 4
	dw &C000
	
	ld a,5
	call BankSwapper_SetCartBank
	
	call Monitor_MemDump
	db 4
	dw &C000

	
	;ld a,4
	;out (&FD),a
	di
	halt
	
	;ld a,1
	;ld (&FFFF),a
	
	;ld a,3
	;call BankSwitch_SetCurrent
	
	call Monitor_MemDump
	db 4
	dw &4000
	
	
	
	
	;call GetHardwareVer
	call monitor
	
	
	di
	halt
	
	;ld a,Bank0
	;call BankSwitch_SetCurrent
	
	
	call Monitor
	
	
	
	
	
	
	
	;call Monitor_MemDump
	db 32
	dw &4000


	di	
	halt


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BitmapFont:
	ifdef BMP_UppercaseOnlyFont
		incbin "..\ResALL\Font64.FNT"			;Font bitmap, this is common to all systems
	else
		incbin "..\ResALL\Font96.FNT"			;Font bitmap, this is common to all systems
	endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Monitor_Pause equ 1 				;*** Pause after showing debugging info


	read "..\SrcALL\Multiplatform_MonitorMemdump.asm"
	read "..\SrcALL\Multiplatform_Monitor_RomVer.asm"
	read "..\SrcALL\Multiplatform_MonitorSimple_RomVer.asm"
	read "..\SrcALL\Multiplatform_ShowHex.asm"
	
	;read "..\SrcCPC\CPC_V1_BankSwapper.asm"
	;read "..\SrcCPC\CPC_V1_GetHardwareVer.asm"
	
	;read "..\SrcZX\ZX_V1_BankSwapper.asm"
	;read "..\SrcZX\ZX_V1_GetHardwareVer.asm"
	
	;read "..\SrcENT\ENT_V1_BankSwapper.asm"
	;read "..\SrcENT\ENT_V1_GetHardwareVer.asm"
	
	;read "..\SrcSAM\SAM_V1_BankSwapper.asm"
	;read "..\SrcSAM\SAM_V1_GetHardwareVer.asm"
	
	;read "..\SrcGB\GB_V1_BankSwapper.asm"
	;read "..\SrcGB\GB_V1_GetHardwareVer.asm"

	;read "..\SrcSMS\SMS_V1_BankSwapper.asm"
	;read "..\SrcSMS\SMS_V1_GetHardwareVer.asm"


	read "..\SrcMSX\MSX_V1_BankSwapper.asm"
	read "..\SrcMSX\MSX_V1_GetHardwareVer.asm"
	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;			End of Your program
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	ifndef BuildCONSOLEjoy
UseHardwareKeyMap equ 1 ; Need the Keyboard map
	endif
	
	ifdef BuildCONSOLE
		read "..\SrcALL\V1_VdpMemory.asm"
		read "..\SrcALL\V1_HardwareTileArray.asm"
	else

		read "..\SrcALL\Multiplatform_BitmapFonts.asm"
		read "..\SrcALL\V1_BitmapMemory.asm"
	endif
	align16

	read "..\SrcAll\Multiplatform_ReadJoystick.asm"
	
	read "..\SrcAll\V1_Palette.asm"
	read "..\SrcALL\V2_Functions.asm"
	read "..\SrcALL\V1_Footer.asm"
	ds 16384,254
	ds 16384,253
	ds 16384,252
	ds 16384,251
	ds 16384,250
	