Текстовый эмулятор Pseudo-86RK

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

b2m
Devil
Posts: 907
Joined: 26 May 2003 13:57
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by b2m »

Code: Select all

  if(a>=0x77C0 && a<0x8000 && b>0 && b<128) // Screen
  {
     a -= 0x77C0;
     print(b,a%78,a/79);
  }
Какие-то странные у тебя константы: 0x77C0 вместо 0x76D0 (тут я ещё понимаю, начало видимой области учтено), но 79 вместо 78? Рано или поздно координата Y будет меньше, чем надо.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

79 я исправил на сегодняшнем стриме - это я изначально поторопился :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Обновил репу последними сырцами:

https://gitlab.com/nedopc/sdk/-/tree/master/pseudo-86rk

Кстати это книжка "Домашний компьютер" ввела меня в заблуждение - там буфер экрана "начинается" с 37C0H (77C0H):

RK-screen-buffer.jpg
RK-screen-buffer.jpg (254.24 KiB) Viewed 3058 times

Наверное в случае доса надо начинать с начала первой видимой строки - 77BAH (т.к. в досе 25 строк по умолчанию)

А для терминала линукса можно и во весь рост плясать - начиная с 76D0H...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Сегодня планирую подключить клаву:


https://www.youtube.com/watch?v=2sCuhropwhQ
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Стрим закончился - клава подключена (пока в досе):

Screenshot from 2024-05-19 02-54-06.png
Screenshot from 2024-05-19 02-54-06.png (268.6 KiB) Viewed 2998 times

(тут сравнение выхлопа от вручную введённой директивы DF800,F8FF между онлайн эмулятором и моим новым DOS-эмулятором)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Планирую добавить измерение тактов через «бесполезные» инструкции:

Code: Select all

mov a,a - A event
mov b,b - B event
mov c,c - C event
mov d,d - D event
mov e,e - E event
mov h,h - save BC bytes from HL to filename DE
mov l,l - save lower 32K to the file with incremental name 
При возникновении события A,B,C,D,E будут выводится в фигурных скобках разницы в тактах от последних событий каждого типа, например {b-event:201:0:::} что значит событие B произошло через 201 такт после события A и других событий в этой сессии небыло...

P.S. В итоге ещё сделал чтобы после окончания работы программы по HLT оно ещё печатало сколько прошло тактов от последнего события каждого типа A,B,C,D,E (если они были):

Code: Select all

{pseudo-86rk:v0.1}                                                            
                                                                              
radio-86rk                                                                    
-->                                                                           
{a-event:0::::}                                                               
{b-event:12:0:::}                                                             
{a-event:34:22:::}  
{halt}                                                                        
{from-last-a:7}                                                               
{from-last-b:29}                                                              
{bye}    
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Подходит время CI/CD :lol:


https://www.youtube.com/watch?v=fXn2dQR6jqE
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Стрим закончился - репа обновлена:

https://gitlab.com/nedopc/sdk/-/commit/315b1137d0109c44dd87d12fddd39dfb3506c8fb

P.S. rk86ex1.bin у меня пока глючит :cry:
Attachments

Screenshot from 2024-05-24 02-07-36.png
Screenshot from 2024-05-24 02-07-36.png (18.43 KiB) Viewed 2716 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 11:29
Location: 93.80.157.217
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by vital72 »

точно также выглядит на rk86.ru.
думаю, проблема в программе.

august_radio-86rk_.png
august_radio-86rk_.png (17.29 KiB) Viewed 2712 times

https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Да - мой вариант http://rk86.net точно также намусорил и показал ошибку контрольных сумм:
Attachments

Screenshot from 2024-05-24 08-55-48.png
Screenshot from 2024-05-24 08-55-48.png (42.95 KiB) Viewed 2684 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
b2m
Devil
Posts: 907
Joined: 26 May 2003 13:57
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by b2m »

Какая-то странная особенность. Тот-же самый тест, с тем же кодом эмуляции процессора, но в среде CP/M, работает без проблем, ошибок не выявляет.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

Ещё вот такой тест есть (тоже из CP/M-80 похоже т.к. стартовать надо через G100):

Screenshot from 2024-05-25 10-35-27.png
Screenshot from 2024-05-25 10-35-27.png (38.65 KiB) Viewed 2628 times

У меня он проходит:

Code: Select all

./pseudo-86rk-stdout -s100 cputest.bin 
{pseudo-86rk:v0.1}

radio-86rk
-->

DIAGNOSTICS II V1.2 - CPU TEST
COPYRIGHT (C) 1981 - SUPERSOFT ASSOCIATES
ABCDEFGHIJKLMNOPQRSTUVWXYZ
CPU IS 8080/8085
BEGIN TIMING TEST
END TIMING TEST
CPU TESTS OK
-->
{bye}
P.S. Может заменить опцию s на g? Чтобы было -g100 как при ручном старте...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

b2m wrote:Какая-то странная особенность. Тот-же самый тест, с тем же кодом эмуляции процессора, но в среде CP/M, работает без проблем, ошибок не выявляет.
Ты про 8080EX1.COM? Он всё-таки немного другой по коду т.к. печатает маленькими буквами и я свой класс Process8080 ещё в 2012 году поправил, чтобы проходил все тесты:

Code: Select all

*********************************
File "8080EX1.COM" loaded, size 4608
8080 instruction exerciser (KR580VM80A CPU)
dad <b,d,h,sp>................  OK
aluop nn......................  OK
aluop <b,c,d,e,h,l,m,a>.......  OK
<daa,cma,stc,cmc>.............  OK
<inr,dcr> a...................  OK
<inr,dcr> b...................  OK
<inx,dcx> b...................  OK
<inr,dcr> c...................  OK
<inr,dcr> d...................  OK
<inx,dcx> d...................  OK
<inr,dcr> e...................  OK
<inr,dcr> h...................  OK
<inx,dcx> h...................  OK
<inr,dcr> l...................  OK
<inr,dcr> m...................  OK
<inx,dcx> sp..................  OK
lhld nnnn.....................  OK
shld nnnn.....................  OK
lxi <b,d,h,sp>,nnnn...........  OK
ldax <b,d>....................  OK
mvi <b,c,d,e,h,l,m,a>,nn......  OK
mov <bcdehla>,<bcdehla>.......  OK
sta nnnn / lda nnnn...........  OK
<rlc,rrc,ral,rar>.............  OK
stax <b,d>....................  OK
Tests complete
Jump to 0000 from 0137
Может когда переделывали 8080EX1.COM в RK86EX1.BIN чего-то напортачили? Надо сравнить побайтно...

P.S. Вот репа с сырцами: https://github.com/begoon/rk86-ex1

P.P.S. Hex разница между 8080EX1.COM и RK86EX1.BIN:

Code: Select all

1c1,9
< 00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
---
> 00000000  c3 6c f8 ff ff 79 fe 02  ca 1c 00 fe 09 ca 39 00  |.l...y........9.|
> 00000010  cd 15 f8 21 45 00 cd 18  f8 c3 6c f8 4b 79 fe 61  |...!E.....l.Ky.a|
> 00000020  fa 2b 00 fe 7b f2 2b 00  d6 20 4f 2a 48 00 71 23  |.+..{.+.. O*H.q#|
> 00000030  36 00 22 48 00 cd 09 f8  c9 1a fe 24 c8 4f cd 1d  |6."H.......$.O..|
> 00000040  00 13 c3 39 00 0a 0d 00  00 40 ff ff ff ff ff ff  |...9.....@......|
> 00000050  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
> *
> 00000080  21 00 40 cd 18 f8 c3 6c  f8 ff ff ff ff ff ff ff  |!.@....l........|
> 00000090  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
200c208
< 00000d70  a9 0d f9 fb 2a 03 01 22  99 0d 21 a5 0d 7e e6 ff  |....*.."..!..~..|
---
> 00000d70  a9 0d f9 00 2a 03 01 22  99 0d 21 a5 0d 7e e6 ff  |....*.."..!..~..|
284,289c292,293
< 000012b0  05 df 1b 2d 02 ef 8d a0  0a e2 78 d7 0d d2 ee 4e  |...-......x....N|
< 000012c0  04 83 54 39 03 b3 c2 a7  67 26 61 d0 60 16 f7 49  |..T9....g&a.`..I|
< 000012d0  69 47 4d 3e 6e 77 db ae  d1 6a 4a d9 d6 5a dc 40  |iGM>nw...jJ..Z.@|
< 000012e0  df 0b 66 37 d8 3b f0 a9  bc ae 53 de bb 9e c5 47  |..f7.;....S....G|
< 000012f0  b2 cf 7f 30 b5 ff e9 bd  bd f2 1c ca ba c2 8a 53  |...0...........S|
< 00001300
---
> 000012b0  05 df 1b 2d 02 ef 8d                              |...-...|
> 000012b7
Такое ощущение, что бинарник 8080EX1.COM не соответствует исходнику 8080EX1.MAC в котором тоже отсутствуют эти последние 73 байта...

P.P.P.S. Лишние 73 байта в конце похоже ни при чём - я попробовал их добавить и всё равно программа мусорит в том же самом месте...
Я тут за главного - если что шлите мыло на me собака shaos точка net
b2m
Devil
Posts: 907
Joined: 26 May 2003 13:57
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by b2m »

Shaos wrote:Ты про 8080EX1.COM? Он всё-таки немного другой по коду
Я специально взял тот самый .bin и откусил первые 256 байт, чтобы получить .com
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 24019
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Текстовый эмулятор Pseudo-86RK

Post by Shaos »

b2m wrote:
Shaos wrote:Ты про 8080EX1.COM? Он всё-таки немного другой по коду
Я специально взял тот самый .bin и откусил первые 256 байт, чтобы получить .com
Xм, странно - значит косячит процедура подмены вызовов CP/M?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Post Reply