spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
После исправления последних ошибок, добавления поддержки юникода и имитации нетранзитивного бэсмовского сравнения полноразрядных слов на больше-меньше, объектный модуль, порождаемый сиплюсплюсным компилятором при компиляции паскалевского текста компилятора, в точности ("то есть абсолютно") совпадает с объектным модулем, порождаемым при компиляции паскалевского компилятора самим собой.

Теперь можно начинать развлекаться с тестами.

Blinky

Date: 2019-05-08 02:14 am (UTC)
x86128: (Default)
From: [personal profile] x86128
Круто!

Покажите как выглядит этот объектный модуль. После того как будет готов UART и UFM, надо будет сделать конвертер в Intel-HEX.

Сделайте простую программу которая в бесконечном цикле читает содержимое ячейки 0o77755 и пишет это содержимое в 0o77756.

Date: 2019-05-08 04:27 am (UTC)
vak: (Default)
From: [personal profile] vak
Где-то у Лёни было описание формата объектного модуля.
Вот, нашёл:

https://github.com/besm6/pascal-re/blob/master/format.md

Date: 2019-05-08 05:30 am (UTC)
vak: (Default)
From: [personal profile] vak
Экспериментирую с тестом.
Первые две проблемы тривиальные:
(1) колонки 73-80 не воспринимаются компилятором;
(2) комментарии фигурными скобками не работают.

Нетривиальная проблема: не распознаются отрицательные константы с плавающей точкой. Вот такая программа нормально работает на Free Pascal и не компилируется у нас:
program test(output);
const
    rscst = -84.22;
begin
    writeln('Real154: ', rscst:15, ' s/b -8.422000e+01');
end.
Результат:
$ ./pascompl < fconst.pas 
 Pascal-Monitor in C++ (17.05.2019)
 00001    1  0 PROGRAM TEST(OUTPUT);
 00001    2  1 CONST
 ******62 Dunno 
 00001    3  1     RSCST = -84.22;
        *****                   0
 00001    4  2 BEGIN
 00002    5  2     WRITELN('REAL154: ', RSCST:15, ' S/B -8.422000E+01');
 00017    6  0 END.
 ******52 EOF encountered 
 IN 6 LINES 2 ERRORS


Edited Date: 2019-05-08 05:31 am (UTC)

Date: 2019-05-08 05:37 am (UTC)
vak: (Default)
From: [personal profile] vak
Я выложил описание Паскаля-Монитора на вики страничку: https://github.com/besm6/mesm6/wiki/Pascal-Monitor-1980

Редактируйте по мере возможности.

Date: 2019-05-08 05:44 am (UTC)
vak: (Default)
From: [personal profile] vak
Он ждёт .DATA! Вот ведь неожиданность.
$ ./pascompl < fconst.pas 
 Pascal-Monitor in C++ (17.05.2019)
 00001    1  0 PROGRAM TEST(OUTPUT);
 00001    2  1 CONST
 ******62 Dunno 
 00001    3  1     RSCST = -84.22;
        *****                   0
 00001    4  2 BEGIN
 00002    5  2     WRITELN('REAL154: ', RSCST:15, ' S/B -8.422000E+01');
 00006    6  2 END
 00017    7  0 .DATA
 00017    8  0 END
 IN 8 LINES 1 ERRORS
Значит константы с плавающей точкой заносим в список нереализованных фичей.

Date: 2019-05-08 05:48 am (UTC)
vak: (Default)
From: [personal profile] vak
Лучше включить 128. Попробовал U-, работает.

Date: 2019-05-08 05:53 am (UTC)
vak: (Default)
From: [personal profile] vak
Насколько трудно будет переключить внутреннюю кодировку на КОИ-8? Чтобы сделать комментарии фигурными скобками. Вроде по тексту я больших проблем не вижу.

Date: 2019-05-08 06:58 am (UTC)
vak: (Default)
From: [personal profile] vak
Переделал на КОИ-8.
Попробуй, результат совпадает?

Date: 2019-05-08 07:18 am (UTC)
vak: (Default)
From: [personal profile] vak
Сделал комментарии фигурными скобками.

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 08:53 pm
Powered by Dreamwidth Studios