May. 11th, 2019

vak: (Default)
[personal profile] vak
С некоторого момента третья часть паскалевского теста стала компилироваться, но при загрузке возникала ошибка:
    ОТСУТСТВУЕТ  Р/0Р
Разобрался, откуда бралась странная функция Р/0Р. Вкратце: некорректно формировалось имя функции.

Вызов происходил в виде:
 14,VTM,P/1D+248
 11,VTM,P/0P
 13,VJM,P/STAR
Здесь P/STAR - обобщёная процедура записи элемента в упакованный массив. В зависимости от размера элемента упакованного массива задействуется вспомогательная процедура, адрес которой передаётся в регистре 11. Имена процедур:
P/01 - ширина элемента 1 бит ;
P/02 - 2 бита;
P/03 - 3 бита;
P/04 - 4 бита;
P/06 - 6 бит;
P/08 - 8 бит;
P/0П - 12 бит;
P/00 - 16 бит;
P/07 - 24 бита.

Недавно я сделал правку в компиляторе, чтобы разрешить процедурам pack() и unpack() работать с неупакованными массивами. Как следствие, компилятор делает попытку вызывать P/STAR для "упакованных" массивов с элементами размером 48 бит. Имя процедуры при этом получается P/0P, а её такой нету. Надо чинить это место.

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 11:33 am
Powered by Dreamwidth Studios