Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

Build your own PDP 8I, Part 2..

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #61
    One trick I used in the past was to solder the decoupling capacitors on top of the IC's directly to the VCC and GND pins of the ICs. A bit of accurate component lead bending and soldering required - but the result is good if you have left them off the build.

    To run LOGISIM you need to acquire a modern Java run-time environment and enter the command line tool of your favourite O/S to type the following command:

    java -jar logisim.jar

    The LOGISIM application should open. If you can get this far I can talk you through the next step. You can 'script' the above command to make invoking it easier in the future.

    The major advantage of using a logic simulator is that you can debug your design and make changes before committing to the hardware. It is not 100% foolproof - but it should take care of a lot of the logic design errors up front.

    Dave

    Comment


      #62
      Hi All;

      Dave, Thank You for the Helpful suggestions..

      "" One trick I used in the past was to solder the decoupling capacitors on top of the IC's directly to the VCC and GND pins of the ICs. A bit of accurate component lead bending and soldering required - but the result is good if you have left them off the build. ""
      I looked at doing this way, but, It has the same problem as wire-wrapping to the pin.. Not enough pin Length, and It would short out adjacent pins.. My favorite trick is to use a two pin longer Wire-wrap Socket, a 16 pin socket for a 14 pin IC, and a 18 pin socket for a 16 pin IC.. But, if I had originally done this, I would have Not been able to fit all of the row's of Sockets in the Printed Circuit Board that I have..
      "" The LOGISIM application should open. If you can get this far I can talk you through the next step. You can 'script' the above command to make invoking it easier in the future. ""
      When I start Logisim, it seems to be in Edit mode and not in run mode..
      "" The major advantage of using a logic simulator is that you can debug your design and make changes before committing to the hardware. It is not 100% foolproof - but it should take care of a lot of the logic design errors up front. ""
      I already know this, I am still wondering where or what Schematic you are using ?? Is it different than what I am using ??

      THANK YOU Marty

      Comment


        #63
        Sorry - I did not understand what your issue with logisim was.

        In the "Simulate" menu select "Simulation Enable" and "Ticks Enabled" and then set a suitable "Tick Frequency". You then need to select the 'hand' tool (not the arrow). Arrow for edit. Hand for poking things (like PDP-8 toggle keys...).

        I do find it a bit 'stubborn' at times. I have to disable the simulation (un-tick Simulation Enabled from the Simulate Menu), select Reset Simulation from the Simulate Menu (all the boolean wires go blue - indicating an unknown state) and then select Simulation Enabled again from the Simulate menu. This generally works - unless a Java run-time error occurs (in which case all bets are off and you have to close down logisim and restart it).

        MAINDEC-8i-D01B-D works now MAINDEC-8i-D02B-D doesn't - but that's a problem for tomorrow (D02 is testing some new instructions that D01 didn't test so I am not surprised that further errors have surfaced).

        My schematic is based on the LD30 architecture from the book - but the rest of the logic (the microcode part of the LD30 etc.) is of my own design (with a little help from that Japanese website I found of course to spur me on). So I suspect that we are using completely different logic - but still based on the PDP-8 and the book itself so (for example) my SKIP logic (that I have now implemented) should be pretty similar to what you should have implemented.

        The logisim schematic I have completely drawn myself from scratch. Incidentally, I found an error within one of the library ICs that I was using - so I have fixed that.

        I will post some of my new stuff tomorrow evening when I am a bit more awake!

        Dave

        Comment


          #64
          Forgot to ask...

          Does anyone know if some of the 8/E diagnostics from http://so-much-stuff.com/pdp8/software/maindec.php will run unmodified on an 8/i? For example, the Random AND Test "maindec-8e-d0db-pb". I am looking for some more diagnostics to test out my logic before I start to look at converting it to hardware (the more diagnostics I can run on logisim the better).

          Dave

          Comment


            #65
            Originally posted by daver2 View Post
            Does anyone know if some of the 8/E diagnostics from http://so-much-stuff.com/pdp8/software/maindec.php will run unmodified on an 8/i? For example, the Random AND Test "maindec-8e-d0db-pb". I am looking for some more diagnostics to test out my logic before I start to look at converting it to hardware (the more diagnostics I can run on logisim the better).
            In general, the diagnostics are grouped there. The 8/I should be able to run stuff from the maindec-08 group and from the maindec-8i sections without problems, as well as probably most of the stuff from maindec-8L Stuff from maindec-8e will in general be more problematic. I'd probably try maindec-08-dhkab-a-pb before maindec-8e-d0da-pb or maindec-8e-d0db-pb.
            Sometimes they are secretly the same, and/or will run fine, sometimes not.

            Let me know if you find write-ups for (or issues with) the images there, and I'll see what I can do to make the collection better.

            Vince

            Comment


              #66
              Hi All;

              I have put the PDP 11/45 away for now, and somewhat put the PDP 8i clone away for awhile.. While I do some more Reading and studying and possibly trying out Ligisim as well..

              I have instead gotten out a couple of my Old Philco Radios for a change of pace..
              Nope !! Put the Radio's away..

              THANK YOU Marty
              Last edited by Marty; June 18, 2015, 02:26 PM.

              Comment


                #67
                Hi All;

                I have hand copied the instructions from Your (Dave's) posting #50 and #63..

                "" I found an error within one of the library ICs that I was using - so I have fixed that. ""
                I would like to know more about that and adding any Ic's that are not in the Library, such as (I think) the 7486..
                And for either starting from scratch or modifying what is there to comply to what I actually have in my schematics..

                THANK YOU Marty

                Comment


                  #68
                  The initial problem I had with the 7400-lib was with the 74174 simulation I am using for the bulk of the registers (in particularly the PC). When I ran my simulation - LOGISIM would halt with a message stating that there was oscillations when it tried to perform the operation "PC := PC + 1". According to the TEXAS INSTRUMENTS data sheet, the 74174 requires a high-going clock edge to latch the data in. It is not a 'transparent' latch, where the data is latched when the clock input is logic '1'. Opening the 74174 library device, I noted that the clock input for the latches had been configured as 'logic high' (transparent) rather than 'low to high'. Modifying the D-type flip-flop parameters for the latches sorted the problem.

                  The library '7400-lib' has a 7486 part. But you are correct, the first thing you need to do is to create the library parts that you are using in your physical implementation. If you open the 7486 library part you will see how to create a 'simple' gate-level IC. Open my 74194 device for a more complex part. I would suggest creating a new project in LOGISIM, opening the 7400-lib library, and creating a new sub-circuit for each new IC that you require that is not in the library. Copy an existing device wholesale from the library to your new sub-circuit, delete the logic from the copied part, edit the I/O pins and change the pin names and ensure the pin direction (input or output) is correct, and enter the new logic required. get hold of the TEXAS INSTRUMENTS data sheets for each of the parts you require and implement the logic exactly as it is described within the data sheet. Fully test the new part by creating a part on the 'main' worksheet and connecting up D flip-flops to all the inputs and LEDs to all the outputs of your new device. Use the Q outputs of the D flip-flops as the inputs to your logic circuits. The reason I suggest this is that you can toggle the state of the D flip-flop whilst in simulation mode to set the various input combinations to your new device. Once the new part is working correctly, delete it from the 'main' circuit and move on to the next logic part.

                  Once you have all of your IC simulations developed, pinch a copy of my front panel switches and LEDs (to save you re-entering it again...) by copying and pasting and then start to develop your sub-circuits from your logic ICs (e.g. the MA, MB, PC,... etc. registers).

                  As you can see from my current PDP-8 schematic; my 'main' circuit is the PDP-8s 'user interface' with the PDP-8 itself being a sub-circuit connected to the I/O.

                  Dave

                  Comment


                    #69
                    Vince,

                    Thanks for the feedback. The reason I was asking about the 8e versions in particular is that they seemed to be a 'fuller' set (complete with PDF listings) rather than the 08. If I use an 08 diagnostic without the listing and it fails then the debugging will be more complex than just reading through the listing and seeing where it halted. But I agree with you - the 08 should work relatively flawlessly whereas the 8e could be problematic if they use a BSW or something not on an 8i.

                    I might try the 08 diagnostics first that are accompanied by listings and then move on to the 8e diagnostics second - but have a look through them before hand for any signs of 8e-specific code.

                    Thanks for your great website.

                    Cheers,

                    Dave

                    Comment


                      #70
                      Originally posted by daver2 View Post
                      Thanks for the feedback. The reason I was asking about the 8e versions in particular is that they seemed to be a 'fuller' set (complete with PDF listings) rather than the 08. If I use an 08 diagnostic without the listing and it fails then the debugging will be more complex than just reading through the listing and seeing where it halted. But I agree with you - the 08 should work relatively flawlessly whereas the 8e could be problematic if they use a BSW or something not on an 8i.
                      The instruction that they seem most overly fond of is "CAF".

                      Thanks for your great website.
                      Thanks! I try to make it kind of a one-stop-shop for things PDP-8, though that does
                      mean a lot of stuff is actually derivative or even an outright copy of stuff that can be
                      found elsewhere.

                      Vince

                      Comment


                        #71
                        Thanks for the "heads-up" on CAF (plus the other odd 8/e IOT instructions).

                        Whilst replying above regarding the problems I experienced with the library for the SN74174 it set me thinking and I think I have found why MAINDEC-8i-D02B-D fails to run properly. When performing the opcode ISZ; I increment MB and write the new value to the RAM (MEM) and MB simultaneously. This causes me a problem as MB is increment by 1 but MEM has MB+2 stored into it! The output from MB is routed throughout the ALU - which adds 1 to it and routes the incremented value back to MB and MEM. I tried to be too clever and write the 'MB incremented' value to MB and MEM simultaneously. The MB register latches the incremented value on the leading edge of the clock - but the MEM (RAM) control signals (/CE and /WE) are LEVEL signals and store the value CONTINUOUSLY whilst the RAM device is enabled for writing. Of course, latching the incremented value of MB back into MB causes the incremented value to be presented to the ALU - which increments it again (the 74181 is combinatorial logic only) and this newly incremented value is also presented to the RAM (MEM) which is then stored...

                        It took longer to explain than to actually fix my microcode. Marty - you may find some similar issues if you are using conventional RAM chips in your hardware implementation?

                        It now looks like my logisim implementation of an 8i is successfully running MAINDEC-8i-D01B-D and MAINDEC-8i-D02B-D successfully (apart from the teletype output and the last part of D02B where the interrupts are tested).

                        My next issue is to implement the IOT instructions for the teletype and reader and the interrupts. I am away on a business trip this week - but I will upload what I have done so far when I get back before continuing with the development.

                        Dave

                        Comment


                          #72
                          Current state of my LOGISIM implementation of a PDP-8/i

                          Hi,

                          Latest update of my LOGISIM PDP-8/i implementation.

                          Not yet 100% complete (what ever is) - but it successfully runs all of the MAINDEC diagnostics I have tried so far.

                          I will post a more detailed description later of what is included in the ZIP files, what the outstanding issues are and (more importantly) how to 'use' it!

                          Enjoy,

                          Dave
                          Attached Files

                          Comment


                            #73
                            8imc_copy.zip contains the microcode for the PDP-8/i implementation.

                            PDP8i_MICROCODE.java contains the microcode itself plus a 'harness' to generate the data necessary for importing into LOGISIM.

                            Use build8imc.sh to compile PDP8i_MICROCODE.java (assuming you have a java compiler installed of course) to generate PDP8i_MICROCODE.class.

                            Use run8imc.sh to run the previously compiled Java program. The output produced on stdout contains (first) any errors during the processing of the microcode, followed by a listing of the microcode (text labels, hex microcode ROM addresses and hex microcode words) followed by the key output starting with "v2.0 raw" and then a load of HEX numbers. You need to copy and paste the header ("v2.0 raw") and all of the immediately following HEX numbers to the file PDP8iMICROCODE for inclusion within the LOGISIM simulation.

                            Don't worry if all this is gibberish to you - I have done it for you (i.e. the 'other' ZIP file containing the LOGISM simulation has the microcode already included). If you want to experiment yourself - you will need to adopt a procedure something like the above to incorporate your changes into the simulation.

                            Dave

                            Comment


                              #74
                              There are a few 'limitations' of this simulation:

                              1. The Fetch, Execute, Defer, Pause and Run front-panel status lights do not work.

                              2. The single-step switch doesn't work (the single instruction does work).

                              3. I need to change the microcode address latches from 74163 (synchronous reset) to 74161 (asynchronous reset).

                              4. On a MAC, the keyboard handler does not work properly with CHEKMO for <NEWLINE>. The MAC/KEYBOARD block within LOGISIM returns <LF> instead of <CR>. I suspect that if you run LOGISIM on a Windows box it may work. I will look for a DEPOSIT modification for CHEKMO...

                              5. A bit of tidying up and comments are called for (microcode) and some text boxes adding to the LOGISIM logic to describe the function of each logic sub-system.

                              6. I may look at some logic reduction for the discrete logic and moving to 'IC pinouts' instead of 'functional' blocks of logic.

                              I will post details on the LOGISIM model tomorrow when I have a bit more time...

                              Dave

                              Comment


                                #75
                                Hi All;

                                I have put the Altair away, and I am getting the PDP 8i clone out, I can do a re-look at it with a fresh outlook at it..

                                THANK YOU Marty

                                Comment

                                Working...
                                X