Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTX2001A simulator #157

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions RTX2001A/CREDITS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
This project would not be possible without the original development at Harris Semiconductor
of
o The RTX2000 simulator by Phil Koopman Jr. 9/x/90
o The APPFORTH, RTX2001A hex images by Rick VanNorman Fri 06-01-1990
155 changes: 155 additions & 0 deletions RTX2001A/makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# RTX-2001A
RTX2001AD = ${SIMHD}/RTX2001A/
RTX2001AD_SRC = ${RTX2001AD}src/

RTX2001A_SRC = \
${RTX2001AD_SRC}rtx2001a_registers.h \
${RTX2001AD_SRC}rtx2001a_defs.h \
${RTX2001AD_SRC}rtx2001a_debug.h \
${RTX2001AD_SRC}rtx2001a_cpu.c \
${RTX2001AD_SRC}rtx2001a_sys.c \
${RTX2001AD_SRC}rtx2001a_decode.c \
${RTX2001AD_SRC}rtx2001a_decode.h \
${RTX2001AD_SRC}rtx2001a_execute.c \
${RTX2001AD_SRC}rtx2001a_execute.h \
${RTX2001AD_SRC}rtx2001a_ab.c \
${RTX2001AD_SRC}rtx2001a_ab.h \
${RTX2001AD_SRC}rtx2001a_mb.c \
${RTX2001AD_SRC}rtx2001a_mb.h \
${RTX2001AD_SRC}rtx2001a_psb.c \
${RTX2001AD_SRC}rtx2001a_psb.h \
${RTX2001AD_SRC}rtx2001a_rsb.c \
${RTX2001AD_SRC}rtx2001a_rsb.h

# rtx2001a lib
RTX2001A_LIB = rtx2001a.a

${RTX2001AD}${RTX2001A_LIB} : ${SIM} ${RTX2001A_SRC}
${GCC} -c -fPIC ${CC_STD} -U__STRICT_ANSI__ ${CFLAGS_G} \
${CFLAGS_O} ${CFLAGS_GIT} ${CFLAGS_I} \
-DSIM_COMPILER="${COMPILER_NAME}" -DSIM_VERSION_MODE="${SIM_VERSION_MODE}" \
-DSIM_BUILD_TOOL=simh-makefile ${OS_CCDEFS} ${ROMS_OPT} ${SIM} ${RTX2001A_SRC}
ar vrcs ${RTX2001AD}${RTX2001A_LIB} rtx2001a_*.o sim_*.o

# rtx2001a
rtx2001a : ${BIN}rtx2001a${EXE}

# ${STUB_OPT}
${BIN}rtx2001a${EXE} : ${SIMH_LIB} ${RTX2001AD}${RTX2001A_LIB}
${MKDIRBIN}
${CC} scp.o ${SIMH_LIB} ${RTX2001AD}${RTX2001A_LIB} ${CC_OUTSPEC} ${LDFLAGS}

# tests
OS_CCDEFS_TEST = ${OS_CCDEFS}
OS_CCDEFS_TEST += -Wall
OS_CCDEFS_TEST += -Wextra
OS_CCDEFS_TEST += -Wpointer-arith
OS_CCDEFS_TEST += -Wcast-align
OS_CCDEFS_TEST += -Wwrite-strings
OS_CCDEFS_TEST += -Wswitch-default
OS_CCDEFS_TEST += -Wunreachable-code
OS_CCDEFS_TEST += -Winit-self
OS_CCDEFS_TEST += -Wmissing-field-initializers
OS_CCDEFS_TEST += -Wno-unknown-pragmas
OS_CCDEFS_TEST += -Wstrict-prototypes
OS_CCDEFS_TEST += -Wundef
OS_CCDEFS_TEST += -Wold-style-definition

UNITYD_SRC=../Unity/src/

RTX2001AD_TEST = ${RTX2001AD}test/

RTX2001A_TEST_MB_SRC = \
${RTX2001AD_TEST}test_mb.c \
${RTX2001AD_TEST}test_mb_long_store_fetch.c \
${RTX2001AD_TEST}test_mb_byte_store_fetch.c \
${RTX2001AD_TEST}test_mb_store_fetch.c \
${RTX2001AD_TEST}scp_stub.c \
$(UNITYD_SRC)unity.c

RTX2001A_TEST_AB_SRC = \
${RTX2001AD_TEST}test_ab.c \
${RTX2001AD_TEST}test_ab_gstore.c \
${RTX2001AD_TEST}test_ab_gfetch.c \
${RTX2001AD_TEST}scp_stub.c \
$(UNITYD_SRC)unity.c

RTX2001A_TEST_PSB_SRC = \
${RTX2001AD_TEST}test_psb.c \
${RTX2001AD_TEST}scp_stub.c \
$(UNITYD_SRC)unity.c

RTX2001A_TEST_RSB_SRC = \
${RTX2001AD_TEST}test_rsb.c \
${RTX2001AD_TEST}scp_stub.c \
$(UNITYD_SRC)unity.c

RTX2001A_TEST_DECODE_SRC = \
${RTX2001AD_TEST}test_decode.c \
${RTX2001AD_TEST}scp_stub.c \
$(UNITYD_SRC)unity.c

RTX2001A_TEST_EXECUTE_SRC = \
${RTX2001AD_TEST}test_execute.c \
${RTX2001AD_TEST}scp_stub.c \
$(UNITYD_SRC)unity.c

rtx2001a_test : \
${BIN}test_mb${EXE} \
${BIN}test_ab${EXE} \
${BIN}test_psb${EXE} \
${BIN}test_rsb${EXE} \
${BIN}test_decode${EXE} \
${BIN}test_execute${EXE}

${BIN}test_mb${EXE} : ${RTX2001AD}${RTX2001A_LIB} ${RTX2001A_TEST_MB_SRC} ${RTX2001A_SRC}
${MKDIRBIN}
${CC} -I${UNITYD_SRC} -I${RTX2001AD_SRC} \
${RTX2001A_TEST_MB_SRC} \
${LDFLAGS} \
${RTX2001AD}${RTX2001A_LIB} \
${CC_OUTSPEC}

${BIN}test_ab${EXE} : ${RTX2001AD}${RTX2001A_LIB} ${RTX2001A_TEST_AB_SRC} ${RTX2001A_SRC}
${MKDIRBIN}
${CC} -I${UNITYD_SRC} -I${RTX2001AD_SRC} \
${RTX2001A_TEST_AB_SRC} \
${LDFLAGS} \
${RTX2001AD}${RTX2001A_LIB} \
${CC_OUTSPEC}

${BIN}test_psb${EXE} : ${RTX2001AD}${RTX2001A_LIB} ${RTX2001A_TEST_PSB_SRC} ${RTX2001A_SRC}
${MKDIRBIN}
${CC} -I${UNITYD_SRC} -I${RTX2001AD_SRC} \
${RTX2001A_TEST_PSB_SRC} \
${LDFLAGS} \
${RTX2001AD}${RTX2001A_LIB} \
${CC_OUTSPEC}

${BIN}test_rsb${EXE} : ${RTX2001AD}${RTX2001A_LIB} ${RTX2001A_TEST_RSB_SRC} ${RTX2001A_SRC}
${MKDIRBIN}
${CC} -I${UNITYD_SRC} -I${RTX2001AD_SRC} \
${RTX2001A_TEST_RSB_SRC} \
${LDFLAGS} \
${RTX2001AD}${RTX2001A_LIB} \
${CC_OUTSPEC}

${BIN}test_decode${EXE} : ${RTX2001AD}${RTX2001A_LIB} ${RTX2001A_TEST_DECODE_SRC} ${RTX2001A_SRC}
${MKDIRBIN}
${CC} -I${UNITYD_SRC} -I${RTX2001AD_SRC} \
${RTX2001A_TEST_DECODE_SRC} \
${LDFLAGS} \
${RTX2001AD}${RTX2001A_LIB} \
${CC_OUTSPEC}

${BIN}test_execute${EXE} : ${RTX2001AD}${RTX2001A_LIB} ${RTX2001A_TEST_EXECUTE_SRC} ${RTX2001A_SRC}
${MKDIRBIN}
${CC} -I${UNITYD_SRC} -I${RTX2001AD_SRC} \
${RTX2001A_TEST_EXECUTE_SRC} \
${LDFLAGS} \
${RTX2001AD}${RTX2001A_LIB} \
${CC_OUTSPEC}

# clean
rtx2001a_clean:
${RM} -rf ${BIN} ${SIMH}/*.o ${RTX2001AD}$(RTX2001A_LIB)
Binary file added RTX2001A/rtx2001a.doc
Binary file not shown.
23 changes: 23 additions & 0 deletions RTX2001A/rtx2001a.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

# use for rtx2001a
# set log -n /tmp/rtx2001a.log
# set debug -PF /tmp/rtx2001a.log
set nolog
set debug -f stdout
set CPU NODEBUG=CPU;MEBR;MEBW;ASBR;ASBW;PSBR;PSBW;RSBR;RSBW
if exist "%SIM_BIN_NAME%/appforth.hex" load %SIM_BIN_NAME%/appforth.hex
if exist "appforth.hex" load appforth.hex
# set break -s -p
# set CPU DEBUG=CPU;MEBR;MEBW;ASBR;ASBW;PSBR;PSBW;RSBR;RSBW
# set CPU deb=CPU;ASBR;ASBW;
#
# boot routine
#
dep ir 0x175D
dep pc 2
step
#
# verify boot state
#
ex state
set on
Loading