Электроника МК-85

Digital Equipment Corporation PDP-8 & PDP-11 (а также совместимые с последним советские ЭВМ на 1801ВМ1/2/3)

Moderator: Shaos

User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

т.е. без GUI ? а, как в кнопки тыкать, что бы запустить программу?
Я имел ввиду такое текстовое окно. Из него можно запускать графические приложения.
я ожидал увидеть встроенный в эмулятор терминал по типу уже имеющегося дебагера.
Я что-то придумаю.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

piotr433 wrote:Из него можно запускать графические приложения.
верно - любое приложение печатающее printf "..." вызовет это окошко, если приложение запущено через CMD, то втуда и будет печатать.
...дело в том, что до печати не доходит - генерятся сообщения об ошибках, там где-то с путями файлов не так.
Я что-то придумаю.
сделай пока просто печать в текстовый файл в формате

Code: Select all

A[tab]B[\n]
A табуляция B перевод строки
по тому алгоритму, что я предложил, когда C булевая переменная и изменяется на противоположную.

тогда можно нагенерить в Экселе таблиц, сохранить их в текстовый файл и сравнивать с тем, что нагенерит МК-85.
это с условием, что Эксель будет нормально считать, а не так, как виндовый калькулятор - наотшибись.
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

сделай пока просто печать в текстовый файл в формате
OK, готово.
Запись ведётся в файл logfile.txt в папке эмулятора.
когда C булевая переменная и изменяется на противоположную
Надо изменить знак C = -C
Конечно C не может быть равно 0.

PS. Я потом удалю старые версии программ чтобы не засорять форум.
Last edited by piotr433 on 19 Aug 2018 01:21, edited 2 times in total.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

piotr433 wrote:Запись ведётся в файл logfile.txt в папке эмулятора.
запись производится после выключения эмулятора.
т.е. для того, что бы узнать что там насчитало - нужно выключить эмулятор.
можно сделать, что бы писало сразу в файл, а не кешировало где-то там в себе?
piotr433 wrote:Надо изменить знак C = -C
ок. это не принципиально.
piotr433 wrote:Конечно C не может быть равно 0.
вообще-то может быть равно чему угодно - тогда оно не сломается?
если понадобится использовать переменную C для чего-то другого.

*забыл. спасибо.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

Клапауций wrote:
piotr433 wrote:Конечно C не может быть равно 0.
вообще-то может быть равно чему угодно - тогда оно не сломается?
если понадобится использовать переменную C для чего-то другого.
проверил С может быть равно 0 и вызывает печать в лог при изменении в 0 с чего-то другого.
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

запись производится после выключения эмулятора
Когда эмулятор работает, файл открытый для записи.
можно сделать, что бы писало сразу в файл, а не кешировало где-то там в себе?
Не знаю, поищу.
вообще-то может быть равно чему угодно - тогда оно не сломается?
Нет, ничего не сломается. Программа ждёт изменения знака числа в переменной C (точнее: второго байта переменной C).
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

Думаю что получилось. Архив с программой обновлен.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

я в своё время писал консольную программу для виндовс - вот кусок того, что пишет в текстовый файл на лету.

Code: Select all

if (result_usb == 1) { // из USB пришёл символ.
FILE *r = fopen("received_digiusb.txt", "at"); // открыть-создать файл для записи в конец файла.
fprintf(r,  "%c" , receive_usb); 
fclose(r); // закрыть файл.
}
т.е. если файла нет, то он создаётся-открывается, если есть - открывается, в него что-то пишется, файл закрывается.
этот кусок запускается при условии, что что-то изменилось и поэтому нужно записать в файл - в остальных случаях - файл закрыт.
всегда можно было взять и посмотреть, сколько там чего напечаталось.
Last edited by Клапауций on 18 Aug 2018 14:58, edited 2 times in total.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

piotr433 wrote:Думаю что получилось. Архив с программой обновлен.
у меня так же - печать в файл только по выключению.

и, я запутался - в чём отличие k2 от k3 ?
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

в чём отличие k2 от k3
Добавлена команда Flush (очистка кеша), но файл logfile.txt остался по-прежнему открытым.
http://www.delphibasics.ru/Flush.php
вот кусок того, что пишет в текстовый файл на лету
Я так сделал, попробуй новую версию.

Code: Select all

  x := ram[ptrw(@ram[$8252-RAMSTART])^-23-RAMSTART];
  if memc <> x then
  begin
    AssignFile (logfile, 'logfile.txt');
    Append (logfile);
    Writeln (logfile, BasicVar(1) + #9 + BasicVar(2));
    Flush (logfile);
    CloseFile (logfile);
    memc := x;
  end;
You do not have the required permissions to view the files attached to this post.
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

А такое подойдёт?
k5.png
You do not have the required permissions to view the files attached to this post.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

piotr433 wrote:А такое подойдёт?
ну, лично мне - пока избыточно.
но, если ты пожелаешь дописать в эмулятор вывод результатов вычислений из МК-85 во внешний мир, то - да.
это может быть нужно не только для теста правильности вычислений встроенных функций МК-85, но и для тестирования любых программ для МК-85, т.к. железный МК-85 не обладает никакими внешними портами для общения с внешним миром, кроме визуального экрана.

ещё добавить клавишу вызова-скрытия окна(какую-нибудь Fx клавиатуры)
и, возможно чек-боксы выбора - что выводить в печать: т.к. двух A, B народу может оказаться недостаточно.

спасибо. ушёл генерить списки вычислений.
Last edited by Клапауций on 20 Aug 2018 04:21, edited 1 time in total.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

проверил ATN, EXP, LN в диапазоне 1e-1 = 1e-4096 c шагом 1e-1.
вроде, всё нормально, т.е. с точностью 10 цифр.
проверял этой программой

Code: Select all

10 DEFM 0:SET 10:A=1:B=0:C=1
20 MODE 5
30 A=A*1e-1
40 B=ATN A
50 C=-1*C
60 IF A=1e-4096; PRINT " OK!"
70 GOTO 30
сохранив результаты в текстовый файл и выборочно сравнивая с результатами, предлагаемыми http://www.wolframalpha.com

остальное позже прогоню.
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

Re: Электроника МК-85

Post by piotr433 »

Спасибо, я рад позитивным результатам!
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

Re: Электроника МК-85

Post by Клапауций »

piotr433 wrote:Спасибо, я рад позитивным результатам!
я собрался делать реплику МК-85, где из оригинального будет только Т36ВМ1-2, а остальное - современные компоненты.
а, наличие бага в оригинальном ROM превращало всю затею в повтор глючного сабжа.
поэтому, считай себя спасителем моего проекта.
ещё раз - спасибо.

замена микросхем RAM, ROM особых проблем не вызовет - они архитектурно стандартны.
вместо Т36ВГ1-2 - буду пользовать это, но с графическим индикатором(мигать оно не будет)
https://klapautsiy.github.io/The-displa ... ika-MK-85/