Среда, 01.05.2024, 02:14

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!


Defend Developing | 2024 | Нашёл баг?