PDP-8a renovering
Re: PDP-8a renovering
Har inte kikat in på ett tag... Ok, så CPUn uppfattar inte interrupt. Tja, ur minnet... (mitt alltså). Det är relativt enkelt. Vad som helst kan dra ned interrupt request på Omnibus. CPUn har sedan en interrupt enable-styrning, som ska släppa igenom signalen om saker är rätt. Jag skulle börja spåra interrupt-signalen på CPU-kortet och se vart den försvinner.
Kikade för övrigt inte så noga på din kod, men det kan vara värt att nämna att när du exekverar ION så enablas inte interrupt omedelbart. Det buffras i en gate, och kommer över till den verkliga enable-switchen först efter ett JMP eller JMS (om jag minns rätt). Så denna mellanlagring av interrupt-enable kan också vara boven. Samma mekanik gäller för övrigt också för CIF-instruktionen (vilket gör att interrupt alltid är disablade mellan en CIF och efterföljande JMP/JMS, så även detta är lite logik som kan spöka.
(Det är också den enda anledningen till att OS med minnesmappning är lite pest att skriva på en åtta, eftersom man måste kunna emulera hela maskinen för just detta tillfälle.)
Kikade för övrigt inte så noga på din kod, men det kan vara värt att nämna att när du exekverar ION så enablas inte interrupt omedelbart. Det buffras i en gate, och kommer över till den verkliga enable-switchen först efter ett JMP eller JMS (om jag minns rätt). Så denna mellanlagring av interrupt-enable kan också vara boven. Samma mekanik gäller för övrigt också för CIF-instruktionen (vilket gör att interrupt alltid är disablade mellan en CIF och efterföljande JMP/JMS, så även detta är lite logik som kan spöka.
(Det är också den enda anledningen till att OS med minnesmappning är lite pest att skriva på en åtta, eftersom man måste kunna emulera hela maskinen för just detta tillfälle.)
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Jo jag ser ungefär vad IRQ't försvinner nu. Det är en lite lurig krets som består av en 4-2 MUX och ett 4-bitars shiftregister med parallell laddning som sitter ihop i något som ser ut som en tillståndsmaskin. Jag tror jag vet hur det är tänkt att fungera nu. Skiftregistret verkar man bara använda som en 4-bitars latch...
Har inte hunnit mäta alla signaler runt dessa ännu, men det skulle inte förvåna mig om någon av dessa två är trasiga.
Har inte hunnit mäta alla signaler runt dessa ännu, men det skulle inte förvåna mig om någon av dessa två är trasiga.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Har mätt och kollat en massa nu. Inser att signalen som går fel "INT IN PROG" försvinner ut i bakplanet igen...
Det sätter saker i helt nytt ljust, är sugen på ett nattpass men måste nog gå och sova istället.
Det sätter saker i helt nytt ljust, är sugen på ett nattpass men måste nog gå och sova istället.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Jag har hittat felet. Det är km8a, option #2 som är boven. Signalen "INT IN PROG" dyker upp på två ställen på kortet. Dels som ingång och buffras av en bus-reciver IC dels så driver kortet signalen med en 8881. Jag gissade på att det var drivkretsen som var trasig och klippte ett ben, sen fungerade maskinen igen. Men mitt program ligger i bara en minnessida, kortet stänger av IRQ om man gör minnesoperationer i en annan sida än den man för närvarande använder (rätta mig om jag misstar mig). Ett program som exekverar i flera sidor med interrupt igång kommer inte att fungera.
Nu kan jag ha fel, det kan vara den bakomliggande logiken som är trasig, men jag tror på drivaren. Så nu är det bara att vänta för en hel hög N8881 har jag inte, faktiskt inte någon. Inte heller någon 7439 som fungerar som ersättare.
Kortet, km8a, Option #2

Ett klippt ben.

Nu kan jag ha fel, det kan vara den bakomliggande logiken som är trasig, men jag tror på drivaren. Så nu är det bara att vänta för en hel hög N8881 har jag inte, faktiskt inte någon. Inte heller någon 7439 som fungerar som ersättare.
Kortet, km8a, Option #2
Ett klippt ben.
-
- Inlägg: 775
- Blev medlem: 27 maj 2011, 20:27:12
- Ort: Älvsjö
- Kontakt:
Re: PDP-8a renovering
Jag köpte 25 stycken 7439 för ett tag sedan så jag kan skicka dig en om du vill.Nu kan jag ha fel, det kan vara den bakomliggande logiken som är trasig, men jag tror på drivaren. Så nu är det bara att vänta för en hel hög N8881 har jag inte, faktiskt inte någon. Inte heller någon 7439 som fungerar som ersättare.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Ja tack, så slipper hela semestern gå innan jag kommer vidare. Jag beställde N8881 på Ebay kommer tidigast om två veckor. Du har min adress eller?
Beställde 20st 7439 av en annan säljare på Ebay, men när säljaren skulle skicka så fanns de inte... Var köpte du dina?
Beställde 20st 7439 av en annan säljare på Ebay, men när säljaren skulle skicka så fanns de inte... Var köpte du dina?
-
- Inlägg: 775
- Blev medlem: 27 maj 2011, 20:27:12
- Ort: Älvsjö
- Kontakt:
Re: PDP-8a renovering
Jag köpte 7439 från en liten kinesisk firma. $2.76 styck. $83 totalt för 25 stycken. Fast det var ganska lång leveranstid.
Vilka priser fick du? Man behöver 7439 ganska ofta. Jag bytte flera stycken i TU60 enheten. Och några på ett M7800 serie ports kort.
Adressen har jag. Ska packa ihop den med detsamma och skickar idag.
Vilka priser fick du? Man behöver 7439 ganska ofta. Jag bytte flera stycken i TU60 enheten. Och några på ett M7800 serie ports kort.
Adressen har jag. Ska packa ihop den med detsamma och skickar idag.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
-
- Inlägg: 775
- Blev medlem: 27 maj 2011, 20:27:12
- Ort: Älvsjö
- Kontakt:
Re: PDP-8a renovering
Det var ju inte så farligt. Brevet las på lådan innan lunch så med lite tur har du det imorgon.
Bipolära PROM verkar svåra att hitta under $5 oberoende av storlek verkar det som. Jag har behövt lite olika men haft svårt att hitta en riktigt billig källa.
Bipolära PROM verkar svåra att hitta under $5 oberoende av storlek verkar det som. Jag har behövt lite olika men haft svårt att hitta en riktigt billig källa.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Tack så hemskt mycket, den kom idag. Jag lödde i den och testade men det fungerade som förut. Som jag skev tidigare i så var jag inte säker på att det var drivkretsen och det var det naturligtvis inte. Nu får jag ta och felsöka den bakomliggande logiken...
Re: PDP-8a renovering
Det låter inte rätt på den beskrivningen.anders_bzn skrev:Jag har hittat felet. Det är km8a, option #2 som är boven. Signalen "INT IN PROG" dyker upp på två ställen på kortet. Dels som ingång och buffras av en bus-reciver IC dels så driver kortet signalen med en 8881. Jag gissade på att det var drivkretsen som var trasig och klippte ett ben, sen fungerade maskinen igen. Men mitt program ligger i bara en minnessida, kortet stänger av IRQ om man gör minnesoperationer i en annan sida än den man för närvarande använder (rätta mig om jag misstar mig). Ett program som exekverar i flera sidor med interrupt igång kommer inte att fungera.
Först av allt, "sida" låter som "page", vilket inte har någon relevans för interrupt. "Field" är det som är mer intressant, men det kanske var det du avsåg?
Sedan så är inte interrupt avstängda bara för att man gör operationer mot ett annat fält. Interrupt är disablade mellan CIF och nästa JMP/JMS. Interrupt påverkas inte av att man gör CDF.
Orsaken till att interrupt är avslagna mellan CIF och JMP/JMS är att det inte går att återskapa det tillståndet när du hoppar tillbaka från ett interrupt. Samma visa gäller ION, som också väntar att ta effekt tills nästa JMP/JMS.
Typiskt är ju t.ex. att du har ett interrupt. Då slås interrupt av, addressen sparas på address 0, och man börjar exekvera på address 1. När man hanterat sitt interrupt så vill man ju återgå. Men under tiden kan ju ett nytt interrupt ha aktiverat. Att återgå från interrupt på en PDP8 gör man genom att göra ION följt av JMP I 0, men om ION skulle ta effekt direkt så skulle ju det nya interruptet ske innan JMP I 0 har skett, och därmed skulle addressen som ursprungligen sparades på address 0 tappas bort, och du skulle få slutet på din interrupthanterar sparad på address 0, och därefter en oändlig loop. Så ION slår inte direkt på interrupt, utan det sätter bara en flipflop som propagerar till interrupt enable vid nästa JMP/JMS. CIF är samma visa. Efter CIF så exekverar du fortfarande i samma fält som innan, men ett nytt fält är valt, och tar effekt efter din JMP/JMS. Om ett interrupt skulle ske mellan CIF och JMP/JMS så kan man se vad det nya fältet är, men det fält som gällde mellan CIF och JMP går inte att se, så man kan inte komma tillbaka till där man exekverade efter ett interrupt. Så interrupt kan inte tillåtas vid den situationen.
INT IN PROG låter som en signal som skulle skickas ut från CPUn vid lämpligt tillfälle. Har svårt att tro att den skulle göra att interrupt inte fungerade, men jag har inte allt kikat på några ritningar nu. Om du fortfarande inte får saker och spela så berätta vad exakt du gjort och observerat, så kan jag ta och kika på ritningarna och försöka ge några idéer...
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Jo, det var "field" jag avsåg.bqt skrev:Det låter inte rätt på den beskrivningen.anders_bzn skrev:Jag har hittat felet. Det är km8a, option #2 som är boven. Signalen "INT IN PROG" dyker upp på två ställen på kortet. Dels som ingång och buffras av en bus-reciver IC dels så driver kortet signalen med en 8881. Jag gissade på att det var drivkretsen som var trasig och klippte ett ben, sen fungerade maskinen igen. Men mitt program ligger i bara en minnessida, kortet stänger av IRQ om man gör minnesoperationer i en annan sida än den man för närvarande använder (rätta mig om jag misstar mig). Ett program som exekverar i flera sidor med interrupt igång kommer inte att fungera.
Först av allt, "sida" låter som "page", vilket inte har någon relevans för interrupt. "Field" är det som är mer intressant, men det kanske var det du avsåg?
Om man kollar på ritningen för Option #2 så finns där en krets som heter "Interrupt inhibit F/F", den signalen kan dra ner "INT IN PROG L". Felsökningen gav att denna signalen hölls låg av Option #2 kortet. Jag har fortfarande inte klart för mig varför den kan dras ner av Option #2, men det verkar ha med KMTS att göra. Jag trodde KMTS var en instruktion men hittar den inte i manualen... Jag vill veta vad detta är!bqt skrev:Sedan så är inte interrupt avstängda bara för att man gör operationer mot ett annat fält. Interrupt är disablade mellan CIF och nästa JMP/JMS. Interrupt påverkas inte av att man gör CDF.
Orsaken till att interrupt är avslagna mellan CIF och JMP/JMS är att det inte går att återskapa det tillståndet när du hoppar tillbaka från ett interrupt. Samma visa gäller ION, som också väntar att ta effekt tills nästa JMP/JMS.
Typiskt är ju t.ex. att du har ett interrupt. Då slås interrupt av, addressen sparas på address 0, och man börjar exekvera på address 1. När man hanterat sitt interrupt så vill man ju återgå. Men under tiden kan ju ett nytt interrupt ha aktiverat. Att återgå från interrupt på en PDP8 gör man genom att göra ION följt av JMP I 0, men om ION skulle ta effekt direkt så skulle ju det nya interruptet ske innan JMP I 0 har skett, och därmed skulle addressen som ursprungligen sparades på address 0 tappas bort, och du skulle få slutet på din interrupthanterar sparad på address 0, och därefter en oändlig loop. Så ION slår inte direkt på interrupt, utan det sätter bara en flipflop som propagerar till interrupt enable vid nästa JMP/JMS. CIF är samma visa. Efter CIF så exekverar du fortfarande i samma fält som innan, men ett nytt fält är valt, och tar effekt efter din JMP/JMS. Om ett interrupt skulle ske mellan CIF och JMP/JMS så kan man se vad det nya fältet är, men det fält som gällde mellan CIF och JMP går inte att se, så man kan inte komma tillbaka till där man exekverade efter ett interrupt. Så interrupt kan inte tillåtas vid den situationen.
INT IN PROG låter som en signal som skulle skickas ut från CPUn vid lämpligt tillfälle. Har svårt att tro att den skulle göra att interrupt inte fungerade, men jag har inte allt kikat på några ritningar nu. Om du fortfarande inte får saker och spela så berätta vad exakt du gjort och observerat, så kan jag ta och kika på ritningarna och försöka ge några idéer...
I vilken fall, inhibit kretsen består av två NAND grindar varav en 7400. Denna grind hade ettor på båda ingångarna och en etta på utgången. Så den bytte jag och nu snurrar maskinen på som innan! Diskless kontroller testet går igenom igen!
Sen är det en annan sak som är märklig, Option #2 ska ladda en startadress som dyker upp på programmers console vid uppstart gissar jag. Det är märkligt, för det är inte alltid samma adress som dyker upp där utan det är några olika. Detta måste jag få lite klarhet i.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Jag kopplade upp en diskstation igen mot datorn nu när kontrollern passerade testet. Men FAULT lampan lös elakt i mina ögon. Skruvade upp driven och mätte spänningar, det var ok. Mätte klockan. Ingen klocka.
Så jag mätte klockan på oscillatorn, som jag bytte tidigare i våras då jag hade exakt samma fel. Den svänger fint på 8,2Mhz. Felet borde inte vara svårt att hitta, det sitter två grindar, en vippa och en bus-driver IC och så klart kabeln i mellan.
Så jag mätte klockan på oscillatorn, som jag bytte tidigare i våras då jag hade exakt samma fel. Den svänger fint på 8,2Mhz. Felet borde inte vara svårt att hitta, det sitter två grindar, en vippa och en bus-driver IC och så klart kabeln i mellan.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
Felet var enkelt fast samtidigt lite dåligt. Det var glapp i kabeln mellan kontrollern och disken. Nu fungerar det, frågan är bara hur bra och hur länge, funderar på om man ska ta och kontaktera om kabeln.
Nästa steg blir att försöka köra disktest programmet med en drive inkopplad.
Nästa steg blir att försöka köra disktest programmet med en drive inkopplad.
- anders_bzn
- Inlägg: 5771
- Blev medlem: 17 december 2008, 19:22:18
- Ort: Kävlinge
- Kontakt:
Re: PDP-8a renovering
För er som inte vet så är omnibus är namnet på bussen i PDP8 e/m/f/a.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av anders_bzn 6 augusti 2014, 18:34:34, redigerad totalt 1 gång.