Апогей-БК01 и Апогей-БК01Ц: Внешний ROM диск

Тема: Апогей-БК01 и Апогей-БК01Ц: Внешний ROM диск

  1. b2m сказал(-а):

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    будет использоваться две микросхемы ПЗУ по 512 Кб. И еще две микросхемы мэппера 555ТМ9 и 555ЛН1
    Зачем две ТМ9? Хватит и одной. Там же 6 флип-флопов. А тебе нужно только 5 (1Мб -> 20 линий адреса минус 15, которые берутся напрямую с ВВ55). И один инвертор, чтобы OE разрулить старшим битом адреса.
     
  2. vinxru сказал(-а):

    По умолчанию

    Да, именно так. Две микросхемы - это всего.

    Я бы уже сделал картридж, но хлорное железо внезапно испортилось и плата травилась аж 7 часов.
    Миниатюры Миниатюры
     
  3. vinxru сказал(-а):

    По умолчанию

    Тут еще не игровые программы для Апогея.
    http://emu80.org/files/s_3.zip
     
  4. vinxru сказал(-а):

    По умолчанию

    3 версия загрузчика.

    Принимаются предложения по доработке и расширению загрузчика
    Вложения
    Последний раз редактировалось vinxru; 17.11.2011 в 15:55.
     
  5. vinxru сказал(-а):

    По умолчанию

    Написал программу, которая разместила программы по страницам так, что бы меньше было неиспользуемого пространства. Я решил не размещать программу на двух страницах сразу. Т.е. на пересечении страниц. Весь перечисленный выше софт объемом 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.
     
  6. b2m сказал(-а):

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Написал программу, которая разместила программы по страницам так, что бы меньше было неиспользуемого пространства.
    Полным перебором делал или соптимизировал как? Мы в институте тоже делали на лабах разные проги оптимальной упаковки


    Цитата Сообщение от vinxru Посмотреть сообщение
    Основной загрузчик находится в начале нулевой страницы. В остальных страницах находится простенький загрузчик (35 байт) загрузчика из нулевой страницы.
    У меня была мысль, что неплохо бы перед таблицами программ сделать JMP на начало загрузчика, тогда догружать можно будет только таблицы, и делать это будет сам загрузчик. Т.е. дополнительного не потребуется.

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я знаю, что тут есть авторы эмуляторов РК86 компьютеров и вопрос к ним. Как прикрутить к эмулятору мою прошивку ПЗУ, что бы проверить загрузчик?
    Это ты про меня, что-ли?
    Я подумаю, можно ли сделать простым изменением конфига.
    Для аналогичного rom-диска Специалист-МХ2 потребовалось вводить дополнительные фичи.
     
  7. vinxru сказал(-а):

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    У меня была мысль, что неплохо бы перед таблицами программ сделать JMP на начало загрузчика, тогда догружать можно будет только таблицы, и делать это будет сам загрузчик. Т.е. дополнительного не потребуется.
    Не понял. У меня ничего не догружается. Единственный загрузчик предлагает список всех программ и загружает выбранную программу из любой страницы.

    Этот загрузчик находится в банке/странице 0. Может быть ситуация, когда пользователь хочет запустить загрузчик командами (R0,1000 G), а выбрана не нулевая страница. Тогда загрузится микро-загрузчик, который и переключит страницу и загрузит основной загрузчик. Но это маловероятно, так как нулевая страница устанавливается при перезагрузке компьютера.

    ---------- Post added at 12:37 ---------- Previous post was at 12:30 ----------

    Цитата Сообщение от b2m Посмотреть сообщение
    Полным перебором делал или соптимизировал как?
    Каждую программу мы сначала пытаемся записать в банк 0, потом в банк 1 и т.д. Такого алгоритма оказалось достаточно.
    Вложения
    Последний раз редактировалось vinxru; 17.11.2011 в 13:32.
     
  8. b2m сказал(-а):

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Не понял. У меня ничего не догружается.
    А я думал, ты подкаталоги будешь делать.

    С подключением твоей версии rom-диска не получилось. Надо новую фичу делать. Будет в следующей версии эмулятора (возможно даже сегодня).
     
  9. vinxru сказал(-а):

    По умолчанию

    А почему в твоем эмуляторе кнопка вверх совсем не кнопка вверх? Это которая в центральной части клавиатуры. Я понимаю, что на цифровой клавиатуре это имеет смысл, но на стрелках это как то не удобно.

    Добавил в свою программу, что код 0 - это тоже стрелка вверх.
    Последний раз редактировалось vinxru; 17.11.2011 в 15:05.
     
  10. vinxru сказал(-а):

    По умолчанию

    И теперь в цвете.
    Миниатюры Миниатюры