From 22ad3706bcd817f9208ba782576c34f81d10d8fb Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Wed, 19 Sep 2018 14:53:35 -0700 Subject: [PATCH] All Unibus VAX: Add execution of CPU hardcore instruction test EVKAA to build --- VAX/tests/evkaa.exe | Bin 0 -> 60928 bytes VAX/tests/vax730_test.ini | 8 ++++++++ VAX/tests/vax750_test.ini | 8 ++++++++ VAX/tests/vax780_test.ini | 8 ++++++++ VAX/tests/vax8600_test.ini | 8 ++++++++ makefile | 25 +++++++++++++++++++++++++ 6 files changed, 57 insertions(+) create mode 100644 VAX/tests/evkaa.exe create mode 100644 VAX/tests/vax730_test.ini create mode 100644 VAX/tests/vax750_test.ini create mode 100644 VAX/tests/vax780_test.ini create mode 100644 VAX/tests/vax8600_test.ini diff --git a/VAX/tests/evkaa.exe b/VAX/tests/evkaa.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b6a78a0d58ec22aadbf295112f28d89132e2307 GIT binary patch literal 60928 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

~ikM62_dus*+nZUzXge4ZknaH6RX9B4-u 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 Vw{YiW)Bb%W!&%|<-~WjN{|i=ogqr{W literal 0 HcmV?d00001 diff --git a/VAX/tests/vax730_test.ini b/VAX/tests/vax730_test.ini new file mode 100644 index 00000000..b20f5b68 --- /dev/null +++ b/VAX/tests/vax730_test.ini @@ -0,0 +1,8 @@ +cd VAX/tests +set console telnet=buffered +load evkaa.exe +expect "Hit any key to continue" send "\r"; go +expect [2] "done!" echof "\r\nHareware Core Instruction test EVKAA - Passed"; exit 0 +go 200 +echof "\r\nHareware Core Instruction test EVKAA - FAILED" +exit 1 diff --git a/VAX/tests/vax750_test.ini b/VAX/tests/vax750_test.ini new file mode 100644 index 00000000..b20f5b68 --- /dev/null +++ b/VAX/tests/vax750_test.ini @@ -0,0 +1,8 @@ +cd VAX/tests +set console telnet=buffered +load evkaa.exe +expect "Hit any key to continue" send "\r"; go +expect [2] "done!" echof "\r\nHareware Core Instruction test EVKAA - Passed"; exit 0 +go 200 +echof "\r\nHareware Core Instruction test EVKAA - FAILED" +exit 1 diff --git a/VAX/tests/vax780_test.ini b/VAX/tests/vax780_test.ini new file mode 100644 index 00000000..b20f5b68 --- /dev/null +++ b/VAX/tests/vax780_test.ini @@ -0,0 +1,8 @@ +cd VAX/tests +set console telnet=buffered +load evkaa.exe +expect "Hit any key to continue" send "\r"; go +expect [2] "done!" echof "\r\nHareware Core Instruction test EVKAA - Passed"; exit 0 +go 200 +echof "\r\nHareware Core Instruction test EVKAA - FAILED" +exit 1 diff --git a/VAX/tests/vax8600_test.ini b/VAX/tests/vax8600_test.ini new file mode 100644 index 00000000..b20f5b68 --- /dev/null +++ b/VAX/tests/vax8600_test.ini @@ -0,0 +1,8 @@ +cd VAX/tests +set console telnet=buffered +load evkaa.exe +expect "Hit any key to continue" send "\r"; go +expect [2] "done!" echof "\r\nHareware Core Instruction test EVKAA - Passed"; exit 0 +go 200 +echof "\r\nHareware Core Instruction test EVKAA - FAILED" +exit 1 diff --git a/makefile b/makefile index 98b63578..be3fcfe5 100644 --- a/makefile +++ b/makefile @@ -121,6 +121,7 @@ endif find_exe = $(abspath $(strip $(firstword $(foreach dir,$(strip $(subst :, ,$(PATH))),$(wildcard $(dir)/$(1)))))) find_lib = $(abspath $(strip $(firstword $(foreach dir,$(strip $(LIBPATH)),$(wildcard $(dir)/lib$(1).$(LIBEXT)))))) find_include = $(abspath $(strip $(firstword $(foreach dir,$(strip $(INCPATH)),$(wildcard $(dir)/$(1).h))))) +find_test = $(abspath $(1)/tests/$(2)_test.ini) ifneq ($(findstring Windows,$(OS)),) ifeq ($(findstring .exe,$(SHELL)),.exe) # MinGW @@ -1875,48 +1876,72 @@ ifeq ($(WIN32),) else copy $(@D)\microvax3900${EXE} $(@D)\vax${EXE} endif +ifneq (,$(call find_test,$(VAXD),microvax3900)) + $@ $(call find_test,$(VAXD),microvax3900) +endif microvax1 : ${BIN}BuildROMs${EXE} ${BIN}microvax1${EXE} ${BIN}microvax1${EXE} : ${VAX610} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX610} ${SIM} ${VAX610_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),microvax1)) + $@ $(call find_test,$(VAXD),microvax1) +endif rtvax1000 : ${BIN}BuildROMs${EXE} ${BIN}rtvax1000${EXE} ${BIN}rtvax1000${EXE} : ${VAX630} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX630} ${SIM} ${VAX620_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),rtvax1000)) + $@ $(call find_test,$(VAXD),rtvax1000) +endif microvax2 : ${BIN}BuildROMs${EXE} ${BIN}microvax2${EXE} ${BIN}microvax2${EXE} : ${VAX630} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX630} ${SIM} ${VAX630_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),microvax2)) + $@ $(call find_test,$(VAXD),microvax2) +endif vax730 : ${BIN}BuildROMs${EXE} ${BIN}vax730${EXE} ${BIN}vax730${EXE} : ${VAX730} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX730} ${SIM} ${VAX730_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),vax730)) + $@ $(call find_test,$(VAXD),vax730) +endif vax750 : ${BIN}BuildROMs${EXE} ${BIN}vax750${EXE} ${BIN}vax750${EXE} : ${VAX750} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX750} ${SIM} ${VAX750_OPT} -o $@ ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),vax750)) + $@ $(call find_test,$(VAXD),vax750) +endif vax780 : ${BIN}BuildROMs${EXE} ${BIN}vax780${EXE} ${BIN}vax780${EXE} : ${VAX780} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX780} ${SIM} ${VAX780_OPT} $(CC_OUTSPEC) ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),vax780)) + $@ $(call find_test,$(VAXD),vax780) +endif vax8600 : ${BIN}BuildROMs${EXE} ${BIN}vax8600${EXE} ${BIN}vax8600${EXE} : ${VAX8600} ${SIM} ${BUILD_ROMS} ${MKDIRBIN} ${CC} ${VAX8600} ${SIM} ${VAX8600_OPT} $(CC_OUTSPEC) ${LDFLAGS} +ifneq (,$(call find_test,$(VAXD),vax8600)) + $@ $(call find_test,$(VAXD),vax8600) +endif nova : ${BIN}nova${EXE}