Restaurera en PDP11/04

Berätta om dina pågående projekt.
Användarvisningsbild
anders_bzn
Inlägg: 5772
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

Svalander.se har mycket omöjliga ljudprylar för troende audiophiler, men har har en vettig tjänst nämligen att renovera gummihjul: http://www.svalander.se/shoppen/reservd ... _gummihjul

Om man nu vill ha igång en TU58.
Användarvisningsbild
adent
Inlägg: 4245
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av adent »

Jag har en spray avsedd för gummihjul i skrivare om de blivit lite för hårda, funkade fint i min HP, den plockade papper efteråt och hjulet torkade inte in igen.
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

TU58 emulator fungerar

Jag hade provat TU58 emulatorn jag kompilerade förut men så fort jag försökte boota en image så krashade maskinen direkt. I går tog jag en närmare titt med och logikanalysatorns hjälp insåg jag snabbt att det den läst från TU58 emulatorn in i minnet var felaktigt. Det visade sig att bit 2 på ett serieportskort som jag tidgare använt plötsligt hade fastnat i lågt tillstånd. Jag bytte en DEC8881 bus drivar krets (svåra att få tag på de med) och kortet började fungera igen.

Jag provade med den RT11 image jag byggt tidigare och mycket riktigt så stannade den med ett "Insufficent memory". Jag ville även boota XXDP om är ett diagnostik system som används för att verifiera hårdvaran. Problemet hade även där varit att hitta något som gick att köra med så lite minne.
Jag hittade en RX02 image på bitsavers med XXDP+ och byggde ihop en TU58 image:

Kod: Markera allt

 .R UPD2

CHUP2A2 XXDP+ UPD2 UTILITY
RESTART: 002432

*ZERO DD0:

*DRIVER DD0:

*LOAD DY=:HMDDA1\\\\\\\\\\\\\\\

*LOAD DY0:HMDDA1.SYS
XFR:005034  CORE:000000,017774

*SAVM DD0:

*PIP DD0:HMDDA1.SYS=DY0:HMDDA1.SYS

*PIP DD0:HDDDA1.SYS=DY0:HDDDA1.SYS

*PIP DD0:GKA???.BIC=DY0:GKA???.BIC
GKAAA0.BIC      
GKABC0.BIC      

*PIP DD0:HELP.TXT=DY0:HELP.TXT

*PIP DD0:HUDIA0.SYS=DY0:HUDIA0.SYS

*PIP DD0:HSAAA0.SYS=DY0:HSAAA0.SYS

*PIP DD0:UPD?.BIN=DY0:UPD?.BIN
UPD1  .BIN      
UPD2  .BIN      

*PIP DD0:SETUP.BIN=DY0:SETUP.BIN

E11>set cpu 04
E11>set mem 16
E11>boot tt1:

CLEARING MEMORY
CHMDDA0 XXDP+ DD MONITOR  8K
BOOTED VIA UNIT 0

ENTER DATE (DD-MMM-YY):    

RESTART ADDR:033726
50 HZ? N   Y

LSI?   N   

THIS IS XXDP+.  TYPE  "H" OR "H/L" FOR DETAILS
.DIR

ENTRY#  FILNAM.EXT        DATE          LENGTH  START

000001  HMDDA1.SYS      22-MAR-80         17    000050
000002  HDDDA1.SYS      22-MAR-80          3    000071
000003  GKAAA0.BIC      11-AUG-76         15    000074
000004  GKABC0.BIC      29-JAN-77         16    000113
000005  HELP  .TXT      22-MAR-80         26    000133
000006  HUDIA0.SYS      22-MAR-80          6    000165
000007  HSAAA0.SYS      22-MAR-80         24    000173
000010  UPD1  .BIN      22-MAR-80         12    000223
000011  UPD2  .BIN      22-MAR-80         16    000237
000012  SETUP .BIN      22-MAR-80         26    000257

Provade jag den på min maskin så bootade den faktiskt!

Bild

Och den kunde höra diagnostiken GKAAA0 som är en grundläggande CPU test. Sedan försökte jag köra GKABC0 som tyvärr kraschade. Så här är något problem. Kraschen inträffar där koden testar Stack overflow funktionen, dvs att stackpekaren får ett värde under 400.

Kod: Markera allt

> 014446: mov     #000006,000004          [012767 000006 163330]
> 014454: clr     000006                  [005067 163326]
> 014460: inc     @#000304                [005237 000304]
> 014464: cmp     #000110,@#000304        [022737 000110 000304]
> 014472: bne     014560                  [001032]
> 014474: bit     #000001,000322          [032767 000001 163620]
> 014502: bne     014610                  [001042]
> 014504: reset                           [000005]
> 014506: mov     #000340,177776          [012767 000340 163262]
> 014514: mov     #000400,sp              [012706 000400]
> 014520: mov     #014572,000004          [012767 014572 163256]
> 014526: mov     #014560,000064          [012767 014560 163330]
> 014534: mov     #000100,177564          [012767 000100 163022]
> 014542: clr     177776                  [005067 163230]
Den sätter SP till 400 och ser till att serieporten triggar ett interrupt som in sin tur kommer orsaka ett stack overflow interrupt till vector 4. Problemet är med min CPU så får jag ett nytt serieports interrupt direkt när hanteraren för stack overflow ska börja exekvera. Sedan snurrar det på till stacken kommer till 17774 och maskinen får ett dubbelt bussfel och haltar.

Tyvärr har jag inte hittat beskrivningen för disgnostikprogrammet, men för PDP-11/34 finns det en listning som är väldigt snarlik:http://bitsavers.informatik.uni-stuttga ... _Apr77.pdf. På rad 2422 så körs detta test nästan identiskt med ovanstående.

Nu måste jag förstå hur det ska fungera och vad i CPUn som inte beter sig rätt.
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

Trasigt DL11-W

Jag hittade denna artikel som beskrev interrupts i PDP-11: http://simh.trailing-edge.com/docs/pdp11interrupts.pdf
Framförallt förklarade den hur olika hårdvaror ska fungera. Ett interrupt ska återställas av en SSYN signal på bussen. Fast interruptet låg ju kvar. Kunde det vara så att det inte var i CPUn som problemet låg? Provade alltså med ett annat DL11-W kort (M7856) och vips så fungerade diagnostikprogrammet som det skulle!

För övrigt kan jag passa på att visa upp M7856 när jag ändå håller på:
Bild

Den stora skillnaden jämfört med DL11 är att man på detta kort integrerat en line clock som ger interrupt med nätfrekvensen.
Här är manualen till kortet http://bitsavers.trailing-edge.com/pdf/ ... _May77.pdf

För de som själva vill testa att köra diagnostikprogram i XXDP+ så ligger här en länk till en TU58 image att köra i E11 (eller ett original om man har det): https://dl.dropboxusercontent.com/u/969 ... /dddp2.dsk
Användarvisningsbild
säter
Inlägg: 35216
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Restaurera en PDP11/04

Inlägg av säter »

Ger du dig på att felsöka och reparera kortet?
Eller åker det i soptunnan?
bqt
Inlägg: 267
Blev medlem: 14 juni 2011, 11:54:44
Skype: sillbit
Ort: Zürich

Re: Restaurera en PDP11/04

Inlägg av bqt »

adent skrev:Jag har en spray avsedd för gummihjul i skrivare om de blivit lite för hårda, funkade fint i min HP, den plockade papper efteråt och hjulet torkade inte in igen.
Problemet med TU58 är inte att gummit blir hårt. Problemet är att det blir löst. Så som att det börjar dela med sig av gummit i dess beståndsdelar på alla saker det rör vid.
Det behöver bytas ut. Går inte att "renovera" det gummit...
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

säter skrev:Ger du dig på att felsöka och reparera kortet?
Eller åker det i soptunnan?
Jag tänker försöka reparera dem. Det är nog inte speciellt svårt bara jag kan hitta ett QUAD extender kort. Det jag trodde jag hade verkar verkligen ha gömt sig väl. TTL-kretsar har jag ett ganska bra förråd av.
Användarvisningsbild
pbgp
Inlägg: 1450
Blev medlem: 11 november 2010, 09:09:22
Ort: Uppsala

Re: Restaurera en PDP11/04

Inlägg av pbgp »

Om inte annat så kan man spara kortet för reservdelar. Busdrivarna börjar ju, som sagt, bli svåra att få tag på.
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

TU60 bandstation

På sjutiotalet skapade DEC ett enkelt och billigt massminne baserat på en variant av vanliga kompakt kassetter, kallat TU60. Enheten hade två drivar och man kan väl se hela systemet som en ersättning för pappersremsor. Varje band var på 150 fot och rymde nästan 100k.
Bild

http://bitsavers.informatik.uni-stuttga ... Manual.pdf

TU60 använder inte en capstan utan det sitter två motorer i varje drive, en på en drivaxel till kassetten och den andra indirekt via ett gummihjul. De båda är aktiva samtidigt för att hålla bandet i spänn. Man kan inte vända kassetten som vanliga ljudkassetter utan det är en särskild sida som alltid ska monteras inåtvänd.
Bild
Det påstås att man sannolikt måste göra något åt gummihjulen eftersom de har blir torra och slutar driva. Kanske skulle spray fungera i detta fall? Vad heter sprayen och var får man tag i den?

Det finns interface kort både för Unibus (PDP11) och Omnibus (PDP8/e eller 8/a). Dessa heter M7892 respektive M8331. Nedan M7892:
Bild
Jag har fått tag på både ritningar http://bitsavers.informatik.uni-stuttga ... ngDwgs.pdf, manual http://bitsavers.trailing-edge.com/www. ... Manual.pdf och nästan alla diagnostikprogrammen så det är bara att hugga in. Något problem är det i alla fall eftersom försöker man boota så gör den bara en rewind och hänger sedan där utan att göra något mer.

TU60 stöds av en del versioner av RT11 liksom XXDP. Men framförallt finns det ett väldigt litet operativsystem som är gjort för att köras på maskiner med TU60 och minst 16kbyte minne, detta heter CAPS-11 (Det finns även CAPS-8 för PDP8). Under CAPS-11 kan man köra BASIC och assemblera kod under PAL.

https://dl.dropboxusercontent.com/u/969 ... A-D%29.pdf

På Ebay hittade jag någon som sålde den speciella sorts data kassetter som passar i driven (det ska var ett litet urtag på ovansidan av kassetten) så förhoppningsvis ska det gå göra bootbara kassetter från de dumpar jag har av CAPS-11 systemet.
Användarvisningsbild
anders_bzn
Inlägg: 5772
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

Jag har en sådan drive till 11/34. Har även kassetterna som passar till denna. Kul att du tänker få igång den. Måste snart ta i den ganska stora högen PDP11 som står i museet.
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

säter skrev:Ger du dig på att felsöka och reparera kortet?
Eller åker det i soptunnan?
Som sagt, klart man inte slänger ett kort som är lite trasigt.

Men då måste man ju laga det. Problemet bestod ju i att man fick en interrupt-loop med detta kort men inte med ett helt. För att felsöka isolerade jag exakt den lilla kodsnutt som falerade i GKABC0. Ett tiotal assembler-instruktioner räckte och det var bra mycket enklare än att ladda hela GKABC0 via TU58 emulatorn.

Med detta som grund provade jag både det hela och det trasiga kortet. Så här ser interrupt sekvensen ut på Unibus för ett fungerande kort:

Bild

När interruptet blir aktivt i DL11-W kortet lägger det BR4 låg och väntar på att CPUn ska bli klar med pågående instruktion och exekvera mikrosinstruktion 0 där man antingen hämtar en ny instruktion eller börjar serva ett interrupt. Processor lägger då ut BG4 signalen varpå kortet lägger ut INTR signalen och dessutom adress vektorn där CPUn ska hämta interrupt-rutinens adress. CPUn svarar med SSYN låg och lagrar vektorn samtidigt vektorn internt för att sedan använda den som adress. I och med INTR ska kortet nollställa interrup vippan. Fast det var just det som inte hände med det trasiga kortet. Det kortet la ut en BR4 låg direkt efter INTR blev hög igen, och sedan om och om igen.
Efter en del letande på kortet fann jag att problemet var en felande 7408 som inte släppte igenom signalen som skulle nollställa vippan.

Bild

AND-grind E4, en 7408 med ingångar 12 och 13, utgång på 11. Lite suddig bild men man ser ändå att signalen försvinner på vägen...

Nåja, med ett helt DL11-W gällde att ta nya tag. Jag hade ju en TU60 att laga.

Men innan jag går igenom alla dessa vedermödor en liten sak som får upp humöret. Med kontrollerkort i och en halvfungerande TU60 inkopplad gjorde jag en lite specialare... Jag hade fått alla filer för CAPS-11 system, både binärer, objektfiler och källkod. Huvudfilen för CAPS-11 är en fil som heter CAPS11.S8K. Den innehåller en enkel command line parser och rutiner för att ladda in filer in minnet. Väldigt enkelt. För att ladda den behövs en en fil som heter CTLOAD.SYS. CTLOAD.SYS ska ligga först på kassetten så att den lilla enkla hårdvara boostrapen ska kunna hitta den. Enligt dokumentationen består CTLOAD.SYS av tre delar, en PRELDR, CABLDR och CBOOT. Bootprocessen är ganska invecklad. I princip är det tre steg som dels involverar hårdvarubooten i PROM, dels PRELDR och dels CABLDR. CABLDR läser filer i standard paper-tape format. Dvs den läser CAPS11.S8K som om den vore en pappersremsa! Men det kan man ju göra med PDP11GUI! Att köra CABLDR på min maskin hade varit omöjligt eftersom som den kräver en progremmers console för att fungera.

Sagt och gjort in med med den i PDP11GUI och starta från adress 21510:

Bild

Ha! Den snurrar igång. CAPS-11 från någon gång i början av 70-talet. Att det är något som är vajsing med TU60 driven är uppenbart. Det går att göra Z(ERO) kommandot men DI(R) ger BAD TAPE...
Användarvisningsbild
anders_bzn
Inlägg: 5772
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

Kul att det snurrar på. Jag skrev tidigare att jag hade en TU60 till 11/34 men det är fel. Jag fick den med 11/35. Jag har 32k i den och samma interface kort som du. Men nu blir jag lite förvirrad. Jag trodde att alla maskiner som hade udda sista siffra var QBUS men så är inte fallet. Finns det någon regel för att veta detta. Vid en snabb blick på Wikipedia så ser det ut som alla QBUS heter 11/x3 är detta ett korrekt antagande?

Jag har länge tänkt att jag ska släpa hem en 11, men nu råkade jag ta hem en 8a som kräver sitt rack. Vi får se om mina 12 kvadratmeter kanske kan rymma både och...
Användarvisningsbild
pbgp
Inlägg: 1450
Blev medlem: 11 november 2010, 09:09:22
Ort: Uppsala

Re: Restaurera en PDP11/04

Inlägg av pbgp »

Här har du en trevlig översikt.
http://www.hampage.hu/pdp-11/main.html

Snabbt svar:
Unibus: x0, x4, x5
Qbus: x3
Användarvisningsbild
pbgp
Inlägg: 1450
Blev medlem: 11 november 2010, 09:09:22
Ort: Uppsala

Re: Restaurera en PDP11/04

Inlägg av pbgp »

MattisLind skrev:Att det är något som är vajsing med TU60 driven är uppenbart. Det går att göra Z(ERO) kommandot men DI(R) ger BAD TAPE...
Kommer den så långt att den försöker läsa bandet. Tror du att banden fortfarande är läs- eller skrivbara.

Visst är det så att DEC sålde sina egna band till dom här maskinerna med andra specifikationer jämfört med vanliga kassettband och att DECs band har någon fysiskt modifikation som ska göra att man inte kan stoppa i ett vanligt? Går detta att komma runt eller har du DEC-band så det räcker?
Användarvisningsbild
anders_bzn
Inlägg: 5772
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

DEC banden har ett hack i toppen om jag minns rätt. Det borde vara lätt att modifiera ett vanligt band för att passa. Om det duger vet jag inte.
Skriv svar