From 7ee3cb7b07f8d66978da5135ed4f4a149cc782fc Mon Sep 17 00:00:00 2001 From: kg68k <78926718+kg68k@users.noreply.github.com> Date: Fri, 9 Feb 2024 22:49:58 +0900 Subject: [PATCH] feat (emulator): support PhantomX with WINPORT --- CHANGELOG.md | 5 +++++ si.txt | 2 +- src/Makefile | 11 +++++++---- src/si_emu.s | 12 ++++++++++-- src/si_ver.mac | 2 +- 5 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2bc1252 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# 変更履歴 + +## 4.09 (2024-02-09) + +* PhantomX装着時はWINPORTが有効でもエミュレータと見なさないようにした。 diff --git a/si.txt b/si.txt index eed3e27..f009a74 100644 --- a/si.txt +++ b/si.txt @@ -9,7 +9,7 @@ │ Copyright (C)1997 Arisugawa Seara │ │ │ │ System Information Extended Edition │ -│ Copyright (C)1999-2022 TcbnErik │ +│ Copyright (C)1999-2024 TcbnErik │ └─────────────────────────────────────┘ diff --git a/src/Makefile b/src/Makefile index 9a69d1c..117912d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -22,7 +22,7 @@ SRCS = si.s si_util.s si_emu.s si_model.s si_acc.s si_phantomx.s si_memory.s si_ OBJS = $(SRCS:.s=.o) SI_R = si.r SI_X = si.x -SI_TXT = si.txt +DOCS = si.txt changelog.txt SI_ZIP = siee.zip @@ -33,11 +33,14 @@ all: $(SI_R) archive: $(SI_ZIP) -$(SI_ZIP): $(SI_R) $(SI_TXT) +$(SI_ZIP): $(SI_R) $(DOCS) rm -f $@ zip -9 $@ $^ -$(SI_TXT): $(SRC_DIR)/../si.txt +si.txt: $(SRC_DIR)/../si.txt + $(U8TOSJ) < $^ >! $@ + +changelog.txt: $(SRC_DIR)/../CHANGELOG.md $(U8TOSJ) < $^ >! $@ @@ -58,6 +61,6 @@ install: cp $(SI_TXT) $(MANDIR) clean: - rm -f si.[xr] $(OBJS) $(ARCS) + rm -f $(SI_ZIP) $(DOCS) $(SI_R) $(SI_X) $(OBJS) # EOF diff --git a/src/si_emu.s b/src/si_emu.s index 64d7380..23b0e02 100644 --- a/src/si_emu.s +++ b/src/si_emu.s @@ -10,6 +10,7 @@ SYSPORT_E8E00D_P7: .equ $e8e00d WINPORT_E9F000: .equ $e9f000 XEIJ_E9F03C_HFS_MAGIC: .equ $e9f03c +PHANTOMX_EA8000_REG: .equ $ea8000 MU_ECC091_COMMAND: .equ $ecc091 @@ -57,10 +58,15 @@ Emulator_GetType:: beq 8f @@: + ;PhantomXでWINPORTが有効なケースを考慮し、先に調べる + lea (PHANTOMX_EA8000_REG),a0 + bsr DosBusErrWord + beq 1f ;PhantomXなので実機 + ;WINPORTが読めればエミュ確定 lea (WINPORT_E9F000),a0 bsr DosBusErrByte - beq 1f + beq 2f ;$e8e000.bが%0000_xxxxならX68000 Z(xxxxはコントラスト、実機は$ff) moveq #EMULATOR_X68Z,d1 @@ -69,9 +75,10 @@ Emulator_GetType:: beq 8f ;実機 + 1: moveq #EMULATOR_REAL,d1 bra 8f -1: + 2: ;EX68 moveq #EMULATOR_EX68,d1 tst.b (SYSPORT_E8E00B_P6) @@ -245,6 +252,7 @@ versionToString: DEFINE_DOSBUSERRBYTE DosBusErrByte + DEFINE_DOSBUSERRWORD DosBusErrWord DEFINE_DOSBUSERRLONG DosBusErrLong diff --git a/src/si_ver.mac b/src/si_ver.mac index dc40d1f..a522130 100644 --- a/src/si_ver.mac +++ b/src/si_ver.mac @@ -1,2 +1,2 @@ -SIEE_VERSION: .reg '4.08' +SIEE_VERSION: .reg '4.09' SIEE_DATE: .reg '2024-02-09'