[zxspectrum] Re: Filmati DivIDEo su ZXMMC+

  • From: Eugenio Ciceri <eugenio.ciceri@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 13 Dec 2011 16:17:40 +0100

Il codice che viene eseguito durante lo streaming è questo (va
decisamente ottimizzata tutta la parte di giocolieraggio con lo stack,
ma vi prego di sorvolare, per ora... ;-)):

        ; terminate the previous multi read command
        ld a,MCC_TERMINATE_MULTI_READ
        call mmc_write_command

        in a,(SPI_PORT)                 ; CRC?
        nop
        nop
        in a,(SPI_PORT)

        call mmc_wait_response          ; waits for the MMC to reply "0"

        call cs_high                    ; set cs high
        call clock32                    ; 32 more clock cycles
        call clock32                    ; 32 more clock cycles
        call clock32                    ; 32 more clock cycles
        call clock32                    ; 32 more clock cycles

                pop hl

                push ix
                push hl
        call set_sector_number
        ld a,MMC_READ_MULTIPLE_BLOCK
        call mmc_send_command

dopodiché entra in un loop in im2 che calcola quanti INI devono essere
eseguiti per ogni frame, anzi, per ogni video packet.

In che modo posso tracciare le eventuali scritture con D0=0?



Il 13 dicembre 2011 14:35, Alessandro <alessandro.poppi@xxxxxxxxx> ha scritto:
> On Tue, 2011-12-13 at 12:03 +0100, Eugenio Ciceri wrote:
>
>> La sezione audio invece ha dei problemi che sulla DivIDE non si
>> presentano: l'uscita audio dell'AY non produce alcun suono, mentre il
>> suono prodotto dall'altoparlantino interno è disturbato da un rumore
>> continuo di sottofondo che sembra essere dovuto a un'interferenza con
>> i dati in arrivo dalla SPI port della ZXMMC+.
>> Il rumore è molto più forte sul bit 4 della porta 0xfe, mentre sul bit
>> 3 si riduce a un fastidioso suono continuo di sottofondo.
>
> Prenderei un sintomo per volta e, dei due, questo mi sembra il piu'
> rintracciabile.
>
> La zxmmc+ decodifica 8 linee LSB dell'indirizzo di I/O, quindi A7:A0.
>
> Gli indirizzi utilizzati sono:
>
> $1F wr = chip select sd, rs-232 tx; rd = kempston
> $3F rd/wr spi data register (sd)
> $7F rd/wr memory paging
>
> $EF, $F7 rd/wr = robe IF1
>
> Se si attiva l'altoparlante vuol dire che viene fatta una scrittura I/O
> con D0 = '0', ma questo non e' necessario per nessuna delle porte
> utilizzate.
>
> Visto che hai le mani sul software, non e' che riusciresti a "tracciare"
> questo accesso?
>
> Ciao!
>
>
>

Other related posts: