--- Andrea Gasparrini <andreagasparrini@xxxxxxxxxxx> wrote: > > > Mi interesserebbe avere dello procedure in L/M (linguaggio macchina ) per > muovere i caratteri sprite, e la memoria video dello spectrum. > Dunque, al momento non ho nulla sottomano. Pero' possiamo parlarne a grandi linee. Cominciamo col definire un oggetto sprite. Non esiste nessuno sprite nello spectrum, quindi quello che tutti noi convenzionalmente chiamiamo sprite non e' altro che una immagine che risiede in memoria e deve venire disegnata sullo schermo a partire da una certa coordinata. Quindi abbiamo da una parte lo schermo, la cui memoria comincia all'indirizzo 16384 (8000H) ed e' organizzata in maniera tuttaltro che intuitiva ma piuttosto funzionale per quanto riguarda le routines di stampa dei caratteri. Poi ci sono gli attributi, cioe' l'altra area di memoria che consente di colorare i singoli pixel accesi o spenti. In memoria abbiamo lo sprite, o meglio il nostro disegno che occupa una certa dimensione, diciamo 16x16 pixel, ma che puo' essere di qualunque dimensione, anche se in orizzontale e' piu' semplice se ha un numero di bit multiplo di 8. In verticale questo problema non c'e'. Il primo passo e' di trovare l'indirizzo della memoria video corrispondente alle coordinate X,Y Poi, siccome solo una volta su 8 il pixel coincide con l'inizio di un byte occorrera' shiftare opportunamente il primo byte dello sprite. Quindi scriverlo a video, incrementare e ripetere... Sull'operazione "scriverlo a video" occorre approfondire se si vuole conservare lo sfondo oppure no, e in questo caso e' necessario salvare lo sfondo in un buffer oppure si potrebbe pensare di backuppare tutta la memoria video in un'altra area di memoria e poi prendere lo sfondo dal backup, sovrapporci lo sprite e poi scrivere a video il risultato: e' un'altra tecnica... A linguaggio Z80 come sei messo? Disponi di un compilatore? ===== // // In a world without walls and fences // you would not need windows and gates. // (Confucio) == P'n'P: http://maicrosoft.italiamac.com __________________________________ Do you Yahoo!? Yahoo! Search - Find what you?re looking for faster http://search.yahoo.com