# 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.)
MB_MSXROM_FIRE_MACHINES ?=
$(call mb-make-call,mb-doc-variable-flow,MB_MSXROM_FIRE_MACHINES,List of supported machines.)
define _mb-msxrom-grow-fire-machines
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-make-check-arg1,$(0),$(1))
$(MB_ᕽᕽᕽ )$(eval MB_MSXROM_FIRE_MACHINES $(MB_MAKE_APPEND) $(1))
endef
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)$(MB_@WORK)$(notdir $(1))),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines))
$(MB_ᕽᕽᕽ )$(if $(wildcard $(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/extensions),,$(call mb-make-call,mb-os-dir-create,$(1)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Canon_V-20)
define mb-msxrom-machine-Mitsubishi_ML-F80
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Mitsubishi_ML-F80)
define mb-msxrom-machine-Mitsubishi_ML-FX1
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Mitsubishi_ML-FX1)
define mb-msxrom-machine-Mitsubishi_ML-G3_ES
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_disk.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/mitsubishi/ml-g3_es_msx2sub.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Mitsubishi_ML-G3_ES)
define mb-msxrom-machine-Philips_VG_8000
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8000)
define mb-msxrom-machine-Philips_VG_8230
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/philips/vg8230_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/philips/vg8230_disk.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_VG_8230)
define mb-msxrom-machine-Philips_NMS_8250
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/philips/nms8250_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/philips/nms8250_msx2sub.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Philips_NMS_8250)
define mb-msxrom-machine-Toshiba_HX-21
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/toshiba/HX21-IC2.BIN)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Toshiba_HX-21)
define mb-msxrom-machine-Yamaha_AX200
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/ax200_basic-bios1.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/ax200_arabic.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Yamaha_AX200)
define mb-msxrom-machine-Yamaha_YIS-503IIIR
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_basic-bios2.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_msx2sub.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/yamaha/yis503iii_cpm.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Yamaha_YIS-503IIIR)
define mb-msxrom-machine-Panasonic_FS-A1WSX
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_basic-bios2p.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_disk.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_firmware.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_fmbasic.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjibasic.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/share/systemroms/machines,machines/panasonic/fs-a1wsx_kanjifont.rom)
$(MB_ᕽᕽᕽ )$(call mb-make-call,mb-msxrom-file,$(1)$(MB_@WORK)$(notdir $(1))/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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Panasonic_FS-A1WSX)
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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Boosted_MSX2_EN)
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.,)
$(call mb-make-call,_mb-msxrom-grow-fire-machines,Boosted_MSX2+_JP)