
include_directories(${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_LIST_DIR}/include)

set(pZ80_common_src
	${CMAKE_CURRENT_LIST_DIR}/Z80CPU.c
	${CMAKE_CURRENT_LIST_DIR}/FSPI.c
	${CMAKE_CURRENT_LIST_DIR}/ESP.c
	${CMAKE_CURRENT_LIST_DIR}/usb_bridge.c
	${CMAKE_CURRENT_LIST_DIR}/usb_descriptor.c
	${CMAKE_CURRENT_LIST_DIR}/psram.c
	${CMAKE_CURRENT_LIST_DIR}/cJSON.c
	${CMAKE_CURRENT_LIST_DIR}/FaultHandlers.c
)

set(pZ80_drivers_sharp_src
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/MZ700.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/RFS.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/WD1773.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/QDDrive.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/MZ-1E05.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/MZ-1E14.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/MZ-1E19.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/MZ-1R12.c
	${CMAKE_CURRENT_LIST_DIR}/drivers/Sharp/MZ-1R18.c
)

set(pM6502_common_src
	${CMAKE_CURRENT_LIST_DIR}/M6502.c
	${CMAKE_CURRENT_LIST_DIR}/M6502CPU.c
	${CMAKE_CURRENT_LIST_DIR}/FSPI.c
	${CMAKE_CURRENT_LIST_DIR}/ESP.c
	${CMAKE_CURRENT_LIST_DIR}/usb_bridge.c
	${CMAKE_CURRENT_LIST_DIR}/usb_descriptor.c
	${CMAKE_CURRENT_LIST_DIR}/psram.c
	${CMAKE_CURRENT_LIST_DIR}/cJSON.c
)

set(bootloader_common_src
	${CMAKE_CURRENT_LIST_DIR}/usb_bridge.c
	${CMAKE_CURRENT_LIST_DIR}/usb_descriptor.c
)

set(pico_common_libs
  pico_stdlib
  pico_multicore
  pico_util
  hardware_dma
  hardware_flash # Needed for flash settings (not currently working)
  hardware_sync  # Needed for flash settings (not currently working)
  hardware_spi
  hardware_pio
  hardware_pwm
  tinyusb_device
  cmsis_core
)

set(pZ80_common_libs
  ${pico_common_libs}
  Zeta
   -Wl,--whole-archive Z80 -Wl,--no-whole-archive
)

set(z80_pio 
  ${CMAKE_CURRENT_LIST_DIR}/z80.pio
)

set(pM6502_common_libs
  ${pico_common_libs}
)

set(pM6502_pio 
  ${CMAKE_CURRENT_LIST_DIR}/M6502.pio
)

add_subdirectory(model)
add_definitions(-DPARAM_ASSERTIONS_ENABLED_HARDWARE_PIO=1)
