Image Map Image Map
Page 2 of 10 FirstFirst 123456 ... LastLast
Results 11 to 20 of 96

Thread: Build your own PDP 8I, Part 4..

  1. #11
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    2,573

    Default

    I thought there was something else astray somewhere other than your -8!!!

    So, RIM loader and "hello world" next is it???

    Load the RIM loader into the -8 using the deposit keys - and make sure you have loaded it correctly using the examine keys.

    Start the RIM loader running at PC=7756.

    Send my hw.rim file to the -8 from tera term.

    When the file has been transferred to the -8 it doesn't halt or anything. Press STOP on the -8.

    Use the hw.lst file and examine the memory contents to make sure the file has loaded down correctly (it starts at address 0200).

    Start "hello world" running at PC=0200.

    Dave

  2. #12
    Join Date
    Jul 2009
    Location
    Boulder , Colorado USA
    Posts
    3,019

    Default

    Hi All;

    Dave, Thanks for the Encouragement..

    I have tried the RIM Loader once, I saw alot of activity, but no Hello World..
    But, I am clearing all of Memory to '0000..
    And then I will try again.. And do as You say compare the Listing with the -8..

    "" Use the hw.lst file and examine the memory contents to make sure the file has loaded down correctly (it starts at address 0200). ""
    Nothing there !!!

    I upped the Speed of the Computer, and I GOT "HELLO WORLD" to display on the screen !!!!!!!!!!!!!

    002.jpg


    Where do I get either the BIN Loader for the 8i
    OR, a RIM loadable BIN Loader ??
    I'LL have a look in BitSavers..

    I have found a RIM Loadable BIN Loader and it seems to work fine, as near as I can tell..
    http://so-much-stuff.com/pdp8/tapes/digital.html
    I have run, d01b, d01c and d02b..

    THANK YOU Marty
    Last edited by Marty; January 2nd, 2016 at 05:48 AM.

  3. #13
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    2,573

    Default

    Way to go Marty!!!!!!!!!!!!!!!!!!!

    A simple "Hello World" message doesn't capture all of the "blood, sweat and tears" to get to that point does it?!

    Just to confirm that d01b is actually running correctly...

    Did you get the HALT right at the beginning with AC equal to 0000?

    D01b should keep running without halting after that assuming everything is OK.

    After 128 iterations of the test - you should get a BELL on Tera Term - this indicates that it is really running...

    If your -8 is running slower than a real -8 - you can decrease the time taken for the BELL to occur by patching memory locations 4351 and 4352 (both with the same value) before starting the test. The initial value should be 7600. If you change this to something like 7776 - you should get a BELL on every two loops around the program rather than every 128 (i.e. subtract the number of iterations you want to report from from 10000 OCTAL).

    Incidentally, you can also run d01b to force an error to be reported - again, just to make sure things are running properly. You are told to set SR=7777 before running the program. Set it to something other than 7777 for devilment... The test should HALT at 0501/0502 (OSR TEST 1 if you look it up in the PDF listing). The text by the test says "OSR did not set AC to 7777" - which is correct (because we did not put 7777 in the switch register like we were told to do). I like testing out the tests...

    d01c is just another minor revision to d01b.

    d02b should also produce a BELL after 40 iterations.

    You should then try d11a (memory test). This comes in two 'flavours' - one runs in low memory and the other runs in high memory. You want to run them both.

    d04b (Random JMP).

    d05b (Random JMP and JMS).

    d07b (Random ISZ).

    After that - time for Chess! I have a version of CHEKMO (in RIM format) that I assembled from source.

    By the way, have you downloaded the PDP-8 cross assembler for your PC? (I use a version - supplied with 'C' language source code - from Doug Jones).

    Good work...

    Dave

    PS: I also realise that we still haven't fully completed the interrupt testing have we yet? This was the program from earlier to test the receiver interrupts out:

    0000 0000 - This is where the return address would be stored.
    0001 6032 - Keyboard clear flag.
    0002 7020 CML - Toggle the LINK register every time we get an interrupt.
    0003 5400 JMP I 0 - Return from interrupt handler.
    0004 6001 ION - Enable interrupts.
    0005 7001 IAC - Increment the accumulator as a background task...
    0006 5005 JMP 5 - Keep looping forever...

    Start the program running from PC=0004.

    The accumulator should increment. Whenever you press a key on the keyboard, the LINK flag should toggle in response.

    Now you have fixed your PC->8 serial link, this should now work (baring errors in my program of course).

    Dave
    Last edited by daver2; January 2nd, 2016 at 02:51 AM.

  4. #14
    Join Date
    Jul 2014
    Location
    Rhode Island
    Posts
    1,116

    Default

    MAINDEC-08-D02B sends a null character out the serial port to generate an interrupt. If the interrupts are not working, or the serial port does not generate an interrupt this test will not work.
    Member of the Rhode Island Computer Museum
    http://www.ricomputermuseum.org

  5. #15
    Join Date
    Jul 2009
    Location
    Boulder , Colorado USA
    Posts
    3,019

    Default

    Hi All;

    Thank You, Dave and M-Thompson, for Your response and Information..

    "" Just to confirm that d01b is actually running correctly...

    Did you get the HALT right at the beginning with AC equal to 0000?

    I don't remember for sure, I was looking at everything else, But, I am going to Run Everything again..

    I am also going to make another change.. At present it is running a 4.7K (4700) HZ, so I am going to wire it to the same IC that does my divide down from the Crystal on the I/O Board.. It will go thru a Jumper, so if needed I can go back to the 555..

    D01b should keep running without halting after that assuming everything is OK.

    After 128 iterations of the test - you should get a BELL on Tera Term - this indicates that it is really running...

    If your -8 is running slower than a real -8 - you can decrease the time taken for the BELL to occur by patching memory locations 4351 and 4352 (both with the same value) before starting the test. The initial value should be 7600. If you change this to something like 7776 - you should get a BELL on every two loops around the program rather than every 128 (i.e. subtract the number of iterations you want to report from from 10000 OCTAL).

    Incidentally, you can also run d01b to force an error to be reported - again, just to make sure things are running properly. You are told to set SR=7777 before running the program. Set it to something other than 7777 for devilment... The test should HALT at 0501/0502 (OSR TEST 1 if you look it up in the PDF listing). The text by the test says "OSR did not set AC to 7777" - which is correct (because we did not put 7777 in the switch register like we were told to do). I like testing out the tests...

    d01c is just another minor revision to d01b.

    d02b should also produce a BELL after 40 iterations.

    You should then try d11a (memory test). This comes in two 'flavours' - one runs in low memory and the other runs in high memory. You want to run them both.

    d04b (Random JMP).

    d05b (Random JMP and JMS).

    d07b (Random ISZ).

    Yes, I plan on Running all the Tests I can find, just to be sure..
    I even thought I would see if I can find a 4K Basic, just to see if it will run and show something on the screen..

    After that - time for Chess! I have a version of CHEKMO (in RIM format) that I assembled from source.

    By the way, have you downloaded the PDP-8 cross assembler for your PC? (I use a version - supplied with 'C' language source code - from Doug Jones).
    NO, Do you have the Link ??

    Good work... ""

    "" PS: I also realise that we still haven't fully completed the interrupt testing have we yet? This was the program from earlier to test the receiver interrupts out:

    0000 0000 - This is where the return address would be stored.
    0001 6032 - Keyboard clear flag.
    0002 7020 CML - Toggle the LINK register every time we get an interrupt.
    0003 5400 JMP I 0 - Return from interrupt handler.
    0004 6001 ION - Enable interrupts.
    0005 7001 IAC - Increment the accumulator as a background task...
    0006 5005 JMP 5 - Keep looping forever...

    Start the program running from PC=0004.

    The accumulator should increment. Whenever you press a key on the keyboard, the LINK flag should toggle in response.

    Now you have fixed your PC->8 serial link, this should now work (baring errors in my program of course). ""

    THANK YOU Marty
    Last edited by Marty; January 2nd, 2016 at 06:05 AM.

  6. #16
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    2,573

    Default

    D02B transmits characters - so will test the transmit half of the UART - but doesn't test the receive side. My test program tests the receive side interrupts so we get full coverage. Chess also uses receive interrupts.

    There isn't a 4K BASIC - there is a 4K FOCAL though.

    There are quit a lot of languages and the PDP-8 cross-assembler here http://www.gc-net.jp/omiokone/cpldp8/. Don't worry about the Japanese character that you can't understand (!) Download and UNZIP cpld833.zip.

    The cross-assembler is in the 'utility' directory.

    Dave

  7. #17
    Join Date
    Jul 2009
    Location
    Boulder , Colorado USA
    Posts
    3,019

    Default

    Hi All;

    Dave,

    "" If your -8 is running slower than a real -8 - you can decrease the time taken for the BELL to occur by patching memory locations 4351 and 4352 (both with the same value) before starting the test. The initial value should be 7600. If you change this to something like 7776 - you should get a BELL on every two loops around the program rather than every 128 (i.e. subtract the number of iterations you want to report from from 10000 OCTAL). ""

    I am not seeing these values at these addresses..

    At 4351 I see, 3647..
    And at 4352 I see, 1374..

    Does SomeOne have "Hello World" in BIN format for the PDP 8 ???

    That would be a good way for me to test whether I have Loaded the BIN Loader Correctly..


    "" There are quit a lot of languages and the PDP-8 cross-assembler here http://www.gc-net.jp/omiokone/cpldp8/. Don't worry about the Japanese character that you can't understand (!) Download and UNZIP cpld833.zip. ""

    I have downloaded it, but I have not looked at it..

    THANK YOU Marty
    Last edited by Marty; January 2nd, 2016 at 10:45 AM.

  8. #18
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    2,573

    Default

    You're probably using a different revision to me. I am using d01b-d.

    If you look through the source code for d01b (printed in the PDF file) you should be able to identify the memory locations for BLCNT and BLCON. These should be close to the end of the program itself - round about some text like / RING BELL).

    This is always the problem patching something that's not designed to be patched - and there are multiple copies out in the wild...

    Dave

  9. #19
    Join Date
    Jul 2009
    Location
    Boulder , Colorado USA
    Posts
    3,019

    Default

    Hi All;

    Thank You, Dave..

    "" You're probably using a different revision to me. I am using d01b-d. ""

    I have the same text, I guess, I would need to actually look at the various addresses and see whether or if, at or after a certain address it has some problem(s)..

    I have Loaded and Run a RIM Loaded Memory Test.. So, I am fairly confident that my code for the RIM Loader is correct..
    What I don't know for sure is IF my BIN Loader is correct..
    Somewhere I have seen a source for it, I just don't where..

    THANK YOU Marty

  10. #20
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    2,573

    Default

    This one by any chance?

    http://www.pdp8.net/pdp8cgi/query_do...-08-lbaa-d.pdf

    Note that after the BIN loader has stopped - the accumulator should equal 0000 (otherwise an error has occurred).

    The BIN loader contains a checksum - so it should know itself if the load has been successful or not...

    I can only see one "maindec-8i-d01b-d.pdf" on this website http://so-much-stuff.com/pdp8/software/maindec.php. I guess it is possible that the BIN image doesn't correspond with the PDF of course - but there is an OCTAL DUMP file with it and the last words I can see are the magic numbers we need to patch (so they are there somewhere).

    Dave
    Last edited by daver2; January 2nd, 2016 at 11:23 AM.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •