(Note: a previous version of this question asked about the CAS instruction, that was added by Motorola from the MC68020; the original one is the TAS instruction).
TAS is the acronym for Test And Set, an instruction that is used to create multiprocessor-safe shared data structure. The MC680x0 instruction set reference describes its operation as:
Tests and sets the byte operand addressed by the effective address field. The instruction tests the current value of the operand and sets the N and Z condition bits appropriately. TAS also sets the high-order bit of the operand. The operation uses a locked or read-modify-write transfer sequence. This instruction supports use of a flag or semaphore to coordinate several processors.
The atomicity is realized via a special bus cycle that external peripherals must not break.
The official Amiga programming guidelines state that TAS must not be used on an Amiga as it can lock the machine. As far as I remember, the reason is that Agnus can't deal with this special cycle.
- Was this later fixed in one of the latter Agnus revisions (Fat Agnus, Super Agnus) and/or AA's Alice?
- Is is really only Agnus (or Denise/Lisa and Paula too) the culprit or are the "glue logic" chips (Gary, Fat Gary, Gayle, Buster, Super Buster, Bridgette, Ramsey...) responsible for it too?
- Does it affect all of the 24 bit original address space or just Chip RAM access (e.g., does it work in "Slow Fast" RAM? Does it work in the Zorro II address space?)
- Is the address space above the 16MB marker free of the problem?