$FF to jest to samo co 0xFF, czyli zapis szesnastkowy liczby 255 - bo GM takowy obsługuje, chociaż w dokumentacji jest to w mało widocznym miejscu wspomniane. A & $FF to jest operacja and binarnie.
Zgodnie z zasadami algebry Boole'a, aby w liczbie wyzerować jakieś pozycje, należy wykonać operację AND, wstawiając zera tam gdzie zerujemy, a jedynki tam gdzie nie chcemy nic zmieniać. Ze względu na to jak działa and, tam gdzie jest zero w liczbie czy w masce, zawsze pozostanie zero, więc jeśli zero przejdzie przez maskę jedynki nadal pozostanie zerem, a jeśli jedynka przez maskę zera, to stanie się zerem. W związku z tym jedynki przejdą tylko tam gdzie liczba i maska mają jedynkę, a zera nadal pozostaną zerami mimo jedynkowej maski.
liczba 10101010
maska &00111100
wynik =00101000
Z kolei aby z jakiejś liczby przepisać jedynki do drugiej, wystarczy zrobić operację OR, czyli | - tam gdzie pojawi się jedynka której wcześniej nie było zostanie ona przepisana.
liczba 10101010
maska |00111100
wynik =10111110
Edit: pewnie to wiecie, ale tłumaczenie to dla tych co nie wiedzą :P