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

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

Moderator: Shaos

User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

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

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

piotr433, контрольную сумму снова забыл.
спасибо.
User avatar
piotr433
Novelist
Posts: 49
Joined: 14 Aug 2018 14:30
Location: Szczecin, Польша

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

Post by piotr433 »

Да, снова забыл :oops:
Уже исправил.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Клапауций wrote:
piotr433 wrote:Но это не будет просто. Эмулятор ничего не знает про команды Бейсика PRINT или CSR...
ок. ну, тогда ничего сделать и не получится - если эмулятор управляет чёрным ящиком.
Я думаю могу чего-то изобресть - распознавание выводимых графических символов скажем :)
А ввод команд бейсика теми же кнопками и можно организовать ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

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

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

piotr433 wrote:Уже исправил.
спасибо. всё ок.
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

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

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

Shaos wrote:Я думаю могу чего-то изобресть - распознавание выводимых графических символов скажем :)
нам нужно, для проверки правильности вычислений вывести наружу значения переменных МК-85.
т.е. A, B и C, где
A - аргумент функции.
B - результат вычисления функцией аргумента A.
C - флаг-палка, которой нужно ткнуть внешний вычислитель, что бы он взял A вычислил свою B и сравнил с B, вычисленную МК-85 и сказал: OK!, если совпадает.
Shaos wrote:А ввод команд бейсика теми же кнопками и можно организовать ;)
дык, уже так и есть PRINT -> S, L
или ты предлагаешь сделать большую кнопку PRINT ? :mrgreen:
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

А не наоброт? Внешний вычислитель дёргает эмулятор МК-85, говоря ему - посчитай ка вот это и верни мне содержимое экрана?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

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

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

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

именно так, а не иначе - не калькулятор из ящика письменного стола тебя среди ночи будит и не устраивает тебе математический экзамен. :mrgreen:

поэтому:
МК-85 - устройство ведущее.
эталонный вычислитель - пассивный инструмент.

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

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

Post by piotr433 »

Прикреплённая программа каждое 0.4 секунды выводит на терминал содержимое переменных A, B, C.

Code: Select all

A=0.142857142857e4
B=-0.128700128700e-2
C=0
Такое имелось ввиду?

Изменения в модуле main.pas:

Code: Select all

function BasicVar (x: integer) : string;
var
  addr: word;
  exponent: word;
  i: integer;
  s: string;
begin
  addr := ptrw(@ram[$8252-RAMSTART])^ - word (x * 8);
  exponent := ptrw(@ram[addr-RAMSTART])^;
  s := '0';
  if exponent <> 0 then
  begin
    Inc (addr, 2);
    if (exponent and $8000) <> 0 then s := '-0.' else s := '0.';
    for i := 0 to 2 do
    begin
      s := s + IntToHex (ptrw(@ram[addr-RAMSTART])^, 4);
      Inc (addr, 2);
    end;
    s := s + 'e' + IntToStr (integer(cardinal(exponent and $1FFF)) - 4096);
  end;
  BasicVar := s;
end;

procedure TMainForm.OnCursorTimer(Sender: TObject);
begin
  CurVis := not CurVis;
  Writeln ('A=' + BasicVar(1));
  Writeln ('B=' + BasicVar(2));
  Writeln ('C=' + BasicVar(3));
  Writeln;
end;
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:Прикреплённая программа каждое 0.4 секунды выводит на терминал содержимое переменных A, B, C.
я, наверное, что-то не то делаю - у меня сыпятся бесконечные окошки "I/O error 103".

я думаю, что программа должна печатать в терминал значения A и B при изменении переменной C.
т.е. должна хранить предыдущее значение C и сравнивать со считанным сейчас - если отличаются, печатать в терминал значения A, B, запоминать считанное значение C и далее печатать, если значение переменной C изменилось на противоположное.

C инициализировать C = 0.

значение переменной C будем переворачивать на противоположное в тестовой BASIC-программе.
чем будем инициализировать печать в терминал переменных A, B.

т.е. печатать значение C в терминал не нужно - это служебный управляющий флаг инициализации печати в терминал, значение которого нам известно, так как мы им рулим в тестовой программе.

иначе, будут пропуски значений A, B если они изменяются чаще, чем 0.4 секунды или тупая печать каждые 0.4 секунды, даже, если A, B не изменились.

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

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

Post by piotr433 »

я, наверное, что-то не то делаю - у меня сыпятся бесконечные окошки "I/O error 103".
В папке с эмулятором надо заменить существующий файл mk85m.exe новым (программа требует битмап, образов памяти).

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

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

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

piotr433 wrote: В папке с эмулятором надо заменить существующий файл mk85m.exe новым (программа требует битмап, образов памяти).
всё на месте - просто заменяю в папке на mk85m.exe
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 »

Программа должна быть запущена из текстового терминала. Не знаю как это сделать в Windows, у меня Linux.

Может лучше будет выводить информацию в текстовый файл?
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

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

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

piotr433 wrote:Программа должна быть запущена из текстового терминала. Не знаю как это сделать в Windows, у меня Linux.
т.е. без GUI ? а, как в кнопки тыкать, что бы запустить программу?

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

или, не заморачиваться с окошками, а печатать A, B в текстовый файл.
только нужно определиться с форматом печати

Code: Select all

A
B
или

Code: Select all

A[tab]B
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

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

именно так, а не иначе - не калькулятор из ящика письменного стола тебя среди ночи будит и не устраивает тебе математический экзамен. :mrgreen:

поэтому:
МК-85 - устройство ведущее.
эталонный вычислитель - пассивный инструмент.

*плюс выше было сказано, что дёрнуть эмулятор ты сможешь, но тыкать в него - только клавой, т.к. считать он не умеет. а содержимое экрана часто не равно значению переменной, а урезанное в то, что поместилось в экран.
Ну ты же проверяешь именно МК-85 (эмулируемый), значит он НЕ должен быть ведущим устройством...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Клапауций
Banned
Posts: 412
Joined: 29 Jun 2018 08:48

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

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

Shaos wrote:Ну ты же проверяешь именно МК-85 (эмулируемый), значит он НЕ должен быть ведущим устройством...
кому и сколько НЕ должен ? :mrgreen:
всем прощаю - все свободны.

инициатором проверки является BASIC-программа МК-85.

нечего тут обсуждать, почему...
потому, что это проще, чем - цитирую:
говоря ему - посчитай ка вот это и верни мне содержимое экрана?
кому сказать? - там нет никто. там чёрный ящик с программой BASIC в который только кнопками можно тыкать, но в который можно писать программы - вот эти программы и делают устройство ведущим.