nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 06:42



Reply to topic  [ 244 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 17  Next
Электроника МК-85 
Author Message
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
piotr433, контрольную сумму снова забыл.
спасибо.


17 Aug 2018 11:04
Profile
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
Reply with quote
Да, снова забыл :oops:
Уже исправил.


17 Aug 2018 11:28
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Клапауций wrote:
piotr433 wrote:
Но это не будет просто. Эмулятор ничего не знает про команды Бейсика PRINT или CSR...

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

Я думаю могу чего-то изобресть - распознавание выводимых графических символов скажем :)
А ввод команд бейсика теми же кнопками и можно организовать ;)

_________________
:dj: https://mastodon.social/@Shaos


17 Aug 2018 16:23
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
piotr433 wrote:
Уже исправил.

спасибо. всё ок.


18 Aug 2018 00:19
Profile
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
Shaos wrote:
Я думаю могу чего-то изобресть - распознавание выводимых графических символов скажем :)

нам нужно, для проверки правильности вычислений вывести наружу значения переменных МК-85.
т.е. A, B и C, где
A - аргумент функции.
B - результат вычисления функцией аргумента A.
C - флаг-палка, которой нужно ткнуть внешний вычислитель, что бы он взял A вычислил свою B и сравнил с B, вычисленную МК-85 и сказал: OK!, если совпадает.

Shaos wrote:
А ввод команд бейсика теми же кнопками и можно организовать ;)

дык, уже так и есть PRINT -> S, L
или ты предлагаешь сделать большую кнопку PRINT ? :mrgreen:


18 Aug 2018 00:32
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
А не наоброт? Внешний вычислитель дёргает эмулятор МК-85, говоря ему - посчитай ка вот это и верни мне содержимое экрана?

_________________
:dj: https://mastodon.social/@Shaos


18 Aug 2018 01:07
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
Shaos wrote:
А не наоброт? Внешний вычислитель дёргает эмулятор МК-85, говоря ему - посчитай ка вот это и верни мне содержимое экрана?

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

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

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

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


18 Aug 2018 01:29
Profile
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
Reply with quote
Прикреплённая программа каждое 0.4 секунды выводит на терминал содержимое переменных A, B, C.
Code:
A=0.142857142857e4
B=-0.128700128700e-2
C=0

Такое имелось ввиду?

Изменения в модуле main.pas:
Code:
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;


Attachments:
k1.zip [198.14 KiB]
Downloaded 278 times
18 Aug 2018 06:11
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
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 ?- вот здесь я не в курсе, как оптимально сделать: возможно после каждого цикла работы эмулятора... т.е. - максимальная.


18 Aug 2018 06:50
Profile
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
Reply with quote
Quote:
я, наверное, что-то не то делаю - у меня сыпятся бесконечные окошки "I/O error 103".

В папке с эмулятором надо заменить существующий файл mk85m.exe новым (программа требует битмап, образов памяти).

В первую очередь провери работоспособность программы, допилим потом.


18 Aug 2018 07:16
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
piotr433 wrote:
В папке с эмулятором надо заменить существующий файл mk85m.exe новым (программа требует битмап, образов памяти).

всё на месте - просто заменяю в папке на mk85m.exe


Attachments:
zzzz.png
zzzz.png [ 52.69 KiB | Viewed 11195 times ]
18 Aug 2018 07:58
Profile
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
Reply with quote
Программа должна быть запущена из текстового терминала. Не знаю как это сделать в Windows, у меня Linux.

Может лучше будет выводить информацию в текстовый файл?


18 Aug 2018 09:48
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
piotr433 wrote:
Программа должна быть запущена из текстового терминала. Не знаю как это сделать в Windows, у меня Linux.

т.е. без GUI ? а, как в кнопки тыкать, что бы запустить программу?

я ожидал увидеть встроенный в эмулятор терминал по типу уже имеющегося дебагера.

piotr433 wrote:
Может лучше будет выводить информацию в текстовый файл?

да-да. и в окошке встроенного терминала - чек-бокс "сохранять в текстовый файл"

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

Code:
A
B

или
Code:
A[tab]B


18 Aug 2018 10:05
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Клапауций wrote:
Shaos wrote:
А не наоброт? Внешний вычислитель дёргает эмулятор МК-85, говоря ему - посчитай ка вот это и верни мне содержимое экрана?

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

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

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

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

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

_________________
:dj: https://mastodon.social/@Shaos


18 Aug 2018 10:24
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
Shaos wrote:
Ну ты же проверяешь именно МК-85 (эмулируемый), значит он НЕ должен быть ведущим устройством...

кому и сколько НЕ должен ? :mrgreen:
всем прощаю - все свободны.

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

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

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


18 Aug 2018 11:00
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 244 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 17  Next

Who is online

Users browsing this forum: hantarex and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.