[zxspectrum] Re: Domande tecniche...

  • From: Mentore Siesto <mentore.siesto@xxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Fri, 29 Jun 2012 09:35:50 +0200

Il 28/06/2012 14:21, Luca Zabeo ha scritto:
Buongiorno a Tutti,

chiedo venia per alcune questioni tecniche con cui sto discutendo con
una persona, vi riporto le affermazioni, se qualcuno più colto (non
serve molto a dire la verità), di me riesce a dargli risposta o a
confermare quanto dice (parto con il dubbio quindi non sono sicuro che
quello che dica sia corretto o meno)... :-))))

1 quesito:
"Tutti sanno che la terminologia VRAM si riferisce alla memoria
utilizzata per le informazioni video.
Non e' necessariamente un qualcosa di diverso.
Pertanto su ogni computer che gestisce un video esiste una VRAM."
In riferimento che la ula secondo lui ruba memoria per il video dei
primi 16k e il resto freerun.

Intanto esistono delle RAM specifiche in commercio (non ricordo la loro architettura) chiamate VRAM, per cui già qui non siamo chiari.

Quanto alla questione del 16 kB, questi sono circuitalmente condivisi tra ULA e CPU, con la necessità da parte della ULA di accedere ai 16 kB bassi. Che la ULA "rubi" memoria non è corretto, comunque, dato che la RAM, usata per il video o meno, dev'essere comunque parte della mappa di memoria della CPU.

Il tuo amico mi pare molto poco chiaro nell'esprimersi :)

2 quesito:
La ULA tecnicamente "sopprime il clock" dello z80 per bloccarlo, quando
lei fa operazioni di accesso alla ram video per la generazione
dell'immagine. L'area video e' memoria contesa da entrambi i
dispositivi. Questo tipo di sincronizzazione e' obbligatorio per evitare
spiacevoli effetti se entrambi i dispositivi accedono alla ram dedicata
al video. Questa sincronizzazione, sebbene attuata in modo diverso dal
punto di vista "elettronico" e' la stessa presente nel c64
<http://www.retrogaminghistory.com/autolink.php?id=21&forumid=53&script=showthread>
che, come lo zx mappa la ram video nella regione di indirizzamento della
CPU. La peculiarità, semmai dello spectrum
<http://www.retrogaminghistory.com/autolink.php?id=39&forumid=53&script=showthread>
e' quella di evitare rallentamenti quando si accede a regioni di
indirizzi che sono fuori dai primi 16K di memoria. In questo caso non
c'e' contention, e conseguente "stop" sulla cpu.

E il quesito qual è? :)

3 quesito, relativo ai cloni russi dello Speccy:
Riguardo ai cloni, visto che la vram e' contesa, io avrei adottato uno
schema in double buffering. Due pagine attive alternativamente ( a
comando della cpu ). Su quella non attiva, si scrive e si legge a
velocità max possibile dal blitter/cpu. Quando la si scambia con quella
attiva questa regione e' praticamente inacessibile se non all'hw video.
e viceversa. E' semplice come soluzione e piuttosto efficace.
Tecnicamente basta un registro a 1 bit per realizzarla. Ci vuole
tuttavia potenza per la grafica.
Vero c'erano robe come il pentagon e versioni a 6mhz dello z80.
Mai toccati con mano, ma dai un'occhiata al timing hw in modalità
grafica non colour clash e agli "stop" inflitti allo z80 dall'hw video.

Anche qui, il quesito qual è? Andando a memoria tra l'altro mi pare di ricordare che uno dei tanti cloni usasse proprio il doppio buffer, ma non ricordo più bene.

4 quesito relativo al Zx81:
Si occupava di gestire in maniera indipendente? Ma per cortesia. La ula
zx 81 era una cozzaglia di elettronica di contorno necessaria a ottenere
la visualizzazione su schermo. Questa funzionalità e' cosi modesta che
avrebbe potuto anche a quei tempi essere ottenuta anche con elettronica
discreta o con una combo di integrati ed elementi discreti.

Complimenti per aver scoperto l'acqua calda. L'ULA non nacque con l'idea di sostituire la CPU, ha sempre e solo avuto lo scopo di evitare di inserire una quarantina di integrati...

Le funzioni della ULA sono talmente essenziali per la generazione
dell'immagine video che ogni computer che pilota un CRT deve averle. Per
forza di cosa. Quindi secondo la tua osservazione i computers sono tutti
quasi "multiprocessore".

Ma anche questa affermazione, è del tuo amico o tua? Non mi è affatto chiaro cosa intenda. Negli ZX, l'ULA è semplicemente indispensabile per il video (sincronismi, segnali, clock, interrupt), la tastiera e l'audio, nonché per gran parte della sincronizzazione interna. Tanto è vero che esiste un BELLISSIMO libro che ne tratta, per la stesura del quale c'è voluto più di un anno di lavoro e ricerche.

L'ULA non è certamente una CPU, è appunto un array logico; ai tempi della serie ZX fu rivoluzionario perché faceva quel che altri facevano, meglio, con un solo chip e a costi ridottissimi. Che altro volevano da quel povero array? La pizza? :D

Mentore

Other related posts: