MK90

A repository devoted to MK 90 soviet computer

View the Project on GitHub Yprits/MK90

Форматы данных МК90

Все числа - шестнадцатеричные, если не указано иное


Набор символов

Символы кодируются по стандарту КОИ-7.

Коды символов 20-3F

mk90chr1

Латинские символы (набор N0), коды 40-7F

mk90chr2

Кириллические символы (набор N1), коды 40-7F

mk90chr3

Рисунки сгенерированы из образа ПЗУ


Представление чисел с плавающей запятой

Число с плавающей запятой занимает три 16-битных слова. Первые два слова содержат 32-битную мантиссу в форме дополнения до двух. Третье слово содержит 16-битную экспоненту со смещением 0x8000. Примеры: |Число|Кодирование| |—–|————–| | 0 |0000 0000 0000| | 1 |0000 4000 8001| |10|0000 5000 8004| |100|0000 6400 8007| |255|0000 7F80 8008| |1000|0000 7D00 800A| |65535|8000 7FFF 8010| |0.5|0000 4000 8000| |0.125|0000 4000 7FFE| |0.1|6666 6666 7FFD| |0.001|374B 4189 7FF7| |-1|0000 C000 8001| |-10|0000 B000 8004| |-0.1|999A 9999 7FFD|


Объекты рабочей области

Переменная или массив

    1 слово    биты 15-13: идентификатор 000
               биты 11-6: первый символ имени ('A'=00, 'B'=01, ...) 
               биты 5-0: второй символ имени (цифра в ASCII)
    1 слово    максимальный первый индекс в старшем байте       
               максимальный второй индекс в младшем байте
               ноль в случае простой переменной
    3 слова    первое значение
    3 слова    второе значение
    ...
    3 слова    последнее значение

Примеры:

    0600 0000           simple variable X
    0000 6400 8007      value=100

    0675 0000           simple variable Y5
    0000 6400 8008      value=200

    0440 0300           one-dimensional array DIM Q(3)
    3333 B333 7FFF      value Q(0)=-0.3
    6666 6666 7FFC      value Q(1)=0.05
    0000 7FFC 800D      value Q(2)=8191
    0000 8004 800D      value Q(3)=-8191

    06B1 0102           two-dimensional array DIM Z1(1,2)
    9400 7735 801E      value Z1(0,0)=1E9
    2F9E 44B8 7FE3      value Z1(0,1)=1E-9
    6C00 88CA 801E      value Z1(0,2)=-1E9
    D062 BB47 7FE3      value Z1(1,0)=-1E-9
    0000 4000 8010      value Z1(1,1)=32768
    0000 C000 8010      value Z1(1,2)=-32768

Вход в GOSUB

    1 слово     биты 15-13: идентификатор 001
                биты 12-0:  номер строки с оператором GOSUB

Вход в FOR

    1 слово     биты 15-13: идентификатор 010 
                биты 11-0: имя управляющей переменной 
    1 слово     адрес после символа '=' в выражении FOR 
    3 слова     значение TO 
    3 слова     значение STEP

Пользовательская функция

    1 слово     биты 15-13: идентификатор 011 
                биты 7-0: третья буква имени функции (ASCII) 
    1 слово     биты 11-0: имя переменной функции
    1 слово     адрес выражения