Sida 32 av 51
Re: PDP8 Renovering
Postat: 4 februari 2012, 21:03:10
av anders_bzn
Efter att ha knappat in programmet rätt så hände det lite mer. Det har sina sidor att ha maskinen upp och ner på bänken, men det är nödvändigt eftersom den servas från undersidan.
Jag bestämde mig för att mäta timing tillstånden. Det går fyra tillstånd på en komplett maskincykel, dessa heter TS1-TS4. I DECs manualer hittar man förstås facit på hur det ska se ut:
Sen är det ju bara att koppla in logikanalysatorn och kolla på hur det ser ut:

Man ser då (signalerna är inte i samma ordning) att TS4 saknas och det gör även TP3. TP3 är en tidspuls. Detta förklarar nog ett och annat. IOP signalerna saknas också men jag kör ingen IO instruktion så detta väntar jag lite med.

Man ser på schemat att TS3 inte heller borde fungera om TP3, vilken den inte heller gör hela tiden. Signalerna vid 1 och 2 är TP2 respektive TP3, båda kommer ifrån samma delay-line. TP2 fungerar men inte TP3. Jag mätte TP3 med oscilloskopet och konstaterade att pulserna visst finns men att amplituden på pulserna är knappt 1V. De borde vara över 3V...
Jag mätte även precis innan sista buffertkretsen vid (2) och där är amplituden som den ska. Alltså något lastar förmodligen ner signalen. Vippan, en 7474 som håller TS3 (och TS4) vid (3) byttes snabbt ut men det gjorde ingen skillnad. Bytte hela kortet med 2-ingångars NAND grindar som man ser till höger på schemat utan resultat. Förmodligen finns TP3 att hitta på något mer schemablad men det har jag inte hunnit kolla ännu.
Fortsättning följer...
Re: PDP8 Renovering
Postat: 5 februari 2012, 20:23:35
av bqt
Nu är mitt minne luddigt, och egentligen borde jag kolla dokumentation och så vidare. Speciellt eftersom du gör detta så grundligt.
Men kommer jag ihåg fel att TS4 bara händer om det finns DMA som ska utföras? Dvs, jag skulle inte fövänta mig en TS4 i ditt testprogram.
Att TP3 (och TS3 antar jag) saknas är däremot något som låter fel.
Re: PDP8 Renovering
Postat: 5 februari 2012, 20:58:42
av anders_bzn
Nja, TS4 har inget med DMA att göra. Kollar man på schemat ser man att TS4 sätts på samma signal som TS3 går låg dvs TP3 om det inte är in IO instruktion. Då kommer den först senare! Man ser samma sak i DECs vågformsdiagram.
Man kan också de var som ska hända i varje TS om man kollar lite här (D-FD-8L-0-21 Flowdiagram). I denna då:
Schematics
http://www.abc80.net/zz/pdp8/DEC-8L-HR2 ... _Feb70.pdf
Maintainance manualen:
http://www.abc80.net/zz/pdp8/DEC-8L-HR1 ... ntVol1.pdf
Module location/schematics/pictures:
http://www.abc80.net/docs/pdp8/modules
Passade på att länka till mina tre favorit dokument. Jag har de utskrivna fulla med anteckningar. De följer med mig när jag åker bort...
Sen har jag suttit och letat efter TP3 i schemat en stund och jag fann detta:
Kod: Markera allt
Plats kort anslutning I/O Blad
D06 M310 J1 O D-BS-8L-0-2
C05 M113 A1 I D-BS-8L-0-2 Kollad
C05 M113 D2 I D-BS-8L-0-2 Kollad
C04 M216 N1 I D-BS-8L-0-2 Kollad
C06 M216 N1 I D-BS-8L-0-2
C12 M115 J2 I D-BS-8L-0-6
A13 M160 M1 I D-BS-8L-0-6
A13 M160 H1 I D-BS-8L-0-6
A13 M160 A1 I D-BS-8L-0-6
C14 M113 E1 I D-BS-8L-0-6
(Attans rubrik, ja ni förstår nog).
Det är på några ställen som TP3 dyker upp, det är bara att börja leta. Jag tror jag vet var jag ska fortsätta...
Re: PDP8 Renovering
Postat: 5 februari 2012, 21:03:44
av anders_bzn
BQT, visst har du minst en PDP-8/A och någon 11?
Jag har en nästan komplett A som ska igång när jag fått i gång denna, sen råkar ju jag/vi ha en hög 11:or också. Har bara en DEC maskin till hemma, en 11/84 som hittade hit i november förra året...
Re: PDP8 Renovering
Postat: 5 februari 2012, 22:12:17
av anders_bzn
Nåväl.
Mycket utläggningar om ett litet enkelt fel... Det var som jag misstänkte M160 i A13 höll nere TP3. Det är lagat och nu kör det lilla programmet.
Men. Det är alltid ett men, det verkar som bara de sex minsta bitarna inkrementeras, men det hinner man inte se. Men jag provade att starta och stoppa programmet och värdena ändrade sig. Sen försökte jag single steppa men det gick inte alls. Switchen känns riktigt dåligt, den fjädrar inte ens tillbaka upp som jag misstänker att den ska göra. Får mäta på detta, för att se om det är switchen.
I vilket fall, idag har datorn exekverat sina första instruktioner på mycket länge!
Re: PDP8 Renovering
Postat: 5 februari 2012, 22:52:26
av sodjan
Hm, i alla fall något slags "liv", om än på ganska låg nivå...

Re: PDP8 Renovering
Postat: 6 februari 2012, 01:09:33
av bqt
Kul med framsteg. Ja, jag minns med andra ord helt fel om TS4. Och så kan det kanske vara skillnad på Omnibus-maskiner. Jag har egentligen bara skrotat runt i sådana där "moderna" PDP8or.
Jo, det stämmer att jag har några åttor. Jag tror det är tre 8/a, en 8/m, en 8/f och en 8/e. Det har varit mer en gång i tiden, men lite skrot har jag skänkt iväg, så jag har inte riktigt koll längre. En bunt elvor har jag väl också... Det mesta fungerandes dessutom. Jag hjälpte Pontus att läsa lite PDP-15 DECtape på en 8/a i julas.
Om single-step på en 8/L liknar den på nyare maskiner, så skulle den gå att köra i två lägen. Stega till nästa instruktion (stanna vid TS1 med andra ord), eller stega en klockpuls i taget. Det borde vara väldigt enkel elektronik för den switchen, så det borde du kunna debugga ganska lätt. Det underlättar väldigt mycket att kunna stega klockpuls för klockpuls.
Re: PDP8 Renovering
Postat: 6 februari 2012, 22:20:13
av anders_bzn
Jo han nämnde nog något om OS/8...
Vad det gäller single step switchen så fungerar den elektriskt, mätte lite snabbt med oscilloskopet på den. Hur den ska fungera vet jag inte, får kolla lite i manualen innan jag fortsätter felsökningen.
Vad det gäller ackumulatorn så är det problemet ur världen nu, en flip-flop som håller två bitar AC04 & AC05 satt fast som nollor. Det är lagat och det verkar som programmet snurrar som det ska. Men det går fort (nåja allt är ju relativt), man räknar runt ackumulatorn på 13ms så man hinner inte se något.
IAC och JMP verkar ju fungera nu!
Re: PDP8 Renovering
Postat: 7 februari 2012, 21:59:03
av anders_bzn
Nu vet jag hur "single step" borde fungera. Man ska tydligen fälla ner "single step" (den är inte återfjädrande). Då kommer maskinen stanna innan TS1 (run flip/floppen sätts till noll). Genom att trycka ned "Continue" kommer maskinen göra en instruktion till och kommer att på nytt stanna.
Så trodde inte jag det fungerade. Jag trodde att maskinen skulle ta och utföra en instruktion för varje gång man tryckte ner "single step". Jag har testat funktionen och det fungerar! När man kör det lilla programmet så ser man hur accumulation räknas upp ett steg i taget.
Detta står det om i
Users Handbook.
Sen började jag fundera lite på konsol:en. Hela tiden så har meningen varit att jag ska använda ASR-33:an till detta men att det kanske är lättare att börja med en PC. Så jag konstruerade en
Strömslinge-RS232 adapter.
Sen fick jag köpa ett kort som man stoppar i bakplanet och får ut RS232 direkt.
Och ikväll mindes jag ett labbkort och några USB-moduler med FTDI chip. Gammalt möter nytt!

Tre generationer interface, fråmn vänster: Strömslinge interface, RS232 och sist det blivande USB interfacet!
Re: PDP8 Renovering
Postat: 9 februari 2012, 08:32:58
av 6502
Fan va kul Anders, grattis till ytterligare en milstolpe.
Re: PDP8 Renovering
Postat: 9 februari 2012, 16:38:50
av anderi
Vill bara instämma i hyllningskören. Verkligen kul att det går framåt.
/Anders sm0orv
Re: PDP8 Renovering
Postat: 9 februari 2012, 22:35:39
av anders_bzn
Tack tack,
Jo det känns kul att det börjar röra på sig lite. Nu sitter jag och läser "Introduction to programming" för att lära mig att koda...
I morgon ska jag försöka mig på att stoppa i serie interface korten tillsammans med mitt nya USB W076 kort. Få förhoppningsvis USB modulerna imorgon som jag beställt, de jag hade visade sig vara PIO...
Re: PDP8 Renovering
Postat: 10 februari 2012, 12:31:19
av bqt
Om du har fungerande seriesnöre, så kommer här två små program till du kan testa med:
(Skriv ut alla tecken som går på terminalen)
LOOP, IAC
TLS
TSF
JMP .-1
JMP LOOP
binärt (med address 200 som exempel):
200: 7001
201: 6046
202: 6041
203: 5202
204: 5200
Och ett litet program som läser från tangentbordet och ekar tecknen igen:
LOOP: KSF
JMP .-1
KRB
TLS
TSF
JMP .-1
JMP LOOP
200: 6031
201: 5200
202: 6036
203: 6046
204: 6041
205: 5204
206: 5200
PDP8 är enkel att skriva program på, och man kan ju tillochmed assemblera i huvudet.

Re: PDP8 Renovering
Postat: 10 februari 2012, 15:00:26
av bit96
Jag har följt denna trevliga tråd sen start.
bqt:
Eftersom jag är nyfiken så vore det bra om du på dina korta programexempel ger en kort förklaring vad som händer, rad för rad.
Även om man kan assembler för en del processorer så känner i alla fall inte jag till just den här, och inte vilka register som finns.
En liten kort kommentar skulle göra att man kan följa med.
Re: PDP8 Renovering
Postat: 10 februari 2012, 16:35:48
av bqt
Ah. Sorry. Tänkte inte på att en beskrivning kunde vara passande, ska genast bättra mig.
Dom två senaste programmen, då:
Kod: Markera allt
.=200 / Startaddress
LOOP, IAC / Öka ackumulatorn med 1.
TLS / Ladda transmit med AC (transmit för konsol-UART, även om det faktiskt är diskret logik)
TSF / Skippa om transmit done
JMP .-1 / Loopa. Blir med andra ord en loop som väntar tills transmit är done.
JMP LOOP / Hoppa till början igen, och upprepa.
$
För varje varv i programmet ökar AC med ett, och skickas till konsolen med andra ord.
Kod: Markera allt
.=200 / Startaddress
LOOP, KSF / Skippa om konsole receive har data
JMP .-1 / Loopa tills det finns ett tecken från konsolen
KRB / Läs in tecken som finns i bufferten i rcv (placerar det i AC)
TLS / Skicka AC till transmit
TSF / Skippa om transmit done
JMP .-1 / Loopa ända tills transmit done.
JMP LOOP / Loopa i programmet
$
Hoppas formatteringen blev bättre den här gången också. Jag har använt standard PAL8-notation, vilken kan se lite udda ut om man är vad vid en del annan assembler-syntax.
Fråga på, om ni undrar något om programmering på PDP8.