Важная информация
RSS лента

vinxru

Апогей БК01

Рейтинг: 5.00. Голосов: 3.
Процессор: КР580ВМ80А 1,77Мгц (клон Intel 8080)
ОЗУ: 52 Кб.
Звук: 3-х канальный генератор КР580ВИ53 (клон Intel 8253)
Видео: Текстовый режим от 64x25 8 цветов, псевдографические 128x50, 192x128 8 цветов.
Выпущен: 1988 год.

Апогей БК-01 - это усовершенствованная версия компьютера Радио 86РК. В этом компьютере так же стоит процессор КР580ВМ80А работающий на частоте 1.77 Мгц, объем памяти увеличен с 32 до 52 Кб, добавлен альтернативный знакогенератор для псевдографического режима 192x104 и добавлен 3-х голосый музыкальный синтезатор КР580ВИ53.

Из за изменения адресов устройств компьютер потерял совместимость с оригинальным Радио 86РК.

ПЗУ компьютера содержит небольшую программу Монитор, которая позволяет загружать/сохранять программы на магнитофон, просматривать/изменять оперативную память. Еще ПЗУ содержит программу тестирования оперативной памяти. Встроенного Бейсика нет.

В компьютере Апогей БК01Ц добавили цветные видеорежимы. Видео контроллер любого Радио 86РК, то есть микросхема КР580ВГ75 поддерживает цвет (точнее атрибуты). На трех ножках микросхемы всегда находится готовый цвет символа. Но ради простоты схемы и удешевления компьютера эти выводы во многих компьютерах не были использованы.

Эту микросхему придумали в Intel, только у них она называлась Intel 8275 и придумали плохо. В видеопамяти размещается специальный символ, который изменяет цвет всех последующих символов, а сам отображается как пробел. В таком режиме особо не порисуешь. Есть еще режим, в котором символ изменяющий цвет не отображается, на его место встает следующий символ, на место следующего, следующий за следующим и так по цепочке. Адреса всех последующих символов сдвигаются и хрен поймешь, по какому адресу в памяти записать символ, что бы он бы в нужных координатах на экране.

При этом, в строке может быть не более 16 изменений цвета. Не было бы этого ограничения, мы бы просто записали код цвета перед каждым символом. Но нельзя, мучайтесь!

Компьютер Апогей БК-01Ц позволял использовать 8 цветов для символов на черном фоне. Либо 8 цветов фона с черными символами.

Псевдографический режим 192x104 8 цветов позволял достичь графики сравнимой с ZX Spectrum. Черно-белое разрешение у ZX Spectrum конечно больше 256x192, но цветное всего 32x24, против 64x64 (в худшем случае 16x64) у Апогея.

Я попробовал порисовать на Апогее:

[IMG]http://cs616523.vk.me/v616523349/578d/kjbdsr_FypM.jpg[/IMG]

[IMG]http://cs616523.vk.me/v616523349/575e/xZ2oEq2Rj2c.jpg[/IMG]

[IMG]http://cs616523.vk.me/v616523349/5765/Siuax26TGnU.jpg[/IMG]

[IMG]http://cs616523.vk.me/v616523349/576c/nPukvq4WKM0.jpg[/IMG]

У видеоконтроллера была хорошая особенность. Он позволял в качестве видеопамяти использовать любой участок адресного пространства. И в теории разделить экран по вертикали на две части и независимо выбирать для них видеопамять. А это нам позволяет использовать вертикальный и горизонтальный скролл и несколько видеостраниц.

Но с вертикальным скроллом я видел всего одну игру (Gonki). Да и вообще графических игр для Апогея всего несколько штук.

[IMG]http://cs616523.vk.me/v616523349/5794/bZAnWE_eeE4.jpg[/IMG]

Я попробовал написать демопрограмму использующую горизонтальный скролл

[video=youtube;WTJCjbTE2eI]https://www.youtube.com/watch?v=WTJCjbTE2eI[/video]

Видеоадаптер во время чтения ОЗУ непредсказуемо притормаживал процессор, поэтому время выполнения программы рассчитать было невозможно. А это необходимо для корректной работы программы загрузки с магнитофона. Поэтому во время загрузки с магнитофона, видеоконтроллер отключался и пользователь видел лишь мигающий курсор на черном экране. Пользователь не знал, началась ли загрузка и что именно загружается.

Видеоконтроллер помимо вывода картинки так же регенерировал динамическое ОЗУ компьютера, поэтому программа загрузки с магнитофона должна была сама регенерировать ОЗУ.

[SIZE=4]Картридж со всеми программами[/SIZE]

Компьютер Апогей умеет запускать программы из ПЗУ подключенного к порту расширения. Я разработал картридж объемом 512 Кб всего на одной микросхеме 49F040. При этом мне сильно помогали b2m, Titus, ESL. На этот картридж поместились все известные программы для компьютера Апогей.

[IMG]http://cs616523.vk.me/v616523349/577e/U2boBLzHVjQ.jpg[/IMG]

Исходники: [url]https://github.com/vinxru/Apogey_BK01_Rom_Disk/tree/master/49lf0x0[/url]

Микросхемы 49LF040 части встречаются на (мертвых) современных материнских платах.

Компьютер Апогей при загрузке программы из 49LF040 дублирует каждый байт. И поэтому нам пришлось писать программу для этой ПЗУ в которой каждый четный байт равен нечетному. Эта программа все еще вызывает у меня улыбку :)

Вторая версия картриджа была на основе двух микросхем: 555ТМ9 и любой стандартной ПЗУ.

[IMG]http://cs616523.vk.me/v616523349/573f/tkmcsLLBBjY.jpg[/IMG]

Исходники: [url]https://github.com/vinxru/Apogey_BK01_Rom_Disk/tree/master/std_rom[/url]

Обе модели ROM дисков содержат меню со списком программам, с папками и условной расцветкой, а сами программы хранятся заархивированными.

[IMG]http://cs616523.vk.me/v616523349/5747/FD1tA2IWaHY.jpg[/IMG]

Человек с ником b2m доработал свой эмулятор древних компьютеров под обе модели ROM-дисков, что бы мне было проще разрабатывать. Так же он оптимизировал разархиватор MegaLZ для процессора Intel 8080 так, что загрузка и разархивация сжатого файла занимает столько же времени, сколько загрузка несжатого файла стандартными средствами. Так же люди Titus, ESL помогали идеями и исходниками.

Если в меню ROM диска нажать A, то вы увидите их ники.

[SIZE=4]Контроллер SD[/SIZE]

А в итоге родился SD-контроллер на микроконтроллере ATMega8.

[IMG]http://cs616920.vk.me/v616920349/79ce/eV5hiUzD1Jc.jpg[/IMG]

[IMG]http://cs616920.vk.me/v616920349/7622/Mtb-LSVYga0.jpg[/IMG]

[IMG]http://cs616920.vk.me/v616920349/7117/2DW-lcy5Ty8.jpg[/IMG]

Исходники: [url]https://github.com/vinxru/86RKSD[/url]

Зачем микроконтроллер? Почему бы просто карту памяти не подключить? А вот зачем:

Где то надо хранить программу, которая будет работать с картой памяти. Программа прошитая в ПЗУ компьютера умеет загружать программы только с магнитофона или ПЗУ подключенного к параллельному порту.

Микроконтроллер будет эмулировать внешнее ПЗУ. После включения компьютера, микроконтроллер читает с карты памяти файл и притворяется ПЗУ содержащим эти данные. Компьютер копирует эти данные в память и запускает.

Это только первый этап работы. Дальше пользователь должен увидеть список файлов на экране и иметь возможность как минимум запустить нужный файл. Это уже не эмуляция ПЗУ, это весьма сложная программа, которую раньше называли - дисковая операционная система.

Эта система заняла бы половину памяти компьютера, это бы не позволило запустить большинство программ. И система бы работала бы очень медленно. И сбой компьютера мог бы привести к уничтожению данных на флешке.

Поэтому я решил разместить операционную систему в микроконтроллере. Это быстрее, надежнее и это экономит ресурсы компьютера.

У микроконтроллера ATMega8 всего 1 Кб ОЗУ и 8 Кб ПЗУ. Мне пришлось сильно напрячь голову, что бы написать ОС способную работать на таких скромных объемах.

А еще пришлось написать оболочку типа Norton Commander и компилятор Си.

Обновлено 24.05.2016 в 20:55 vinxru

Метки: Нет Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для helcril
    Спасибо за статью о моем первом компьютере! Правда опыт с ним был не слишком удачным, он почему-то почти сразу сломался. Но тем не менее всегда буду помнить его и первые впечатления от собственного(!) компьютера.
  2. Аватар для Бука
    псевдоготического - очепятка?
  3. Аватар для vinxru
    [QUOTE=Бука;bt378]псевдоготического - очепятка?[/QUOTE]

    Firefox считает. что так правильнее.

    [IMG]http://cs633628.vk.me/v633628349/292f7/iEk5SIApn8Q.jpg[/IMG]