[A83] Re: Vragen en andere dingen die ik niet snap!


[Prev][Next][Index][Thread]

[A83] Re: Vragen en andere dingen die ik niet snap!




Just so the english ppl can join the chat, I'll translate it for ya.

T: means "translation"
A: Means answer, of antwoord. (Dutch)
TA: Means anser translated to english.
 
> Ok op het advies van Tijl stel ik nu in het Nederlands(ook om dat ik zo mijn 
> moeilijkheden in het Engels moeilijk onder woorden kan brengen) een aantal 
> vragen, antwoord graag in het Nederlands :).
> Ok mijn eerste vraag is over het geheugen en HL.
T: Following the advice Tijl gave me, I'm posting my questions in dutch...


> Memorylocations
> Hoe moet ik eigenlijk het geheugen zien?
> Is het een lange rij met allemaal 1 en 0'tjes? Zoals dit:
> 10010100010011100100101
T: How should I view the memory?
T: Is is one long row with 1's and 0's, like this:
T: 10010100010011100100101

> Ik dacht altijd ongeveer dat het zo moest zijn, en dat bijv. elk stukje een 
> memory loaction heeft zoals dit;
> $822h            $983h
> 10010100010011100100101
T: I always thought it'd be like that, and that i.e. every piece has his own 
T: memory location, like this:
T: $822h            $983h
T: 10010100010011100100101

> Je kan namelijk ook een bijvoorbeeld een hele lange rij bits in de 
> grpahbuffer opslaan, bijv. tilemaps.
T: Since you can put a long array of bit's into the graphbuffer, like tilemaps.

A: Je hebt gelijk, het geheugen zelf is een lange rij bit's, elke 8 bits is 
A: een Byte. Elke byte heeft een memory address, 0001h, 0002, 0003h.
A: De processor vraagt aan de geheugenchip de 8 bit's van een memory location
A: Aan om naar de lezen of schrijven. De processor gaat met deze acht bits om
A: als een getal van 0 tot 255, of 00h tot FFh. Je kunt echter ook de afzonder-
A: lijke bit's van die getallen aan/uit zetten en vervolgens wegschrijven of
A: aanpassen.

TA: You're right, the memory itself is one long array of bits.
TA: Every 8 bits is cinsidered a Byte. Every byte has it's own memory address,
TA: 0001h, 0002h, 0003h.
TA: The processor requests to the memory chip the 8 bits at this address, to 
TA: read from, and to write to. It handles these 8 bit's like a byte, a number
TA: between 0 and 255, or 00h and FFh. You can change different byts of these
TA: numbers, and then write it back or modify it.


Sorry guys, I'll just continue in dutch and without tenslating, since I've only got a few minutes left.

> (HL) en HL.
> Als je bijv(terugblikkend naar mijn memorylocations) doet;
> ld (HL), $822h
> en daarna _disphl, je een getal zou krijgen dat dezelfde waarde heeft als 
> 10010100(de eerste 8 bits in de rij). Ik zou trouwens niet weten waarvoor je 
> iets in (HL) zou willen laden.
> Dat was (HL), nu HL. Als ik het goed heb kan je labels in HL opslaan(of 
> pushen?)
> Bijvoorbeeld:
> ld HL, Tilemap
> tot er een nieuwe label begint komt. Als je nu bijvoorbeeld alle bits in die 
> tilemap een bit opzij zou willen schuiven hoe zou je dit dan willen 
> bereiken? Ik neem aan dat je na:
> ld HL, Tilemap
> bijv dit:
> srl HL(ofzoiets)
> zou kunnen doen. Maar dan heb je alleen maar de eerste2 bytes geshift, moet 
> je Hl gewoon elke keer opschuiven naar een nieuw stukje van the graphbuffer?

hl is een variabele waar je een getal in kan opslaan, van 0 tot aan 65535, nu
zin er 65536 geheugenplaatsen beschikbaar, dus kan hl het adres van zo'n 
geheugenplaats bevatten.
(hl) verwijst naar de byte op de geheugenplaats waat hl naar verwijst. Als 
hl het startadres van Tilemap heeft toegewezen gekregen met een label,
b.v.:

  ld hl,Tilemap
Tilemap:
  .db 0,1,2,3

ld a,(hl)  laadt nu "0" in register a.
inc hl     telt 1 bij de waarde van hl op, en laat het dus naar de byte na de
           start van Tilemap wijzen
ld a,(hl)  laadt nu "1" in register a

srl hl, als het bestond zou alleen maar hl veranderen, zodat het een andere 
	waarde heeft, en (hl) wijst dus naar een andere geheugenplek

om srl (hl) te doen, moet je het volgende doen:

ld hl,Tilemap 	; voor de lol
inc hl 		; ga naar de volgende byte, dus de tweede byte van de tilemap

ld a,(hl)	; laad de waarde van de byte op adres hl (Tilemap+1) in a
srl a		; doe een srl met a.
ld (hl),a	; schrijf de waarde van a naar de geheugenplaats waar hl naar verwijst.

Ik hoop dat het een beetje duidelijk is.

--Peter-Martijn 


> Ook nog een vraagje over het "inc" - statement. Als je bijv.
> inc HL doet, tel je dan 1 bij de waarde van HL op, of schuif je Hl een 
> plekje op in het memory?

1 bij de waarde van hl optellen.



 
> Dat waren mijn vragen voorlopig!
> Maarten
> 
> 
> _________________________________________________________________
> Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
> 
> 
> 





References: