Галаксия

Материал из Emuverse
    Этот документ распространяется на условиях лицензии CC-BY-SA 3.0
Данная статья основана на материалах из Википедии. См. оригинал, список авторов
 
Файл:Me and Jova Regasek.png
Jova Regasek (с бородой) и Voja Antonić (справа) за сборкой прототипа

Galaksija (Галаксия) — самодельный 8-разрядный домашний компьютер, разработанный журналистом и изобретателем Во́йя А́нтонич (Voja Antonić, Сербия). Компьютер был описан в специальном выпуске «Компьютеры в вашем доме» («Računari u vašoj kući»)[1] популярного научного журнала Galaksija, опубликованном в декабре 1983 года в Белграде. Компьютер распространялся в форме комплекта «сделай сам», но его можно было собрать и полностью самостоятельно. Позже компьютер предлагался и в полностью собранном виде.

История

Файл:Galaksija.jpg
Обложка спецвыпуска журнала Galaksija, декабрь 1983 года

В начале 1980-х югославские законы препятствовали импорту компьютеров в страну[2]. Кроме того, даже самые дешёвые западные компьютеры того времени стоили несколько месячных зарплат югославского рабочего. По этим причинам, хотя многие и хотели бы иметь домашний компьютер, немногие могли это себе позволить; но когда могли — это был обычно ZX Spectrum либо Commodore 64. Но при этом в стране существовала развитая электронная промышленность, получение электронных компонентов с Запада тоже не было большой проблемой[2].

По словам самого Войя Антонич[3], отдыхая в гостинице города Рисан, он изучал документацию на процессор CDP1802 и думал о возможности формирования изображения средствами центрального процессора. Хотя CDP1802 и был для этого слишком примитивным, возможности Zilog Z80 казались для этого вполне достаточными. До возвращения в Белград у Войя уже была концептуальная диаграмма компьютера, процессор которого управляет генерацией изображения[3]. Конечно, такой подход сильно снижал производительность машины, зато значительно упрощал схему и уменьшал стоимость.

Следующим шагом было найти журнал, готовый опубликовать полученную схему. Очевидным выбором был журнал «SAM», публикуемый в Загребе, но учитывая предыдущий негативный опыт сотрудничества, пришлось искать другие варианты. Научно-популярный журнал «Galaksija» казался неподходящим, но оказалось что его редакция работает над специальным выпуском, посвящённым компьютерам[3]. Войя Антонич предложил автору выпуска, Де́ян Риста́нович (Шаблон:Нп4), опубликовать полные инструкции в духе «сделай сам». Специальный 100-страничный выпуск приложения «Компьютеры в вашем доме» вышел в декабре 1983 года (хотя и был датирован январём 1984-го)[1]. По словам самого Деян Ристанович, тираж в 30 000 экземпляров журнала был раскуплен за несколько недель, и его пришлось дважды допечатывать[4][5].

В декабре 1993 года на встрече в редакции журнала высказывались предположения о том, сколько компьютеров будет собрано по этим инструкциям. Говорилось о цифрах от нескольких сотен до тысячи (последнее предположение вызвало смех)[3]. Позже оказалось, что реальное количество заказанных комплектов компьютера превысило 8000[4]; число собранных компьютеров могло быть большим за счёт тех, кто не заказывал ни печатные платы, ни прошитые ПЗУ.

Цена набора для сборки в минимальной комплектации (только ПЗУ A, 4 КБ ОЗУ) в 1984 году составляла 45 500 динар[6].

Компоненты набора для сборки производились и поставлялись из различных источников: MIPRO и Elektronika, совместно с Институтом электроники и вакуумной технологии — поставляли печатные платы и клавиатуры; Mikrotehnika (Грац) — интегральные схемы; Войя Антонич лично прошивал все ПЗУ; сотрудники редакции журнала «Галаксия» готовили печатные материалы и организовывали рассылку заказчикам. Позже институт, ответственный за подготовку школьных учебников и пособий, совместно с Elektronika Inženjering начали массовое производство компьютеров «Galaksija» для поставки в школы[7].

Хотя «Galaksija» по своим возможностям и не сравним с коммерческими компьютерами того же времени, но он оказал важное локальное влияние[8]. Многие энтузиасты изучали работу компьютеров на этом примере — он оказался хорошим инструментом для изучения и экспериментирования.

Дальнейшее развития линейки продолжилось с появлением 5 функциональных прототипов, однако в связи с их уже моральным и техническим устареванием работы над ними прекратились в 1995 году[9].

Технические характеристики

Характеристики «Galaksija»[6][10]:

  • Центральный процессор: Zilog Z80A на тактовой частоте 3,072 МГц
  • Память: из адресуемого пространства в 64 КБ, первые 8 КБ отдаются под ПЗУ, остальные под ОЗУ
    • ПЗУ A: 4 КБ — загрузчик, видеогенератор, Galaksija BASIC[11]
    • ПЗУ B (опционально): 4 КБ — дополнительные команды Galaksija BASIC, ассемблер, монитор
    • ПЗУ знакогенератора: 2 КБ
    • ОЗУ: 2-6 КБ статического ОЗУ в базовой модели, расширяемое до 54 КБ
  • Видеорежим: только текстовый, 32 × 16 символов, монохромный
  • Псевдографика: 2×3 точки на символ, 64×48 точек всего
  • Клавиатура: 54 клавиши
  • Звук: отсутствует в первоначальной спецификации, но может быть получен через магнитофонный выход
  • Устройство хранения данных: бытовой кассетный магнитофон, скорость записи 280 бит/с
  • Интерфейсы:
    • Системный порт: 44 вывода
    • Порт магнитофона — DIN-разъём
    • Видеовыход в формате PAL — DIN-разъём, чёрно-белый видеосигнал
    • Высокочастотный видеовыход — RCA-разъём

Особенности

Galaksija BASIC

Galaksija BASIC — это интерпретатор языка BASIC, код которого частично основан на Microsoft Level 1 BASIC. После ряда изменений и улучшений, от оригинала остался только код реализации команд управления и код операций с числами с плавающей запятой[3].

Интерпретатор использовал 3 специальных символа и 33 зарезервированных слова[12]. ПЗУ B дополнял язык ещё одним спецсимволом и 22 командами (включая тригонометрические функции).

Интерпретатор BASIC выдавал лишь несколько сообщений об ошибках: WHAT? (синтаксическая ошибка), HOW? (неправильный параметр) и SORRY (не хватило памяти)[12] — это было сделано для экономии памяти ПЗУ. Некоторые стандартные команды BASIC были заменены (BYTE вместо PEEK/POKE, OLD вместо LOAD и др.) — с тем чтобы больше ключевых слов начиналось на разные буквы; интерпретатор позволял сокращать команды, записывая первую букву и точку (например, P. вместо PRINT).

Знакогенератор

Файл:Galaksija charset.png
Набор символов компьютера

Набор символов компьютера — несколько модифицированный (локализованный) вариант ASCII:

  • Буквы в нижнем регистре отсутствуют
  • Коды 91-94 соответствуют символам сербского языка: Č, Ć, Ž и Š. Буква «Đ» отсутствовала и обычно заменялась на «DJ»
  • 64 кода использовались для символов псевдографики в виде матрицы 2×3 точки
  • Коды символов 64 и 39 использовались в качестве двух половинок логотипа компании Elektronika Inženjering, который изображался перед приглашением «READY»

В ПЗУ знакогенератора каждый символ представлял из себя матрицу 8×13 точек.

Видео

Файл:2250 prezentacija p52.svg
Формирование видео

Компьютер не имел отдельного набора микросхем для формирования видеосигнала, вместо этого большую часть работы по формированию видеосигнала брал на себя центральный процессор, используя отдельный регистр сдвига. В начале 57-й строки полукадра срабатывало прерывание, в ходе обработки которого процессор формировал 208 строк изображения[2]. 512 байт ОЗУ использовалась для хранения символов, составляющих текущий экран. Процессор брал из знакогенератора байт очередной 8-пиксельной строки символа, и передавал его регистру сдвига, который, в свою очередь, побитно отдавал этот байт на видеовыход[2].

Примерно 2/3 процессорного времени использовалось для формирования изображения[6], что конечно сильно сказывалось на быстродействии машины. При записи и чтении данных с кассеты видеовыход отключался. В BASIC также была возможность отключать изображение для работы в «быстром» режиме.

Поскольку видеосигнал формировался программно, была возможность взять на себя формирование изображения, и некоторые программы пользовались этой возможностью[2], например, для вывода символов из собственного знакогенератора. Имея достаточно памяти даже без аппаратных переделок можно было выводить графику более высокого разрешения[13] — до 256×208 пикселей — это требовало 6144 байт под видеопамять.

Порт магнитофона

Кассетный вход был довольно простым и использовал лишь несколько элементов для контроля уровня входного сигнала. Получаемый в результате 1-битный сигнал подавался на ту же микросхему, что отвечала за клавиатуру, поэтому на программном уровне магнитофонный вход выглядел как последовательность быстрых нажатий/отпусканий клавиши.

Первоначально не предполагалось что компьютер будет выдавать звук, поэтому большинство программ не рассчитывали на это. Однако, выходной порт магнитофона можно было использовать в качестве 1-битного выхода на динамик[2].

Galaksija Plus

Galaksija Plus — улучшенная версия компьютера «Galaksija», разработанная Nenad Dunjić и Milan Tadić в 1985 году[6][14]. Целью было расширить возможности оригинальной машины, сохранив низкую стоимость и простоту сборки.

Отличия Galaksija Plus от Galaksija:

  • Вместо статического ОЗУ применено динамическое, объём ОЗУ расширен до 48 КБ
  • Скорость чтения/записи на кассету увеличена до 1200 бит/с
  • Помимо стандартного текстового режима, добавлен монохромный графический 256 × 208 пикселов
  • Звук: 3-канальный, с использованием микросхемы генератора звука AY-3-8912
  • Добавлено ПЗУ C — содержит код специфичный для Galaksija Plus, в частности, код для работы графического режима
  • Добавлено два параллельных порта ввода-вывода

Компьютер производился в Institute for School Books and Teaching Aids и продавался по цене в 140 000 динар[6].

Программное обеспечение

Код прошивок ПЗУ, а также другие программы для компьютера были опубликованы в серии выпусков «Компьютеры в вашем доме» журнала Galaksija, в виде шестнадцатеричных дампов. Помимо этого, программы и статьи о компьютере публиковались в журналах «Svet Kompjutera» и «Moj Mikro»[15].

Пользователи также создавали программы и обменивались ими, всего библиотека программ насчитывает более 100 наименований, большая часть которых — игры[16][17].

В середине 1980-х программы для компьютера в течение трёх лет транслировались по «Радио Белград» в программе «Ventilator 202»[8][5].

Эмуляция

Существует ряд программных эмуляторов компьютера Galaksija:

  • Galaxy Win — эмулятор компьютера под Windows[18]
  • Galaxy — эмулятор под DOS[19]
  • Мультисистемный эмулятор MAME содержит драйвера galaxy и galaxyp
  • Galaksija Emulator для компьютера ZX Spectrum 128K[20]

Также существуют и аппаратные реплики компьютера на более современной элементной базе:

  • μGalaksija — «Galaksija» на FPGA[21]

Примечания

  1. 1,0 1,1 Magazine Scans — Računari — 1984 Januar #1 — первый выпуск приложения «Компьютеры в вашем доме» к журналу Galaksija
  2. 2,0 2,1 2,2 2,3 2,4 2,5 The Ultimate Galaksija Talk(англ.) — лекция Tomaž Šolc 30 декабря 2012 на Chaos Communication Congress с подробной презентацией о Galaksija, Шаблон:Youtube
  3. 3,0 3,1 3,2 3,3 3,4 1983: Galaksija (копия из веб-архива) — воспоминания Voja Antonić, на сербском
  4. 4,0 4,1 Dejan Ristanović Computers in your home(англ.)
  5. 5,0 5,1 Lewis Packwood The story of Yugoslavia's DIY computer revolution(англ.) EuroGamer.net.
  6. 6,0 6,1 6,2 6,3 6,4 Galaksija(англ.) Old-Computers.com.
  7. «Galaksija» u školi — «Галаксия» в школе, на сербском
  8. 8,0 8,1 Bruce Sterling Dead Media Beat: the Yugoslav Galaksija PC Wired.  — журналист Wired цитирует статью: Lily Lynch Galaksija, cult Yugoslav DIY computer from the 1980s lives on
  9. Югославский DIY-компьютер: история одной революции senica.ru.
  10. Voja Antonic Napravi i ti racunar "Galaksija"  — страница журнала с техническими характеристиками компьютера
  11. Tomaz Solc Assembly File Listing to generate 4K "ROM A" for Galaksija microcomputer(англ.)  — частично дизассемблированное ПЗУ A
  12. 12,0 12,1 Uputstvo za upotrebu — руководство пользователя, на сербском
  13. Шаблон:YouTube — демонстрация графики высокого разрешения на Galaksija
  14. Nenad Balint Nas Test: Galaksija Plus Svet Kompjutera.
  15. Magazine Scans — сканы журналов Svet Kompjutera, Racunari и Moj Mikro
  16. Коллекция программ для Galaksija / Galaksija Plus
  17. TOSEC: Galaksija Galaksija (2012-04-23)(англ.) The Internet Archive Software Collection.
  18. Galaxy Win(англ.) — эмулятор компьютера под Windows
  19. Galaxy — эмулятор компьютера под DOS
  20. Galaksija Emulator (2007) WorldOfSpectrum.org.  — эмулятор компьютера на ZX Spectrum 128K
  21. μGalaksija — реплика «Galaksija» на FPGA

Ссылки