Sida 11 av 15
Re: Restaurera en PDP11/04
Postat: 17 mars 2014, 17:18:50
av MattisLind
MiaM skrev:Härligt med framsteg!
Kan man inte slänga in CBOOT-snutten först på bandet, i det format som rom kan ladda?
Problemet är att CBOOT tydligen måste ligga på adress 001000. PROM booten laddar allt till adress 00000. I så fall måsta man skriva om PROM-booten.
Jag gick inte in helt i detalj varför det inte fungerade med PROM boot och PRELDR. Det kan nog vara så att man kan skriva om PRELDR så att den fungerar med PROM-boot. En gissning är att CBOOT aktiverar interrupt på något sätt och när det kickar in så modifierar ISRen PRELDR så att den kommer vidare. Kräver vidare studier.
Re: Restaurera en PDP11/04
Postat: 17 mars 2014, 18:19:44
av MiaM
Kort extra kodsnutt före CBOOT, i samma "fil", som flyttar laddad kod till adress 1000 (exkl flytt-delen givetvis)
Det här känns lite som LOAD "
nnn",
8,1 på Commodore-8-bit-tiden

(Den sista ,1 säger att programmet ska laddas på den adress det sparades från, default är att relokera)
Re: Restaurera en PDP11/04
Postat: 17 mars 2014, 19:25:38
av MattisLind
MiaM skrev:Kort extra kodsnutt före CBOOT, i samma "fil", som flyttar laddad kod till adress 1000 (exkl flytt-delen givetvis)
Varför inte. Ingen dum idé!
PROM boot läser in patchad CBOOT som börjar med att flytta sig till 001000. Patchen måste också läsa in nästa 128 bytes block som innehåller PRELDR till adress 000000 och därefter hoppa till 000000, dvs ungefär som CBOOT fast den ska inte göra någon rewind och space forward. Kan gå med lite pillande. Man måste få in allt i ett block om 128 bytes där 56 bytes tas upp av CBOOT. Man har 72 bytes att spela på.
Kod: Markera allt
.TITLE CBOOT (CAPS-11) V01-07 6/20/73
;
; PDP-11 CASSETTE BOOTSTRAP
;
; COPYRIGHT 1973 DIGITAL EQUIPMENT CORPORATION,
; MAYNARD, MASSACHUSETTS 01754
;
; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
;
; DEC-11-OTCBA-A-LA
;
; BY: P. JANSON
;
; CBOOT WILL LOAD AND SUCCESSFULLY START ANY PROGRAM WHICH
; IS WRITTEN IN 'CBOOT LOADER FORMAT' AND IS CONTAINED
; ENTIRELY IN A 128. (DECIMAL) BYTE RECORD WHICH IS THE
; FIRST DATA RECORD OF THE FIRST FILE OF A CASSETTE.
;
; 'CBOOT LOADER FORMAT' PROGRAMS ARE DEFINED TO BE THOSE
; OF LENGTH LESS THAN OR EQUAL TO 128. BYTES WHICH ARE
; LINK'ED TO BE LOADED STARTING AT LOCATION 0,
; WHICH START AT THE FIRST INSTRUCTION AND WHOSE FIRST
; INSTRUCTION IS 'NOP' (=000240). CBOOT VERIFIES THAT
; THE FIRST BYTE IN THE PROGRAM IS 240, AS A MEANS TO
; DETECT ACCIDENTAL ATTEMPTS TO BOOT A WRONG PROGRAM.
;
; ON ANY I/O ERROR OR FAILURE TO FIND '240' AS THE FIRST BYTE
; IN THE PROGRAM TO BE LOADED, CBOOT HALTS AT LOCATION
; 'CBOOT'+50. AT SUCH TIME, LOCATION 0 (WHICH WILL CONTAIN
; THE FIRST BYTE OF THE PROGRAM TO BE LOADED) OR THE TACS
; (=777500) MAY BE QUERIED TO DETERMINE CAUSE OF ERROR.
; RETRY AFTER ERROR BY HITTING CONSOLE CONTINUE SWITCH
; WHICH RESTARTS CBOOT AT 'RESTRT'.
;
; CBOOT IS POSITION INDEPENDENT AND MAY BE EXECUTED FROM AN
; OPTIONAL HARDWARE CASSETTE BOOTSTRAP ROM OR LOADED ANYWHERE
; IN CORE EXCEPT LOCS. 0 THROUGH 177 (FOR PROGRAM TO
; BE BOOTED). DOCUMENTATION
; WILL SUGGEST LOADING AT 1000 SINCE THAT IS A HANDY, ROUND
; NUMBER. NOTE THAT CBOOT WILL COMMONLY LOAD PRELDR WHICH WILL
; COMMONLY LOAD CABLDR AND A COPY OF CBOOT INTO HIGHEST CORE.
; THUS, CBOOT IS PRESERVED IN HIGHEST CORE FOR FUTURE ACCESS.
; IT MAY BE STARTED AT LOC. XX710 WHERE XX IS AS EXPECTED
; FOR A GIVEN CORE SIZE.
;
; OPERATING INSTRUCTIONS:
; 1] KEY IN CBOOT STARTING AT LOC. 1000.
; 2] PLACE 1000 IN SWITCH REG. AND PRESS 'LOAD ADDRESS'.
; 3] PLACE PROPER CASSETTE ON UNIT 0.
; 4] PRESS 'START'.
;
; N.B.: TO BOOT FROM UNIT #1 OR FROM SOME OTHER CONTROLLER,
; SET UP R0 WITH THE DESIRED CONTROLLER ADDRESS AND SET THE
; UNIT SELECT BIT AS DESIRED, THEN START THE BOOTSTRAP AT THE
; THIRD INSTRUCTION. PRELDR AND CABLDR WILL USE R0 AS SET-UP AT
; BOOTSTRAP TIME TO CONTINUE LOADING FROM THE SELECTED UNIT.
;
; CBOOT DOES A REWIND, SPACES FORWARD A RECORD (TO SKIP OVER
; HEADER OF FIRST FILE), AND STARTS READING THE NEXT RECORD.
; A CRC CHECK IS MADE AT THE END OF THE RECORD.
;
; SIZE = 28. WORDS
;
.GLOBL CBOOT
;
.CSECT
;
R0= %0
R1= %1
R2= %2
R3= %3
PC= %7
TACS= 177500 ;TA-11 CONTROL AND STATUS REG.
;
CBOOT: MOV #TACS,R0
CLR (R0) ;SELECT UNIT #0
RESTRT: MOV PC,R1 ;USE FOR PIC
ADD #TABLE-.,R1 ;R1 HOLDS ADDR. OF COMMAND TABLE
MOV #375,R2 ;MEMORY PTR. AND DATA FLAG
MOVB (R1)+,R3 ;TEST BITS
;
LOOP1: MOVB (R1)+,(R0) ;COMMAND FROM TABLE TO TACS
BMI DONE ;WHEN COMMAND CODE NEG., QUIT
LOOP2: BITB R3,(R0) ;TEST READY AND T-REQ. BITS IN TACS
BEQ LOOP2 ;LOOP 'TILL SOMETHING COMES UP
INCB R2 ;ADVANCE MEMORY PTR.
BMI LOOP1 ;IF MINUS, TRY NEXT COMMAND
MOVB 2(R0),(R2) ;READ DATA INTO MEMORY
CMPB R3,@#0 ;FIRST BYTE READ SHOULD BE '240'
BEQ LOOP2 ;IF O.K., GO READ ANOTHER BYTE
STOP: HALT ;HALT ON ERROR
BR RESTRT ;RESTART ON CONTINUE
;
DONE: TST (R0) ;CHECK FOR ERROR
BMI STOP ;HALT ON ERROR
CLR PC ;= 'JMP @#0'
;
TABLE: .WORD 17640 ;.BYTE 240: READY+T-REQ.
;.BYTE 37: ILBS+READY+GO
.WORD 2415 ;.BYTE 15: SFB+GO
;.BYTE 5: READ+GO
.WORD 112024 ;.BYTE 24: READ+ILBS
;.BYTE 224: READ+ILBS+E.O.TABLE
.END
Re: Restaurera en PDP11/04
Postat: 20 mars 2014, 11:16:34
av bqt
Hmm. Jag fattar inte riktigt varför inte ROM-booten klarade av att boota bandet.
CBOOT kan inte ligga på address 0, det är jag med på, eftersom den läser in data från band, och lägger det datat på address 0.
Men jag skulle ju anta att ROM-booten gör samma sak. Dvs, läs från band och lägg på adress 0. I princip så borde ROM booten vara identisk med CBOOT. Och ROM-booten ligger inte på address 0.
Såvida inte ROM-booten blir matad med en kopia av CBOOT, som i sin tur börjar tugga från address 0. Men det skulle ju vara trasigt. CBOOT borde inte ligga på bandet.
Kan någon förklara vad jag missat?
Re: Restaurera en PDP11/04
Postat: 20 mars 2014, 16:14:51
av MattisLind
bqt skrev:Hmm. Jag fattar inte riktigt varför inte ROM-booten klarade av att boota bandet.
CBOOT kan inte ligga på address 0, det är jag med på, eftersom den läser in data från band, och lägger det datat på address 0.
Men jag skulle ju anta att ROM-booten gör samma sak. Dvs, läs från band och lägg på adress 0. I princip så borde ROM booten vara identisk med CBOOT. Och ROM-booten ligger inte på address 0.
Såvida inte ROM-booten blir matad med en kopia av CBOOT, som i sin tur börjar tugga från address 0. Men det skulle ju vara trasigt. CBOOT borde inte ligga på bandet.
Kan någon förklara vad jag missat?
Tyvärr kan jag inte förklara vad som händer. CT boot på M9312 kortet är väldigt lik CBOOT.
Kod: Markera allt
1 .title M9312 'CT' BOOT prom for TA11/TU60 controller
2
3 ; This source code is an exact copy of the DEC M9312 23-761A9 boot PROM.
4 ;
5 ; This boot PROM is for the TA11 controller with TU60 drives.
6 ;
7 ; Multiple units and/or CSR addresses are supported via different entry points.
8 ;
9 ; Standard devices are 82S131, Am27S13, 74S571 or other compatible bipolar
10 ; PROMs with a 512x4 TriState 16pin DIP architecture. This code resides in
11 ; the low half of the device; the top half is blank and unused.
12 ;
13 ; Alternatively, 82S129 compatible 256x4 TriState 16pin DIP devices can be
14 ; used, as the uppermost address line (hardwired low) is an active low chip
15 ; select (and will be correctly asserted low).
16
17 177500 tacsr =177500 ; std TA11 csrbase
18
19 000000 tacs =+0 ; control/status
20 000002 tadb =+2 ; data buffer
21
22 165564 diags =165564 ; console diags phase2 entry
23
24 .asect
25 173000 .=173000
26
27 ; --------------------------------------------------
28
29 173000 124 103 start: .ascii "TC" ; device code (reversed)
30
31 173002 000176 .word last-. ; offset to next boot header
32
33 173004 000261 dl0n: sec ; boot std csr, unit zero, no diags
34 173006 012700 000000 dl0d: mov #0,r0 ; boot std csr, unit zero, with diags
35 173012 012701 177500 dlNr: mov #tacsr,r1 ; boot std csr, unit <R0>
36 173016 010704 dlNb: mov pc,r4 ; boot csr <R1>, unit <R0>
37 173020 103042 bcc diag ; br if diags requested
38 173022 000402 br go ; return to (R4)+2 from diags
39 ; then skip over pseudo reboot vector
40
41 ; --------------------------------------------------
42
43 173024 173000 .word 173000 ; prom start addess @ 24
44 173026 000340 .word 340 ; and priority level @ 26
45
46 ; --------------------------------------------------
47
48 173030 010003 go: mov r0,r3 ; copy unit number
49 173032 042703 177776 bic #^c1,r3 ; mask to 0/1
50 173036 000303 swab r3 ; to high byte
51 173040 010311 mov r3,(r1) ; to controller<8>
52
53 173042 010405 mov r4,r5 ; r4=r5=173x20
54 173044 042705 000177 bic #177,r5 ; r5=173x00
55 173050 062705 000132 add #table-start,r5 ; offset to table start
56 173054 012702 000375 mov #375,r2 ; -2 as a byte
57 173060 112503 movb (r5)+,r3 ; R3=240
58
59 173062 112511 2$: movb (r5)+,(r1) ; send 037,015,005,024,224
60 173064 100407 bmi 4$ ; exit if last command
61
62 173066 130311 3$: bitb r3,(r1) ; check trreq<7> or ready<5>
63 173070 001776 beq 3$ ; loop if neither
64
65 173072 105202 incb r2 ; count from -2,-1,0,...,177
66 173074 100772 bmi 2$ ; loop twice
67
68 173076 116112 000002 movb tadb(r1),(r2) ; write data byte in buffer
69 173102 000771 br 3$ ; loop
70
71 173104 005711 4$: tst (r1) ; check error<15>
72 173106 100404 bmi 5$ ; br if error
73
74 173110 005002 clr r2 ; point at address zero
75 173112 120312 cmpb r3,(r2) ; check for NOP=240 there
76 173114 001001 bne 5$ ; br if not, not a boot block
77
78 173116 005007 clr pc ; jump to bootstrap start
79
80 173120 000005 5$: reset ; reset controller
81 173122 000164 000002 jmp 2(r4) ; and retry the boot
82
83 ; --------------------------------------------------
84
85 173126 000137 165564 diag: jmp @#diags ; jump to console diags
86
87 ; --------------------------------------------------
88
89 173132 240 table: .byte 240 ; trreq<7>+ready<5> AND NOP
90 173133 037 .byte 037 ; ilbs+rewind+go command
91 173134 015 .byte 015 ; spaceforwardblock+go command
92 173135 005 .byte 005 ; read+go command
93 173136 024 .byte 024 ; ilbs+read command
94 173137 224 .byte 224 ; ilbs+read command + 200
95
96 173140 000000 000000 000000 .word 0,0,0,0,0,0,0,0 ; unused
173146 000000 000000 000000
173154 000000 000000
97 173160 000000 000000 000000 .word 0,0,0,0,0,0,0 ;
173166 000000 000000 000000
173174 000000
98
99 ; --------------------------------------------------
100
101 173176 .=start+176
102 173176 022763 crc16: .word <022763> ; CRC-16 will go here
103
104 last: ; next boot prom starts here
105
106 .end
106
Detta är PRELDR koden. PRELDR är alltså den 128 första byten i CTLOAD.SYS filen.
Kod: Markera allt
> 000000 nop
> 000002 br 000010
000004 .word 000030
000006 halt
> 000010 mov #000500,sp
> 000014 clr r4
> 000016 mov sp,r5
> 000020 tst (r4) < causes trap 4/6 as part of memory sizing
> 000022 add #020000,r4
> 000026 br 000020
> 000030 mov #000130,r3
> 000034 clr r2
> 000036 mov #000200,r1
> 000042 movb #000005,(r0)
> 000046 jsr pc,(r3) > label_1
000050 movb 000002(r0),(r5)+
000054 jsr pc,(r3)
000056 dec r2
000060 bmi 000112
000062 bne 000072
000064 mov sp,r5
000066 mov r1,r2
000070 dec r2
000072 dec r1
000074 bne 000050
000076 bisb #000020,(r0)
000102 jsr pc,(r3)
000104 tst r2
000106 bne 000036
000110 jmp (r4)
000112 bit #000001,r5
000116 bne 000072
000120 mov -(r5),r2
000122 sub r2,r4
000124 mov r4,r5
000126 br 000072
> label_1 000130 bit #100240,(r0)
> 000134 beq 000130
000136 bmi 000142
000140 rts pc
000142 mov (r0),r4
000144 halt
000146 tst (sp)+
000150 movb #000007,(r0)
000154 jsr pc,(r3)
000156 movb #000015,(r0)
000162 jsr pc,(r3)
000164 inc (r0)
000166 jsr pc,(r3)
000170 br 000010
000172 swab @-(sp)
000174 rol r2
000176 swab @-(sp)
Instruktioner märkta med ">" är de som jag ser exekveras när jag stegar i koden med E11. Den liksom hänger runt 130/134 och jag begriper inte vad den ska göra här. Jag misstänker att även den riktiga maskinen stannar just här om man bootar med M9312 booten.
Re: Restaurera en PDP11/04
Postat: 20 mars 2014, 16:51:07
av bqt
Mjaha. Det var ju fånigt. PRELDR antar att CSR finns i R0 när den startar. ROM-boot lägger CSR i R1, och unit # i R0...
Ja, då var den frågan utredd. När den stannar efter ROM boot, så är det bara att halta, ladda R0 med CSR, och starta om från address 0, skulle jag tro, utan att kika på om några andra hyss görs...
Re: Restaurera en PDP11/04
Postat: 20 mars 2014, 17:37:43
av MattisLind
bqt skrev:Mjaha. Det var ju fånigt. PRELDR antar att CSR finns i R0 när den startar. ROM-boot lägger CSR i R1, och unit # i R0...
Ja, då var den frågan utredd. När den stannar efter ROM boot, så är det bara att halta, ladda R0 med CSR, och starta om från address 0, skulle jag tro, utan att kika på om några andra hyss görs...
Tusan, det har du rätt i! Jag tyckte det var väldigt märkligt att den skrev in 5 i adress 000000. Måste säga att det var väldigt dumt att PROM booten inte är samma som CBOOT. Jag får patcha PRELDR så den passar ihop med PROM booten.
Re: Restaurera en PDP11/04
Postat: 20 mars 2014, 18:03:41
av bqt
CAPS-11 som är gammalt.

Det är (eller blev) en konvention för PDP-11 att CSR för bootdevice lades i R1 vid boot.
Exakt registerkonvention vid boot är säkert dokumenterad någonstans, men jag har inte riktig koll på det såhär. Men CAPS-11 skrevs nog innan det var etablerat.
Re: Restaurera en PDP11/04
Postat: 28 mars 2014, 16:09:31
av MattisLind
Kassettearkeologi
Att patcha CTLOAD.SYS så den kunde boota direkt med den inbyggda PROM bootstrapen innebar att både göra en liten förändring av PRELDR och dessutom en minimal patch på CABLDR. Nu har jag en
CTLOAD.SYS som fungerar fint.
Jag hade två gamla kassetter som jag fick med driven för länge sedan. Det var ju lite spännande att se vad som låg på dem. Den första kassetten märkt "S LMS 2 KOP" fungerade fint att läsa i CAPS-11:
Kod: Markera allt
010000 051415 177714 000002
@CT
CAPS-11 V01-02
.DA 27-MAR-14
.DI CT1:
27-MAR-14
CTLOAD SYS 07-JAN-75
CAPS11 S8K 07-JAN-75
PIP SRU 07-JAN-75
EDIT SLG 07-JAN-75
LINK SRU 07-JAN-75
ODT SLG 07-JAN-75
PAL SRU 07-JAN-75
BASIC LDA 07-JAN-75
.
Ett nästan 40 år gammalt band med innehåll på. Jag gjorde ett försök att kopiera kassetten och lägga in min bootstrap, men det gick inte. Den läste in CAPS11.S8K men sedan hängde den. Kanske den är byggd för en något annorlunda miljö?
För att dumpa ut det byggde jag vidare på mina
tu60tools så att man nu kan läsa ut fil för fil till en annan maskin via serieport. Det var en del strul att debugga koden, man fick ju knappast någon fin stack trace när det gick åt skogen. Mitt verktyg kunde till slut läsa ut en fil felfritt och jag dumpade då kassetteinnehållet:
Jag disassemblerade innehållet i CTLOAD.SYS. Den var nästan identisk med den jag arbetat tidigare med. Något mindre. BASIC.LDA verkar innehålla paper tape BASIC. Gör man strings på filen hittar man "PDP-11 BASIC, VERSION 007A".
Den andra kassetten var mer skadad. Jag lyckades extrahera denna lilla snutt PDP-8 program:
Kod: Markera allt
TO +1 IF HIGH TEST
DCA TEST
TAD TABNO
AND P777
DCA TABNO /SAVE TABLE NUMBER
TAD LTAB
DCA TCORE /SET CORE ADDRESS
CLL
CIF
JMS I TABLE /READ LIMIT TABLES
TABNO, 0
TCORE, 0
CLA CLL
CDF
TAD I BAND1 /FETCH
NUMBER OF
DCA B1 /CHANNELS FROM MEM0
TAD I BAND2
DCA B2
JMS I RSETDF
IAC
JMS COMWRD /FETCH BATCH TRAIN NO
SPA CLA /RELOCATE OUTER BAND?
JMP INNER /NO - INNER
DCA CHNO /YES - SET 1:ST CHANNEL NUMBER
TAD B1 /FETCH CHANNEL COUNTER
JMP BOTH
INNER, TAD B1 /CALCULATE FIRST CHANNEL NO
CIA
DCA CHNO
TAD B2 /FETCH CHANNEL COUNTER
BOTH, DCA CHCNT /SAVE COUNTER ON PAGE ZERO
TAD P5
JMS COMWRD /FETCH CHANNEL NUMBER
SNA /ZERO?
JMP ALL /YES - TEST ALL ON ONE BAND
TAD M1 /NO - SAVE CORRECT
DCA CHNO /CHANNELNUMBER
TAD M1
DCA CHCNT /SET COUNTER TO -1
SKP
SINGLE, CLA IAC /SET AC TO 11
ALL, TAD P10 /SET AC TO 10
JMP I RELO /RELOCATE
ACLEAR, DCA I TEMP /CLEAR RCLEAR IN COMMAND BUFFER
ISZ TADDR /SET POINTER TO CORRECT
CDF /ADD TERM IN TBTAB
DCA I TADDR /ZERO ADD TERM
JMS I RSETDF /RESET DATA FIELD
NOP
CMA
DCA QCPFEL
JMS I DCWAIT
TAD QCP /INDICATE READY
CIF
CLL
JMS I MONDSC /RETURN TO QCP
HLT /SECURITY HALT
COMWRD, 0 /ADD TERM IN AC
TAD COMAND
DCA TEMP /ADDR IN COMAND BUFFER
TAD I TEMP /FETCH COMAND WORD
JMP I COMWRD /TO AC AND RETURN
/CONSTANTS:
BAND1, 66 /PAGE0, MEM0
BAND2, 67 / " "
B1, 0
B2, 0
TEMP, 0
P3, 3
P4, 4
P5, 5
P10, 10
P50, 50
P51, 51
P52, 52
P54, 54
P55, 55
P77, 77
P777, 777
P3777, 3777
P6000, 6000
M1, -1
M2, -2
M2001D, -3721
QCP, 4023 /AUT
OSTART QCP
$
Nu när maskinen verkar fungera hyffsat är nästa steg att restaurera en passande terminal. Jag har en LA30 Decwriter som är en passande kandidat!
Re: Restaurera en PDP11/04
Postat: 28 mars 2014, 16:57:47
av Oskar
Gratulerar till framgångarna!
Det är lite spännande att gå igenom gammal lagringsmedia och se vad man hittar, eller hur?

Re: Restaurera en PDP11/04
Postat: 28 mars 2014, 16:59:15
av säter
Synd att jag kastade min Decwriter.
Re: Restaurera en PDP11/04
Postat: 28 mars 2014, 17:10:51
av MiaM
Ja, vi är nog många som kastat eller på annat gjort oss av med gammal datorhårdvara som hade varit kul att ha idag.
Min lärdom är att ifall man t.ex. av utrymmesskäl är tvungen att kasta en av två äldre prylar så är det oftast bäst att kasta den nyare, för den behöver safta till sig längre innan den når kultstatus.
Re: Restaurera en PDP11/04
Postat: 1 april 2014, 19:50:53
av MattisLind
Decwriter LA30
Oskar skrev:Gratulerar till framgångarna!
Det är lite spännande att gå igenom gammal lagringsmedia och se vad man hittar, eller hur?
Tackar. Ja, visst är det spännande att se vad folk kodade ihop för 40 år sedan. Lite märklig känsla att veta att folk satt och kodade i miljöer som CAPS-11. Syntaxhighlighting, interaktiva debuggers, Eclipse, etc etc släng er i väggen. Här kör vi hardcore. Radeditor och 5 minuter för att assemblera ett program. Hur man debuggar med ODT vågar jag inte tänka på.
säter skrev:Synd att jag kastade min Decwriter.
Ja, det var synd. Här kan du få återuppliva minnet!
DEC byggde Decwriter (I) som en egen ersättning för den välkända teletypen som konsolskrivmaskin. LA30 var sannolikt den första skrivande terminalen som använde punktmatrisskrivare. Centronics hade något år tidigare gjort en vanlig skrivare, 101, med punktmatris.
Härligt strömlinjeformad och rejält tung. Chassit är i pressgjuten aluminium och stativet likaså. Kåpan är gjord av glasfiberarmerad plast.
Vår maskin är enligt typskylten en LA30P, dvs parallell. Jag lät mig luras av att till höger om tangentbordet sitter tre omkopplare, varav en för baudrate. Kan den vara ombyggd senare? Jag vet inte. Ett som är säkert är att det fattas två kort för att kunna ha den som serieterminal.
Hela skrivaren styrs av logiken ovan. Bara en massa TTL chip.
Efter lite rengöring ser tangentbordet riktigt trevligt ut. Lite lustig tangentbordlayout får man väl säga.

Tangentbordet har en egen tagentbordsavkodare och teckengenerator från SMC. Stiligt chip får man nog lov att säga. Riktigt retro.
Jag började med att montera ur kondensatorerna för formering. En av dem har en 0,5 mA läckström efter en dag. De övriga har knappt någon läckström alls. Borde vara OK.
Sedan gjorde jag rent själva punktmatrishuvudet. Ska försöka prova det så det inte kärvar på något vis. Kanske man bara kan lägga på lite svag ström och se om det händer något? Alla spolarna mäter 2,6 ohm, vilket borde vara ett gott tecken.
Ett grundläggande problem är att denna är parallell. Egentligen måste jag ha ett M7910 kort i min PDP-11 för att det ska fungera. Jag har inget, tyvärr. Någon som har?
Annars kan jag försöka skaffa de två kort som fattas för seriekommunikation i terminalen. Nästan ännu svårare skulle jag tro. Kanske det enklaste är att bygga något enkelt med ett Arduino kort. Borde vara en smal sak kan man tycka.
Re: Restaurera en PDP11/04
Postat: 1 april 2014, 20:18:19
av säter
"
Ja, det var synd. Här kan du få återuppliva minnet!"
Nja, det var inte den modellen jag kastade.
Förmodligen var min lite nyare.
Inte fullt så djup, och liggande A4, traktormatat.
Jag har fortfarande ett hål uppsågat i skrivbordsskivan där jag matade upp papperet till Decwritern.
Har din modell RS-232?
Re: Restaurera en PDP11/04
Postat: 1 april 2014, 20:23:47
av anders_bzn
Säter: Då var det kanske en DECWriter II:
http://www.vintagecomputer.net/digital/ ... ter-II.jpg
En sådan har jag, men den är trasig och är i uselt skick. Så uselt så jag funderat på att göra reservdelar av den.