Регистры X и Y используются для индексной адресации (6502 богат в этом плане). Регистр S представляет собой указатель стека, при этом стек располагается по адресам 0x100 … 0x1FF (на первой странице).
Схематически регистры X, Y и S состоят из 8 одинаковых кусков-разрядов :
В основе каждого разряда лежит триггер, загрузка и выгрузка значений на шины осуществляется специальными управляющими командами.
Все команды, за исключением S/ADL и S/SB, принудительно отключаются во время PHI2.
В логической схеме не обойтись без tri-state буферов, как и в любом другом устройстве, связанном с шинами. Я не люблю использовать tri-state буферы в логических схемах, потому что они имеют "транзисторную" природу.
В частности регистры X и Y я сделал как постоянно открытые защелки (чтобы показать, что там хранится значение), но вход защелки селектируется двумя tri-state буферами.
Кто знает как называется девайс, аналогичный двум tri-state буферам с объединенным выходом - подскажите :)
Во время самого первого полутакта PHI1 значение выходной защелки равно 0, поэтому выход регистра S будет равен 0xFF. Это значение будет сидеть в регистре S до тех пор, пока оно не перегрузится новым значением, по команде SB/S.
Сделано это для того, чтобы указатель стека после включения питания был равен 0x1FF.
Симуляцию регистров необходимо рассматривать совместно с остальными девайсами нижней части, поскольку все вместе они создают потенциальный конфликт шин.