С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
И где это вот. О чем тема не понятно. Где фото, инфа?
Последний раз редактировалось Mick; 01.03.2013 в 10:52.
Ух ты! Только вчера об этом думал. И тут на тебе. Уже придумали. :-)
Да особо и думать не пришлось.Все оказалось проще чем думалось. Для переделки потребовалось только одна 555ЛЕ1 и один инвертор. Приведу все в порядок и выложу.
---------- Post added at 09:59 ---------- Previous post was at 09:54 ----------
Причем что хорошо - прекрасно работает Z0840004, которая в Орионе работать не захотела. А их у меня хоть и не большая, но куча.
---------- Post added at 10:06 ---------- Previous post was at 09:59 ----------
Да, еще звук придется делать на ВИ53.
---------- Post added at 10:21 ---------- Previous post was at 10:06 ----------
http://s019.radikal.ru/i609/1303/b7/f395465b3ab3.jpg
Для Z80 надо монитор переделывать.
Этот код будет неправильно выполняться:
Код:ROM:FCCC ld a, (7604h) ROM:FCCF dec a ROM:FCD0 jp m, loc_FCEE ROM:FCD3 jp z, loc_FD65 ROM:FCD6 jp po, loc_FD73 ROM:FCD9 ld a, c ROM:FCDA sub 20h ; ' '
Понятно. Спасибо. Ошибка возникла из-за того, что я использовал RK-DOS не на РК86, где код в ПЗУ, а на ОРИОНЕ, где код в ОЗУ и никаких ПДП нет. А экономить объём кода приходилось, чтобы выиграть TPA, т.к оконный драйвер занимает до 12 кб, RK-DOS 5 кб и экран ОРИОНА - 12 кб, что оставляет совсем мало места для программ, так что я экономил везде где мог. Естественно, для 80x86 самомодифицирующийся код считается неприличным, но на КР580/Z80 это повсеместно используется и считается нормальным, хотя и существенно затрудняет получение полноценного исходника примитивным дизассемблером (на IDA с этим проще, хотя время на получение полноценного исходника отнимает больше).
В моих неполноценных эмуляторах РК86 этот дефект было никак не обнаружить, т.к в одном моём эмуляторе вообще ничего невозможно выше 8000 (там код самого эмулятора), а в другом по адресу E000 - ОЗУ, а БИС ПДП вообще нигде и никак не эмулируется. Ведь ПДП для программ незаметен, отчего эмулировать его и не требуется - предполагается, что режим 78*30 "устанавливается сам по себе" (это изменить можно только вручную настроив параметры эмулятора). Для игр неиспользующих псевдографику этого хватало.
Если кому-то интересно, то я перетранслирую выложенную ранее версию для ОЗУ, так чтобы она работала и в ПЗУ (достаточно перенести все рабочие ячейки ниже 76D0, отчего код слегка разбухнет). Думаю, что никому RKDOS для Z80 "не горит", т.е не к спеху. Сейчас я занят, потому смогу сделать исправление через сколько-то дней.
- - - Добавлено - - -
https://yadi.sk/d/v_otxL6V3HMFgz - это исправленное вложение (RKDOS Z80, ужатая в 4 кб) из поста http://zx-pk.ru/threads/20887-radio-...l=1#post898490
как реакция на ошибку в коде RKDOS, которую нашел Pyk и описал в предыдущем посте. Здесь я изменил только адреса рабочих ячеек, что ранее были прямо в теле DOS (отчего этот код не мог работать в ПЗУ, только в ОЗУ).
Теперь эти ячейки перенесены в ОЗУ. Использованы ячейки:
POS - 762E, это ячейка флаг инверсии с МГ, явно не используется во время работы в RK-DOS, и
PSKFLG - 760C, это ячейка, которая вообще не используется в ПЗУ РК86 (забытая ячейка).
Последний раз редактировалось barsik; 25.04.2017 в 23:32.
Blade, Не знаю, но этот фрагмент относится к процедуре вывода символа на экран по п/п F809, и вроде как пока работает.Но еще не вечер, разберусь.
хм. а как же система команд ? у них идентичные коды ?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)