Не прошло и 2 года, как я АЛУ в это поделие вделал!
УвеличитьАЛУ последовательного типа, но на скорость работы это никак не повлияет.
Что параллельное АЛУ, что последовательное в этой системе выполняют
операцию
за 4 такта.
АЛУ реализует следующие операции:
На мой взгляд, набор довольно развитый, при этом я всё еще умещаюсь на одном экране проекта.
И хотя я не сосчитал еще число корпусов, но на взгляд всё ещё бюджетно и -
по-нищебродски...
Чего я ввиду
нищебродскости решил не реализовывать:
CMP,
RAL и
RAR - сильно распирают скромную схемотехнику.
Но попробовать можно - кардинальных препятствий для этого нет.
Наиболее трудно мне дались
CMC и
SBB с учетом сохранения схемотехнической простоты.
Но в итоге довольно оригинально извернулся сделать инверсию флага переноса только
на первом сдвиге из 4-х...
Ввел несколько необычную команду
SFA -
Set Flags on A (выставить флаги по
регистру А:
это по сути - операция сложения
регистра А с нулём и установкой флагов.
Введена, чтобы быстро оценить значение, считанное из порта, не изменяя его.
В привычном нам 580ВМ80 это нетрудно сделать через
ORA A, к примеру.
В этом процессоре такой возможности нет: все операции выполняются между
регистром-аккумулятором А и
буферным регистром В, или между
А и
0,
А и
1.
Большую схему и весь проект пока не выкладываю - надо погонять на ошибки.
И САМОЕ ГЛАВНОЕ - Я-ТАКИ СОКРАТИЛ ОДНУ БИС СТАТИЧЕСКОГО ОЗУ!!! Содержимое ПЗУ микрокоманд кардинально изменилось, но
мой бинарный редактормне очень в этом помог. Работать было удобно, ошибок пока не обнаружилось!
Проект потихоньку продолжаю, и собираюсь в обозримом будущем завершить... если
не случится каких-либо ненужных форсмажоров...