# TODO: Convert pi MSX number data, the named pie slices to hyperdrive storage for distribution over red sea
MB_MSXROM_API ?= https://msxrom.distributedrebirth.love/calc-pi/v19.1
$(call mb_make_call,mb_doc_variable_deep,MB_MSXROM_API,"Resource identifier for msxrom pi pie named slices data.")
MB_MSXROM_CACHE ?= $(MB_OS_CACHE)/msxbuild/msxrom
$(call mb_make_call,mb_doc_variable_deep,MB_MSXROM_CACHE,"Cache storage location.")
define _mb_msxrom_file_fetch
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_os_echo_command,$(MB_I18N_MSXROM_FILE_FETCH) $(subst $(MB_MSXROM_API)/,,$(1)))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))),,$(call mb_make_call,mb_os_dir_create,$(dir $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)))))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1))),,wget -O $(MB_MSXROM_CACHE)/$(subst $(MB_MSXROM_API)/,,$(1)) $(1))
endef
define mb_msxrom_file
$(MB_ᕽᕽᕽ )$(if $(wildcard $(MB_MSXROM_CACHE)/$(2)),,$(call mb_make_call,_mb_msxrom_file_fetch,$(MB_MSXROM_API)/$(2)))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)/$(notdir $(2))),,$(call mb_make_call,mb_os_file_copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_file,"Installs msxroms from slug into an subdir.","
")
define mb_msxrom_setup
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)-omsx),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)-omsx/share),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)-omsx/share/systemroms),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)-omsx/share/systemroms/machines),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms/machines))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)-omsx/share/systemroms/extensions),,$(call mb_make_call,mb_os_dir_create,$(1)-omsx/share/systemroms/extensions))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_setup,"Creates needed systemrom folders.","")
define mb_msxrom_extension_ide
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/ide240.dat)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_ide,"Installs sunrise IDE classic rom.","")
define mb_msxrom_extension_ide_nextor
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/Nextor-2.1.1.SunriseIDE.ROM)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_ide_nextor,"Installs sunrise IDE nextor rom.","")
define mb_msxrom_extension_scsi_novaxis
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/novaxis.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_scsi_novaxis,"Installs Gouda SCSI novaxis rom.","")
define mb_msxrom_extension_msxdos22
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/msxdos22.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_msxdos22,"Installs msxdos 2.20 rom.","")
define mb_msxrom_extension_rs232
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/rs232.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_rs232,"Installs rs232 rom.","")
define mb_msxrom_extension_fmpac
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_fmpac,"Installs fmpac rom.","")
define mb_msxrom_extension_fmpac_en
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/fmpac_en.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_fmpac_en,"Installs fmpac english rom.","")
define mb_msxrom_extension_moonsound
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,extensions/yrw801.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_moonsound,"Installs moonsound rom.","")
define mb_msxrom_extension_basickun
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/extensions,machines/sanyo/phc-70fd2_basickun.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_extension_basickun,"Installs basickun compiler rom.","")
define mb_msxrom_machine_Canon_V-20
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/canon/v-20_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Canon_V-20,"Installs machine roms.","")
define mb_msxrom_machine_Mitsubishi_ML-F80
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-f80_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Mitsubishi_ML-F80,"Installs machine roms.","")
define mb_msxrom_machine_Mitsubishi_ML-FX1
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-fx1_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Mitsubishi_ML-FX1,"Installs machine roms.","")
define mb_msxrom_machine_Mitsubishi_ML-G3_ES
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_disk.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_msx2sub.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/mitsubishi/ml-g3_es_rs232.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Mitsubishi_ML-G3_ES,"Installs machine roms.","")
define mb_msxrom_machine_Philips_VG_8000
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8000_basic-bios1.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Philips_VG_8000,"Installs machine roms.","")
define mb_msxrom_machine_Philips_VG_8230
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_disk.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/vg8230_msx2sub.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Philips_VG_8230,"Installs machine roms.","")
define mb_msxrom_machine_Philips_NMS_8250
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_msx2sub.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/philips/nms8250_disk.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Philips_NMS_8250,"Installs machine roms.","")
define mb_msxrom_machine_Toshiba_HX-21
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC2.BIN)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/toshiba/HX21-IC3.BIN)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Toshiba_HX-21,"Installs machine roms.","")
define mb_msxrom_machine_Yamaha_AX200
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_basic-bios1.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_arabic.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/ax200_music.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Yamaha_AX200,"Installs machine roms.","")
define mb_msxrom_machine_Yamaha_YIS-503IIIR
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_msx2sub.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_cpm.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/yamaha/yis503iii_net_2.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Yamaha_YIS-503IIIR,"Installs machine roms.","")
define mb_msxrom_machine_Panasonic_FS-A1WSX
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_basic-bios2p.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_disk.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_firmware.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_fmbasic.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjibasic.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjifont.rom)
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_file,$(1)-omsx/share/systemroms/machines,machines/panasonic/fs-a1wsx_msx2psub.rom)
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Panasonic_FS-A1WSX,"Installs machine roms.","")
define mb_msxrom_machine_Boosted_MSX2_EN
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_machine_Philips_NMS_8250,$(1))
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_extension_fmpac,$(1))
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_extension_moonsound,$(1))
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_extension_basickun,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Boosted_MSX2_EN,"Installs machine and extensions roms.","")
define mb_msxrom_machine_Boosted_MSX2+_JP
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_machine_Panasonic_FS-A1WSX,$(1))
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_extension_moonsound,$(1))
$(MB_ᕽᕽᕽ )$(call mb_make_call,mb_msxrom_extension_basickun,$(1))
endef
$(call mb_make_call,mb_doc_function_deep,mb_msxrom_machine_Boosted_MSX2+_JP,"Installs machine and extensions roms.","")