недавно чета мысля в голову стукнула как можно сделать поддержку семафоров без запрета прерываний достаточно быстрым методом.
главная задача- в один шаг изменить значение запирающей общей ячейки памяти на "занято"
По-моему, можно гораздо проще, классическим способом. Проанализировал, вроде затыков быть не должно. Прошу всех проанализировать:

SEMAPH DB #80

LD HL,SEMAPH
SLA (HL)
JP NC,LOCKED
... do something ...
LD (HL),#80
JP ...

LOCKED ...