Fixed mode 80 on msx1 and cleaned boot messages.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 3s
This commit is contained in:
parent
da35583307
commit
8d84a1e65c
14
README.md
14
README.md
|
@ -44,27 +44,27 @@ TODO
|
|||
When you want to see whats happening do a debug run;
|
||||
|
||||
normal run;
|
||||
time make assert-all
|
||||
time make bin/@assert-all
|
||||
real 0m3.223s
|
||||
|
||||
debug run at 11 Mhz;
|
||||
time MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on make assert-all
|
||||
time MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on make vassert-all
|
||||
real 1m4.856s
|
||||
|
||||
debug run real msx speed;
|
||||
time MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on MB_OPENMSX_SPEED=100 make assert-all
|
||||
time MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on MB_OPENMSX_SPEED=100 make bin/@assert-all
|
||||
real 2m37.379s
|
||||
|
||||
debug run with screenshot on exit; (black screens without throttle)
|
||||
time MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on MB_FLIGHT_SCREEN=on make -s assert-all
|
||||
time MB_OPENMSX_HEADLESS=off MB_OPENMSX_THROTTLE=on MB_FLIGHT_SCREEN=on make -s bin/@assert-all
|
||||
real 1m14.043s
|
||||
|
||||
debug run with video recorder and merge to one video file;
|
||||
time MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on make -s assert-all
|
||||
time MB_OPENMSX_HEADLESS=off MB_FLIGHT_VIDEO=on make -s bin/@assert-all
|
||||
real 0m7.136s
|
||||
|
||||
build parallel;
|
||||
time make -s -j4 assert-all
|
||||
time make -s -j4 bin/@assert-all
|
||||
real 0m1.817s
|
||||
|
||||
manual test msxhub on machine;
|
||||
|
@ -86,6 +86,7 @@ Current set is WIP.
|
|||
## Errata
|
||||
|
||||
* Doesn't work on windows
|
||||
* TODO: mbboot80+add arg prefix and move to other repro + msxhub package
|
||||
* TODO: Missing C and mixed support
|
||||
* TODO: Use TCL for BASIC/ASM/C lcov (Cobertura) code coverage
|
||||
|
||||
|
@ -104,6 +105,7 @@ Current set is WIP.
|
|||
* run instance-id or run/process-label to replace hardcoded "untitled1" path
|
||||
* Remove msg or add ignore sram-fully or blank setting: SRAM file nms8250.cmos not found, assuming blank SRAM content.
|
||||
* Video record append mode + optional multiple previds to glue videos as one
|
||||
* Video record remove blue start frame on start of recording
|
||||
* (FIXED) Allow for `set renderer none` in TCL or command argument for headless mode
|
||||
* SDL-NULL as window less renderer so that screenshot and/or video works headless
|
||||
* DocUpdate: Add speed note because it is slow + add example "after quit {export hdd}"
|
||||
|
|
BIN
lib/emuctl/mbboot80.com
Normal file
BIN
lib/emuctl/mbboot80.com
Normal file
Binary file not shown.
|
@ -5,6 +5,9 @@ MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_VERSION,"Print O
|
|||
MB_AUTOEXEC_SHOW_PATH ?= on
|
||||
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_PATH,"Print search path on boot.",$(MB_AUTOEXEC_SHOW_PATH))
|
||||
|
||||
MB_AUTOEXEC_SHOW_PROLOG ?= on
|
||||
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_PROLOG,"Print msxbuild prolog on boot.",$(MB_AUTOEXEC_SHOW_PROLOG))
|
||||
|
||||
MB_AUTOEXEC_SHOW_CONFIG ?= on
|
||||
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SHOW_CONFIG,"Print host config on boot.",$(MB_AUTOEXEC_SHOW_CONFIG))
|
||||
|
||||
|
@ -32,6 +35,9 @@ MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SAFE_CMD_TIMEOUT,"Saf
|
|||
MB_AUTOEXEC_SAFE_CMD_EXITCODE ?= 1
|
||||
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_SAFE_CMD_EXITCODE,"Safe command execution failure exit code.",$(MB_AUTOEXEC_SAFE_CMD_EXITCODE))
|
||||
|
||||
MB_AUTOEXEC_STARTUP_PROLOG ?= mb::boot MSXBUILD UID $(USER)
|
||||
MB_DOC_HELP_VARIABLE += $(call mb_doc_variable,MB_AUTOEXEC_STARTUP_PROLOG,"Boot prolog user postfix.",$(MB_AUTOEXEC_STARTUP_PROLOG))
|
||||
|
||||
define mb_autoexec_append_cmd
|
||||
echo "$(2)\r" >> $(1)/autoexec.bat
|
||||
endef
|
||||
|
@ -80,33 +86,36 @@ MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_save_video,"Ap
|
|||
|
||||
define mb_autoexec_append_safe_test
|
||||
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_TEST_TIMEOUT)) seconds failed_test $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_TEST_EXITCODE)))
|
||||
$(call mb_autoexec_append_echo,$(1),Running test: $(2))
|
||||
$(call mb_autoexec_append_echo,$(1),mb::safe test $(2))
|
||||
$(call mb_autoexec_append_cmd,$(1),$(2))
|
||||
endef
|
||||
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_safe_test,"Appends running a safe test.","<dir> <cmd> [timeout] [exit-code]")
|
||||
|
||||
define mb_autoexec_append_safe_cmd
|
||||
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(if $(3),$(3),$(MB_AUTOEXEC_SAFE_CMD_TIMEOUT)) seconds failed_cmd $(if $(4),$(4),$(MB_AUTOEXEC_SAFE_CMD_EXITCODE)))
|
||||
$(call mb_autoexec_append_echo,$(1),Running command: $(2))
|
||||
$(call mb_autoexec_append_echo,$(1),mb::safe command $(2))
|
||||
$(call mb_autoexec_append_cmd,$(1),$(2))
|
||||
endef
|
||||
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_append_safe_cmd,"Appends running a safe command.","<dir> <cmd> [timeout] [exit-code]")
|
||||
|
||||
define _mb_autoexec_write_preboot
|
||||
$(call mb_autoexec_append_cmd,$(1),$(2)mbboot80)
|
||||
$(call mb_autoexec_append_cmd,$(1),$(2)omsxctl boot_exec_color_vdp)
|
||||
$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_autoexec_append_save_video,$(1)))
|
||||
$(call mb_autoexec_append_cmd,$(1),$(2)omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds failed_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
|
||||
endef
|
||||
|
||||
define mb_autoexec_write_default
|
||||
@echo === Writing autoexec.bat for $@
|
||||
@echo -n "" > $(1)/autoexec.bat
|
||||
$(if $(filter 40,$(2)),$(call mb_autoexec_append_cmd,$(1),mode 40),$(call mb_autoexec_append_cmd,$(1),mode 80))
|
||||
$(call mb_autoexec_append_echo,$(1),==== MSXBUILD ====)
|
||||
$(if $(filter 40,$(2)),$(call mb_autoexec_append_echo,$(1),Boot mode 40),$(call mb_autoexec_append_echo,$(1),Boot mode 80))
|
||||
$(call mb_autoexec_append_cmd,$(1),omsxctl boot_exec_color_vdp)
|
||||
$(if $(filter on,$(MB_FLIGHT_VIDEO)),$(call mb_autoexec_append_save_video,$(1)))
|
||||
$(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds failed_exec $(MB_AUTOEXEC_STARTUP_EXITCODE))
|
||||
$(if $(wildcard $(1)/utils),$(call _mb_autoexec_write_preboot,$(1),utils\),$(call _mb_autoexec_write_preboot,$(1)))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_VERSION)),$(call mb_autoexec_append_cmd,$(1),ver))
|
||||
$(if $(wildcard $(1)/utils),$(call mb_autoexec_append_cmd,$(1),PATH + A:\; A:\UTILS))
|
||||
$(if $(wildcard $(1)/utils),$(call mb_autoexec_append_cmd,$(1),PATH + A:\UTILS))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_PATH)),$(call mb_autoexec_append_cmd,$(1),PATH))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_PROLOG)),$(call mb_autoexec_append_echo,$(1),$(MB_AUTOEXEC_STARTUP_PROLOG)))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_CONFIG)),$(call mb_autoexec_append_cmd,$(1),omsxctl boot_exec_config_info))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_FOLDER)),$(call mb_autoexec_append_echo,$(1),Run folder $(1)))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_TARGET)),$(call mb_autoexec_append_echo,$(1),Run target $@))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_FOLDER)),$(call mb_autoexec_append_echo,$(1),mb::path $(1)))
|
||||
$(if $(filter on,$(MB_AUTOEXEC_SHOW_TARGET)),$(call mb_autoexec_append_echo,$(1),mb::pipe $@))
|
||||
endef
|
||||
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_write_default,"Write a default autoexec.bat file.","<dir> [text-mode]")
|
||||
MB_DOC_HELP_FUNCTION += $(call mb_doc_function,mb_autoexec_write_default,"Write a default autoexec.bat file.","<dir>")
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ define _mb_autoexec_show_gui
|
|||
$(call mb_autoexec_append_stop_fail,$(1))
|
||||
$(call mb_autoexec_append_show_gui,$(1))
|
||||
$(if $(filter mouse,$(4)),$(call mb_autoexec_append_joyporta_mouse,$(1)))
|
||||
$(call mb_autoexec_append_echo,$(1),Type shutdown to stop emulation)
|
||||
$(if $(3),$(call mb_autoexec_append_echo,$(1),Running command: $(3)))
|
||||
$(call mb_autoexec_append_echo,$(1),mb::exit Type shutdown to stop emulation)
|
||||
$(if $(3),$(call mb_autoexec_append_echo,$(1),mb::show command $(3)))
|
||||
$(if $(3),$(call mb_autoexec_append_cmd,$(1),$(3)))
|
||||
endef
|
||||
|
||||
|
|
|
@ -92,12 +92,13 @@ define _mb_openmsx_dosctl_bat
|
|||
$(if $(wildcard $(1)/z80.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/z80.bat,$(1)))
|
||||
$(if $(wildcard $(1)/reboot.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/reboot.bat,$(1)))
|
||||
$(if $(wildcard $(1)/shutdown.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/shutdown.bat,$(1)))
|
||||
$(if $(wildcard $(1)/mbboot80.com),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/mbboot80.com,$(1)))
|
||||
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
|
||||
endef
|
||||
|
||||
define mb_openmsx_dosctl
|
||||
$(call mb_openmsx_setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
|
||||
$(if $(wildcard $(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)))
|
||||
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com))
|
||||
$(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb_msxhub_get_$(MB_OPENMSX_BOOT_OS)_boot,$(1))))
|
||||
$(call _mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(if $(3),$(3),$(MB_OPENMSX_MACHINE_RAM)))
|
||||
endef
|
||||
|
|
|
@ -33,13 +33,17 @@ proc boot_exec_color_vdp {{vdp_fg 0} {vdp_bg 0}} {
|
|||
} else {
|
||||
set color_vdp_bg $boot_exec_color_vdp_bg
|
||||
}
|
||||
setcolor 15 $color_vdp_fg
|
||||
setcolor 4 $color_vdp_bg
|
||||
return "Boot color vdp fg $color_vdp_fg bg $color_vdp_bg"
|
||||
if {([vdpreg 8] != 0) || ([vdpreg 16] != 0)} {
|
||||
setcolor 15 $color_vdp_fg
|
||||
setcolor 4 $color_vdp_bg
|
||||
return "mb::boot color vdp fg $color_vdp_fg bg $color_vdp_bg"
|
||||
} else {
|
||||
return "mb::boot color MSX1"
|
||||
}
|
||||
}
|
||||
|
||||
proc boot_exec_config_info {} {
|
||||
set result "Run machine "
|
||||
set result "mb::host "
|
||||
append result [machine_info config_name]
|
||||
append result " on "
|
||||
append result [openmsx_info version]
|
||||
|
|
|
@ -41,7 +41,7 @@ proc fail_after { timeout {time_unit "time"} {fail_id "fail_after"} {fail_code 2
|
|||
set msg ""
|
||||
if {$fail_after_prev_timer != 0} {
|
||||
after cancel $fail_after_prev_timer
|
||||
set msg "$fail_after_prev_id: Stopped attempt"
|
||||
set msg "mb::fail canceled $fail_after_prev_id"
|
||||
}
|
||||
set fail_after_prev_id $fail_id
|
||||
if {$time_unit != "time"} {
|
||||
|
@ -52,7 +52,7 @@ proc fail_after { timeout {time_unit "time"} {fail_id "fail_after"} {fail_code 2
|
|||
puts stderr "error: $err_msg"
|
||||
fail_after_exit fail_after_timer_error 1
|
||||
}
|
||||
set msg "$msg\n$fail_id: Failure in $timeout $time_unit sec"
|
||||
set msg "$msg\nmb::fail after $timeout $time_unit $fail_id"
|
||||
} else {
|
||||
set fail_after_prev_timer 0
|
||||
}
|
||||
|
|
|
@ -31,12 +31,12 @@ set headless_renderer_done 0
|
|||
|
||||
proc headless_exit {} {
|
||||
after time 1 "exit 0"
|
||||
return "Shutdown openMSX"
|
||||
return "mb::head shutdown openMSX"
|
||||
}
|
||||
|
||||
proc headless_reset {} {
|
||||
after time 1 "reset"
|
||||
return "Reboot openMSX"
|
||||
return "mb::head reboot openMSX"
|
||||
}
|
||||
|
||||
proc headless_show_gui {} {
|
||||
|
@ -45,7 +45,7 @@ proc headless_show_gui {} {
|
|||
global headless_renderer_type
|
||||
global headless_renderer_done
|
||||
if {$headless_renderer_done != 0} {
|
||||
return "Requested GUI already showing"
|
||||
return "mb::head GUI already showing"
|
||||
}
|
||||
if {$headless_renderer_type != 0} {
|
||||
after time 1 "set renderer $headless_renderer_type"
|
||||
|
@ -55,7 +55,7 @@ proc headless_show_gui {} {
|
|||
puts stderr "error: Requested show gui but env.RENDERER is missing."
|
||||
exit 1
|
||||
}
|
||||
return "Requested GUI with $headless_renderer_type"
|
||||
return "mb::head GUI renderer $headless_renderer_type"
|
||||
}
|
||||
|
||||
if {[info exists ::env(RENDERER)] && ([string trim $::env(RENDERER)] != "")} {
|
||||
|
|
|
@ -33,7 +33,7 @@ proc night_flight_save_screenshot {{prefix_id 0}} {
|
|||
set file_prefix "$night_flight_prefix$night_flight_seperator"
|
||||
}
|
||||
screenshot -prefix $file_prefix
|
||||
return "Flight screenshot saved"
|
||||
return "mb::save flight screenshot"
|
||||
}
|
||||
|
||||
proc night_flight_save_video {{prefix_id 0}} {
|
||||
|
@ -47,7 +47,7 @@ proc night_flight_save_video {{prefix_id 0}} {
|
|||
}
|
||||
after quit "record stop"
|
||||
after time 1 "record start $night_flight_record_flag -prefix $file_prefix"
|
||||
return "Flight video started"
|
||||
return "mb::save flight video"
|
||||
}
|
||||
|
||||
if {[info exists ::env(NF_PREFIX)] && ([string trim $::env(NF_PREFIX)] != "")} {
|
||||
|
|
|
@ -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
|
||||
|
|
24
src/mbboot80-test/0module.mk
Normal file
24
src/mbboot80-test/0module.mk
Normal 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
28
src/mbboot80/0module.mk
Normal 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
51
src/mbboot80/mbboot80.asm
Normal 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
|
Loading…
Reference in a new issue