diff --git a/README.md b/README.md index 0964bbee..293bd6ff 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ #### Howard Harte has implemented a Lincoln Labs TX-0 simulator. +#### Gerardo Ospina has implemented a Manchester University SSEM (Small Scale Experimental Machine) simulator. + #### Updated AltairZ80 simulator from Peter Schorn. #### Updated HP2100 simulator from Dave Bryan. diff --git a/SSEM/ssem_cpu.c b/SSEM/ssem_cpu.c index a3303d54..87bba4be 100644 --- a/SSEM/ssem_cpu.c +++ b/SSEM/ssem_cpu.c @@ -142,7 +142,8 @@ do { break; } #endif - if (reason = sim_process_event ()) break; + if ((reason = sim_process_event ())) + break; } if (sim_brk_summ && /* breakpoint? */ @@ -157,10 +158,10 @@ do { /* Get present instruction */ C[1] = Read (*C); - Staticisor = C[1] & IMASK; /* get instruction */ + Staticisor = C[1] & IMASK; /* get instruction */ sim_interval = sim_interval - 1; - if (reason = cpu_one_inst (*C, Staticisor)) { /* one instr; error? */ + if ((reason = cpu_one_inst (*C, Staticisor))) { /* one instr; error? */ break; } diff --git a/Visual Studio Projects/SSEM.vcproj b/Visual Studio Projects/SSEM.vcproj new file mode 100644 index 00000000..74e9d0bb --- /dev/null +++ b/Visual Studio Projects/SSEM.vcproj @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Visual Studio Projects/Simh.sln b/Visual Studio Projects/Simh.sln index 6a759aa7..b32e00e4 100644 --- a/Visual Studio Projects/Simh.sln +++ b/Visual Studio Projects/Simh.sln @@ -97,6 +97,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VAX8600", "VAX8600.vcproj", {D40F3AF1-EEE7-4432-9807-2AD287B490F8} = {D40F3AF1-EEE7-4432-9807-2AD287B490F8} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSEM", "SSEM.vcproj", "{48DA6BA8-23E1-4F0D-959C-48C8576494DA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -247,6 +249,10 @@ Global {F5C22D72-460E-43CD-9AC6-6D6AC517BD1F}.Debug|Win32.Build.0 = Debug|Win32 {F5C22D72-460E-43CD-9AC6-6D6AC517BD1F}.Release|Win32.ActiveCfg = Release|Win32 {F5C22D72-460E-43CD-9AC6-6D6AC517BD1F}.Release|Win32.Build.0 = Release|Win32 + {48DA6BA8-23E1-4F0D-959C-48C8576494DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {48DA6BA8-23E1-4F0D-959C-48C8576494DA}.Debug|Win32.Build.0 = Debug|Win32 + {48DA6BA8-23E1-4F0D-959C-48C8576494DA}.Release|Win32.ActiveCfg = Release|Win32 + {48DA6BA8-23E1-4F0D-959C-48C8576494DA}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/descrip.mms b/descrip.mms index 27cd9bf1..9756beb6 100644 --- a/descrip.mms +++ b/descrip.mms @@ -39,6 +39,7 @@ # PDP15 Just Build The DEC PDP-15. # S3 Just Build The IBM System 3. # SDS Just Build The SDS 940. +# SSEM Just Build the Manchester University SSEM. # SWTP6800MP-A Just Build The SWTP6800MP-A. # SWTP6800MP-A2 Just Build The SWTP6800MP-A2. # VAX Just Build The DEC MicroVAX3900 (aka VAX). @@ -584,6 +585,14 @@ SDS_SOURCE = $(SDS_DIR)SDS_CPU.C,$(SDS_DIR)SDS_DRM.C,$(SDS_DIR)SDS_DSK.C,\ $(SDS_DIR)SDS_SYS.C SDS_OPTIONS = /INCL=($(SIMH_DIR),$(SDS_DIR))/DEF=($(CC_DEFS)) +# +# SSEM +# +SSEM_DIR = SYS$DISK:[.SSEM] +SSEM_LIB = $(LIB_DIR)SSEM-$(ARCH).OLB +SSEM_SOURCE = $(SSEM_DIR)SSEM_CPU.C,$(SSEM_DIR)SSEM_SYS.C +SSEM_OPTIONS = /INCL=($(SIMH_DIR),$(SSEM_DIR))/DEF=($(CC_DEFS)) + # # SWTP 6800MP A # @@ -862,7 +871,7 @@ I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS)) ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 \ VAX MICROVAX3900 MICROVAX1 RTVAX1000 MICROVAX2 VAX730 VAX750 VAX780 VAX8600 \ - SDS I7094 SWTP6800MP-A SWTP6800MP-A2 + SDS I7094 SWTP6800MP-A SWTP6800MP-A2 SSEM $! No further actions necessary .ELSE # @@ -871,7 +880,7 @@ ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 \ VAX MICROVAX3900 MICROVAX1 RTVAX1000 MICROVAX2 VAX730 VAX750 VAX780 VAX8600 \ - SDS SWTP6800MP-A SWTP6800MP-A2 + SDS SWTP6800MP-A SWTP6800MP-A2 SSEM $! No further actions necessary .ENDIF @@ -1254,6 +1263,17 @@ $(SDS_LIB) : $(SDS_SOURCE) $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +$(SSEM_LIB) : $(SSEM_SOURCE) + $! + $! Building The $(SSEM_LIB) Library. + $! + $ $(CC)$(SSEM_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + $(SWTP6800MP_A_LIB) : $(SWTP6800MP_A_SOURCE) $! $! Building The $(SWTP_LIB) Library. @@ -1802,6 +1822,18 @@ $(BIN_DIR)SDS-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_NONET_LIB) $(SDS_LIB) $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_NONET_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +SSEM : $(BIN_DIR)SSEM-$(ARCH).EXE + $! SSEM done + +$(BIN_DIR)SSEM-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_NONET_LIB) $(SSEM_LIB) + $! + $! Building The $(BIN_DIR)SSEM-$(ARCH).EXE Simulator. + $! + $ $(CC)$(SSEM_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)SDS-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_NONET_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + SWTP6800MP-A : $(BIN_DIR)SWTP6800MP-A-$(ARCH).EXE $! SWTP6800MP-A done diff --git a/makefile b/makefile index 632703df..a56657ed 100644 --- a/makefile +++ b/makefile @@ -885,6 +885,11 @@ TX0 = ${TX0D}/tx0_cpu.c ${TX0D}/tx0_dpy.c ${TX0D}/tx0_stddev.c \ TX0_OPT = -I ${TX0D} $(DISPLAY_OPT) +SSEMD = SSEM +SSEM = ${SSEMD}/ssem_cpu.c ${SSEMD}/ssem_sys.c +SSEM_OPT = -I ${SSEMD} + + # # Build everything # @@ -892,7 +897,7 @@ ALL = pdp1 pdp4 pdp7 pdp8 pdp9 pdp15 pdp11 pdp10 \ vax microvax3900 microvax1 rtvax1000 microvax2 vax730 vax750 vax780 vax8600 \ nova eclipse hp2100 i1401 i1620 s3 altair altairz80 gri \ i7094 ibm1130 id16 id32 sds lgp h316 \ - swtp6800mp-a swtp6800mp-a2 tx-0 + swtp6800mp-a swtp6800mp-a2 tx-0 ssem all : ${ALL} @@ -1148,3 +1153,9 @@ ${BIN}tx-0${EXE} : ${TX0} ${SIM} ${MKDIRBIN} ${CC} ${TX0} ${SIM} ${TX0_OPT} $(CC_OUTSPEC) ${LDFLAGS} +ssem : ${BIN}ssem${EXE} + +${BIN}ssem${EXE} : ${SSEM} ${SIM} + ${MKDIRBIN} + ${CC} ${SSEM} ${SIM} ${SSEM_OPT} $(CC_OUTSPEC) ${LDFLAGS} +