AVR‐ChipBasic - современный ретро‐компьютер

AVR Chip BasicВремя идёт, и раритетных компьютеров становится всё меньше и меньше. Какие-то ломаются, какие-то разбираются на запчасти, а какие-то просто выкидываются. К сожалению, этот процесс не остановить – ничего вечного нет.
Но если взять и придумать такой компьютер, который по всем параметрам походил бы на ретро-компьютеры, но был сделан на современной элементарной базе? И такой компьютер есть – это AVR ChipBasic.
1. Предисловие
AVR ChipBasic – серия радиолюбительских компьютеров, разработанных немецким инженером Йоргом Вольфрамом (Joerg Wolfram). Все они представляют собой компьютеры, собранные всего на одной микросхеме – микроконтроллере фирмы Atmel AVR. В этих компьютерах микроконтроллер выполняет функции видеоконтроллера, контроллера клавиатуры, звукового генератора, бейсик-интерпретатора и других устройств, которые в обычных компьютерах состоят из множества микросхем. Серия AVR-ChipBasic состоит из четырёх моделей.
1. Младшая. Основана на микроконтроллере AtMega8, содержит 1 КБ ОЗУ, 8 КБ ПЗУ. Имеет встроенный интерпретатор языка TinyBasic, генерирует чёрно-белое изображение с разрешением 180*230, подключается к композитному входу телевизора (тюльпану).
Games on AVRChipBasic

2. Первая средняя. Основана на микроконтроллере AtMega16, содержит 2 КБ ОЗУ, 16 КБ ПЗУ. Имеет расширенный интерпретатор бейсика. Выводит цветное изображение (8 цветов) с разрешением 180*230. Имеет знакогенератор без строчных букв.
GAmes on AvrChipBasic

3. Вторая средняя. То же, что и первая средняя, только на микроконтроллере AtMega32 и с полным знакогенератором.
4. Старшая. Самая мощная модель.
Основана на микроконтроллёре AtMega644, содержит 8 КБ ОЗУ, 64 КБ ПЗУ. Имеет мощный встроенный интерпретатор бейсика. Генерирует цветное изображение (16 цветов) разрешением 180*230 Единственная из моделей, которая поддерживает тригонометрические функции и графический режим. Все эти компьютеры распространяются свободно по лицензии GNU GPL, на официальном сайте представлены схемы, прошивки и исходники.
Games on AvrChipBasic

Сейчас мы более подробно рассмотрим младшую модель компьютера AVR ChipBasic.
2.Общее описание
Младшая модель компьютера AVRChipBasic, как уже говорилось ранее, состоит из всего одной микросхемы – микроконтроллера AtMega8 фирмы Atmel, и поэтому возможности этого компьютера будут определяться возможностями микроконтроллера. Компьютер имеет 1 КБ ОЗУ, 8 КБ FLASH?памяти, в которой хранится интерпретатор бейсика и 512 байт EEPROM, в котором хранится запускаемая программа. Единственный видеорежим компьютера – текстовой 30*23 символа, где каждый символ размером 6*10 точек, и поэтому общее разрешение экрана 180*230 пикселей. Изображение выводится на обычный бытовой телевизор, который подключается к компьютеру по композитному входу.
Также, в компьютере AVR?ChipBasic предусмотрено подключение внешнего дискового модуля на микросхеме 24с16, в которую помещается четыре программы. Ещё компьютер умеет воспроизводить звук через бипер, соединятся с ПК через последовательный порт для обмена программам и управлять внешними устройствами через 4 линии ввода-вывода.
По характеристикам этот компьютер очень похож на компьютеры 70-80-ых годов. Вот в таблице приведены сравнительные характеристики компьютера AVR-ChipBasic и других ретро-компьютеров.
AvrChipBasic

Как видно из таблицы, этот микрокомпьютер больше всего похож на компьютер ZX80, у него, как и у AVR ChipBasic’a, 1 КБ ОЗУ, 8 КБ ПЗУ, чёрно-белый экран и самое главное, видео тоже формируется центральным процессором, а не отдельной схемой видеогенератора. Причём вычисления проводятся в свободное от генерации видео время, а не наоборот, как у ZX80.
Также компьютер умеет воспроизводить звук. Есть два типа звука: первый похож на звук «бим», а второй – на звук «пшш», причём первый звук может делать разной высоты.
3.Особенности конструкции
Схема компьютера проста, как молоток: она состоит из микроконтроллера и небольшой обвязки резисторов и конденсаторов.
Для соединения компьютера с ПК используется аналог микросхемы MAX232 на двух транзисторах.
Схема компьютера
Схема микроконтроллера AVRChipBasic

Единственное, что можно добавить к схеме, это что резистор 330 Ом, который стоит перед видеовыходом, следует заменить на 800 Ом, тогда изображение станет более чётким.

Собранный микроконтроллер

Отдельное слово хочется сказать о прошивке микроконтроллера. В архиве находится несколько прошивок, нам надо выбрать cb8_050_mega8_kbd?en_pal.hex, которая находится в папке mega8
Компьютер собирается на печатной или макетной плате. Для него нужен источник питания 5 вольт, для этого можно взять БП от ПК форм фактора ATX, но лучше для этих целей подойдёт зарядка от телефона и стабилизатор 7805.
4.Особенности работы
После сборки и включения компьютера на экране на несколько секунд появляется логотип компьютера. Пока он находится на экране, надо нажать какую-нибудь кнопку, тогда запускается редактор программ, иначе – происходит автозапуск программы из EEPROM.

Программирование на AVRChipBAsic
После открытия редактора можно сразу приступать к написанию программ. В любой момент времени на экране находится вся программа, прокрутки экрана нет. Также нет функции переноса строк, то есть при нажатии клавиши Enter строки смещаются на одну вниз, а курсор просто перемещается к началу следующей строки.
При редактировании есть несколько горячих клавиш:
F1 – Загрузить программу из EEPROM
F2 – Изменить название программы
F3 – Открыть диалог для работы с дисковым модулем
F4 – Запуск программы
CTRL+ALT+DEL – Перезагрузка
CTRL+C – Остановить выполнение программы
CLRL+P – Отправляет скриншот по последовательному порту
А теперь мы рассмотрим одну интересную особенность этого компьютера: посмотрите сами, экранная область занимает 690 байт памяти (30*23) и программа 500 байт (20 строк по 25 символов). Это вместе получается 1190 байт, но как это может быть, ведь памяти у микроконтроллёра всего 1024 байта. К тому же нужно ещё несколько байт для системных переменных. А сделано всё вот так хитро: во время редактирования программа находится в видеопамяти и не занимает дополнительного места. После нажатия кнопки F4 программа копируется из видеопамяти в EEPROM, а видеопамять очищается. Далее, программа интерпретируется уже не из ОЗУ, а из EEPROM.
После завершения программы она снова копируется в видеопамять, и можно продолжать редактировать.
Такое положение дел позволяет сэкономить память, но ведёт к другим неудобствам.
Дело в том, что EEPROM поддерживает всего 100000 циклов перезаписи. Это значит, что если каждый день делать по 100 запусков, то через три года микросхема сгорит. К счастью, у компьютера есть небольшая защита: перед тем, как переписывать программу в ППЗУ, она сравнивается с той, что уже там находится, и если они равны, то программа не переписывается.
После завершения работы программы в правом нижнем углу появляется надпись PRESS ESC!. Если программа запускалась клавишей F4, то откроется редактор, а если же программа запускалась автозапуском, то она перезапустится.
5.Бейсик
Компьютер AVR?ChipBasic имеет встроенный интерпретатор языка бейсик. Для экономии памяти используется его диалект Tiny Basic, который не очень сильно отличается от обычного бейсика. Сейчас мы рассмотрим главные особенности этого языка.
Первое, что сразу бросается в глаза, – это сокращённые команды. Вместо GOTO используется GO, вместо GOSUB – SUB, вместо NEXT – NXT. Некоторые команды вообще заменены символами. Например, команда ?@2,2;%17 означает вывести в координатах 2, 2 символ номер 17 (кружок). Это делает программы на этом бейсике немного нечитаемыми, но если вникнуть, то всё понятно.
Tiny Basic поддерживает 26 переменных типа byte, каждая обозначается одной буквой (A-Z). Массивы и строки не поддерживаются.
Также стоит отметить ряд интересных возможностей этого языка. Например, несколько способов доступа к клавиатуре. С помощью одного из способов можно сделать, что при на? жатии на кнопку «вправо» будет выдаваться значение 1, а при нажатии на «влево» – 255 (-1). С помощью других методов можно отлавливать нажатия Ctrl, Shift и других кнопок, и они будут принимать значения 1 и 255. Это сделано для облегчения написания игр, так как в них часто используются стрелки и другие кнопки, которыми надо управлять движением различных объектов.
Ещё одна интересная команда – LIM. Она задаёт границы для значения переменной.
Например, команда LIM D, 10, 20. После её выполнения значение переменной D будет находиться в диапазоне 10..20. Если до выполнения команды значение переменной было меньше десяти, то оно станет 10, а если же больше 20 – станет 20.
К тому же этот бейсик поддерживает псевдографику разрешением 60*46. Можно рисовать точки, линии и квадраты.
Напишем какую?нибудь простую программу на этом языке. Пусть это будет простенькая игра «угадай число». Вот её полный код:
1 a=rv(100)+1:?”Vvedi chis”
2 inp b
3 if b>a:go 6
4 if b<a:go 7
5 ?”Molodec!”:no 255:go 0
6 ?”Vvedi menshe”:no 5:go 2

7 ?”Vvedi bolshe”:no 8:go 2

Разберём эту программу поподробнее.
В первой строчке этой программы загадывается случайное число от 1 до 100 и выводится надпись.
Во второй – вводится число с клавиатуры.
В третьей и в четвёртой введённое число сверяется с загаданным, и программа отправляется куда нужно.
В пятой-седьмой строчках выводится нужное сообщение, играет звук, и программа отправляется или к вводу, или выходит.

Микроконтроллер AVRChipBasic в использовании

6.Заключение
Вот такой вот это компьютер, AVRChipBasic.
Несмотря на свою простоту, он обладает достаточно большими возможностями.
Конечно, есть некоторые недочёты/недоработки, но надо помнить, что в крохотные 8 килобайт памяти, куда и бейсик с трудом влезет, удалось впихнуть бейсик, видеогенератор, контроллер клавиатуры, и чтобы это всё вместе ещё и работало, причём, достаточно быстро.
Поэтому компьютер ARV-ChipBasic можно смело назвать произведением искусства. Работать с ним – одно удовольствие. :?)
Ссылки:
Официальная страница компьютера:
http://jcwolfram.de/projekte/avr/chipbasic8/main.php
В пятой-седьмой строчках выводится нужное сообщение, играет звук, и программа отправляется или к вводу, или выходит.


Александр Завгородний (Kakos_Nonos)
http://kabardcomp.narod.ru/

 

Комментарии  

 
#9 Александр 11.03.2015 21:01
Сюда бы еше ЖКИ 192*64 вместо телевизора - цены бы не было...
Цитировать
 
 
#8 Денис 14.02.2015 09:57
Здравствуйте. Заинтересовал ваш перевод. Не выложите вашу печатную плату?
Цитировать
 
 
#7 Костя Артамонов 88 07.12.2014 18:03
Всем привет . А там готовая или тока основа для прошивки мк? . Какие транзисторы и диоды там надо использовать? И ещё подскажите аналог 24c16 или туда можно поставить 24cl16 как загружать из EEPROM программы заранье спасибо
Цитировать
 
 
#6 uuuuuuuuuuuuuuuuuuuu 06.12.2014 15:04
подскажите аналог 24c16 микросхемы или можно туда поставить 24cl16
Цитировать
 
 
0 #5 Юра 18.06.2014 18:02
Здравствуйте, статья интересная. А какие деоды и транзистлр там нужно ставить? Что делает 'J1'? Спасибо.
Цитировать
 
 
0 #4 Bohdan 21.12.2013 19:51
Подскажите пожалуйста фьюзы. Можно на мыло:
Цитировать
 
 
0 #3 Yassen 01.05.2013 02:11
1N4148 наверно
Цитировать
 
 
0 #2 Cyberhim 01.03.2013 16:20
подскажите какие фьюзы шить, все мануалы перерыл ничего не нашел
Цитировать
 
 
0 #1 Виталий 08.01.2013 20:05
Привет! А на схеме указаны диоды какие параметры?
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Полезные ссылки