Bygga en modern kopia på ABC80
Bygga en modern kopia på ABC80
Tänkte försöka ge mej på att bygga en modern "kopia" på ABC80.
Har grundläggande elektronik och datorkunskaper på hobbynivå.
Med modern så menar jag med chips som går att köpa över disk idag.
Ingen FPGA eller dyl.
Bara standard hålmonterade kretsar så långt det är möjligt.
Z80
PIO
CTC
EPROM (kernel och BASIC)
SRAM(istället för DRAM)
Gluelogik med antingen vanliga TTL-kretsar eller PAL. Verkar som ABC80 använder mycket PROM för detta original dvs alltså en tidig form av PAL. Så jag ser inget fel att använda detta ifall det blir för avancerat att få till det med vanliga TTL-kretsar.
Svårast att förstå sej på verkar vara videodelen, jag kilar mej lite i huvudet här!
Funderar på om man kunde ersätta med nåt färdigt chip.
Som jag förstått det så är ABC80 i huvudsak baserat på texttvggrafik-standard.
Borde finnas en del färdiga chip för det. Letar...
Ps/2 tangentbord
Tänker ersätta det parallella ASCII-tangentbordet med ett vanligt PC-tangentbord.
Troligtvis med hjälp av nån enkel uC.
Lagring
Kassettbandspelare(kult eller diskettstation eller ev nån modernare form av floppyemulator.
Inte funderat klart här. Vad var vanligast förr?
Floppykontrollern verkar vara rätt avancerad med egen CPU osv så det lutar nog åt kassettbandspelare i nuläget.
Återstår att läsa på lite om detta och hur svårt eller enkelt det är att anpassa en vanlig bandspelare till ABC80.
Även hur själva interfacet ska utformas dvs omvandlingen digital till analogt och vice versa.
Verkar som det skiljer mot andra vanliga datorer från tiden tex ZX Spectrum där man använder helt vanliga kassettbandspelare och kablar.
Just nu håller jag mest på att samla in kunskap och lära/läsa på mej om arkitekturen.
Lyssnar gärna på input och ideer!
Har grundläggande elektronik och datorkunskaper på hobbynivå.
Med modern så menar jag med chips som går att köpa över disk idag.
Ingen FPGA eller dyl.
Bara standard hålmonterade kretsar så långt det är möjligt.
Z80
PIO
CTC
EPROM (kernel och BASIC)
SRAM(istället för DRAM)
Gluelogik med antingen vanliga TTL-kretsar eller PAL. Verkar som ABC80 använder mycket PROM för detta original dvs alltså en tidig form av PAL. Så jag ser inget fel att använda detta ifall det blir för avancerat att få till det med vanliga TTL-kretsar.
Svårast att förstå sej på verkar vara videodelen, jag kilar mej lite i huvudet här!
Funderar på om man kunde ersätta med nåt färdigt chip.
Som jag förstått det så är ABC80 i huvudsak baserat på texttvggrafik-standard.
Borde finnas en del färdiga chip för det. Letar...
Ps/2 tangentbord
Tänker ersätta det parallella ASCII-tangentbordet med ett vanligt PC-tangentbord.
Troligtvis med hjälp av nån enkel uC.
Lagring
Kassettbandspelare(kult eller diskettstation eller ev nån modernare form av floppyemulator.
Inte funderat klart här. Vad var vanligast förr?
Floppykontrollern verkar vara rätt avancerad med egen CPU osv så det lutar nog åt kassettbandspelare i nuläget.
Återstår att läsa på lite om detta och hur svårt eller enkelt det är att anpassa en vanlig bandspelare till ABC80.
Även hur själva interfacet ska utformas dvs omvandlingen digital till analogt och vice versa.
Verkar som det skiljer mot andra vanliga datorer från tiden tex ZX Spectrum där man använder helt vanliga kassettbandspelare och kablar.
Just nu håller jag mest på att samla in kunskap och lära/läsa på mej om arkitekturen.
Lyssnar gärna på input och ideer!
Re: Bygga en modern kopia på ABC80
Kul projekt!
Videohårdvara med minnesmappad skärm var ju väldigt vanligt på åttabitarsdatorer av alla slag - det är väl bara ett fåtal såsom TMS 9918/9928/9929, 80-teckenskretsen i Commodore 128 och några andra som inte har minnesmappad skärm.
Har inte 100% koll på hur detta normalt gjordes på Z80-baserade datorer eftersom Z80 har "ojämna" cykletider (dvs den går på t.ex. 4 MHz och varje minnessaccess tar inte t.ex. exakt fyra klockcykler, varpå man inte kan använda processorns minnesaccessperioder som timing för videohårdvaran. Jämför med t.ex. 6502-baserade system (samma även för 6800-baserade) där man t.ex. kör processorn på 1 MHz och för varje 1MHz-cykel dels låter processorn göra en minnesaccess och dels låter videohårdvaran göra en, och med 15kHz/TV-frekvens på videoutgången så får man automatiskt 40 tecken per rad på detta vis.
Jag kör lite featurecreep med en gång. Specifikt rekommenderar jag att försöka läsa de nummer av Mikrodatorn (tror jag det var?) där de visar minnesexpansion och omkopplingsbara adresser för vissa grejer, för att man ska kunna köra ett något modifierat ROM från ABC 800.
Videohårdvara med minnesmappad skärm var ju väldigt vanligt på åttabitarsdatorer av alla slag - det är väl bara ett fåtal såsom TMS 9918/9928/9929, 80-teckenskretsen i Commodore 128 och några andra som inte har minnesmappad skärm.
Har inte 100% koll på hur detta normalt gjordes på Z80-baserade datorer eftersom Z80 har "ojämna" cykletider (dvs den går på t.ex. 4 MHz och varje minnessaccess tar inte t.ex. exakt fyra klockcykler, varpå man inte kan använda processorns minnesaccessperioder som timing för videohårdvaran. Jämför med t.ex. 6502-baserade system (samma även för 6800-baserade) där man t.ex. kör processorn på 1 MHz och för varje 1MHz-cykel dels låter processorn göra en minnesaccess och dels låter videohårdvaran göra en, och med 15kHz/TV-frekvens på videoutgången så får man automatiskt 40 tecken per rad på detta vis.
Jag kör lite featurecreep med en gång. Specifikt rekommenderar jag att försöka läsa de nummer av Mikrodatorn (tror jag det var?) där de visar minnesexpansion och omkopplingsbara adresser för vissa grejer, för att man ska kunna köra ett något modifierat ROM från ABC 800.
- Hobbyisten
- Gått bort
- Inlägg: 2531
- Blev medlem: 3 december 2017, 22:55:25
Re: Bygga en modern kopia på ABC80
Spännande ! Du kommer att lära dig mycket på bygget Om Z80 blir originalet och andra delar lite modernare så får du en "personlig ABC80". Jag minns kassettstationerna och det gnisslande pulståget. Kassettstationernas avkodning följer väl samma principer som telefonmodemen gjorde på sin tid. Spännande är även att studera processorns arbetssätt med maskinkod och assembler, Z80 och 6502 är inte helt olika varandra.
Re: Bygga en modern kopia på ABC80
Den enklaste lösningen på videodelen för att få 80x25 tecken på det som var den gamla videostandarden, är en 6845 CRTC.
Skriv osynkat i minnet och släck de fragment som blir störda. På en riktig monokrom CRT i vaje fall syns ingen störning. Har inte testat modern monitor. Det är enkel hårdvara. I princip en D-vippa som resettas vid access av videominnet och en etta klockas in i början av varje tecken. Förvånande att ingen tillverkare gjorde så.
Ett sätt att lösa tangentbord och lagring är att ha en liten MCU med USB ansluten till en port. Då används PC'ns tangentbord och hårddisk. Reset och bootloader kan också styras från denna.
Mjukvarumässigt är skillnaden total. 6502 har bara accumulator och två 8-bit indexpekare. All 16-bit addressering görs med indirekta pekare i RAM. Z80 har två 16-bit index och ytterligare 6 register som även kan användas som tre 16-bit, varav ett som minnespekare.
Enda likheten är båda är von Neumann-arkitektur, precis som alla andra "stora" processorer.
Mitt råd är att skippa ROM och bara ha RAM utöver en primär bootloader i ROM som kopplas ur när den använts. Mitt 65816 hembygge är gjort som beskrivet här och fungerar helt som det är tänkt.
Bygger Du med RAM och helst med en del bankswitchat så kan Du även köra CP/M-80+ på den. Där finns väldigt mycket mer programvara från förr till detta.
Skriv osynkat i minnet och släck de fragment som blir störda. På en riktig monokrom CRT i vaje fall syns ingen störning. Har inte testat modern monitor. Det är enkel hårdvara. I princip en D-vippa som resettas vid access av videominnet och en etta klockas in i början av varje tecken. Förvånande att ingen tillverkare gjorde så.
Ett sätt att lösa tangentbord och lagring är att ha en liten MCU med USB ansluten till en port. Då används PC'ns tangentbord och hårddisk. Reset och bootloader kan också styras från denna.
Mjukvarumässigt är skillnaden total. 6502 har bara accumulator och två 8-bit indexpekare. All 16-bit addressering görs med indirekta pekare i RAM. Z80 har två 16-bit index och ytterligare 6 register som även kan användas som tre 16-bit, varav ett som minnespekare.
Enda likheten är båda är von Neumann-arkitektur, precis som alla andra "stora" processorer.
Mitt råd är att skippa ROM och bara ha RAM utöver en primär bootloader i ROM som kopplas ur när den använts. Mitt 65816 hembygge är gjort som beskrivet här och fungerar helt som det är tänkt.
Bygger Du med RAM och helst med en del bankswitchat så kan Du även köra CP/M-80+ på den. Där finns väldigt mycket mer programvara från förr till detta.
- Hobbyisten
- Gått bort
- Inlägg: 2531
- Blev medlem: 3 december 2017, 22:55:25
Re: Bygga en modern kopia på ABC80
Ja den största skillnaden mellan de två processorerna är att Z80 har fler register så att bytes kan lagras tillfälligt i CPU. I 6502 måste de tillbaka till minnet. Ackumulator, indexregister, stackpekare, statusregister och programräknaren fungerar på likartat sätt mellan de två processorerna.
Re: Bygga en modern kopia på ABC80
Dessutom har Z80 dubbel uppsättning av registren. Främst användbart för interrupts.
Ska följa tråden och hoppas det blir nåt fungerande med tiden.
Ska följa tråden och hoppas det blir nåt fungerande med tiden.
-
- Inlägg: 7816
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Bygga en modern kopia på ABC80
Valet där beror på vad som skall göras. 40 tecken färg för spel, eller 80 tecken text för annat. Det är bara att initiera CRTC annorlunda och ha en omkopplingsbar pixelklocka för att växla om videoram är stort nog. Skall det vara färg och grafik för spel så blir det genast mer stökigt
Nu kanske jag blandar ihop saker. Det var nog ABC800 som hade valbart 40 tecken färg, eller 80 tecken monokrom amber monitor.
Nu kanske jag blandar ihop saker. Det var nog ABC800 som hade valbart 40 tecken färg, eller 80 tecken monokrom amber monitor.
Re: Bygga en modern kopia på ABC80
Ja, ABC80 hade bara svartvitt 40x24. Och en speciell grafikmod som jag inte minns upplösningen på. Kan det ha varit 80x72? Det var ett visst antal punkter per tecken.
Re: Bygga en modern kopia på ABC80
2x3 per tecken, upplösningen i grafikmod var 78 × 72 pixlar.
Re: Bygga en modern kopia på ABC80
Boken Mikrodatorns ABC kan nog vara bra läsning, den beskriver rätt ingående hur hårdvaran i ABC80 fungerade.
Re: Bygga en modern kopia på ABC80
Kul projekt!
Jag har länge varit inne på detsamma men tid/ork har inte räckt till. Hoppas du genomför det.
Borde vara möjligt att pressa in allt på ett europa-kort.
Jag har länge varit inne på detsamma men tid/ork har inte räckt till. Hoppas du genomför det.
Borde vara möjligt att pressa in allt på ett europa-kort.
Re: Bygga en modern kopia på ABC80
Jag gillar tanken på retro, lekar själv med den.
Men allvar: Band för lagring? Det har ju bara varit problem med det - alltid.
För mig är det roliga med sånt system inte alla dåliga lösningar men allt det roliga.
Jag vet om att det finns (iaf. fanns) en FTDI-krets som kopplar mellan seriell port och USB-minne med filsystem. Det ville definitivt vara min väg in.
Sedan anser även jag att det bästa vill vara en bootloader som laddar systemet eller direkt exekverbara filer.
Jag hittade en grej på YT om att Z80 visst kan ha protected mode, det var via NMI och bank select, det hade varit mitt val att använda sånt.
Men allvar: Band för lagring? Det har ju bara varit problem med det - alltid.
För mig är det roliga med sånt system inte alla dåliga lösningar men allt det roliga.
Jag vet om att det finns (iaf. fanns) en FTDI-krets som kopplar mellan seriell port och USB-minne med filsystem. Det ville definitivt vara min väg in.
Sedan anser även jag att det bästa vill vara en bootloader som laddar systemet eller direkt exekverbara filer.
Jag hittade en grej på YT om att Z80 visst kan ha protected mode, det var via NMI och bank select, det hade varit mitt val att använda sånt.
-
- Inlägg: 364
- Blev medlem: 30 juli 2018, 06:46:13
Re: Bygga en modern kopia på ABC80
Band, nej fy....lite statisk elektricitet när man skulle ansluta kassettbandspelaren och...
Jag skrev ett DOS för Z80 i plugget i början på 80-talet. 16 datorer som pratade med en gemensam diskdriver.
Jag har assemblerprogrammet lagrat, på papper...
Jag skrev ett DOS för Z80 i plugget i början på 80-talet. 16 datorer som pratade med en gemensam diskdriver.
Jag har assemblerprogrammet lagrat, på papper...