Menu

Home-Status-Progress

Harry Reed Charles Anthony

Hello all. Well, as you may have guessed another hapless individual has begun the task of resurrecting Multics. Granted, several others of more capability and valor than myself have attempted to create a simulator for the dps8m and have run screaming from the mere complexity of the task - I have, nevertheless, decided to go where angels fear to tread and attempt to write a simh based simulator capable of booting Multics.

This is, obviously, not a single person effort. In order to pull this off we need the efforts of all Multicians - past / present. All are welcome to participate in this effort.

======

Hey all you lurkers! Welcome!

If you are interested in helping me along in this project I would love to have helpers coding some dps8 assembly and testing out the various instructions. It really ain't too hard! "Come on in, the water's fine!"

If you're interested let me know and I'll show you how to get started.

Project Admins:

Charles' progress reports can be found here:

[Charles' Progress Reports]
[FNP notes]
[CPU timing notes]

======

!!!! PLEASE READ THIS BEFORE DOWNLOADING ANY FILES !!!!

There have been a number of misunderstandings about the DPS8 GIT source code tree; sometimes leading to unfortunate user frustration.

The canonical usage of GIT generally has the master branch containing "releases"; they are expected to be "ready to go". Development takes place on branches; once the development branch is done, it is moved to the master branch as a release. The DPS8 emulator project is not following that model. With just a handful of developers, and any "release" being a hoped-for dream in the unimaginable future, the master branch is the bleeding-edge development code. Commit points on the master branch probably compile on the machine of the person making the commit, but there is no promise of functionality, portability, correctness, update procedures, testing or even that it will compile.

The Alpha 1.0 release was done as a tag on the master branch; this was poor planning on our part as it made it difficult to apply bug fixes to generate a 1.1 version. The Alpha 2.0 release is being done as a branch; this will allow bug fixes to be merged in from the master branch, enabling the creation of release candidates, and future 2.x releases.

As with the master branch please realize that there is no guarantee or implied understanding that release candidates are to work or able to perform any useful function. In this way you, our user community, will not be under any false assumptions about the quality of our release candidate distributions.

The DPS8M team would like to apologize for any difficulties our unorthodox and informal policies may have incurred.

======


Related

Wiki: CPU timing notes
Wiki: Charles' Progress Reports
Wiki: FNP notes

Discussion

1 2 3 .. 5 > >> (Page 1 of 5)
  • Harry Reed

    Harry Reed - 2012-11-17

    Initial commit of code into svn. Not ready to even attempt to boot Multics, but can run some interesting test cases. Currently about 75% of instructions have been implemented and absolute mode with full address modifications seems to be working OK. On to the appending unit and faults/interrupts and ...

    Much good code, much still needs to be done. The as8 directory is a rudimentary assembler capable of generating human readable assemblies that the simulator is able to load. The dps8 directory contains the current state of the simh based emulator. No build instructions of autoconfigure just yet - sorry. If you really want to build and play with it send me eMail.

     
  • Harry Reed

    Harry Reed - 2012-11-25

    Just committed code that more-or-less implements the appending unit. I can now jump, read & write between non-paged memory segments.

    Simulator now supports absolute, BAR and appending modes.

    Ring protection is in and seems to work, but fault/interrupt code not in yet, So, I just get messages telling me when violations occur.

    Note, currently any testing of the simulator needs to be done with the "processor" in absolute mode - not append mode due to needed changes to instruction code. Operand/Data write code in the instructions need to use the append cycle when necessary.

     

    Last edit: Harry Reed 2012-11-25
  • Harry Reed

    Harry Reed - 2012-11-25

    Most of the implemented instructions now support use of the APU.

    Need some test suites for this puppy!

     
  • Harry Reed

    Harry Reed - 2012-11-25

    More fixes. This time to the address modification code. Due to a bad bit mask, the indirect tally word of a DIC/IDC operation under the IT modification could be interpreted as an ITS/ITP pair and throw the machine into appending mode. Not good.

     
  • Harry Reed

    Harry Reed - 2012-12-05

    More testing and debugging is going on. Working on a test suite to more systematically test this beast. Also, looking into the floating point formats that Honeywell used. Some of the formats are quite comparable to IEEE doubles, some not. Want to use the std x86/IEEE fp to implement the fp routines, but with translation to/from Honeywell format.

    A few bug fixes to the assembler.

    (EDIT: HA! Who needs steenkin' IEEE fp when we got 64/128-bit integers.)

    (NB: IBMesque Hex fp is not supported. If it's needed then maybe, else let's just try to forget about this monstrosity.)

     

    Last edit: Harry Reed 2013-01-12
  • Harry Reed

    Harry Reed - 2012-12-08

    Implemented Honeywell single-precision floating-point routines. Can now do
    IEEE double <=> Honeywell single-precision.

    Now to implement the single-precision instructions.

    (EDIT: At this time IEEE fp is used is to convert to/from Honeywell native for I/O, etc.)

     

    Last edit: Harry Reed 2013-01-12
  • Harry Reed

    Harry Reed - 2012-12-12

    Have testbed/unit test code for floating-point +, -, * & / functioning as documented. Need to now implement actual dps8 instructions. Shouldn't be too hard! :-)

     
  • Harry Reed

    Harry Reed - 2012-12-15

    "Shouldn't be too hard!" Yeah, right. ufs had a cute gotcha. Because of using 2-comp fractions the negation of a mantissa in the form of 1 000 000 ... 000 (the "weird" number) give problems. Must treat it as an overflow similar to how overflows are handled in ufa.

    Also, am able to build and run the simulator & assembler under 64-bit Ubuntu Linux. Will eventually put Makefiles into svn. For now if anyone wants to build the beast under 64-bit Linux send me eMail and I'l get them too you.

     
  • Harry Reed

    Harry Reed - 2012-12-16

    Added a few more FP instructions - UFM, FDV, FNEG & FNO.

    Updated dps8.tar.gz tarball to match svn.

    Tarball now contains Linux Makefile's for as8 and dps8.
    (Currently only tested under 64-bit Ubuntu 12.04)

    If you are able to built the beast please let me know on what system and how you did it. As a reward I'll tell you how to test it!

     
  • Harry Reed

    Harry Reed - 2012-12-17

    Added a few more FP instructions - FRD, FCMP, FCMG.

    AL39 documentation is wrong for FRD. DH02-01, DPS-9000 manuals are correct - IMHO
    Updated dps8.tar.gz tarball to match svn.

     
  • Harry Reed

    Harry Reed - 2012-12-17

    Added remaining single-precision FP instructions - FAD, FSB, FMP, FDI & FSTR.

    All single-precision FP instructions implemented

    (NB: Hex mode not supported at this time.)

    On to double-precision........

    Also, need to modify as8 assembler to accept floating-point constants & literals.

    Updated dps8.tar.gz tarball to match svn.

     

    Last edit: Harry Reed 2012-12-17
  • Harry Reed

    Harry Reed - 2012-12-21

    All double-precision floating-point instructions have been implemented.

    Still, need to modify as8 assembler to accept floating-point constants & literals.

    Updated dps8.tar.gz tarball to match svn.

    More testing needs to be done on fp instructions.

     

    Last edit: Harry Reed 2013-01-01
  • Harry Reed

    Harry Reed - 2012-12-23

    Added initial floating-point support to assembler (as8) to DEC and literal pseudo-ops.

    Updated dps8.tar.gz tarball to match svn.

     
  • Harry Reed

    Harry Reed - 2012-12-25

    Recent changes/additions .....

    Assembler (as8)
    -Added conventional subroutine calling pseudo-ops to assembler - CALL, SAVE, & RETURN. Not extensively tested yet. Will probably need some more work esp the 'E.I.' field of the CALL pseudo-op
    - Reworked literal code to more easily support different literal types. Still need to add Hollerith & Fixed-point literals.
    - Forced writeLiteralPool() to write double-precision FP literals to a even boundary.

    Simulator (dps8)
    - Added emCall 6 - write floating-point value C(EAQ) to stdout.

     
  • Harry Reed

    Harry Reed - 2012-12-26

    Fixed std C/S/R code in as8 - bad implementation :-)

    Now that I have a standard subroutine calling convention implemented I can start developing unit tests. Start w/o some I/O routines that we can write to console with. Then build a framework so that we can both test and do regressions against. T'would be nice if someone wanted to help with the unit tests .......

     

    Last edit: Harry Reed 2012-12-26
  • Harry Reed

    Harry Reed - 2012-12-28

    Fixed problems with write operations for address modifications IT_CI, SC, SCR. Operands were reversed (dps8_addrmods.c).

    Fixed problems with cmp18/36. Tried to perform signed comparisons on unsigned types.

    Several shift/rotate instructions were broken. Fixed.

    Cleaned-up as8 doVFD() pseudo-op and added new literal types.
    Updated dps8.tar.gz to reflect latest SVN Changes.

    Getting some warnings from GCC about comparisons in dps8_math.c. Clang doesn't complain. Hmmm... need to investigate further

     

    Last edit: Harry Reed 2012-12-28
  • Harry Reed

    Harry Reed - 2012-12-30

    Began adding EIS support to as8.

    Starting to think about adding EIS support to simulator; dps8.

    Updated dps8.tar.gz to reflect latest SVN Changes.

     
  • Harry Reed

    Harry Reed - 2013-01-01

    Assembler (as8) now supports multiword EIS + descriptor pseudo-ops.

    Will now add a few EIS instructions to the simulator - mvne & btd so I can use the BOS rdclock stuff.

    Still need to implement the interrupt & fault handlers as well as start unit testing.....

    Updated dps8.tar.gz to reflect latest SVN Changes.

     

    Last edit: Harry Reed 2013-01-01
  • Harry Reed

    Harry Reed - 2013-01-04

    Beginning to add multi-word EIS support. No mw EIS instructions executable just yet, but infrastructure being constructed and set up. Want to be able to use the BOS/rdclock.alm code to display the time-o'-day, etc.....

    Updated dps8.tar.gz to reflect latest SVN Changes.

     
  • Harry Reed

    Harry Reed - 2013-01-07

    Begin adding Honeywell/Bull EIS operand descriptor syntax support to assembler. 1st one is NDSC9. This will allow me to use examples & example code in the Honeywell dps-8 & Bull NovaScale 9000 manuals to test the EIS stuff in the simulator. Fun, fun, fun........ Back to work tomorrow :-( No fun.

    Updated dps8.tar.gz to reflect latest SVN Changes.

     
  • Harry Reed

    Harry Reed - 2013-01-09

    dps8: First Multiword EIS instruction implemented. BTD (Binary-to-Decimal). Needs more testing, but seem to function well enough.

    as8: fixed bug in parseMwEIS() that caused comments(!) to influence code generation. The " character is a stupid comment delimiter given strings are generally quoted with this. Who spec'd out the assembler syntax ? (Walt, do you know?)

    Fixed bug in NDSC9 pseudo-op that incorrectly encoded 9-bit TN's

    Updated dps8.tar.gz to reflect latest SVN Changes.

     
  • Harry Reed

    Harry Reed - 2013-01-11

    Added 2nd MW EIS instruction - DTB.

    Updated dps8.tar.gz to reflect latest SVN Changes.

    People seem to be downloading this hunk-o'-junk. Please leave comments and tell me what you think. Good, bad; what can be done to improve it, etc., etc.

     

    Last edit: Harry Reed 2013-01-12
  • Harry Reed

    Harry Reed - 2013-01-13

    Beginning work on 3rd MW EIS - MVNE. Micro-ops here we come. Tis gonna' be more fun that the floating-point stuff methinks! Wish me well.

    Updated dps8.tar.gz to reflect latest SVN Changes

     
  • Harry Reed

    Harry Reed - 2013-01-14

    Further development of MVNE instruction. Not complete, still needs to be finished.
    (NB: the decimal floating point stuff is nasty Don't like it. No sir, don't like it at all

    Only have limited examples of how MVNE is supposed to work. Hope we can find some good test/use cases. The Multics rdclock.alm will be a decent, albeit, simple test -- and is the impteus for doing MVNE now - so I can get a "Multics" time from the time-o'-day clock.

    Updated dps8.tar.gz to reflect latest SVN Changes

     

    Last edit: Harry Reed 2013-01-21
  • Harry Reed

    Harry Reed - 2013-01-17

    dps8: Continuing to implement MVNE. All 17 micro-operations have been coded. Not tested, but coded. There are a few examples of MVNE in DH02 & NovaScale 9000 manuals that will be used for initial tests. Need a good way to test these move and edit instructions....

    Updated dps8.tar.gz to reflect latest SVN Changes

     
1 2 3 .. 5 > >> (Page 1 of 5)

Log in to post a comment.

MongoDB Logo MongoDB
Gen AI apps are built with MongoDB Atlas
Atlas offers built-in vector search and global availability across 125+ regions. Start building AI apps faster, all in one place.
Try Free →