DCPU-16
Виртуальный процессор для 0x10c
- Ожидаемые частоты: 100 кГц
- Оперативная память: 128 кБ (64 тыс. 16-разрядных слов)
- Тайловая видеопамять из 32x12 тайлов, которые определены 128 4x8 знаками, которые находятся в оперативной памяти
- Спецификация: dcpu-16_rus.txt
- Прямой, абсолютный, относительно счётчика команд, косвенный, косвенно-индексный, стековый виды адресации памяти
- 8 абсолютно симметричных регистров общего назначения (некоторые из ник названы как аккумуляторы или индексы, но разницы в них пока нету)
- 16x16->32-битное аппаратное умножение, 16-битное аппаратное деление, нету двоично-десятичных чисел, полностью 16-битные переполняемые регистры
- Определено 16 кодов операций, хотя памяти хватит еще для очень многих
- Нет операций ввода-вывода, можно использовать очереди сообщений с распределением памяти
- Нет системы прерываний
- Нету аппаратных прерываний и блока управления памятью
Другая аппаратура
- Флоппи-дисковод для 1.44 Mб дискет
- Кольцевой буфер ввода с клавиатуры
Начальное значение - SP начинается с нуля как и другие регистры
Карта распределения памяти
Адреса адресуют машинные слова, размером в 16 бит.
16 бит позволяет адресовать 64 тысячи слов (128 кБ) без коммутации блоков памяти. Не понятно почему интерпретатор BASIC'а "сказал" 64 тысячи; но он имел ввиду 64 тысячи слов, а не байтов.
Как и в C, если стек становится слишком большим, то он может перезаписать другие данные!
Начало |
Конец
|
Длина
|
Описание |
0x0000 |
0x7fff |
0x8000 |
Стандартное положение для кода и данных
|
0x8000 |
0x817f |
0x0180 |
32x12 экран в текстовом режиме (на скриншотах) |
0x8180 |
0x827f |
0x0100 |
Таблица определения символов
|
0x8280 |
0x8280 |
0x0001 |
Граница видео
|
0x9000 |
0x900f |
0x0010 |
16-символьный кольцевой буфер клавиатуры
|
0x9010 |
0x9010 |
0x0001 |
Последний указатель нажатий клавиш (Для 0x10co.de, нестандартный, не от Нотча)
|
динамически |
0xffff |
динамически |
Пространство стека, указанное в спецификации DCPU-16 прямо перед списком базовых кодов операций
|
Вот наш туториал по языку программирования, который будет использоваться в игре! Это перевод с англоязычной Wiki 0x10c!
|