[zxspectrum] Re: News varie

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sat, 3 Feb 2007 20:39:56 +0100

On Saturday, February 03, 2007 8:26 PM [GMT+1],
Stefano <flydream@xxxxxxxx> wrote:

Si, prima o poi dovrei documentarmi sul loro standard per vedere
quanto sono lontano. Sono cmq poco fiducioso di poter implementare

Ah... ma se l'hardware è già in grado di supportare certe funzioni
dovresti essere già a cavallo... (così mi sembra visto che parlo da
buon ignorante in materia...)

In effetti, 4 bit sono sempre 4 bit e quindi probabilmente anche loro hanno due pixel per byte. Il punto, ad esempio, e` che il mio scan converter memorizza un frame (40K) in un banco da 64K (due banchi nella ram da 128K 15ns dedicata allo scopo). Per semplificare enormemente i puntatori, durante la conversione dal formato spectrum (che ovviamente viene fatta in hardware) ce ne sono due da 8 bit ciascuno: uno per la riga (0-255) e uno per il byte all'interno della riga (0-159 = 320 pixel). Ne consegue che ho un "buco" di 96 bytes ogni 160.

Questo e` un po` scomodo. Ad esempio, per leggere il frame da SD card (dove si devono per forza leggere 512 bytes consecutivi), ho dovuto fare una cosa un po` strana: ogni settore della card (512 bytes) contiene 3 righe senza spazi (480 bytes) e i restanti 32 vengono buttati. Il settore viene letto da una routine appositamente modificata, che esegue 3 blocchi di lettura incrementando ogni volta il puntatore di riga in modo da colmare i buchi.

In questo modo non leggo roba inutile (sarebbero ben 96 bytes per riga), e nello stesso tempo non devo spostare blocchi di memoria (lo spostamento con LDIR richiede lo stesso tempo del caricamento da sd card (con INIR): in pratica dal punto di vista della velocita` e` come se la sd card fosse "in memoria", a parte l'overhead per iniziare il trasferimento. Non devo nemmeno fare complicati calcoli per riallineare i puntatori, perche` ogni 512 bytes si ricomincia. In questo modo devo leggere 42K dalla card invece di 40, ma poco male (molto meglio di leggerne 64K).

Questo e` uno dei motivi per cui temo che rendermi compatibile sia complicato. Dove potrei trovare informazioni dettagliate che descrivano il buffer video dei sistemi che indicavi? E` unico per tutti?

Ciao!


Other related posts: