• Please review our updated Terms and Rules here

A new G888 manchester read/write module

PDP-9/15 Disassembler
Hardware Read In Format Selected
Reading Binary file: C:\FAQ\DEC\pdp9\papertapeImages\From Sandahl\tape09\data.bin
.FULL
.LOC 17640
/
00000 000000 VAR31 000000
00030 000000 VAR28 000000
00031 000000 VAR7 000000
00077 000000 SUB2 000000
00100 000000 INS8 000000
01000 000000 SUB14 000000
13000 000000 SUB6 000000
17640 617650 JMP INS1
17641 000000 VAR20 CAL VAR31
17642 000077 VAR15 CAL SUB2
17643 760241 VAR27 LAW 00241
17644 000000 VAR26 CAL VAR31
17645 000000 VAR21 CAL VAR31
17646 121000 VAR14 JMS* SUB14
17647 013000 VAR29 CAL SUB6
17650 117754 INS1 JMS SUB9
17651 157641 DZM VAR20
17652 750004 LAS /(Load Accumulator from Switches)
17653 741200 SNA
17654 617714 JMP INS7
17655 740100 SMA INS8
17656 617665 JMP INS3
17657 217773 LAC VAR2
17660 117763 JMS SUB11
17661 742010 RTL
17662 742120
17663 617714 JMP INS7
17664 617677 JMP INS4
17665 457641 INS3 ISZ VAR20
17666 744010 RCL
17667 740400 SNL
17670 617665 JMP INS3
17671 750001 CLC
17672 357641 TAD VAR20
17673 744010 RCL
17674 742010 RTL
17675 742010 RTL
17676 057641 DAC VAR20
17677 117754 INS4 JMS SUB9
17700 217642 LAC VAR15
17701 040031 DAC VAR7
17702 140030 DZM VAR28
17703 157644 DZM VAR26
17704 217727 LAC VAR10
17705 057724 DAC VAR24
17706 217641 LAC VAR20
17707 057645 DAC VAR21
17710 217646 LAC VAR14
17711 117763 JMS SUB11
17712 740100 SMA INS8
17713 617716 JMP INS5
17714 740040 INS7 HLT
17715 617650 JMP INS1
17716 237642 INS5 LAC* VAR15
17717 557645 SAD VAR21
17720 617741 JMP INS6
17721 741201
17722 617714 JMP INS7
17723 357645 TAD VAR21
17724 750100 VAR24
17725 617711 JMP
17726 217644 LAC VAR26
17727 750100 VAR10
17730 777776 LAW 17776
17731 057644 DAC VAR26
17732 357641 TAD VAR20
17733 057645 DAC VAR21
17734 217724 LAC VAR24
17735 257774 XOR VAR23
17736 057724 DAC VAR24
17737 217775 LAC VAR25
17740 617711 JMP
17741 217644 INS6 LAC VAR26
17742 751100 SPA
17743 617731 JMP
17744 217643 LAC VAR27
17745 040030 DAC VAR28
17746 217647 LAC VAR29
17747 117763 JMS SUB11
17750 741100 SPA
17751 617714 JMP INS7
17752 703302 CAF /CLEAR ALL FLAGS
17753 600100 JMP INS8
17754 000000 SUB9 CAL VAR31
17755 707702 EEM /KG09A ENTER EXTENDED MODE
17756 703302 CAF /CLEAR ALL FLAGS
17757 700012 IOF + 10 /INTERRUPTS OFF AND CLA)
17760 705504 ISA /KF09A INITIATE SELECTED ACTIVITY
17761 707541 DTCA /(TC02 Clear status register A)
17762 637754 JMP* SUB9
17763 000000 SUB11 CAL VAR31
17764 707544 DTXA /(TC02 Exclusive OR AC[0..9] -> status register A, AC[10..11] will clear flags)
17765 707573 INS9 ????
17766 751000 SKP
17767 637763 JMP* SUB11
17770 707601 DTDF /(TC02 Skip on DECtape flag)
17771 617765 JMP INS9
17772 637763 JMP* SUB11
17773 160000 VAR2 DZM* VAR31
17774 001000 VAR23 CAL SUB14
17775 040000 VAR25 DAC VAR31
17776 617650 JMP INS1

/The code does not use any PDP-15 instructions
/Instructions decoded: 102
 
Finally, I made a bug fixed version of the board and it passes the maindecs perfectly!
G888-mk2-component.jpg


For those that are interested, the files (schematic, cad files and gerbers) are available for download: https://www.pdp-9.net/docs/g888/G888-mk2.zip

There are a couple of critical components, IC2 (Opamp OPA2134) and T2,T4 (IRLML0100TR) and D12, D13 (MBR0540T1) that can't be replaced without some work and testing.
 
Thanks!

This is on step closer to get my TU55 connected to a TD8E. I have just borrowed the TU56...
 
Well, TD8E is indeed stupid. What I meant was to build something that has a connector that is similar to the one that sits on the TD8E so you could plug in the cable from the drive either in TD8E or the "thing".
 
Well, TD8E is indeed stupid. What I meant was to build something that has a connector that is similar to the one that sits on the TD8E so you could plug in the cable from the drive either in TD8E or the "thing".

Oh, well if you just meant the electrical interface, then sure, that would make sense. But I expect that one is the same for all other DECnet controllers as well, since the drive is the same independent of controller.
But the logical interface, and how you control is it pretty bad. Almost impossible to use in a timeshared or interrupt driven system.
(I say "almost", since MULTOS proved me wrong if I had said "absolutely impossible"... But it's quite a hack to make it sortof usable...)
 
Electrical and physical to ease interconnecting both TU55 and TU56 to a TD8E. The TU55 have the G888 or G882 in the controller while the TU56 can have them in the drive or in the controller. When using Anders new set of cards both type of drives can be used with TD8E.

For USB interfacing I then thought it could be useful to do a small device the integrate a small CPLD that deals with the realtime stuff equivalent of what the TD8E is doing and a STM32 blue pill for USB interfacing. This board would then have a TD8E compatible interface for ease of integration with Anders boards or a TU56 with G888s in it.

Done some preliminary stuff in VHDL. But not finished yet:https://github.com/MattisLind/td8e_usb
 
Electrical and physical to ease interconnecting both TU55 and TU56 to a TD8E. The TU55 have the G888 or G882 in the controller while the TU56 can have them in the drive or in the controller. When using Anders new set of cards both type of drives can be used with TD8E.

For USB interfacing I then thought it could be useful to do a small device the integrate a small CPLD that deals with the realtime stuff equivalent of what the TD8E is doing and a STM32 blue pill for USB interfacing. This board would then have a TD8E compatible interface for ease of integration with Anders boards or a TU56 with G888s in it.

Done some preliminary stuff in VHDL. But not finished yet:https://github.com/MattisLind/td8e_usb

No you mixed up TTU55 and TU56, it's only the TU56 that can hold G888 (haven't seen G882 in the drive). What I know about all TC's have the G88x cards in them. The G888's goes in the drive only when TD8E is used (as far as I know).
 
The G888's goes in the drive only when TD8E is used (as far as I know).

Correct. TC08 and TC11 (TC15?) have the G888s in the controller.
You would think that the more common TD8E would mean there would be more TU56s with G888s out there, but it doesn't seem to be the case.
The unique cable between the TU56 and TD8E are pretty rare as well (same for the RK05 to RK8E cable)

All of my TU56s came out of PDP-11 configurations, so I ended up taking them out of my TC11 to do the stand-alone reading that I
did at CHM in the mid 00's
 
Roland Huisman solved the problem with the RK05 to RK8E cable, which is great (which is the one I use, thanks Roland). I'm trying to do the same for TD8E to TU56 (and even TU55) cable.

I have drawn replacement boards for M961 and M960.

The "M961" board also includes the five G888's. The electrical design is almost 5xG888-Mk2 (have not put in 5x all voltage regulators).
data-board-image.jpg

The "M960" board will be in two versions, one for TU55 and one for TU56. This should make it possible to use a TU55 with TD8E!
DSC_2765_00001.jpg
 
Last edited:
Electrical and physical to ease interconnecting both TU55 and TU56 to a TD8E. The TU55 have the G888 or G882 in the controller while the TU56 can have them in the drive or in the controller. When using Anders new set of cards both type of drives can be used with TD8E.

For USB interfacing I then thought it could be useful to do a small device the integrate a small CPLD that deals with the realtime stuff equivalent of what the TD8E is doing and a STM32 blue pill for USB interfacing. This board would then have a TD8E compatible interface for ease of integration with Anders boards or a TU56 with G888s in it.

Done some preliminary stuff in VHDL. But not finished yet:https://github.com/MattisLind/td8e_usb

Ah. Good point. I had forgotten that that card might be in the controller for other controllers.

But you know that the TD8E don't deal with any realtime stuff. It really just feeds pretty much the raw data to the CPU, who have to do everything. And it's not even interrupt driven, so you have to poll the thing all the time. Read out each bit of the control track, and figure out what you are seeing, reading in, combining data, control the motors... Everything is in software.
 
Ah. Good point. I had forgotten that that card might be in the controller for other controllers.

But you know that the TD8E don't deal with any realtime stuff. It really just feeds pretty much the raw data to the CPU, who have to do everything. And it's not even interrupt driven, so you have to poll the thing all the time. Read out each bit of the control track, and figure out what you are seeing, reading in, combining data, control the motors... Everything is in software.

Well it does a bit since it has a couple of mono stables that filters out spurious pulses. That part (except for using counters instead of monostables) and latching the data on the clock track signal is done in the CPLD in my implementation. The STM32 code would do basically exactly what the pdp8 does. Non interrupt driven. Just forwarding the raw data to the host over USB for further processing.
 
Back
Top