[zxspectrum] IF1 e bit "WAIT"

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 25 Mar 2007 18:36:48 +0200

Ciao a tutti, sto studiando il funzionamento della IF1 in merito al network.

E` tutto abbastanza chiaro, salvo l'effetto del bit "WAIT" (D5 sul port $EF), che viene posto a "0" prima della ricezione di ciascun byte dal network. Non c'e' nessun pin associato a questo bit e la linea di trasmissione e` semplicemente un filo comune ad emettitore aperto.

Qualcuno conosce l'effetto di questo strano bit? Riporto uno stralcio del loop di ricezione, in cui si vede l'output sulla porta $EF, all'indirizzo 0FA2:

Now the block is received.



0F9D  INPAK-2    LD    B,E                B holds the length of the block.

0F9E  INPAK-L    LD    E,+80              Set a marker into bit 7.

0FAI LD A,+CE Make Wait and CTS having a low level,

0FA2             OUT   (+EF),A            enable network comm.

0FA4 NOP Wait 48 T cycles at the start of each

0FA5             NOP                      byte.

0FA6             INC   IX

0FA8             DEC   IX

0FAA             INC   IX

0FAC             DEC   IX

0FAE  UNTIL-MK   LD    A,+00              Wait 7 T cycles.

0FB0             IN    A,(+F7)            Get a bit into carry

0FB2             RRA                      flag.

0FB3             RR    E                  Shift the bit into E.

0FB5             JP    NC,0FAE,UNTIL-MK   Repeat for 8 bits.

0FB8             LD    (HL),E             Store the received byte.

0FB9             INC   HL                 Point to next location.

0FBA             DJNZ  0F9E,INPAK-L       Get next byte.

0FBC CP A Return with zero flag set to signal

0FBD             RET                      'successfully read'.


Ciao e grazie!


Other related posts: