Go to the FreeLists Home Page Home Signup Help Login
 



Browse zxspectrum: This Month's ArchiveMain Archive PageRelated postsPrevious by DateNext by Date

[zxspectrum] Re: l'ardisco

  • From: Alfonso Martone <a.martone@xxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 2 Mar 2004 23:29:26 +0100
> Non appena sara' pronta l'interfaccia IDE, direi... :-)

Di quelle ce ne stanno a iosa, si diceva...


> A proposito, lo Z80 dispone di una istruzione per gestire il lock() ?

Questo e' l'infame problema dei semafori. Ho fatto i salti di gioia 
quando ho visto che sul QL c'era quella istruzione assembler 
"TAS" (test and set). Setta il byte indicato a 0xff, ma lascia i flags 
come se avesse verificato detto byte essere zero.

Sullo Z80 non c'e' niente del genere. Uno dovrebbe disabilitare gli 
interrupt e fare il test e poi riabilitare. Se il "semaforo" e' un 
punto su cui non si accavallano troppo interrupt, allora si potrebbe 
fare qualcosa del genere:

        ld hl, $7000
        inc (hl)
        jz lockok
        dec (hl)
        jp busy
lock: ; ... fai quel che devi fare ...
        ld hl, $7000
        dec (hl)

all'inizio metto $ff nella locazione $7000 (significa "semaforo verde"). 
Il primo che arriva, incrementa il valore (che va a zero e setta i 
flag). Se arriva qualcun altro nel frattempo (siamo sempre nell'idea 
degli interrupt non disabilitati), incrementera' a 01, 02, 03, etc. 
Ovviamente quando arriva il 255esimo, il valore ridiventa erroneamente 
zero (per questo, dopo un test fallito, e' necessario decrementare).

Quando la routine che ha fatto il "lock" termina, allora invece di 
decrementare, si limita a decrementare (non ipotizzo il metterci 
nuovamente un $ff perche' qualche altro task potrebbe essere rimasto a 
meta' strada tra il primo "inc" e il successivo "dec").


Other related posts:

  • [zxspectrum] l'ardisco
  • [zxspectrum] l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco
  • [zxspectrum] Re: l'ardisco




  • [ Home | Signup | Help | Login | Archives | Lists ]

    All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
    Everything else ©2008 Avenir Technologies, LLC.