Z80 dator

Berätta om dina pågående projekt.
nifelheim
Den första
Inlägg: 2486
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Z80 dator

Inlägg av nifelheim »

och vad hände med HALT* pinnen, blev den aktiv?
vad som finns på bussen när den är odefinierad spelar inte någon roll
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Jag har köpt en ny CPU på ELFA så nu kan jag köra i 10MHz och allt funkar nu tror jag.
Halt blir aktiv när den ska halta.
Men den fortsätter skicka ut saker på adress bussen.
Den räknar upp adresbussen och aktiverar MEMREQ.
Användarvisningsbild
anrhm
Inlägg: 371
Blev medlem: 3 november 2005, 15:13:33
Ort: Norrtälje

Re: Z80 dator

Inlägg av anrhm »

Det borde vara refresh-räknaren för DRAM-minne du ser.

http://www.sxlist.com/TECHREF/mem/dram/slide4.html
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Ja, det är det ju såklart!
Tack så mycket, nu behöver jag inte oroa mig för att något är fel.

Här är bilder på hur jag har löst det med minnet:
Bild
Bild
När man slår på datorn så läser PIC:en från det lilla EEPROM och skriver till SRAM.
Och man programmerar EEPROM i PICKIT 2
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Hmm, jag har nog missuppfattat hur CALL funkar men ska inte denna koden funka?

Kod: Markera allt

NOP
LD  SP, $FFFF
CALL	TEST

TEST:
HALT
.end
Koden assembleras rätt men den haltar inte utan spinner iväg och gör konstiga saker.

Men om jag byter ut CALL till JP så funkar allt fint.
Användarvisningsbild
slaeshjag
Inlägg: 458
Blev medlem: 16 april 2008, 15:17:19
Ort: 10.0.0.10

Re: Z80 dator

Inlägg av slaeshjag »

call ska vara exakt som jp förutom att den ska lägga adressen till "nästa instruktion" på stacken innan den hoppar till angiven adress.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Jo, och det är det som är det konstiga, det borde ju funka.
Sätter jag SP till $0FFF funkar det.
Men inte om jag sätter den till $7FFF.

Det ska väll inte spela någon roll, den behöver väll inte ens peka på en adress där det finns minne?
Jag skriver ju bara, inte läser.
Och jag har ju minne på hela utrymmet.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Nu hittade jag felet!
INT och NINT eller vad hu interrupt pinnarna heter har varsitt pullup på 10K och en ULN2003 lyssnar på dem.
Men tydligen drar ULN2003 så mycket ström att spänningen bara blir 2,5V på pinnarna.
Så jag kopplade dem direkt till 5V och nu funkar allt fint.

Men det är darlington koppling på ULN2003 va? Den ska väll inte dra mycket kräm på in-sidan?
Det blir iof bara 0,25mA.
Senast redigerad av victor_passe 20 augusti 2009, 10:28:54, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Z80 dator

Inlägg av Icecap »

INT & NMI
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Nu har jag kopplat en AND krets som buffert på INT och NMI på LED-kortet.
Och nu är det en bild på displayen som Z80:n har genererat själv!

Men nu ska jag läsa på om hur man stoppar in rå data i koden.
Så jag kan använda IX och IY och göra någon generell draw_sprit funktion.
Och jag måste säga att PUSH och POP är väldigt bra, mycket bättre lösning än en liten intern stack. Och lätt att skicka parametrar med.
ekman
Inlägg: 280
Blev medlem: 13 januari 2009, 14:04:35

Re: Z80 dator

Inlägg av ekman »

Måste bara säga att det är riktigt roligt att följa med på det här projektet. Dock så fattar jag inget av vad ni pratar om men intressant på nått sett :humm:

Men blir det ingen bild på den egen genererade bilden som z80 skrev ut? :)
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Det snarare så att jag har skrivit några byte över Boot-bilden så det är Bootbilden fast med en liten triangel i hörnet.

Nu har jag börjat skriva kod för att skriva ut text.
Men jag har ett par frågor:
Varför har man ibland parenteser runt register som tex LD (HL),$FFFF
Och finns det något bättre sätt att gångra A med 8 än detta:

Kod: Markera allt

	CCF
	SCF
	RLA

	CCF
	SCF
	RLA

	CCF
	SCF
	RLA

Det känns extremt korkat att göra så.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

De frågor jag hade i förra inlägget har jag redan löst.

Denna kod:

Kod: Markera allt

	NOP
        LD   	SP,$FFFF	
	CALL	Init_disp
	CALL	Clear_disp
	LD	A,0	;Bokstav 0
	CALL 	Draw_letter
	LD	A,1	;Bokstav 1
	CALL 	Draw_letter
	LD	A,2	;Bokstav 2
	CALL 	Draw_letter
	HALT
(Det finns en massa rutiner såklart men de är inte så intressanta)

Bokstäverna sparas såhär(Detta är ett "A"):

Kod: Markera allt

	.db %000000
	.db %001000
	.db %010100
	.db %100010
	.db %111110
	.db %100010
	.db %100010
	.db %100010
Genererar detta detta:
Bild

Ett stort steg för mig, ett litet steg för mänskligheten.

Och en liten film på när den skriver detta:


Funderar på om man ska spara data åt andra hållet, nu sparar jag ju 8byte men 6byte räcker.
Man kanske skulle ändra "vinkeln" på byten och då bara förbruka 6 byte för ett tecken.
Och det blir ju lättare då jag nu måste ändra om massa adresser på skärmen när det kommer nya bokstäver, skärmen kan ju själv göra detta om man bara skriver från vänster till höger och byte:arna på "höjden"

Vet någon något ställe där man kan hitta hela ASCII listan i binär-form på det sättet jag sparar data?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Z80 dator

Inlägg av Swech »

http://www.swechtrading.se/Ascii_lg.inc
Här har du en ascii tabell från 32 till Z sparad i vridet format, anpassad för AVR men med
lite search and replace så passar den nog dig

Swech
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: Z80 dator

Inlägg av victor_passe »

Tack, det blir perfekt.

Edit:
Det gick visst inte :( Jag trodde att man kunde mata in bitarna vertikalt, men icke.
Och jag tänker inte krångla en massa i koden och läsa bit 0 från 8 byte, bit 1 från 8 byte osv.
Så det får bli som det var, men en ASCII lista vore fortfarande uppskattat fast åt andra "hållet".
Skriv svar