[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] Fix wrong size of outgoing packets in the FEC driver



Am 04.09.2014 um 21:47 schrieb Vincent Rivière <vincent.riviere@freesbee.fr>:
> 
> TAS is very special as it is the only instruction causing a read-modify-write cycle. I don't know precisely what that means, but it seems to be something very specific on the address and data bus.
> 
> For an unknown reason, it does not work as expected on the FireBee. I don't know exactly what is different, but any code using TAS on the FireBee behaves bad. Probably some hardware thing at the bus level. I was also surprised to find "never use TAS on Amiga" in Commodore hardware docs.
> 
> -- 
> Vincent Rivière
> 
> 

TAS makes sense in a multi-process (not necessarily multi-processor) environment. Since it does an atomic read and write within one instruction and thus can’t be interrupted, it’s ideal for task synchronisation (read a lock and set it, if free -> semaphore). Actually, I wouldn’t have the slightest idea how to implement user mode threads without it, so I was wondering why it wouldn’t work on the Firebee.