Sida 48 av 62
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 26 augusti 2024, 08:43:59
av petertub
bqt skrev: ↑25 augusti 2024, 22:58:59
Vad gäller PDP-11, så går det dessvärre inte så enkelt. 014747 är det nog du tänker. Och det blir:
så den fyller hela minnet med det ordet, men exekverar baklänges, och lär stoppa när du kommer till I/O page, dvs någonstans i toppen av minnet. Så du kan inte ta reda på hur mycket minne du har den vägen. Men det är det minsta programmet som fyller allt minne med någon konstant.
Anders: grejt. Då hade jag inget mer att "klaga" på.
Tack för förtydligandet. Ja, man knappar in det på någon låg adress och startar från den så skriver den ut
sista adressen som svarar. Mest användbart i de små gamla utan memory mgmt .
PDP var verkligen nyskapande och en förebild till t.ex. 68000
Jag gillade dessutom dec's macro assembler, outstanding !
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 01:37:32
av MiaM
Farlig var väl inte menat som i något som innebär stor fara, utan mer som något man måste använda under stort ansvar
Som petertub nämner så var den ju rätt stark förebild för t.ex. 68000 (och VAX var väl också därmed att betrakta som förebild).
Smidigt att ha (PC)+ som hur # faktiskt kodas. (Antar att båda assembleras till samma kod?).
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 15:10:04
av bqt
Åh. Jag skulle väl säga att det finns väl knappast en instruktion som modifierar något som inte kan potentiellt förstöra allt. Maskinkod är ju i princip alltid utan både hängslen och bälte. Om något kan man väl kanske säga att ifall man kör en PDP-11 med split I/D space, så har man potentiellt något mycket säkrare än en hel massa annat.
Ja, att PC är ett register som alla andra kan ha flera intressanta effekter. Assemblern kodar # konstanter som (PC)+ ja. Finns liksom inget annat sätt.
Fler trevliga effekter: På en PDP-11 kan du göra både CMP #4711,R0 och CMP R0,#4711. Vilket kan vara trevligt om du vill ha kod som reflekterar hur du tänker. Om du har ett värde mellan 0 och 4, och vill hoppa till olika rutiner baserat på det, så kan du ju göra följande på en PDP-11:
Kod: Markera allt
ASL R0
ADD R0,PC
BR foo0
BR foo1
BR foo2
BR foo3
;
; Hantera foo4...
;
Poängen är att detta är helt PIC utan någon ansträngning. Lika enkelt som en hopptabell, men utan några absoluta addresser. Men givetvis skulle man kunnat ha en tabell med, och bara adderat värdet ur den tabellen till PC, och kommit vart man ville och fortfarande vara PIC (om tabellen innehöll relativa offsets).
Likaså är en hel del annat ganska lätt, eller tillochmed naturligt att få PIC.
Kod som:
är naturligt PIC, för koden som genereras blir:
Kod: Markera allt
MOV @n(PC),R0
.WORD FOO-.
.
.
.
FOO: .WORD 4711
Dvs, addresseringsmoden på första argumentet till MOV är här en konstant adderad till registret, och det är sedan den address där värdet hämtas från. Och med PC som register, så blir ordet som ska adderas bara offsetten mellan instruktionen och addressen där data ligger.
Och ja, man kan ju lätt se inspiration från PDP-11 i 68K. VAX är ju en extension av PDP-11 med, så det är väldigt likt där också.
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 15:37:10
av petertub
Jag minns hur jag mappade bort i/o page i en 11/23. Ingenting annat än power off hjälpte
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 15:44:15
av petertub
Add addera til PC som i ditt exempel gjorde jag på 80-talet. Höll på med en robot och företagspolicyn dikterade pascal ( som var var värdelöst i denna tillämpning) bara för att vara extremt politisk så gjorde jag en
sådan hopptabell, inte bara var det snabbaste vägen utan med två jämförelser ( min resp max) var den
bounds-checking. Och att addera till PC gillade inte pascal-folket.
Detta gjordes i första versionen av falcon chip som vi satte på ett eget kort. Helt värdelös i jämförelse med
8031 som jag förespråkade, men som ledningen vägrade godkänna.
Det gick åt h-e med företaget jag var inte förvånad.
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 16:19:59
av bqt
petertub skrev: ↑29 augusti 2024, 15:37:10
Jag minns hur jag mappade bort i/o page i en 11/23. Ingenting annat än power off hjälpte
Ja. Jag skulle tro att en reset också skulle dugit, för då borde MMU sedan vara av. Men jo, i övrigt är det ett klassiskt skräckscenario. Finns ingen undo för det.

Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 16:24:06
av bqt
petertub skrev: ↑29 augusti 2024, 15:44:15
Add addera til PC som i ditt exempel gjorde jag på 80-talet. Höll på med en robot och företagspolicyn dikterade pascal ( som var var värdelöst i denna tillämpning) bara för att vara extremt politisk så gjorde jag en
sådan hopptabell, inte bara var det snabbaste vägen utan med två jämförelser ( min resp max) var den
bounds-checking. Och att addera till PC gillade inte pascal-folket.
Detta gjordes i första versionen av falcon chip som vi satte på ett eget kort. Helt värdelös i jämförelse med
8031 som jag förespråkade, men som ledningen vägrade godkänna.
Det gick åt h-e med företaget jag var inte förvånad.
Hehe...
Lite nyfiken på vilket sätt Falcon var värdelös jämfört med en 8031. Jag kan tänka mig att 8031 var billigare, och kanske snabbare för små enkla saker. Men det är ju en 8-bitarsprocessor med max 64K minne, så det är en del signifikanta skillnader. Men det beror ju på om man behöver så mycket mer.
Och ja, Pascal var oftast inte ett idealt språk, men det var lite poppis ett tag på 80-talet, ja. Har fått jobbat en del i det, tillochmed på elvor.
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 18:22:31
av petertub
Locka mig inte ....
falcon ( T-11) hade en cykeltid många ggr längre än 8031 8031 gick i cirklar runt T11
falcon kunde adressera 56k minne (hade ingen memory mgmt) 8031 64k
8031 ( och 8051 maskprogrammerad) fanns för leverans, T-11 var "special delivery"
Jag hade ingenting emot pdp-11 tvärtom. Men T-11 var ett skämt
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 18:50:05
av bqt
Ah, sant. Vi pratar T11 här. Ja, den har ju sina begränsningar.
Minnet, som du nämner, och även hastigheten. Men det är en 16-bitarsmaskin med fler register, och inte ackumulator-orienterad. Vilket åtminstone hjälper lite grand. 8031 var inte vad jag skulle kallat någon hastighetsdemon heller. Ser ut som en 4 MHz Z80 skulle gå lite rappare, vad jag kan läsa. Men jo, T11 är slö...
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 20:41:45
av anders_bzn
Jag har fått låna ett bakplan till men jag har inte något power-kablage till. Så jag behöver bygga ett, men vad är detta för en kontakt?
IMG_2781.JPG
IMG_2785.JPG
IMG_2786.JPG
Nästa problem är minne, det är testat och bekräftat att det var lite som jag misstänkte, mina MS8 4K MOS minnen fungerar inte i PDP-8E. Så jag har bara 4K minne, det kan man inte köra OS8 på...
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 20:59:02
av Mickecarlsson
Kan vara Mate-N-Lock.
Jag har en drös gamla kontakter i garaget, vissa liknar den du har på bilden, kan kolla i morgon.
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 21:11:46
av anders_bzn
Yes, det är det. Fick svar från annat håll på 2 sekunder...
https://www.mouser.se/ProductDetail/571-14802760
https://www.mouser.se/ProductDetail/571-3504161-CT
Man får nog fulcrimpa dessa, för jag har inte något verktyg till dessa.
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 29 augusti 2024, 22:17:45
av bqt
Vad för MS8 pratar vi om här? Den jag känner till är för 8/A och är ett hex-kort.
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 30 augusti 2024, 06:21:11
av anders_bzn
Det är ett quad kort bestyckat med 1,2 eller 4k minne. M8311-YD i mitt fall.
pdp-8a-ms8-ad-4k.jpg
Re: Anders lagar en gammal dator (-relaterad pryl)
Postat: 30 augusti 2024, 10:44:55
av MiaM
Addera till PC ger lite en smak av Sinclair-basic som tar variabler/uttryck till GOTO och GOSUB
När olika processorer nämns så måste 1802 nämnas. Den har 16 registerpar som formar 16-bitarspetare, och så har den ett 4-bitarsregister som väljer vilket av 16-bitarsparen som ska vara programräknare. För att hoppa till subrutin och tillbaka så växlar man vilket register som är programräknare.
Detta påminner mig också att flera processorer har i mitt tycke helt onödiga instruktioner avsedda för att underlätta för hjärndöda kompilatorer. Tänker på detta med "baspekare" i Intel x86, som är ett sätt för kompilatorn att använda stacken utan att behöva ha koll på hur stackpekaren påverkas av de instruktioner som kompilatorn själv genererar. Jag undrar lite hur Intel tänkte när de la till denna funktionalitet, för även om man kör ett system med en eller två trötta floppydrives och ganska begränsat med minne (men mer än de knappt 64k man kan köra på äldre 8-bit-system utan bankswitchning - annars är det ju ingen mening att köra x86) så lär väl kompileringen inte bli nämnvärt plågsammare om kompilatorn måste hålla reda på stackpekaren mer noga.
Motorola har om jag minns rätt nån slags snarlika instruktioner i 68k och/eller 6809.
Skulle vilja påstå att instruktioner som enbart används av kompilatorer och för assemblerkod som ska köras ihop med kod från kompilatorer är en eftergift för dåliga kompilatorer.
Givetvis undantag för dagens processorer med olika former av optimeringar (pipeline osv) som är svår att hålla reda på för den som skriver assembler för hand.
Sidospår på detta sidospår: Kan det vara så att dessa instruktioner för "baspekare" osv är framtagna av "kommittéer"?