Да, именно так. Две микросхемы - это всего.
Я бы уже сделал картридж, но хлорное железо внезапно испортилось и плата травилась аж 7 часов.
Тут еще не игровые программы для Апогея.
http://emu80.org/files/s_3.zip
3 версия загрузчика.
Принимаются предложения по доработке и расширению загрузчика
Последний раз редактировалось vinxru; 17.11.2011 в 15:55.
Написал программу, которая разместила программы по страницам так, что бы меньше было неиспользуемого пространства. Я решил не размещать программу на двух страницах сразу. Т.е. на пересечении страниц. Весь перечисленный выше софт объемом 670 Кб поместился в 672 Кб ПЗУ. То есть используется 21 страница из 24-х при использовании двух ПЗУ на 512 Кб и 256 Кб . Дома посмотрю, откуда я взял еще 80 Кб программ.
Основной загрузчик находится в начале нулевой страницы. В остальных страницах находится простенький загрузчик (29 байт) загрузчика из нулевой страницы.
ld a, 90h
ld hl, 0EE03h
ld (hl), a
; Выбор нулевого банка ПЗУ
dec hl
dec hl ; hl = 0EE01h
xor a
ld (hl), a
inc hl ; hl = 0EE02h
ld (hl), a
ld a, 80h
ld (hl), a
xor a
ld (hl), a
; Загрузка из ПЗУ
ld hl, 0 ; Старт ПЗУ = 0
ld de, 0FFFh ; Стоп ПЗУ
ld bc, hl ; Старт ОЗУ = 0
push bc ; Адрес возврата 0. Запуск загруженной программы.
jp 0FA68h ; Функция загрузки из ПЗУ
Я знаю, что тут есть авторы эмуляторов РК86 компьютеров и вопрос к ним. Как прикрутить к эмулятору мою прошивку ПЗУ, что бы проверить загрузчик? Там алгоритм простой. Порты 0EE00h = это шина данных ПЗУ, порты 0EE01h, 0EE02h = это 15 бит шины адреса ПЗУ. При записи 1 в старший бит порта 0EE02h, из порта 0EE01h в регистр верхних адресов копируется 5 бит, которые используются для адресов ПЗУ A15-A19.
Последний раз редактировалось vinxru; 17.11.2011 в 15:29.
Полным перебором делал или соптимизировал как? Мы в институте тоже делали на лабах разные проги оптимальной упаковки
У меня была мысль, что неплохо бы перед таблицами программ сделать JMP на начало загрузчика, тогда догружать можно будет только таблицы, и делать это будет сам загрузчик. Т.е. дополнительного не потребуется.
Это ты про меня, что-ли?
Я подумаю, можно ли сделать простым изменением конфига.
Для аналогичного rom-диска Специалист-МХ2 потребовалось вводить дополнительные фичи.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Не понял. У меня ничего не догружается. Единственный загрузчик предлагает список всех программ и загружает выбранную программу из любой страницы.
Этот загрузчик находится в банке/странице 0. Может быть ситуация, когда пользователь хочет запустить загрузчик командами (R0,1000 G), а выбрана не нулевая страница. Тогда загрузится микро-загрузчик, который и переключит страницу и загрузит основной загрузчик. Но это маловероятно, так как нулевая страница устанавливается при перезагрузке компьютера.
---------- Post added at 12:37 ---------- Previous post was at 12:30 ----------
Каждую программу мы сначала пытаемся записать в банк 0, потом в банк 1 и т.д. Такого алгоритма оказалось достаточно.
Последний раз редактировалось vinxru; 17.11.2011 в 13:32.
А почему в твоем эмуляторе кнопка вверх совсем не кнопка вверх? Это которая в центральной части клавиатуры. Я понимаю, что на цифровой клавиатуре это имеет смысл, но на стрелках это как то не удобно.
Добавил в свою программу, что код 0 - это тоже стрелка вверх.
Последний раз редактировалось vinxru; 17.11.2011 в 15:05.
И теперь в цвете.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)