Någon guru på assembler till Intel 8035.
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Någon guru på assembler till Intel 8035.
Finns det någon här som är guru på assembler till 8035 (8048-familjen)?
Jag behöver ett litet debugprogram till mitt Compugame 66, och vet minst två till som har samma spel med fel som lär behöva detta.
Programmet ska loopa igenom ett några adresser som styr lamporna och en annan adress som styr de multiplexade 7-segments LED’na.
Varje adress tar 8 databitar, och de ska loopas decimalt 1, 2, 4, 8, 16, 32, 64 och 128, dvs, 000 0001 till 1000 000 i 8 steg.
Det är 5 adresser med 8 bitar plus de multiplexade LED’erna.
Jag har min (begränsade) kunskap på 6809, och inlärningströskeln för en ny processor är rätt stor känner jag.
Någon?
Jag behöver ett litet debugprogram till mitt Compugame 66, och vet minst två till som har samma spel med fel som lär behöva detta.
Programmet ska loopa igenom ett några adresser som styr lamporna och en annan adress som styr de multiplexade 7-segments LED’na.
Varje adress tar 8 databitar, och de ska loopas decimalt 1, 2, 4, 8, 16, 32, 64 och 128, dvs, 000 0001 till 1000 000 i 8 steg.
Det är 5 adresser med 8 bitar plus de multiplexade LED’erna.
Jag har min (begränsade) kunskap på 6809, och inlärningströskeln för en ny processor är rätt stor känner jag.
Någon?
Re: Någon guru på assembler till Intel 8035.
Jag har aldrig skrivit kod för 8048/8748, men har en bok om att programmera den, som jag haft sen stenåldern. Tror typ gallrad biblioteksbok eller nåt sånt.
Ett kanske-tips är att Videopac G7000 / Magnavox Oddysey 2 också har 8048.
Om du bara vill att koden ska mata ut totalt 40 olika utdata i en lång loop så kan du i värsta fall skriva koden som att bara ladda värden och sen mata ut dem, ett i taget, utan att ens lära dig hur man skiftar bitar, gör loopar osv. Även ineffektivaste utrullade loppen på detta sätt ryms ju många gånger om i minsta EPROM:et du kan ha.
Annars är denna processor minst sagt lite speciell.
En hårdvarugrej värd att veta är att alla I/O-portar agerar antingen inport med pull-up eller så skickar de ut en nolla, och när man slår om till inport med pull-up så om jag minns rätt så skickar de en kort "etta"-puls för att få bättre flanksvar än vad en trött pull-up orkar.
Det verkar finnas asssemblator på github t.ex.
Den här guiden verkar vara en bra crash course:
https://jhnbyrn.github.io/951-KLR-PAGES ... _code.html
OBS att Intel säger "mov" men menar "load". Alltså Intel-mov är baklänges jämfört med t.ex. 68000, VAX med flera. (Jämför också att Zilog för Z80, som har en utökad variant av instruktionerna i 8080/8085, valde att döpa om mov till ld). Detta kan väl ställa till en del. Det känns som att man vill nog peta på assemblatorn så att mov istället skrivs som ld för att minimera risk.
Hur som helst så verkar det lätt att skriva kod som laddar register med ett värde och sen skriver den till I/O, och efter att ha gjort detta ett antal gånger hoppa tillbaka till början igen.
Ett kanske-tips är att Videopac G7000 / Magnavox Oddysey 2 också har 8048.
Om du bara vill att koden ska mata ut totalt 40 olika utdata i en lång loop så kan du i värsta fall skriva koden som att bara ladda värden och sen mata ut dem, ett i taget, utan att ens lära dig hur man skiftar bitar, gör loopar osv. Även ineffektivaste utrullade loppen på detta sätt ryms ju många gånger om i minsta EPROM:et du kan ha.
Annars är denna processor minst sagt lite speciell.
En hårdvarugrej värd att veta är att alla I/O-portar agerar antingen inport med pull-up eller så skickar de ut en nolla, och när man slår om till inport med pull-up så om jag minns rätt så skickar de en kort "etta"-puls för att få bättre flanksvar än vad en trött pull-up orkar.
Det verkar finnas asssemblator på github t.ex.
Den här guiden verkar vara en bra crash course:
https://jhnbyrn.github.io/951-KLR-PAGES ... _code.html
OBS att Intel säger "mov" men menar "load". Alltså Intel-mov är baklänges jämfört med t.ex. 68000, VAX med flera. (Jämför också att Zilog för Z80, som har en utökad variant av instruktionerna i 8080/8085, valde att döpa om mov till ld). Detta kan väl ställa till en del. Det känns som att man vill nog peta på assemblatorn så att mov istället skrivs som ld för att minimera risk.
Hur som helst så verkar det lätt att skriva kod som laddar register med ett värde och sen skriver den till I/O, och efter att ha gjort detta ett antal gånger hoppa tillbaka till början igen.
Re: Någon guru på assembler till Intel 8035.
Jag har skrivit en del för 8035, men det är länge sen, därefter har jag skrivit mycket för 8031 och dess senare släktingar.
Någon guru har jag nog aldrig varit men om du specar mera noggrant vad du vill göra så kanske jag kan hjälpa dig att komma igång.
Ett schema på hårdvaran är väl en bra start?
Någon guru har jag nog aldrig varit men om du specar mera noggrant vad du vill göra så kanske jag kan hjälpa dig att komma igång.
Ett schema på hårdvaran är väl en bra start?
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Tack Castor,
Jag håller på att slutföra schemat, hittade en del tokiga fel i det första jag gjorde, slutför det nya förhoppningsvis i dag eller i morgon.
Jag vet inte om du kollat in projekttråden om spelet, det är ett CPU-kort, ett stort lamp-kort där det sitter ett ljudkort och ett LED-kort och ingångar för knappar.
Har suttit ett par dagar med en ”beeper” och spårat ledningsbanor på lamp-kortet till de två 41612-kontakterna. Jag kunde nu reda ut vilka utgångar på CPU-kortet som driver vad på lamp-kortet och hur LED-multiplexern funkar.
Jag har ett originalschema, men det är i så dålig kvalitet att man knappt kan se vilka pinnar det är på IC’na.
Jag återkommer inom kort.
EDIT: här är tråden om spelet: viewtopic.php?t=103452
Jag håller på att slutföra schemat, hittade en del tokiga fel i det första jag gjorde, slutför det nya förhoppningsvis i dag eller i morgon.
Jag vet inte om du kollat in projekttråden om spelet, det är ett CPU-kort, ett stort lamp-kort där det sitter ett ljudkort och ett LED-kort och ingångar för knappar.
Har suttit ett par dagar med en ”beeper” och spårat ledningsbanor på lamp-kortet till de två 41612-kontakterna. Jag kunde nu reda ut vilka utgångar på CPU-kortet som driver vad på lamp-kortet och hur LED-multiplexern funkar.
Jag har ett originalschema, men det är i så dålig kvalitet att man knappt kan se vilka pinnar det är på IC’na.
Jag återkommer inom kort.
EDIT: här är tråden om spelet: viewtopic.php?t=103452
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Här är ett icke färdigt schema
Det mesta är på plats, ett par tåtar till som ska letas upp vart dom tar vägen, städa upp ett misstag jag hittade då jag antog
att det såg likadant ut. Vilket det inte gör.
Castor, du kan se hur det ser ut. Vad jag kan tolka det till så styrs utgångarna via U15 (4028) på adresserna
0x100 - LED multiplexer
0x101 - U-A2
0x102 - U-A4
0x103 - U-A5
0x104 - U-A6
0x105 - U-A8
Alla 74LS373
Ingångarna P1.0 - P1.5 tillsammans med T1 är för knappar. T0 är kopplad till en omkopplare, antingen 1 eller 0 på denna ingång.
P2.3 styr vilket EPROM som ska läsas, finns bara ett, så den har egentligen ingen funktion.
P1.6, P1-7, P2.4, P2.5 och P2.6 är statiska omkopplare som ställer om funktioner i spelet. De är antingen 1 eller 0, standard är att P1.6 och P2.5 är 1.
I första skedet vill jag testa alla utgångar, dvs, en 1:a på en utgång på 74LS373 ger jord på ULN2003 som tänder en lampa.
Loopa igenom alla utgångarna, tänd en lampa i taget. När alla utgångar är loopade, gör samma sak igen, fast låt lamporna bli tända, detta för att lasta spänningsdelen och se om där är något som ballar ur.
Sak samma med 7-segmentarna. Dessa kan testas i en loop, ett segment och en display i taget. Loopa a-g (dp används inte) en display i taget. Loopa sen alla displayerna, för att till sist ha alla segmenten tända på alla displayer.
Jag har försökt dissassemblera prommet, men får en tokig del mitt i koden, en ogiltig OP, ska se om jag kan köra det i en emulator i stället.
Vill du ha schemat i KiCad 9 fixar jag det. Kommer att ladda upp det inom kort till GutHub.
EDIT: Nyare schema längre ner i tråden

Det mesta är på plats, ett par tåtar till som ska letas upp vart dom tar vägen, städa upp ett misstag jag hittade då jag antog

Castor, du kan se hur det ser ut. Vad jag kan tolka det till så styrs utgångarna via U15 (4028) på adresserna
0x100 - LED multiplexer
0x101 - U-A2
0x102 - U-A4
0x103 - U-A5
0x104 - U-A6
0x105 - U-A8
Alla 74LS373
Ingångarna P1.0 - P1.5 tillsammans med T1 är för knappar. T0 är kopplad till en omkopplare, antingen 1 eller 0 på denna ingång.
P2.3 styr vilket EPROM som ska läsas, finns bara ett, så den har egentligen ingen funktion.
P1.6, P1-7, P2.4, P2.5 och P2.6 är statiska omkopplare som ställer om funktioner i spelet. De är antingen 1 eller 0, standard är att P1.6 och P2.5 är 1.
I första skedet vill jag testa alla utgångar, dvs, en 1:a på en utgång på 74LS373 ger jord på ULN2003 som tänder en lampa.
Loopa igenom alla utgångarna, tänd en lampa i taget. När alla utgångar är loopade, gör samma sak igen, fast låt lamporna bli tända, detta för att lasta spänningsdelen och se om där är något som ballar ur.
Sak samma med 7-segmentarna. Dessa kan testas i en loop, ett segment och en display i taget. Loopa a-g (dp används inte) en display i taget. Loopa sen alla displayerna, för att till sist ha alla segmenten tända på alla displayer.
Jag har försökt dissassemblera prommet, men får en tokig del mitt i koden, en ogiltig OP, ska se om jag kan köra det i en emulator i stället.
Vill du ha schemat i KiCad 9 fixar jag det. Kommer att ladda upp det inom kort till GutHub.
EDIT: Nyare schema längre ner i tråden
Senast redigerad av Mickecarlsson 13 maj 2025, 09:31:34, redigerad totalt 1 gång.
Re: Någon guru på assembler till Intel 8035.
Som sagt, dessa mikrokontrollers kan inte ge en "etta" ut. De antingen skicka ut en nolla, eller agera ingångar med pull-up.
För att testa resten av hårdvaran så kan du kolla databladet hur stark denna pull-up är, och bara köra motsvarande motstånd med mikrokontrollern urplockad ur sin sockel.
Såklart vore ett testprogram bättre, men ändå.
För att testa resten av hårdvaran så kan du kolla databladet hur stark denna pull-up är, och bara köra motsvarande motstånd med mikrokontrollern urplockad ur sin sockel.
Såklart vore ett testprogram bättre, men ändå.
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Ehhhh, alla utgångar i spelet drivs av 74LS373 och de styrs via en adressavkodare och utgångarna latchas med 8 databitar.
Tror du behöver kolla schemat Mia
Tror du behöver kolla schemat Mia

Re: Någon guru på assembler till Intel 8035.
Ja men då är det bara att ta ur 8035 ur sin sockel. Alla ULN ska driva då.
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Nja, kolla schemat, det sitter en 74LS373 mellan CPU och resten av 74LS373 som driver ULN’erna.
Finns inte en chans att de latchar ut data på utgångarna utan CPU.
Finns inte en chans att de latchar ut data på utgångarna utan CPU.
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Nyare schema, det tar tid, men snart är jag framme vid ett användbart schema.
Senast redigerad av Mickecarlsson 13 maj 2025, 15:20:36, redigerad totalt 1 gång.
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Och för den som vill grotta ner sig i koden till spelet har jag till sist lyckats disassemblera epromet.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Ny version av schemat, fixade till en pinsam feldragning av förbindelse.
EDIT: Nyare schema längr ner i tråden
EDIT: Nyare schema längr ner i tråden
Senast redigerad av Mickecarlsson 15 maj 2025, 11:03:04, redigerad totalt 1 gång.
Re: Någon guru på assembler till Intel 8035.
Kul att se schema. Men kan du inte reducerade storleken, packa det bättre. Som det är nu går det inte att zoom in så man ser nått i mobilen 

- Mickecarlsson
- EF Sponsor
- Inlägg: 4797
- Blev medlem: 15 april 2017, 18:06:15
- Ort: Malmö
- Kontakt:
Re: Någon guru på assembler till Intel 8035.
Jag kanske gör det senare, just nu är fokus på att få dit alla komponenter, och jag vill ha allt på ett blad. I KiCad väljer du symbolen nr 2 på höger sida, cursorn blir då rund och ett klick på en ledare visar hela signalvägen med highlight.
Då kan man se vart signalen tar vägen.
Hade det uppdelar innan, men det blev ett j-a hoppande mellan olika scheman.
Schemat är inte gjort för mobiltelefoner
Då kan man se vart signalen tar vägen.
Hade det uppdelar innan, men det blev ett j-a hoppande mellan olika scheman.
Schemat är inte gjort för mobiltelefoner

Re: Någon guru på assembler till Intel 8035.
Förslag/klagomål:
Schemat går säkert lätt att läsa för dig som jobbat med burken ett tag.
Men för alla andra så är det helt oläsligt med avseende på LED-displayerna när namnen på signalerna är nära på slumpmässigt valda.
Tips/önskemål: Döp om signalerna så att de heter LEDa, LEDb och LEDdp för segmenten och LED1...LED14 för common på varje sjusegmentdisplay.
Rekommenderar också att bryta ut välkända signaler som _RESET så att de inte visas som linjer utan bara "dyker upp".
Schemat går säkert lätt att läsa för dig som jobbat med burken ett tag.
Men för alla andra så är det helt oläsligt med avseende på LED-displayerna när namnen på signalerna är nära på slumpmässigt valda.
Tips/önskemål: Döp om signalerna så att de heter LEDa, LEDb och LEDdp för segmenten och LED1...LED14 för common på varje sjusegmentdisplay.
Rekommenderar också att bryta ut välkända signaler som _RESET så att de inte visas som linjer utan bara "dyker upp".