Ja det är alldeles för sällan det skrivs nåt här, så här kommer lite bilder på ett annat datorprojekt jag hittade på som omväxling från den stora datorn. Jag ville få nånting byggt som fungerade, så jag svängde ihop en liten mikrodator med en 6502-processor, lite RAM och EEPROM, och ett par serieinterface: http://www.update.uu.se/~bjarni/temp/6502-dator/ Brum heter den. Den har 32K RAM, 8K EEPROM, två RS-232-interface, och en behändig kontrollpanel som jag använde för att bootstrappa programmerandet. Som det är nu har kontrollpanelen bara funktionalitet för att läsa och skriva i minnet, men det finns lite förberett för instruktionsstegning och lite andra mindre funktioner. EEPROMet kan skrivskyddas med en jumper och skyddet kan även slås på och av med en särskild signal på bussen som jag tänkte koppla till en knapp på panelen. Serieinterfacet använder sig av två stycken 6402-UARTar, vilka jag valde för att de har alla kontroll- och statussignaler utdragna till egna pinnar istället för register man måste pilla med för att konfigurera gränssnittet, vilket gör att jag har kunnat designa det så att portarna kommer upp automatiskt förkonfigurerade för 9600 8N1 efter strömtillslag, vilket är en angenäm bekvämlighet. Varje port har fyra skrivregister [data, handskakning, baudrate, kontroll] och fyra läsregister [data, handskakning, status, reset]. Reset görs alltså med en läsning, för att det var bekvämt att implementera i hårdvaran och det fanns ett ledigt läsregister. Handskakningen är bara två utgående och två ingående GPIO-signaler, som man egentligen kan göra vad man vill med men som kan användas till RS-232-handskakning om man behöver. I och med att de är helt mjukvarustyrda kan man göra både gammaldags assymmetrisk handskakning och modern symmetrisk handskakning. Nivåkonverterarna är inte installerade än, så just nu är det bara dataledningarna som funkar, men det är tillräckligt för att prata med både en terminal och en terminalväxel, så jag kan programmera datorn över nät från en Linuxmaskin. :) Kontrollregistret styr antal data- och stoppbittar samt paritet på/av, udda/jämn. Statusregistret meddelar data mottagna, overrun, paritetsfel, framingfel, samt utgående databuffert tom och utgående överföring färdig. Framingfelsbitten på den ena porten har jag också kopplat till NMI-ledningen på bussen, så man kan ovillkorligt interrupta processorn genom att skicka ett break från terminalen. I NMI-hanteraren har jag ett filöverföringsprogram för att uppdatera firmwaret. Andra interrupts är planerade men inte implementerade än. Jag var för sugen på att börja skriva mjukvara. :) Chassit är nån botten med ram för framsidan som låg i min skothög hemma, och sidoplåten är utklippt ur sidan av ett gammalt trasig Tektronix-oscilloskop. Nätagget som sitter i på bilden gick sönder nästan direkt, så nu är det en liten väggvårta istället. Den får jag nog byta ut när det kommer lite mer saker i lådan. Det tomma kortet i botten är alltså en systembuss utan kontakter monterade. Det enda kortet hittills är device 0, som är serieinterfejset (inte med i bilderna, som jag tog innan jag byggt det, utom sista bilden som var mitt första test av seriekortet). Längst in, i plan med bussmoderkortet, sitter själva datorkortet, som är kanske 10x10cm och rätt fullproppat, med processor, RAM, ROM, adressavkodning, samt en massa logik som har att göra med kontrollpanelen. Mina såna där roadrunner-remsor tog slut när jag hade byggt processorkortet, så för serieportskortet ritade jag en modell och lät en kompis skriva ut lite nya på 3D-skrivare. De funkar hyfsat, men går sönder lite för lätt. Ska prata med honom om ifall det går att göra nåt åt det för nästa omgång remsor. Nu funderar jag på vad som ska bli nästa instickskort att bygga. Nån sorts lagring kanske, eller grafikkort, eller ljudkort, eller en massa GPIO, vilket jag skulle ha nytta av hemma. Ethernet är lockande också. Angående ditt nätagg Ragge så har jag inga kommentarer. Det är lite utanför mitt kunskapsområde. Men jag bidrar med hurrarop och hoppas att du får nånting byggt snart! Och 200kHz tycker jag är helt tillräckligt! Jag har förresten designat en hyfsad instruktionsuppsättning för min rördator, men inte testat den. Får ta och skriva en emulator och en assembler och prova att skriva lite program och se hur användbar den är, och hur kompakt koden blir. Kompakt kod är nog den viktigaste egenskapen jag vill ha, med den minnesstorlek jag har tänkt. Har sugnat igen på att bygga på rördatorn, så det kanske kommer ett brev om det om inte alltför länge. :) Bjarni