Restaurera en PDP11/04

Berätta om dina pågående projekt.
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

anders_bzn skrev: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.
Har du några intressanta kassetter med den? Du kanske kan fota av dem och skicka mig bilderna i så fall (om det står någon intressant text på dem). Hade varit kul att hitta BASIC-tolken för CAPS11. Antagligen är den väldigt lik paper tape basic.
anders_bzn skrev: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?
Det stämmer att 11/x3 är QBUS. Övriga är Unibus. Från början hade man en uppdelning mellan OEM och icke-OEM. OEM fick en siffra som var 5 lägre än icke-OEM maskinen. T ex 11/15 vs 11/20, 11/05 vs 11/10, 11/35 vs 11/40. Men 11/45 om var en OEM variant av 11/50 vet jag inte. Sedan hade man serier med 11/x4 som 11/04 och 11/34 som var väldigt snarlika och samma generation. 11/44 är relativt modern men fortfarande en TTL implementation medan 11/24 och 11/84 är baserade på F11 respektive J11 chip.
Användarvisningsbild
anders_bzn
Inlägg: 5771
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

Jag ska ta med banden nästa gång jag är i museet. Om det är något intressant på dem får du låna dem när du fått igång TU60. Motprestationen blir att dela med dig av innehållet.
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

anders_bzn skrev:Jag ska ta med banden nästa gång jag är i museet. Om det är något intressant på dem får du låna dem när du fått igång TU60. Motprestationen blir att dela med dig av innehållet.
Perfekt. Jag ska göra mitt bästa för att läsa kassetterna. Fast som sagt först måste jag ju få igång TU60 bandstationen. Jag har spenderat en hel del tid med den den senaste tiden.Till en början med så gick det utmärkt spola kassetten till startläge med hjälp av knappen på framsidan. Men plötsligt så slutade drive 1 att fungera. Motoraxeln hade tappat fäste i drevet som fick kassetten att spolas tillbaka. Enligt ritningen skulle där sitta en stoppskruv med måtten #2-56 1/8. En inte helt vanlig skruv här i Sverige. Det skulle gå att beställa den från USA, men det var ju lite krångligt så jag fokuserade på drive 0 som i alla fall spolade bakåt , men inte speciellt mycket framåt.

För att testa en TU60 finns ett diagnostikprogram , ZTAAC0 som man kan ladda med hjälp av XXDP. Diagnostikprogrammet visade på problem med EOT/BOT indikeringen och mycket riktigt så hade en DEC8881 (7439) lagt av och ett byte av den gjorde att diagnostikprogrammet i alla fall kom vidare men inte tusan rörde sig drive 0. Det var fler problem. En TU60 har två motorer som driver den. En är till för att bara spola tillbaka och hålla bandet i spänn. Den andra driver framåt. Efter en längre tids ytterligare felsökning så hittade jag den 75452 open collctor drivare som kontrollerade Forward motor servot som hade gett upp.

Väl där så lossnade även motoraxeln för drive 0! Nu var båda trasiga. Lite mer studier av ritningar gav att man kanske inte använt en stoppskruv utan kanske limmat fast dem med Loctite. Inköp av Loctite, och se det fungerade utmärkt.

Nu gick det att köra diagnostiken ZTAAC0 utan fel på båda drive 0 och 1. Men inte ZTABC0. Problemet med diagnostikprogrammen är att de inte är helt lätt att tyda fel utskrifterna. Vad är det egentligen som är fel? Jag började skriva små egna testprogram i assembler. Ett program skrev kontinuerligt 0 .. 255 på bandet och ett annat läste tillbaka vad som skrivits. Logikanalysatorn berättade att den faktiskt lyckades läsa tillbaka korrekt data så man kan nog säga att en hel del fungerade. Men det är fler operationer som måste fungera. Att skriva längre assembler program var inte lockande. Det behövs en massa debugging för att få dem att fungera, i alla fall för mig som aldrig kodat pdp-11 assembler.

Jag är mer av en C kodare så jag började leta på nätet och fann den här sidan, http://www.diane-neisius.de/pdp11/index_E.html#xinu, som inspirerade mig.

Jag började med att ladda ned Binutils 2.24 och GCC 4.8.2. Dessa packade jag i upp en folder "src" och därefter byggde jag först binutils med:

Kod: Markera allt

src/configure --target=pdp11-aout --disable-nls
make all
sudo make install
och sedan GCC

Kod: Markera allt

src/configure --target=pdp11-aout --disable-nls --without-headers --enable-languages=c
make all-gcc
sudo make install-gcc
Man behöver C-start kod också, crt0. Jag gjorde minsta möjliga som initierar stackpekaren:

Kod: Markera allt

	.text
	.globl _main, ___main, _start

_start:
	mov	$400,sp
	jsr	pc, _main
	halt

___main:
	rts	pc
Jag hittade även den här printf rutinen http://www.sparetimelabs.com/tinyprintf/tinyprintf.php. När jag kompilerade allt visade det sig naturligtvis att gcc saknade rutinerna för multiplikation, division etc, ___mulhi3, ___divhi3 etc. Jag knåpade ihop några sådana rutiner men när jag kompilerade dessa med gcc inställd för att generera PDP11/10 kod så kraschade kompilatorn. Enda sättet var att generera kod för PDP-11/40 och därefter byta ut de operationer som inte stöds av PDP-11/04, t ex ASHC och SXT.

Därefter kompilerade jag mitt lilla testprogram:

Kod: Markera allt

pdp11-aout-gcc -m10  -Ttext 1000 -msoft-float  -nostartfiles  -nodefaultlibs  -nostdlib   crt0.s printf.c test.c divmulmod.s
pdp11-aout-objcopy -O binary a.out hello.dmp
Jag talade om för länkaren att relokera koden till address 1000 hex eller 10000 oktalt och därefter fick jag objcopy att extrahera en ren binärdump av filen som jag kunde ladda in senare.

Ett test i E11 visade att programmet verkade fungera och sedan ett test på den verkliga maskinen med hjälp av PDP11GUI för att ladda programmet.

Bild

Perfekt. Printf fungerar! Fast om man tänker efter så är det ju inte mer magsikt än att få t ex en AtMega32 att göra samma sak.

Nåja, jag var nöjd. Nu kan jag gå vidare och tillverka mina egna testprogram för TU60 driven och till och med bygga ett program som läser filer via en serieport och skriver på ett band. På så sätt skulle jag kunna rekonstruera en bootbar CAPS-11 kassett, eller för den delen läsa ut innehållet på ett okänt band i CAPS-11 filformat.
Användarvisningsbild
MiaM
Inlägg: 12803
Blev medlem: 6 maj 2009, 22:19:19

Re: Restaurera en PDP11/04

Inlägg av MiaM »

MattisLind skrev:Problemet med TU58 och nästan alla äldre bandstationer med gummi capstan är att gummit torkar eller faller sönder med tiden. Jag har ett flertal TU58 på lager men alla har mer eller mindre havererade capstan. Det är faktiskt ett enormt stort problem om man ska bevara saker i plast och gummi att polymererna inte är långtidsstabila utan plötsligt faller sönder.
Märkligt. Jag har knappt pysslat något alls med "datorbandare", men däremot en hel del med bandare avsedda för ljud och har nog aldrig råkat ut för detta.

Det enda ljudbandrelaterade problemet jag känner till är att tryckrullen blir ovalkantig om man lämnar den en längre tid så att den trycks mot kapstanaxeln utan att snurra. Det är väl rätt ovanligt att folk är så dumma att de lämnar t.ex. ett kassettdäck med play intryckt men med strömbrytaren avstängt, men däremot var detta ett riktigt problem på bilstereo. Stereo-8 som hade tryckrullen i själva kassetten istället för i spelaren kunde också drabbas av detta, men då givetvis på den enskilda kassetten. Stereo-8 led också av att nån kom på att man kunde spara några cent om man gjorde hjulet av hårdplast istället för gummi...
MattisLind skrev: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.
Terminologifråga: Vad avses med capstan o.s.v. här?

I en vanlig ljudbanspelare (eller t.ex. vhs-video) så är capstan en axel som i kompaktkassettfallet går in genom ett hål strax innanför bandet, och sen möts vid av/inspelning en gummirulle ("tryckrulle") mot axeln med bandet emellan.

Har DEC alltså klurat till något annat sätt att köra banden på?
anders_bzn skrev: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.
Vänd på steken, ta ett DEC-band som du kan offra innehållet på, och prova att spela in och upp i en bandspelare. Helst bör det vara en bandspelare med manuell väljare för bandtyp. Prova vilken inställning på bandtyp som ger "rätt" ljud (lagom mycket diskant, tidigare (ljud)inspelning raderas ordentligt o.s.v.). Ett tips är att bandtyp III är för bandspelaren rent tekniskt i princip att spela in som typ I men spela upp som typ II/IV, så det räcker om bandspelaren har omkopplare för I, II och IV. De kan också heta Fe eller FeO3 (I), Cr eller CrO2 (II), FeCr (III) och Metall (IV). Det kan också stå typ bias på omkopplaren för inspelningstyp och för uppspelningen kan det stå 120µS (typ I) och 70µS (typ II,III och IV).

Om det inte går att få ett acceptabelt ljud med DEC-bandet i en ljudbandare så är väl risken att det inte kommer funka så jättebra med ett ljudband, men det är väl ändå värt att prova. Om schemat på analogelektroniken i närheten av tonhuvudet finns tillgänglig och om bandhastigheten är känd (och kanske även data på tonhuvudet) så skulle man kanske kunna modifiera strömstyrka/frekvensgång vid skrivning och frekvensgång vid uppspelning så att det passar vanliga band. Det är trots allt en minst sagt avsevärd skillnad på kassetband från början-mitten av 1970-talet och bara lite nyare band.

Glöm inte att göra rent tonhuvudet, isopropanol är bra, men se för sjutton till att spriten avdunstat helt innan du kör ett band, den löser nämligen (delvis) upp banden såpass att de dels blir skadadde och dels lämnar massor av bandrester på tonhuvudet...
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

MiaM skrev:Terminologifråga: Vad avses med capstan o.s.v. här?

I en vanlig ljudbanspelare (eller t.ex. vhs-video) så är capstan en axel som i kompaktkassettfallet går in genom ett hål strax innanför bandet, och sen möts vid av/inspelning en gummirulle ("tryckrulle") mot axeln med bandet emellan.

Har DEC alltså klurat till något annat sätt att köra banden på?
Ja, DEC bryr sig inte så mycket att bandhastigheten och därmed bitdensiteten varierar. Det är ju ganska förödande när det gäller ljudkassetter. Alltså låter man bara drivmotorerna ha konstant fart. Man använder faskodning för att koda bitströmmen till bandet.
MiaM skrev:Det enda ljudbandrelaterade problemet jag känner till är att tryckrullen blir ovalkantig om man lämnar den en längre tid så att den trycks mot kapstanaxeln utan att snurra. Det är väl rätt ovanligt att folk är så dumma att de lämnar t.ex. ett kassettdäck med play intryckt men med strömbrytaren avstängt, men däremot var detta ett riktigt problem på bilstereo. Stereo-8 som hade tryckrullen i själva kassetten istället för i spelaren kunde också drabbas av detta, men då givetvis på den enskilda kassetten. Stereo-8 led också av att nån kom på att man kunde spara några cent om man gjorde hjulet av hårdplast istället för gummi...
TU58 använder DC100 band och där är capstan som tryckrullen i ditt fall försedd med gummi. Den kan mycket riktigt bli platt. Och jag har sett ett fall där den fallit sönder.
Användarvisningsbild
carpelux
Inlägg: 1951
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: Restaurera en PDP11/04

Inlägg av carpelux »

Ett möjligt tips när det gäller tryckrullar är att kontrollera med svalander (avalander.se). Han kan fixa regummering av tryckrullar.
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 »

Kul läsning, du ser ut att ha kommit en ganska god bit i alla fall. Även Update har en TU60, möjligen några band.
MattisLind skrev:Nu gick det att köra diagnostiken ZTAAC0 utan fel på båda drive 0 och 1. Men inte ZTABC0. Problemet med diagnostikprogrammen är att de inte är helt lätt att tyda fel utskrifterna. Vad är det egentligen som är fel?
Visst är det ett aber. Vad hade du hittat för dokumentation till testmaterialet? Ibland får jag känslan av att det har funnits mer dokumentation.. alternativt att serviceteknikerna på DEC höll på informationen om testerna.
MattisLind skrev:Jag började med att ladda ned Binutils 2.24 och GCC 4.8.2.
4.8.2 !? Det var modernt :D Vad använder folket som bygger bsd för PDP-11?
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 »

pbgp skrev:
MattisLind skrev:Nu gick det att köra diagnostiken ZTAAC0 utan fel på båda drive 0 och 1. Men inte ZTABC0. Problemet med diagnostikprogrammen är att de inte är helt lätt att tyda fel utskrifterna. Vad är det egentligen som är fel?
Visst är det ett aber. Vad hade du hittat för dokumentation till testmaterialet? Ibland får jag känslan av att det har funnits mer dokumentation.. alternativt att serviceteknikerna på DEC höll på informationen om testerna.
Det finns en "manual" där kort information om alla DECs diagnostikprogram för PDP-11 samlades. Jag har den på papper, men jag vet att jag sett någon länk till en scannad kopia också...
Ah. Här är den: http://bitsavers.trailing-edge.com/pdf/ ... k_1988.pdf
Tyvärr tycks inte ZTAB?? finnas med där, utan bara ZTAA??. Det hintas om ZTAB??, men information saknas. :(
MattisLind skrev:Jag började med att ladda ned Binutils 2.24 och GCC 4.8.2.
4.8.2 !? Det var modernt :D Vad använder folket som bygger bsd för PDP-11?
pcc.
GCC kan du aldrig få att köra på en PDP-11...
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

pbgp skrev:Visst är det ett aber. Vad hade du hittat för dokumentation till testmaterialet? Ibland får jag känslan av att det har funnits mer dokumentation.. alternativt att serviceteknikerna på DEC höll på informationen om testerna.
Jag har listningarna till några av maindec programmen för TA11 / TU60:
Men de är inte är inte helt uppenbart vad som är fel alltid.

Jag skrev ett litet enkelt program som jag kallade TU60EXCERICISER:

Bild

Man kan spola framåt och bakåt, läsa och skriva etc. Läsning fungerar utmärkt nu efter byte av ytterligare en DEC8881 som hindrade utläsning av den låga nibbeln av data från driven. Tidigare hade jag bara mätt med logikanalysatorn kopplad till databufferten i TU60 driven.

Trots att den läser ut rätt data så får den felkod för CRC-fel så det återstår något fel antingen vid genererande eller kontrollerande av CRC.

Det är här för övrigt användarmanualen till CAPS-11
Användarvisningsbild
anders_bzn
Inlägg: 5771
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

Snyggt, det börjar likna något!

Har du mer delar till denna maskinen? 11/35 som jag har har en TU60 och en RX01.
Användarvisningsbild
MiaM
Inlägg: 12803
Blev medlem: 6 maj 2009, 22:19:19

Re: Restaurera en PDP11/04

Inlägg av MiaM »

Jag måste bara säga att jag beundrar och imponeras av alla ni som orkar fixa ordning på just I/O-enheterna till gamla datorsystem. På något sätt så känns det att de är mest tidsödande att fixa med. Även om fixandet av själva PDP'n i tråden också tagit lång tid så har det väl vad jag förstår inte behövts några särskilt plågsamt långa väntetider medan själva pysslandet utförs. Däremot kan man väl riskera att växa fast i stolen medan man väntar på vissa äldre I/O-enheter. (Nu vet jag inte hur snabb TU60 är, den kör väl banden fortare än "normalhastighet" antar jag, men generellt så är väl I/O-enheterna ofta en plåga på gamla burkar. Jag minns t.ex. med fasa att det tog väl ett par minuter att formattera en diskett med inbyggda mjukvaran i en Commodore 1541... :) )
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

MiaM skrev:Jag måste bara säga att jag beundrar och imponeras av alla ni som orkar fixa ordning på just I/O-enheterna till gamla datorsystem. På något sätt så känns det att de är mest tidsödande att fixa med. Även om fixandet av själva PDP'n i tråden också tagit lång tid så har det väl vad jag förstår inte behövts några särskilt plågsamt långa väntetider medan själva pysslandet utförs. Däremot kan man väl riskera att växa fast i stolen medan man väntar på vissa äldre I/O-enheter. (Nu vet jag inte hur snabb TU60 är, den kör väl banden fortare än "normalhastighet" antar jag, men generellt så är väl I/O-enheterna ofta en plåga på gamla burkar. Jag minns t.ex. med fasa att det tog väl ett par minuter att formattera en diskett med inbyggda mjukvaran i en Commodore 1541... :) )
Tja, det är klart att en TU60 är inte speciellt snabb. Fast det är ju inte så stora datamängder det är fråga om. När jag testar att skriva ett block på 32 bytes (inte kbytes...) så tar det väl en sekund kanske. Det stora väntan är när man ska ladda ned testprogrammet med PDP11GUI över 9600 bps serie lina. Då får man ta och göra något annat en stund. Annars tycker jag det mest är mental träning att lura ut vad som är fel. Bättre än att stirra på TV en kväll...

För övrigt läser en TU60 med 9 ips. Hela bandet är 150 fot så det borde ta drygt 3 minuter att läsa / skriva hela bandet på a 100 k... Fast så mycket minne finns inte i maskinen så det kommer aldrig att hända.
anders_bzn skrev:Snyggt, det börjar likna något!

Har du mer delar till denna maskinen? 11/35 som jag har har en TU60 och en RX01.
Maskinen hade bara TU60 från början. Men jag har en MSCP SCSI kontroller som jag skulle kunna sätta i. Fast då är 16 k minne för lite för att köra något OS som klarar MSCP. På något sätt känner jag att denna maskin är gjord för att bara köra CAPS11. Jag tänker ju faktiskt aldrig använda den till något vettigt. Bara starta upp den och se CAPS ladda från kassetten någon gång då och då...
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

Finn felet i CRC logiken!

Nedan är fyra bilder som visar vad som händer när tecknen "AB" skrivs till bandet och 16 bitars CRC genereras. LSB av data skrivs först och WRITED är aktiv låg.
Men det blir alltid CRC fel. Vad är felet?

En ledtråd är att CRC genereras av ett återmatat shift register där data matas in med XOR grindar i bit 15, bit 13 och bit 0 i CRC-ordet.

Bild

Enkelt? Jag kom inte på det direkt, men sedan när jag skulle gå och lägga mig tog jag en titt till på bilderna och såg det:

Bit 5 är fast i '1'. Fast inte riktigt säger den skarpögde. I början är ju faktiskt alla bitar 0. Visst, men hela skiftregistret sätts till '0' med clear ingångarna. I det här fallet så fungerar utgången på chipet, men det är den seriella ingången på skiftregistret som tydligen lagt av. Den skiftar alltid in '1' i bit 5. Skiftregistret är ett Signetics N8271 eller Texas Instruments SN74179.

Jag beställde nya från Bulgarien (!), och med tanke på att frakten gick på över hundra kronor så hoppas jag chipen kommer pronto.

Med lite tur så fungerar driven efter detta. Till dess att paketet kommer från Bulgarien anländer tänkte jag spendera lite tid med att knåpa på ett program som kan fjärrstyra PDP-11/04an och TU60 driven via serieport från en PC och överföra filer till och från PC. Med tanke på den begränsade minnesmängden i maskinen vill jag undvika en massa buffring. Jag tänkte mig något enkelt protokoll med HDLC ramar över asynkrona linor. Likt ramhanteringen som PPP använder. 0x7E som start och stopp flagga, 0x7D som escapetecken. Komplementera bit 5 på alla tecken som escapas. En kommandobyte, två byte storlek, data fält och en enkel checksumma. Någon form av ACK och timeout kan vara bra också.
Användarvisningsbild
anders_bzn
Inlägg: 5771
Blev medlem: 17 december 2008, 19:22:18
Ort: Kävlinge
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av anders_bzn »

Beställde du från LCI_Electronics på Ebay?

Jag har just beställt därifrån och lagt minst lika mycket som du i frakt, det hade lönat sig om vi beställt ihop... Jag betalade nog mer för frakten än för kretsarna...
MattisLind
Inlägg: 775
Blev medlem: 27 maj 2011, 20:27:12
Ort: Älvsjö
Kontakt:

Re: Restaurera en PDP11/04

Inlägg av MattisLind »

anders_bzn skrev:Beställde du från LCI_Electronics på Ebay?

Jag har just beställt därifrån och lagt minst lika mycket som du i frakt, det hade lönat sig om vi beställt ihop... Jag betalade nog mer för frakten än för kretsarna...
Ja, fast deras checkout slår ju inte samman frakt på något snällt sätt precis. Det skulle kosta $5 för frakt av ett chip. Men varje extra chip av samma typ kostade $2 i frakt. Jag köpte även en annan typ och där åkte jag på ytterligare $5 som startkostnad (men där kostade varje extra av samma typ bara $0.5). Väldigt konstigt (och dyrt). Summa $16 för frakt!
Skriv svar