Электроника МС2721

Советские программируемые калькуляторы, микрокомпьютеры и большие ЭВМ, не попавшие в другие разделы

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Электроника МС2721

Post by Shaos »

Получил ещё один экземпляр с ПОЛНЫМ пакетом документации :mrgreen:

И там есть руководство программиста для библиотеки с плавающей точкой ;)

Надо её чтоли отсканировать и сдать вот сюда для комплекту:
http://retropc.org/Elektronika_MS_2721_s_99.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Электроника МС2721

Post by Shaos »

Вобщем там эта библиотека работает с однобайтовыми числами (старший бит является битом знака), двухбайтовыми числами (старший бит - знак, а предпоследний бит по старшинству - бит переполнения, причём байты в памяти располагаются в порядке "big endian") и трёхбайтовыми числами с плавающей точкой, составленными из байта экспоненты и 2-байтовой мантиссы (как описано до этого) - интересно сами писали или цельнотянуто откуда то?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Электроника МС2721

Post by Shaos »

3-байтовые числа с плавающей точкой в памяти располагаются так:
1й байт - экспонента: 1 бит знак, 7 битов - само число (представляет числа от -127 до +127);
2й байт - старший байт мантиссы: 1 бит знак, 1 бит переполнения, оставшиеся 6 битов - старшие биты мантиссы;
3й байт - младший байт мантиссы: 8 битов, которые с 6 битами из предыдущего байта формируют 14 бит мантиссы (т.е. 16383 это самое большое число, среди чисел, которые можно отобразить без потери точности подряд).
Мантисса представляет собой биты после десятичной точки, т.е. 00 20 00 означает 0.5 (соответственно 01 20 00 это 1, а 00 00 00 это 0)

P.S. Получается, что самое маленькое число (по абсолютному значению и неравное нулю), которое можно отобразить в этой системе, это FF 00 01 = (1/16384)*2^(-127) = 3.587324068671532e-43, а самое большое - 7F 2F FF = 16383/16384*2^127 = 1.7013079886675216e+38 (правда документация пишет про 0.5867e-38 и 0.1704e+39 соответственно - второе похоже, а вот первое - не очень)

P.P.S. Возможно в документации речь идёт о нормализованном представлении, когда старший бит мантиссы всегда 1 - тогда самым маленьким числом будет FF 20 00 = 0.5*2^(-127) = 2.938735877055719e-39 (что примерно в 2 раза меньше того, что задокументировано)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Электроника МС2721

Post by Shaos »

Shaos wrote:Получил ещё один экземпляр с ПОЛНЫМ пакетом документации :mrgreen:

И там есть руководство программиста для библиотеки с плавающей точкой ;)

Надо её чтоли отсканировать и сдать вот сюда для комплекту:
http://retropc.org/Elektronika_MS_2721_s_99.html
Вот обложка и одна из страниц руководства:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Электроника МС2721

Post by Shaos »

Я смотрю скан книжки про плавающую точку уже есть у них:

http://retropc.org/Elektronika_MS_2721_s_99.html

Скачал дамп там, а то мои коробушки лежат в хранилище в Санта-Кларе...
Я тут за главного - если что шлите мыло на me собака shaos точка net