Это потому, что отладчик был использован. Если после начала эмуляции компьютера отладчик не был использован, то он не запишется в сохранённый файл.Lavr wrote:После загрузки Digit.emu программа emu почему-то выходит в свой Debugger - в нём надо нажать F5.
B2M EMU
Moderator: Shaos
- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
B2M EMU
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 1816ВЕ48
Ну естественно, отладчик был использован, потому как по Ctrl-L в "Специалист-МХ" грузится бинарник,b2m wrote:Это потому, что отладчик был использован.Lavr wrote:После загрузки Digit.emu программа emu почему-то выходит в свой Debugger - в нём надо нажать F5.
а по Ctrl-S - выгружается отдебуженный исходник.
А нельзя как-то прописать где-то, чтобы Debugger не стартовал, когда не надо?
И где можно что-то прописать, чтобы программа по умолчанию сразу загружала "Специалист-МХ"
без предварительного меню выбора компьютера?
И еще один момент, не очень приятный... хотя, может быть, он у тебя исправлен уже...
Вот смотрю я на встроенном отладчике исполнение программы и жду, когда она запишет что-то в память: Наконец, программа пишет в память (STA XXYY), но в памяти - ничего не меняется по адресу XXYY !
 
 Башка начинает закипать... как же так?
 Оказывается, надо уйти с этого участка памяти и открыть его снова!
  Оказывается, надо уйти с этого участка памяти и открыть его снова!   
 Какая-то очень неудобная фича...

И как во встроенном отладчике изменить содержимое регистров процессора, если это необходимо?
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Re: 1816ВЕ48
Нет. Нужно добиться того, чтобы программа без отладчика запускалась. В случае Специалист-МХ можно стартовать файлы для эмулятора Шевцова .cpu/.i80Lavr wrote:А нельзя как-то прописать где-то, чтобы Debugger не стартовал, когда не надо?
emu.exe MyCoolProg.cpu
Вот несколько примеров:Lavr wrote:И где можно что-то прописать, чтобы программа по умолчанию сразу загружала "Специалист-МХ"
без предварительного меню выбора компьютера?
emu.exe /c "Orion-128"
emu.exe /d
emu.exe /c "Orion-128" /d
emu.exe /c "Orion-128" /brk F842
emu.exe /c "Orion-128" /brk @my.brk
1. C автоматическим выбором конфигурации
2. Вызов отладчика, без выбора конфигурации
3. Более полезный вариант, с автоматическим выбором конфигурации
4. Ещё более удобный вариант, с указанием точки останова
5. Вариант с сохранением точек останова в файле my.brk
Раньше компы были слабые, такая вот оптимизация, не обновляется окно дампа. Но можно трассировать с shift, тогда обновляется. Правда, жмакать shift постоянно не надо, а то CALL проскочишьLavr wrote:Наконец, программа пишет в память (STA XXYY), но в памяти - ничего не меняется по адресу XXYY !

Прямо в окне регистров и менять. Или Tab-ом туда перейти, или мышью ткнуть.Lavr wrote:И как во встроенном отладчике изменить содержимое регистров процессора, если это необходимо?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 1816ВЕ48
Жмакать постоянно вообще ничего не надо!b2m wrote:Правда, жмакать shift постоянно не надо, а то CALL проскочишь
 
 Добрая Венда за этим следит и вылазит с предупреждением о залипании клавиш...
 Как она меня утомила во время отладки этой игры!
 
Как она меня утомила во время отладки этой игры!  
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 1816ВЕ48
[OFFTOP]
 При старте "Специалист-МХ" ОС RAMFOS видит отсутствие даты по адресу 0xD202 и запрашивает её.
 
При старте "Специалист-МХ" ОС RAMFOS видит отсутствие даты по адресу 0xD202 и запрашивает её.
В этот момент RAMFOS еще не развернулся до конца...
Но в этот момент в память загружается программа Hanoi.CPU и управление отдаётся ей.
В результате всё вешается на приведённом выше скриншоте...
Когда у меня были исходники Шевцова, я там подправил код и дата из DOS вводилась автоматом.
Но здесь я пробовал и утилитой nircmd.exe нажать введение даты - достаточно {0 [Enter]}.
Но не срабатывает и этот фокус...
Как автор emu.exe посоветует разрешить этот траббл? По-простому у меня не вышло никак... 
 
P.S. Но даже если стартануть emu.exe обычным образом, и запустить из меню файл *.cpu, то
из RAMFOS всё равно вылетаешь на ввод даты... P.P.S. Я посмотрел свой старый исходник spmx42, дата вводится вот так:
Эти 5 байт пишутся в первую, а не в нулевую страницу ОЗУ, причем важны 01h, 8Bh - признак даты,
а сама дата не так уж и важна...
[/OFFTOP]
			
			
						Извини уж, может быть я в чем-то туплю, но столь удобный вариант у меня не работает никак...b2m wrote:В случае Специалист-МХ можно стартовать файлы для эмулятора Шевцова .cpu/.i80
emu.exe MyCoolProg.cpu
 При старте "Специалист-МХ" ОС RAMFOS видит отсутствие даты по адресу 0xD202 и запрашивает её.
 
При старте "Специалист-МХ" ОС RAMFOS видит отсутствие даты по адресу 0xD202 и запрашивает её.В этот момент RAMFOS еще не развернулся до конца...
Но в этот момент в память загружается программа Hanoi.CPU и управление отдаётся ей.
В результате всё вешается на приведённом выше скриншоте...
Когда у меня были исходники Шевцова, я там подправил код и дата из DOS вводилась автоматом.
Но здесь я пробовал и утилитой nircmd.exe нажать введение даты - достаточно {0 [Enter]}.
Но не срабатывает и этот фокус...
Как автор emu.exe посоветует разрешить этот траббл? По-простому у меня не вышло никак...
 
 P.S. Но даже если стартануть emu.exe обычным образом, и запустить из меню файл *.cpu, то
из RAMFOS всё равно вылетаешь на ввод даты... P.P.S. Я посмотрел свой старый исходник spmx42, дата вводится вот так:
Code: Select all
procedure SetData;
 begin
  asm
   push ax
   push cx
   push dx
   mov  ax,$2a00 {________________________ введем автоматом дату__}
   int  21h      {______________________________ для RAMFOS_______}
  {===============================================================}
   les di,buf1          {укажем стpаницу 1 (служебное озу)}
   add di,$ffbb         {смещение к атpибуту даты}
   mov al,$1            {пpизнак}
   mov es:[di],al       {установим}
   mov al,$8b           {дата введена}
   mov es:[di+1],al     {установим}
   xor  ax,ax
   mov  al,dl           {__________________________ день_____}
   call Dec_cor
   {mov  al,$20}        {тест}
   mov es:[di+2],al
   mov  al,dh           {__________________________ месяц____}
   call Dec_cor
   {mov  al,$04}        {тест}
   mov es:[di+3],al
   sub  cx,2000
   mov  al,cl           {__________________________ год______}
   call Dec_cor
   {mov  al,$65}        {тест}
   mov es:[di+4],al
   pop dx
   pop cx
   pop ax
  end
 end;а сама дата не так уж и важна...
[/OFFTOP]
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Re: 1816ВЕ48
А почему не в теме про ханойские башни?Lavr wrote:Как автор emu.exe посоветует разрешить этот траббл?
Выкладывай свои hanoi.cpu/.i80, попробую разобраться.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 1816ВЕ48
А потому что совет ты мне давал здесь, а не в теме про ханойские башни.b2m wrote:А почему не в теме про ханойские башни?
b2m wrote:В случае Специалист-МХ можно стартовать файлы для эмулятора Шевцова .cpu/.i80
emu.exe MyCoolProg.cpu
А зачем тебе мои hanoi.cpu/.i80?b2m wrote:Выкладывай свои hanoi.cpu/.i80, попробую разобраться.
 Так работает любой файл *cpu/.i80
  Так работает любой файл *cpu/.i80   
 Я просто собирался пописать hanoi, но сутки прыгаю с бубном вокруг emu.exe.
Когда я этого совета не знал, то и не делал так, но ты посоветовал, а оно - никак...

iLavr
			
						- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Re: 1816ВЕ48
Ну файл-то твой запускается? Я думаю да.
А вот то, что сервисы RAMFOSа не работают - это уже другой вопрос. Тут разбираться надо, как более корректно его запускать.
Enter можно подсунуть изменив файл EMU.ext (там есть похожие строчки):
Но надо ли это делать с другими мониторами - вопрос.
Поэтому лучше для совместимости скопировать под именем, например mx, и вместо .cpu делать файл .mx
То есть так:
			
			
									
						
							А вот то, что сервисы RAMFOSа не работают - это уже другой вопрос. Тут разбираться надо, как более корректно его запускать.
Enter можно подсунуть изменив файл EMU.ext (там есть похожие строчки):
Code: Select all
cpu : loader {
  config="SpecialistMX"
  cmd[0].delay=700
  cmd[0].keymacro="{enter}"
  cmd[1].delay=1500
  cmd[1].poke="FFF8:70"
  cmd[2].start=now
  mode=2
}
Поэтому лучше для совместимости скопировать под именем, например mx, и вместо .cpu делать файл .mx
То есть так:
Code: Select all
mx : loader {
  config="SpecialistMX"
  cmd[0].delay=700
  cmd[0].keymacro="{enter}"
  cmd[1].delay=1500
  cmd[1].poke="FFF8:70"
  cmd[2].start=now
  mode=2
}
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 1816ВЕ48
Ну я немного иначе поступил... поскольку не мог позволить себе попрыгать сутки с бубном безрезультатно...   
 
Я пропатчил файл RAMFOS и убрал запрос ввода даты - всё равно в случае с эмуляторами - это чисто фиктивная
функция, ибо даты всех внешних файлов прописывает Венда, а эмулятор - чисто запуск и отладка...
Патч следующий: В файле SPMX.ROM ищем сигнатуру 21 A9 D1 - это указатель на дата:
Адрес D1 A9 может быть и другой в других версиях RAMFOS, тогда сначала
ищем, где дата: - это сигнатура C4 C1 D4 C1 для WinHEX, т.к. KOI-8, и слово
не видно... ну а потом патчим указанный участок вот так: По сути дела в командную строку вводится 30 30 0D, что равносильно "0 0" [ENTER].
Теперь RAMFOS успевает развернуться и разложить всё что надо по своим служебным
ячейкам и падать перестаёт. Без этого он и виснуть будет и вылетать на дата:
Патч линейный, от адреса не зависит.
Но! Теперь не будет работать функция Удалить дату: - дата и так всегда 00 00 00.
Для других мониторов, я думаю, ничего делать не надо - они же не запрашивают дату...
P.S. Кстати... я там увидел в наборе MC6502.dll и "Агат", а чего ты "Apple I" не добавишь?
Он же простенький совсем...
			
			
						 
 Я пропатчил файл RAMFOS и убрал запрос ввода даты - всё равно в случае с эмуляторами - это чисто фиктивная
функция, ибо даты всех внешних файлов прописывает Венда, а эмулятор - чисто запуск и отладка...
Патч следующий: В файле SPMX.ROM ищем сигнатуру 21 A9 D1 - это указатель на дата:
Адрес D1 A9 может быть и другой в других версиях RAMFOS, тогда сначала
ищем, где дата: - это сигнатура C4 C1 D4 C1 для WinHEX, т.к. KOI-8, и слово
не видно... ну а потом патчим указанный участок вот так: По сути дела в командную строку вводится 30 30 0D, что равносильно "0 0" [ENTER].
Теперь RAMFOS успевает развернуться и разложить всё что надо по своим служебным
ячейкам и падать перестаёт. Без этого он и виснуть будет и вылетать на дата:
Патч линейный, от адреса не зависит.
Но! Теперь не будет работать функция Удалить дату: - дата и так всегда 00 00 00.

Для других мониторов, я думаю, ничего делать не надо - они же не запрашивают дату...
P.S. Кстати... я там увидел в наборе MC6502.dll и "Агат", а чего ты "Apple I" не добавишь?
Он же простенький совсем...
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 1816ВЕ48
Несмотря на то, что подправил RAMFOS на автоматическое нажатие "0 0" [Enter], файл EMU.ext такжеb2m wrote:Enter можно подсунуть изменив файл EMU.ext (там есть похожие строчки):Code: Select all
cpu : loader { config="SpecialistMX" cmd[0].delay=700 cmd[0].keymacro="{enter}" cmd[1].delay=1500 cmd[1].poke="FFF8:70" cmd[2].start=now mode=2 }
пришлось подшаманить, и нормально всё работает вот так:
Code: Select all
cpu : loader {
  config="SpecialistMX"
  cmd[0].delay=1500
  cmd[0].poke="FFF8:70"
  cmd[1].delay=500
  cmd[1].start=now
  mode=2
} 
 Я, честно говоря, Hanoi больше хотел под 6502 написать, но столкнулся с тем, что КУЧА скачанных мнойLavr wrote:Кстати... я там увидел в наборе MC6502.dll и "Агат", а чего ты "Apple I" не добавишь?
Он же простенький совсем...
из интернета компиляторов ассемблера не умеет скомпилировать правильно простой код:
 
 
Code: Select all
   LDA BOX; где BOX - короткий адрес в zero pageCode: Select all
   LDA $55; где $55 - короткий адрес в zero pageCode: Select all
   LDA <BOX; где BOX - короткий адрес в zero pageна втором проходе вдруг понимают, что <BOX - это байт, и рухнули все адреса меток дальше...
Поэтому я решил алгоритм прогнать на i8080, и перенести его потом аккуратно под 6502.
Тем более, что среда под i8080 более удобная для работы.
Ну и я попробовал было "Агат-7", из emu.exe в качестве заменителя Apple...
Но с ним получается вот что - там в папочке есть примеры его программ с адресами запуска:
Из меню "Агат-7" их загрузить не умеет: Их загружать только через отладчик?PACMAN - 2000G
MARS - 4000G
TARAKAN - 4000G
ROCKER - 5600G
А второй момент - после старта "Агат-7", он пишет сверху Apple 11 в цвете и больше не реагирует
на нажатия клавиш... Что ему надо нажать, чтобы хоть в Воз-монитор вывалился?

You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Re: 1816ВЕ48
При сбросе удерживать пробел, например. Т.е. нажать на пробел и не отпуская ткнуть мышью на кнопку сброса на тулбаре. Или нажать Space+Ctrl+Break.Lavr wrote:Что ему надо нажать, чтобы хоть в Воз-монитор вывалился?
Нет, всё как на обычном компьютере. Ввести команду R, откроется окно выбора файла с расширением .b (эмуляция магнитофона).Lavr wrote:Их загружать только через отладчик?
И уже потом вводить команду запуска, для PACMAN - 2000G
В файле .b первые два байта - адрес загрузки, вторая пара - длина блока данных, затем сами данные.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: B2M EMU
Пора бы уже, видимо, портировать EMU под Android !   
 
Под ним ведь и на C++ можно писать приложения, и под Python...
А то - народ жаждет на своих смартфонах отечественных ретро-компьютеров! 
 
А за всё прошедшее время на платформе Android лишь гордо реет одинокий
BkEmu — эмулятор БК-0010 для платформы Android 
 
https://github.com/3cky/bkemu-android

И ничего отечественного больше нет... Десктопы да ноуты не в моде ведь ныне!
  Десктопы да ноуты не в моде ведь ныне!  
			
			
									
						
							 
 Под ним ведь и на C++ можно писать приложения, и под Python...
А то - народ жаждет на своих смартфонах отечественных ретро-компьютеров!
 
 А за всё прошедшее время на платформе Android лишь гордо реет одинокий
BkEmu — эмулятор БК-0010 для платформы Android
 
 https://github.com/3cky/bkemu-android
И ничего отечественного больше нет...
 Десктопы да ноуты не в моде ведь ныне!
  Десктопы да ноуты не в моде ведь ныне!  
iLavr
			
						- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Re: B2M EMU
Для начала "Пора бы уже" сделать его кроссплатформенным. 
Однако воз и ныне там: то времени нет, то желания, а то и просто нет мотивации.
			
			
									
						
							Однако воз и ныне там: то времени нет, то желания, а то и просто нет мотивации.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
- 
				Mondx
- Doomed
- Posts: 573
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: B2M EMU
b2m, а возможно как то для произвольного z80 компа как то сконфигурировать?
Типа, ОЗУ, ПЗУ, 1 порт ввода и 1 вывода? Реально?)
			
			
									
						
										
						Типа, ОЗУ, ПЗУ, 1 порт ввода и 1 вывода? Реально?)
- 
				b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Re: B2M EMU
Можно. Но в качестве портов ввода-вывода не получится использовать реальное железо. Максимум - эмуляция ВВ55 через TCP соединение. Можно ещё типа светодиодов сделать вместо вывода на экран (по аналогии с Наири). Ну и типа клавиатуры что-нибудь, вместо порта ввода. Всё остальное - только в отладчике смотреть.
			
			
									
						
							Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
			
						http://bashkiria-2m.narod.ru/
 
				