CHIP-8 — интерпретируемый язык программирования, который был разработан Джозефом Вейзбекером в семидесятых для использования в RCA COSMAC VIP. В дальнейшем был использован в COSMAC ELFCOSMAC ELF, Telmac 1800Telmac 1800, ETI 660, DREAM 6800. Сегодня CHIP-8 часто используется для обучения базовым навыкам эмуляции в связи со своей простотой и схожестью с реальными платформами.

Память Язык CHIP-8 позволяет адресовать до 4096 байт памяти в адресном пространстве от 016 до FFF16 с ячейками по 8 бит в формате Big-Endian. При этом первые 512 байт памяти (с 016 до 1FF16) зарезервированы интерпретатором CHIP-8 для программы интерпретатора и хранения спрайтов, поэтому использование этого диапазона ячеек памяти пользовательскими программами нежелательны. Пользовательские программы могут быть загружены в любой участок памяти, но наиболее распространенным вариантом является расположение программы с 20016 по FFF16 адрес.

Регистры и таймеры +НазваниеРазрядностьОписание8 бит15 регистров общего назначенияVF8 битФлаг переноса. Может быть использован пользовательской программой как регистр общего назначенияDT8 битТаймер задержки. При ненулевом значении декрементируется с частотой 60 ГцST8 битТаймер звука. При ненулевом значении декрементируется с частотой 60 Гц и проигрывает характерный звук «BEEP» с постоянной тональностью, зависящей от реализации интерпретатораPC16 битУказатель на текущую исполняемую инструкциюSP8 битУказатель на вершину стека

Ввод Язык CHIP-8 имеет поддержку ввода с шестнадцатиклавишной клавиатуры следующей компоновки: 1 2 3 C 4 5 6 D 7 8 9 E A 0 B F

Экранный вывод Для экранного вывода в языке CHIP-8 используется монохромный дисплей с разрешением 64 на 32 пикселя. Отрисовка на экране происходит спрайтами. Спрайт в CHIP-8 представляет собой массив размером до 15 байт хранящийся в области памяти интерпретатора, где каждый бит с состоянием '0' или '1' обозначает черный и белый цвет пикселя в строке длиной 8 пикселя соответственно, при этом, при наложении двух спрайтов друг на друга накладывающиеся пиксели инвертируется. Одновременно интерпретатор может хранить до 16 спрайтов.

Примечания

Категория:Языки программирования по алфавиту