• Please review our updated Terms and Rules here

NEW, to me, DEC PDP8E --- Part 2

Is the .047 uF cap near the Berg plug in place? It should be in for 110 baud, out for higher rates. Not likely to be the cause of your problems but one more thing to check.

Jack
 
I think I have the answer. My M8650 boards will only work for 110 baud, because it has the 14.418 Mc crystal. The dividers are multiple of two and 110 needs a multiplier of 2.72 to make 300 baud. When my board has the 5-6 jumper I actually have 220 baud, 3-4 is 440 baud and so on. I need the 19.6608 Mc crystal for the 5-6 jumper to be 300 baud, the 3-4 to be 600 baud and so on. The problem is that with the 19mc crystal the 7-8 jumper is 150 baud. I measured the timing and it proves it. Mike
 
Hi All;

Mike, YES, You found the Exact Problem, I did not know about this nor think of it, only because I did not know enough of Your particular Board and board setup..
I had the same thing, on my Old Data General S-130, on many of the older Serial I/O Boards, they had a Fixed Crystal.. And only on a Later Board was there jumpers by a divider for the different Baud rates..
You could get a Resonate Oscillator and a few 74393's, with switches or jumpers and thereby determining (setting) your own baud rate from like 9600 down to 300 and maybe 110 Baud..

THANK YOU Marty
 
Well diagnosed - this is the standard setup for the M8650 at 110 baud. There are even separate data sheets and part numbers for the different speed variants. Changing the crystal is trivial luckily, although naturally there's a DEC specification I've found that any cheap crystal from Ebay etc. works just fine. Remember as Jack notes to take the capacitor out for higher rates and note the stop bit settings needed as 110 is generally the odd one out.

The reason DEC did this is that it's not trivial to use the same crystal for both without using lots of TTL SSI so economy (and board space) dictates.
 
Today I located the DEC RIM for the PDP8. Still being a novice at DEC programming, I took some time figuring out how it worked. It reads a paper tape and deposits the information to memory. There are three parts to the tape, the leader, the information and the trailer. The leader and trailer allow getting the TTY and the computer to operate together. The leader and trailer are all the same 200 Octal and there are a bunch of them, 20 or 30, more if more time is needed to get the computer started. The 200 Octal punches the 8th channel (MSB) of the paper tape. The first segment of the DEC RIM loader reads the tape and deciphers whether it is reading the leader/trailer or information to be entered into memory. So basically, this program segment checks the MSB of what is read and if it is a ONE, it is the leader or trailer.

Address Code Instr Explanation
7756 6032 KCC Clear Key Flag, Clear AC
7757 6031 KSF Skip on Key Flag
7760 5357 JMP Wait on Key Flag
7761 6036 KRB Read Key Buffer & Clear Key Flag
BIT 0 1 2 3 4 5 6 7 8 9 10 11
AC= 0 0 0 0 8 7 6 5 4 3 2 1 Channel bits
Leader bit^ ^ A1, D1 A2, D2
Data = 0 Address = 1 | A3, D3 A4, D4

The accumulator (AC4-AC11) will be filled with the channel bits from the paper tape read.
AC4 will have Channel 8 bit which is the leader/trailer bit. If AC4 is set to ONE the read is either leader or trailer. If AC4 is ZERO then the read is information.
AC5 is the Data or Address bit, Data = ZERO & Address = ONE
AC6,7,8 is either A1, D1 or A3, D3
AC9,10,11 is either A3, D3 or A4, D4

7762 7106 CLL, RTL Clear LINK & Rotate AC and LINK left twice
L0 = ZERO
L1 = 1 BIT 2 3 4 5 6 7 8 9 10 11 L0 0
AC= 0 0 8 7 6 5 4 3 2 1 0 0 Channel bits

7763 7006 RTL
L1 = 1
L2 = 3 BIT 4 5 6 7 8 9 10 11 L0 0 L1 2
AC= 8 7 6 5 4 3 2 1 0 0 0 0 Channel bits

The leader/trailer bit is now in the MSB of the accumulator, also considered the sign bit. If the sign bit = ONE then the number is negative.

7764 7510 SPA SKIP on positive Accumulator. If Sign bit =1
then continue to read leader. If sign bit =0
then begin to process information.

7765 5357 JMP loop until leader is complete

When the program gets to address 7766, the leader has past and the information that is to be deposited into memory is at hand. The first byte of non leader will fall through the 7765 jump here. The information is formatted as two bytes of address information followed by two bytes of data information. This is continued until the trailer begins.

7766 7006 RTL Rotate AC and LINK left twice
L2 = 3
L3 = 5 BIT 6 7 8 9 10 11 L0 0 L1 2 L2 4
AC= 6 5 4 3 2 1 0 0 0 0 0 0 Channel bits

Now bit 5 is in the LINK. This bit tells whether the information is DATA (=0) or and ADDRESS (=1). Since this is the first non leader information it will be an address so the LINK = 1. The 6 MSBits of the accumulator have A1 and A2 address information. Which is the high half of the first address to save Data information into.

7767 6031 KSF SKIP on Key Flag
7770 5367 JMP Wait until the 2nd byte of info is received

7771 6034 KRS Get info and OR it with AC4-AC11 do not clear
Accumulator
A3 A4
BIT 0 0 0 0 8 7 6 5 4 3 2 1 2nd Addr byte
AC= 6 5 4 3 2 1 0 0 0 0 0 0 Channel bits
A1 A2
The 2nd address bit, #8 is the leader bit, which is now zero. Each second address byte on the paper tape has channel 7 = ZERO. The first address byte has Channel 7 was a ONE. These two numbers are OR'd. The result now in the accumulator is the complete address A1,A2,A3,A4.

7772 7420 SNL SKIP if LINK is not ZERO. This time we have
an address, so LINK = 1 Go to 7774

7773 3776 DCA Indirect store & clear AC. Use the address
that is in 7776 to store DATA.

7774 3376 DCA Direct store & clear AC. Store Address
directly into 7776.

7775 5356 JMP Continue, jump back to beginning
7776 0000 Storage

The program then jumps back to the beginning to get the next 2 bytes of information or trailer. The information is formatted as two bytes of Address followed by two bytes of Data. Each byte has the 2 MSB's as leader bit and Address/Data bit. Then two Octal numbers, 6 bits or information.

Te next time through the program, the two data bytes are retrieved. This time the LINK will be a ZERO and the SNL in address 7772 will not SKIP and the first DCA will take the address stored in 7776 and use it to store the Data D1,D2,D3,D4 there.

I made a paper tape with the TTY Echo program on it.

Leader
200
200
... 20-30 leader bytes
200
200

100 1st address --- 01 (Address) 000=A1, 000=A2
000 000=A3, 000=A4 The start address of the saved data is 0000 Octal
060 1st Data --- 00 (Data) 110=D1, 000=D2
032 011=D3, 010=D4 The data to be saved at 0000 is 6032

100 2nd address --- 01 (Address) 000=A1, 000=A2
001 000=A3, 001=A4
060 2nd Data --- 00 (Data) 110=D1, 000=D2
031 011=D3, 001=D4

100 3rd address --- 01 (Address) 000=A1, 000=A2
002 000=A3, 002=A4
050 3rd Data --- 00 (Data) 101=D1, 000=D2
001 000=D3, 001=D4

100 4th address --- 01 (Address) 000=A1, 000=A2
003 000=A3, 003=A4
060 4th Data --- 00 (Data) 110=D1, 000=D2
036 011=D3, 110=D4

100 5th address --- 01 (Address) 000=A1, 000=A2
004 000=A3, 004=A4
060 5th Data --- 00 (Data) 110=D1, 000=D2
046 100=D3, 110=D4

100 6th address --- 01 (Address) 000=A1, 000=A2
005 000=A3, 005=A4
060 6th Data --- 00 (Data) 110=D1, 000=D2
041 100=D3, 001=D4

100 7th address --- 01 (Address) 000=A1, 000=A2
006 000=A3, 006=A4
050 7th Data --- 00 (Data) 101=D1, 000=D2
005 000=D3, 101=D4

100 8th address --- 01 (Address) 000=A1, 000=A2
007 000=A3, 007=A4
050 8th Data --- 00 (Data) 101=D1, 000=D2
001 000=D3, 001=D4

Trailer
200
200
... 20-30 trailer bytes
200
200

This exercise helped me become more familiar with the DEC instructions. I add it here for anyone else who may be interested. By the way it works. Thanks Mike
 
Well.... today turned into one of those days that I could not see my hand before my face. I thought that I'd try something easy, like changing the device select on one of the M8650 boards to 40/41 to work with the emulator. I first looked at the circuit schematic. Not exactly obvious what to do here. I'm sure that if I dug into it I could figure it out. Then I found some notes that Doug Jones made on the M8650. Even this is not easy as pie. Seems DEC made this hard. So I spent some time making my own diagram on what needed to change. In the bottom right hand corner of the board are 12 jumpers, that set the device select number for the Rx and Tx. If all 12 jumpers are there most likely the numbers are factory originals of 03 for Rx and 04 for Tx. Doug Jones' notes are pretty good, but still need some figuring to completely understand. I think it is because his diagrams are drawn in character base and the fact that DEC made it a little difficult. The jumpers are labeled A thru F, right to left. There are also 1, 2, 3 & 4 labels for each letter. But.... the bits of the device ID are not ABCDEF, they are BAFEDC. First level of confusion. Next the numbers do not represent the same thing in each case. They are associated with either Rx or Tx and ONE or ZERO. Each letter jumper set, is associated with a ID bit # for both the Rx and Tx. Jumper B is Bit 3 (MSB of the Device Select) for the Rx and Tx. The factory device select for Rx and Tx, Bit 3 are ZERO, so the jumpers connect Rx and Tx to MD3 'NOT'. Since the new device select is 40 and 41, the new Bit 3 will connect Rx and Tx to MD3. I find that this method is rather a mess and you have to pay close attention to the jumpers, your table and Doug's notes. Doug's notes defines the numbers in terms of Rx, Tx, One and Zero. They are different for each bit. So, I got the iron out and made the changes that I thought were needed. Well, the first try was screwed up. But then after fixing it, the board refused to work. Rats! Got out the scope and found that my device select addresses were correct, so something else was wrong. To make a long saga short, after 2 hours of checking I had forgotten to re-solder in the baud rate jumper. My Grandfather used to call us kids 'Fitzhigmy Dupa!', when we did something stupid. I can hear him, still. Anyway I have successfully changed the device select.

IMG_0259.jpg

From the picture, you can see (maybe) what I changed to go from 03/04 to 40/41. The first two jumpers (right to left) remain the same, the next 4 jumpers have changed. This is group A, B & C. The 8th and 9th jumpers were changed in group D, E, & F. I also added a few copper jumpers between the raised pins. It works. Next when the new crystals shows up I'll try higher baud rates. Thanks Mike.
 
I received the new 19.6608 Mc crystals in the mail. I replaced the 14.418 Mc crystal on my second M8650 board. Then according to Doug Jones' notes I set the board to 9600 baud. This meant that the G group jumper 7-8 was removed and a wire soldered from pin9 of E05 to the adjacent trace on the top of the board. This trace is the same as the common (the odd numbers) of the G group jumpers. This jumper skirts around the E18 16 counter. I checked the clock pulses to the transmitter buffer. It should be two times the baud rate. I measured 19.2 Kc. Looked good. So, to test the boards I connected my TTY to the 110 baud board and my TeleVideo 920C to the 9600 board. I wrote a short program that would take a character from the TTY and display on the TeleVideo and conversely. Didn't work. I first suspected my program, and maybe it's entry via the front panel switches on the PDP8e. Looked good. Turns out that the TeleVideo had failed. Rats! This console is my CP/M terminal so that is down also. After some work I found that the 10 position DIP switch that selects the baud rate had failed. Apparently I changed the baud rate once to often. So to temporarily make the terminal work I soldered a wire in for 9600. There was a silver lining to this. It forced me to use MS DOS Kermit on my IBM XT machine to communicate with my CP/M machine. Now I know I have a backup if needed again. Anyway, back to the two terminal connection and the PDP8e. This time is worked fine. Thanks Mike
 
Hi All;

Mike, "" I wrote a short program that would take a character from the TTY and display on the TeleVideo and conversely. ""
Would You be willing to share this program with the rest of Us..

THANK YOU Marty
 
Sure. First the TTY is port 03/04, Rx/Tx and the Televideo is port 40/41, Rx/Tx.

The flow chart is;

Televideo Rx flag? YES get character & Print on TTY, return to begin
NO
TTY RX flag? YES get character & print on Televideo, return to begin
NO
Return to begin

ADDR INST
0000 6402 Clear flag
0001 6032 Clear flag
0002 6401 Televideo flag? skip if set
0003 5005 Jump to check TTY flag
0004 5010 Jump to print TTY
0005 6031 TTY flag? skip if set
0006 5002 Jump to check Televideo flag
0007 5015 Jump to print Televideo
0010 6406 get Televideo character
0011 6046 print on TTY
0012 6041 wait until done
0013 5012 jump loop
0014 5000 start over
0015 6036 get TTY character
0016 6416 print on Televideo
0017 6411 wait until done
0020 5017 jump loop
0021 5000 start over

Hope I copied it correctly, Mike
 
Back
Top