Fixed mode 80 on msx1 and cleaned boot messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s

This commit is contained in:
Willem Cazander 2024-07-02 15:34:26 +02:00
parent da35583307
commit 8d84a1e65c
13 changed files with 154 additions and 34 deletions

View file

@ -6,7 +6,8 @@ bin/dist-qa-dos1/@assert \
bin/dist-qa-dos2/@assert \
bin/dist-qa-msx1/@assert \
bin/dist-qa-msxhub/@assert \
bin/make-on-msx/@assert
bin/make-on-msx/@assert \
bin/mbboot80-test/@assert
$(PATH_BIN)/@assert-all: | $(ASSERT_ALL_DEPS)
@echo === All assertions completed

View file

@ -0,0 +1,24 @@
MBBOOT80_TEST_MOD := mbboot80-test
MBBOOT80_TEST_SRC := $(PATH_SRC)/$(MBBOOT80_TEST_MOD)
MBBOOT80_TEST_BIN := $(PATH_BIN)/$(MBBOOT80_TEST_MOD)
$(MBBOOT80_TEST_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(MBBOOT80_TEST_BIN))
$(MBBOOT80_TEST_BIN)/mbboot80.com: $(MBBOOT80_BIN)/mbboot80.com | $(MBBOOT80_TEST_BIN)
$(call mb_copy,$<,$@)
$(MBBOOT80_TEST_BIN)/@run: | $(MBBOOT80_TEST_BIN)/mbboot80.com
$(call mb_autoexec_show_gui80,$(MBBOOT80_TEST_BIN))
$(call mb_openmsx_dosctl,$(MBBOOT80_TEST_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MBBOOT80_TEST_BIN)/@run,"Run binaries from mbboot80.")
.PHONY: $(MBBOOT80_TEST_BIN)/@run
$(MBBOOT80_TEST_BIN)/@assert: | $(MBBOOT80_TEST_BIN)/mbboot80.com
$(call mb_delete,$(MBBOOT80_TEST_BIN)/ahello.out)
$(call mb_autoexec_safe_test,$(MBBOOT80_TEST_BIN),mbboot80 > mbboot80.out)
$(call mb_openmsx_dosctl,$(MBBOOT80_TEST_BIN))
grep "mb::boot mode 80" $(MBBOOT80_TEST_BIN)/mbboot80.out
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MBBOOT80_TEST_BIN)/@assert,"Assert binaries from mbboot80.")
.PHONY: $(MBBOOT80_TEST_BIN)/@assert

28
src/mbboot80/0module.mk Normal file
View file

@ -0,0 +1,28 @@
MBBOOT80_MOD := mbboot80
MBBOOT80_SRC := $(PATH_SRC)/$(MBBOOT80_MOD)
MBBOOT80_BIN := $(PATH_BIN)/$(MBBOOT80_MOD)
$(MBBOOT80_BIN): | $(PATH_BIN)/@prepare
$(call mb_mkdir,$(MBBOOT80_BIN))
$(MBBOOT80_BIN)/%.rel: $(MBBOOT80_SRC)/%.asm | $(MBBOOT80_BIN)
$(call mb_sdcc_compile_asm,$<,$@)
$(MBBOOT80_BIN)/mbboot80.hex: $(MBBOOT80_BIN)/mbboot80.rel
$(call mb_sdcc_link_asm_bdos,$<,$@)
$(MBBOOT80_BIN)/mbboot80.com: $(MBBOOT80_BIN)/mbboot80.hex
$(call mb_sdcc_hex2bin,$<,$@)
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MBBOOT80_BIN)/mbboot80.com,"Compiles mbboot80.")
$(MBBOOT80_BIN)/@run: | $(MBBOOT80_BIN)/mbboot80.com
$(call mb_autoexec_show_gui80,$(MBBOOT80_BIN))
$(call mb_openmsx_dosctl,$(MBBOOT80_BIN))
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MBBOOT80_BIN)/@run,"Run the compiled mbboot80.")
.PHONY: $(MBBOOT80_BIN)/@run
$(MBBOOT80_BIN)/@release-local: | $(MBBOOT80_TEST_BIN)/@assert
$(call mb_copy,$(MBBOOT80_BIN)/mbboot80.com,lib/emuctl//mbboot80.com)
MB_DOC_HELP_TARGET += $(call mb_doc_target,$(MBBOOT80_BIN)/@release-local,"Updates binary copy in lib/emuctl folder.")
.PHONY: $(MBBOOT80_BIN)/@release-local

51
src/mbboot80/mbboot80.asm Normal file
View file

@ -0,0 +1,51 @@
.area _CODE
JP MAIN
.db 0x0D
.db 0x0D,0x0A
.str "MSXBUILD Boot mode 80 to support msx1 systems."
.db 0x0D,0x0A
.db 0x1A
MAIN:
LD HL,#0x002D
LD A,(0xFCC1)
CALL 0x0C
LD HL,#TXT_MODE80_MSX1
OR A
JP Z,PUT_TXT
LD A,#80
LD (0xF3AE),A
LD A,#0
LD IY,(0xFCC1)
LD IX,#0x5F
CALL 0x1C
LD HL,#TXT_MODE80
PUT_TXT:
LD A,(HL)
CP #0x1D
RET Z
LD E,A
LD C,#2
PUSH HL
CALL 0x5
POP HL
INC HL
JR PUT_TXT
;=========== MSX_TYPE TXT'S
TXT_MODE80:
.str "mb::boot mode 80"
.db 0x0D,0x0A
.db 0x1D
TXT_MODE80_MSX1:
.str "mb::boot mode MSX1"
.db 0x0D,0x0A
.db 0x1D
.area _DATA