● 取り敢えず SIMH を make してみる
というわけで、
取り敢えず SIMH を make できる環境をつくります。
別に好きにやればいいんだけど、
私は次のような
Makefile
を作りました。
$ cd ${SIMHDIR} $ mkdir pdp11e $ cd pdp11e $ cat > Makefile # $Id: page1.html,v 1.3 2003/12/10 11:44:02 fujita Exp $ vpath %.c ../PDP11 vpath %.c ../ PROG= pdp11e SRCS= SRCS+= pdp11_fp.c SRCS+= pdp11_cpu.c SRCS+= pdp11_dz.c SRCS+= pdp11_cis.c SRCS+= pdp11_lp.c SRCS+= pdp11_rk.c SRCS+= pdp11_rl.c SRCS+= pdp11_rp.c SRCS+= pdp11_rx.c SRCS+= pdp11_stddev.c SRCS+= pdp11_sys.c SRCS+= pdp11_tc.c SRCS+= pdp11_tm.c SRCS+= pdp11_ts.c SRCS+= pdp11_io.c SRCS+= pdp11_rq.c SRCS+= pdp11_tq.c SRCS+= pdp11_pclk.c SRCS+= pdp11_ry.c SRCS+= pdp11_pt.c SRCS+= pdp11_hk.c SRCS+= pdp11_xq.c SRCS+= pdp11_xu.c SRCS+= scp.c SRCS+= scp_tty.c SRCS+= sim_sock.c SRCS+= sim_tmxr.c SRCS+= sim_ether.c SRCS+= sim_tape.c OBJS= $(SRCS:.c=.o) CFLAGS= -g CFLAGS+=-DVM_PDP11 CFLAGS+=-I./ CFLAGS+=-I../ CFLAGS+=-I../PDP11 #LDFLAGS=-L/usr/X11R6/lib LIBS= -lm all: ${PROG} ${PROG}: ${OBJS} ${CC} ${LDFLAGS} -o ${PROG} ${OBJS} ${LIBS} CLEANFILES= clean cleandir: rm -f ${PROG} ${OBJS} ${CLEANFILES} <CNTL-D> $ make cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_fp.o ../PDP11/pdp11_fp.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_cpu.o ../PDP11/pdp11_cpu.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_dz.o ../PDP11/pdp11_dz.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_cis.o ../PDP11/pdp11_cis.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_lp.o ../PDP11/pdp11_lp.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_rk.o ../PDP11/pdp11_rk.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_rl.o ../PDP11/pdp11_rl.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_rp.o ../PDP11/pdp11_rp.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_rx.o ../PDP11/pdp11_rx.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_stddev.o ../PDP11/pdp11_stddev.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_sys.o ../PDP11/pdp11_sys.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_tc.o ../PDP11/pdp11_tc.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_tm.o ../PDP11/pdp11_tm.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_ts.o ../PDP11/pdp11_ts.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_io.o ../PDP11/pdp11_io.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_rq.o ../PDP11/pdp11_rq.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_tq.o ../PDP11/pdp11_tq.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_pclk.o ../PDP11/pdp11_pclk.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_ry.o ../PDP11/pdp11_ry.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_pt.o ../PDP11/pdp11_pt.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_hk.o ../PDP11/pdp11_hk.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_xq.o ../PDP11/pdp11_xq.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o pdp11_xu.o ../PDP11/pdp11_xu.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o scp.o ../scp.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o scp_tty.o ../scp_tty.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o sim_sock.o ../sim_sock.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o sim_tmxr.o ../sim_tmxr.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o sim_ether.o ../sim_ether.c cc -g -DVM_PDP11 -I./ -I../ -I../PDP11 -c -o sim_tape.o ../sim_tape.c cc -o pdp11e pdp11_fp.o pdp11_cpu.o pdp11_dz.o pdp11_cis.o pdp11_lp.o pdp11_rk.o pdp11_rl.o pdp11_rp.o pdp11_rx.o pdp11_stddev.o pdp11_sys.o pdp11_tc.o pdp11_tm.o pdp11_ts.o pdp11_io.o pdp11_rq.o pdp11_tq.o pdp11_pclk.o pdp11_ry.o pdp11_pt.o pdp11_hk.o pdp11_xq.o pdp11_xu.o scp.o scp_tty.o sim_sock.o sim_tmxr.o sim_ether.o sim_tape.o -lm $ ./pdp11e PDP-11 simulator V3.0-2 sim> quit Goodbye $
この Makefile の便利なところは、 ローカルディレクトリに該当するソースがなければ、 隣の "../PDP11/" や、1つ上の "../" にあるソースを見に行ってくれることです。 なので、 修正の必要なソースファイルだけ、 ローカルディレクトリにコピーして変更すれば良い。 作業が終った時に、 どのファイルを修正したか一発で分かります。
では、 オリジナルのソースに手を入れていきましょう。