Не совсем
Стрелка вниз и F3 сейчас переставлены, но исключительно для удобства, чтобы стрелка вниз была стрелкой вниз в эмуляторе.
В связи с этим вопрос: стоит ли вернуть F3 на законное место (соответствующее стрелке вниз на доп. клавиатуре), или оставить всё как есть? Если клавиши-стрелки (которые обычные, а не на доп. клавиатуре) сделать стрелками в эмуляторе Апогея, то доп. клавиатуру можно сделать полностью соответствующей Апогею.
И извечный вопрос: куда вешать клавишу ПС?
х.з.
После того, как я все спаял, оказалось, что я неправильно развел разъем. 16-ый контакт к 1-ому, а 1-ый к 16-ому.
((((
Стал отпаивать разъем, расплавил разъем. В общем всё переделывать.
Я написал архиватор/разархиватор для 8080 уменьшающий (в сумме все программы) до 61% и использующий меньше 1 Кб памяти. Типа LZW со словарем в 256 слов (+256 фиксированных).
Теперь одной ПЗУ на 512 Кб хватит и не нужна ЛН1. Картридж будет содержать всего два корпуса.
Последний раз редактировалось vinxru; 18.11.2011 в 12:51.
Я всегда делаю так:
Это связано с тем, что псевдосистемах (Мониторах, Ордосах и прочих фактически не имеющих соглашений об интерфейсах вообще и кнопках в частности) - там пофиг что и где (все равно в каждой программе надо подбирать). А вот в CP/M таким образом размещенные кнопки более удобно попадают на соответствующие коды управления редактированием (генерируемые этими кнопками коды более-менее совпадают с комбинациями ctrl+key постраничного перемещения курсора и подобных)Код:Соответствие некоторых спецкнопок в эмуляторе (RK=PC): УСТ = Home ПС = End СТР = Ins ЗБ = BackSpace AP2 = Esc F1..F5 = F1..F5 Ctrl+G = Del Ctrl+R = PgUp Ctrl+C = PgDown РусLat = F8=F9=Scroll (т.е. пофиг - смотря как настроено в настройках эмулятора)
---------- Post added at 10:08 ---------- Previous post was at 10:05 ----------
Исходники опубликуешь? А сможешь допилить - сделать с настраиваемым размером словаря?
Последний раз редактировалось Error404; 18.11.2011 в 10:08.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Я писал этот распаковщик в 2:00, поэтому к оптимизации и стилю не придирайтесь. Жутко не выспался, но было жутко интересно.
Распаковщик написан так, что он обрабатывает данные блоками по 9 байт. Я буду загружать по 9 байт из внешней ПЗУ.
Кратко принцип работы можно описать так. В первом байте из 9 описывается, что значат следующие 8 байт. По биту на байт. Если бит = 0, значит надо просто записать этот символ в память. Если бит=1, значит надо взять слово из словаря (словарь 256 слов). А в словарь помещается каждый записанный в память символ или слово + следующий символ. То есть, если мы запишем в память последовательно "ABCDEF" то в словарь попадет "AB,BC,CD,EF". Если мы потом выведем первое слово из словаря AB и букву G, то в словарь попадет ABG.
Сейчас результаты такие:
Размер распаковщика 155 байт.
Память под переменные распаковщика 771 байт (из которых 768 словарь).
Игра "Гонки" упаковалась на 50%.
Архиватор RAR упаковал её на 38% (лучше).
Распаковка 32 Кб занимает меньше 4-х секунд.
Я вложил файл gonki_packed.rka (17 Кб). Там объединен разархиватор и архив игры. Оригинальный файл занимает 29 Кб. И это работает!
Загрузить, запустить G8004 (если эмулятор это не сделает за вас) и запустить игру G0.
Последний раз редактировалось vinxru; 18.11.2011 в 11:51.
"каждый записанный в память символ или слово + следующий символ"
Можно объяснить проще. В словарь помещается указатель на последний распакованный байт/слово. А то, что туда попадает следующий символ, это следствие. За распакованным байтом идет следующий распакованный байт.
Буду не против, если кто то оптимизирует код разархиватора 8080 за меня.
Последний раз редактировалось vinxru; 18.11.2011 в 12:01.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)