В ZX YSP 2 процессора( ADSP-BF532 и z80), но так как z80 подключен через GPIO BF, то работает он только тогда, когда этого хочет BF и как хочет. Поэтому при включении питания управление получает BF. Основная память загружается кодами для BF, а коды для z80 содержатся в ней как данные, кодами они становятся когда попадают через порты GPIO в циклах выборки инструкций z80. ПЗУ можно было бы не переписывать, если бы в нем не содержались коды, инициализирующие железо Спектрума и работающие с ним. Это железо ампутировано, а вместо него есть железо полностью с ним совместимое с точки зрения программистов. Память Спектрума и порты ввода/вывода отображены в части системной памяти. Диспетчер памяти будет реализован программно, поскольку MMU у BF не совсем полноценный. Что же касается бейсика, то переписать его на С следует по двум причинам:
1) на BF он будет раз в 20-50 быстрее выполняться;
2) его легче будет расширять.
Вставки машинного кода (и ассемблера) как для z80 так и для BF можно тоже реализовать. Любая инструкция прежде чем быть переданной на выполнение в z80 анализируется BF, и если это инструкции работающие с внутренностями z80 тупо на него передаются. Если же нет, то изымаются и запускают на выполнение нужные процедуры в BIOS компьютера. Их выполняет BF.




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