Я не догоняю, что ты имеешь в виду.
FD - это младший байт на ША? Или старший? Если младший, то он дешифрируется одинаково в обоих случаях из команд "OUT 0FBh, a" (формат i8080) и "LD BC, 0xxFDh; OUT (c), reg" (Z80, BC ставится на ША). Причем в первом случае, на ША(8..15) выдается содержимое регистра А. Т.е. комбинации команд
LD BC, 0BFFDh
OUT (C), a
и
LD A, 0BFh
OUT (0FDh), a
дадут одинаковый результат на шине адреса, и приведут к записи в муз. сопроцессор.
Регистр 0FDh надо в этом случае пользовать очень аккуратно (считать какие битики писать, а какие нет - чтобы не попасть в муз. сопроцессор), либо забыть про муз. сопроцессор. А музыкальные игрушки от ZX, кстати, будут этот регистр сбивать.
Если это старшая половинка, то к ней не обратиться короткой командой "OUT (0FDh), a" (имеем 2 команды из 5 байт вместо одной двухбайтовой) и почему тогда именно FD? Я подумал было что этот 0FDh, из неиспользуемых портов Орионовского диапазона F8 и выше (уже задействованы 0F8h, 0F9h, 0FAh, 0FBh, ..., 0FEh, 0FFh).





Ответить с цитированием