diff --git a/.forgejo/workflows/run-test-asserts.yaml b/.forgejo/workflows/run-test-asserts.yaml index a0b1819..a3d4fcd 100644 --- a/.forgejo/workflows/run-test-asserts.yaml +++ b/.forgejo/workflows/run-test-asserts.yaml @@ -1,4 +1,5 @@ name: Run test asserts +run-name: Test assert-all by ${{github.actor}} on: push: branches: @@ -11,4 +12,4 @@ jobs: - name: Check out uses: actions/checkout@v3 - name: Run asserts - run: make assert-all + run: cd ${{github.workspace}};PATH_HEX2BIN=/opt/Hex2bin-2.5 make assert-all; diff --git a/Makelocal.mk.tpl b/Makelocal.mk.tpl index 8a97ff5..eac209f 100644 --- a/Makelocal.mk.tpl +++ b/Makelocal.mk.tpl @@ -4,5 +4,6 @@ # Change to local installations if needed; #PATH_SDCC ?= /usr/bin +#PATH_HEX2BIN ?= /usr/bin #PATH_UNIX2DOS ?= /usr/bin #PATH_OPENMSX ?= /opt/openMSX/bin/ diff --git a/README.md b/README.md index 7c1f077..5605ac1 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ The files in this repro try to handle these steps for you. * make * openmsx * sdcc +* hex2bin-2.5 (see [https://hex2bin.sourceforge.net/](https://hex2bin.sourceforge.net/)) * wget * unix2dos @@ -44,11 +45,12 @@ For debian use; Include the `lib/make/msxbuild.mk` file from your Makefile. And override the required paths; * PATH_SDCC ?= /usr/bin +* PATH_HEX2BIN ?= /usr/bin * PATH_UNIX2DOS ?= /usr/bin * PATH_OPENMSX ?= /opt/openMSX/bin/ * PATH_MSXBUILD ?= /opt/msxbuild -Then build result based compile rules see an example in; `test/ahello-m80/0module.mk` +Then build result based compile rules see an example in; `test/ahello/0module.mk` ## Functions @@ -65,7 +67,8 @@ Current set is WIP. * mb_link_asm_8000 * mb_link_asm_C000 * mb_link_asm_dos = alias for mb_link_asm_0100 -* mb_hex2bin +* mb_hex2com +* mb_hex2dat * mb_openmsx_dosctl * mb_msxhub_file * mb_package_dos1 diff --git a/lib/make/mb_autoexec.mk b/lib/make/mb_autoexec.mk index 304582d..29bf0c2 100644 --- a/lib/make/mb_autoexec.mk +++ b/lib/make/mb_autoexec.mk @@ -21,10 +21,10 @@ define mb_autoexec_append_rem $(call mb_autoexec_append_cmd,$(1),rem $(2)) endef define mb_autoexec_append_gui_mode - $(call mb_autoexec_append_echo,$(1),Enabling SDL renderer.) - $(call mb_autoexec_append_cmd,$(1),omsxctl set renderer SDL > NUL) - $(call mb_autoexec_append_echo,$(1),Enabling CPU throttling.) - $(call mb_autoexec_append_cmd,$(1),omsxctl set throttle on > NUL) + $(call mb_autoexec_append_echo,$(1),Enabling renderer.) + $(call mb_autoexec_append_cmd,$(1),omsxctl set renderer SDL) + $(call mb_autoexec_append_echo,$(1),Enabling throttling.) + $(call mb_autoexec_append_cmd,$(1),omsxctl set throttle on) endef define mb_autoexec_append_stop_fail $(call mb_autoexec_append_echo,$(1),Disabling automatic failure.) @@ -50,7 +50,7 @@ define mb_autoexec_open_gui $(call mb_autoexec_write_default,$(1)) $(call mb_autoexec_append_stop_fail,$(1)) $(call mb_autoexec_append_gui_mode,$(1)) - $(call mb_autoexec_append_echo,$(1),Type shutdown to stop emulation.) + $(call mb_autoexec_append_echo,$(1),Type 'shutdown' or 'omsxctl exit' to stop emulation.) endef define mb_autoexec_open_gui_cmd $(call mb_autoexec_open_gui,$(1)) diff --git a/lib/make/mb_build.mk b/lib/make/mb_build.mk index 0c0a5f5..988eaaf 100644 --- a/lib/make/mb_build.mk +++ b/lib/make/mb_build.mk @@ -1,14 +1,14 @@ -MB_BUILD_FLAG_CPU ?= -mz80 -MB_BUILD_FLAG_LD ?= --nostdinc -MB_BUILD_SDASM_FLAGS ?= -g -l -c -o -MB_BUILD_SDCC_FLAGS ?= -MB_BUILD_SDAR_FLAGS ?= -rc -MB_BUILD_SDCC_CMD ?= $(PATH_SDCC)/sdcc -MB_BUILD_SDASM_CMD ?= $(PATH_SDCC)/sdasz80 -MB_BUILD_SDAR_CMD ?= $(PATH_SDCC)/sdar -MB_BUILD_SDOBJCOPY_CMD ?= $(PATH_SDCC)/sdobjcopy -MB_BUILD_UNIX2DOS_CMD ?= $(PATH_UNIX2DOS)/unix2dos +MB_BUILD_FLAG_CPU ?= -mz80 +MB_BUILD_FLAG_LD ?= --nostdinc +MB_BUILD_SDASM_FLAGS ?= -g -l -c -o +MB_BUILD_SDCC_FLAGS ?= +MB_BUILD_SDAR_FLAGS ?= -rc +MB_BUILD_H2B_CMD ?= $(PATH_HEX2BIN)/hex2bin +MB_BUILD_SDCC_CMD ?= $(PATH_SDCC)/sdcc +MB_BUILD_SDASM_CMD ?= $(PATH_SDCC)/sdasz80 +MB_BUILD_SDAR_CMD ?= $(PATH_SDCC)/sdar +MB_BUILD_UNIX2DOS_CMD ?= $(PATH_UNIX2DOS)/unix2dos # TODO: Add C + mixed support; #$(MB_SDASM) -I$(MB_LIBASM_SRC)/include @@ -54,6 +54,11 @@ define mb_link_asm_dos $(call mb_link_asm_0100,$(1),$(2)) endef -define mb_hex2bin - $(MB_BUILD_SDOBJCOPY_CMD) -I ihex --output-target=binary $(1) $(2) +define mb_hex2com + @echo === Extracting hex2com + cd $(dir $(1)) && $(MB_BUILD_H2B_CMD) -e com $(notdir $(1)) +endef +define mb_hex2dat + @echo === Extracting hex2dat + cd $(dir $(1)) && $(MB_BUILD_H2B_CMD) -e dat $(notdir $(1)) endef diff --git a/lib/make/msxbuild.mk b/lib/make/msxbuild.mk index 6022f7b..b8fb5e3 100644 --- a/lib/make/msxbuild.mk +++ b/lib/make/msxbuild.mk @@ -3,6 +3,7 @@ # # Setup required tools paths +PATH_HEX2BIN ?= /usr/bin PATH_SDCC ?= /usr/bin PATH_UNIX2DOS ?= /usr/bin PATH_OPENMSX ?= /usr/bin diff --git a/test/ahello-sdcc/0module.mk b/test/ahello-sdcc/0module.mk index 6223a69..2c8953a 100644 --- a/test/ahello-sdcc/0module.mk +++ b/test/ahello-sdcc/0module.mk @@ -14,7 +14,7 @@ $(TEST_AHELLO_SDCC)/ahello.hex: $(TEST_AHELLO_SDCC)/ahello.rel $(call mb_link_asm_dos,$(TEST_AHELLO_SDCC)/ahello.hex,$(TEST_AHELLO_SDCC)/ahello.rel) $(TEST_AHELLO_SDCC)/ahello.com: $(TEST_AHELLO_SDCC)/ahello.hex - $(call mb_hex2bin,$(TEST_AHELLO_SDCC)/ahello.hex,$(TEST_AHELLO_SDCC)/ahello.com) + $(call mb_hex2com,$(TEST_AHELLO_SDCC)/ahello.hex,$(TEST_AHELLO_SDCC)/ahello.com) .PHONY: test-ahello-sdcc-run test-ahello-sdcc-run: $(TEST_AHELLO_SDCC)/ahello.com