Preciso de ajuda para desvendar o SO-08

32 views
Skip to first unread message

Leonardo Brondani Schenkel

unread,
Aug 22, 2022, 11:55:31 AM8/22/22
to CP500
Preciso de ajuda para desvendar um mistério do SO-08 + CP-500 M80 (e sucessores). O objetivo é emular o M80 corretamente no SDLTRS, e permitir rodar o SO-08 e softwares para CP/M no emulador.

O SO-08 para funcionar coloca o M80 em um layout alternativo de memória (pois o layout tradicional do TRS-80 Modelo III é incompatível com o CP/M) e também o vídeo no modo 80 colunas.

Para fazer essas duas coisas ele "cutuca" o hardware do M80 de um certo jeito. Pois bem, eu passei vários dias disassemblando, rodando, debugando, analisando e estudando o código de bootstrap do SO-08 no emulador. E eu tenho quase certeza de que descobri o "cutuco" (ou "cutucos").

Entretanto, esse "cutuco" é algo que no papel não faz sentido, não deveria funcionar. Deve ter algo que não estou enxergando.

Se você estiver lendo isso e tem acesso ao modelo M80 (ou posterior) pra fazer testes, e/ou tem conhecimento de assembly e do hardware do CP-500, por favor entre em contato comigo.

Walter Nunes

unread,
Aug 22, 2022, 1:05:37 PM8/22/22
to cp-...@googlegroups.com
Existe um truque de boot falso pra chavear e executar rotinas em ROM num endereço tipo # C3C3 como jump após reset.

Pois basta desligar tudo no reset por hard e meter por 74LS244 ou similar o valor C3 (jump) no barramento, desativando quando entra na rotina de testar ambiente DOS/M80.

Saiu na BYTE americana, lembro que no Br o micro MC-1000 usava a mágica, facilitava muito programar CP/M.

MARUJO.
--
Você recebeu essa mensagem porque está inscrito no grupo "CP500" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cp-500+unsubscribe@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/cp-500/38b754f5-9891-4d27-b093-890adb639eban%40googlegroups.com.

Felipe Sanches

unread,
Aug 22, 2022, 1:18:28 PM8/22/22
to cp-...@googlegroups.com
Tenho interesse em conversar com você para fazer a mesma coisa no MAME.
Alguns anos atrás fui eu que implementei melhorias de emulação do CP500 no MAME que permitiram bootar com a ROM da prológica e depois essas melhorias foram portadas pro SDLTRS.

Estou um pouco ocupado essa semana, mas poderei fazer alguns experimentos com isso acho que semana que vem. Bora conversar!

--
Você recebeu essa mensagem porque está inscrito no grupo "CP500" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cp-500+un...@googlegroups.com.

Leonardo Brondani Schenkel

unread,
Aug 22, 2022, 1:30:56 PM8/22/22
to cp-500
On 22/08/2022 19.18, Felipe Sanches wrote:
> Tenho interesse em conversar com você para fazer a mesma coisa no MAME.
> Alguns anos atrás fui eu que implementei melhorias de emulação do CP500
> no MAME que permitiram bootar com a ROM da prológica e depois essas
> melhorias foram portadas pro SDLTRS.

Isso. Estou mais do que ciente. Inclusive depois de debugar o SO-08
tenho quase certeza que o flip-flop implementado não está 100% correto.
Na implementação emulada ele afeta toda a ROM (endereços 0000-37FF) mas
eu tenho a cópia do manual técnico do CP-500 com o circuito e o
flip/flop documentado e ele só afeta o bit 11 de endereços da EPROM 4,
ou seja, ele só muda o mapeamento dos endereços 3000-37FF.

Essa diferença na prática não afeta a emulação da ROM do CP-500, mas
pelo que analisei do SO-08 até agora pode fazer diferença. No momento
estou rodando um emulador que customizei para poder executar o SO-08,
até conseguir decifrar tudo.

Acesso a um M80 real também ajuda, porque posso passar uns pedaços de
código de máquina pra digitar e executar via monitor residente e ver
como ele se comporta na prática.

>
> Estou um pouco ocupado essa semana, mas poderei fazer alguns
> experimentos com isso acho que semana que vem. Bora conversar!
>
> Em seg., 22 de ago. de 2022 às 12:55, Leonardo Brondani Schenkel
> <leonardo...@gmail.com <mailto:leonardo...@gmail.com>> escreveu:
>
> Preciso de ajuda para desvendar um mistério do SO-08 + CP-500 M80 (e
> sucessores). O objetivo é emular o M80 corretamente no SDLTRS, e
> permitir rodar o SO-08 e softwares para CP/M no emulador.
>
> O SO-08 para funcionar coloca o M80 em um layout alternativo de
> memória (pois o layout tradicional do TRS-80 Modelo III é
> incompatível com o CP/M) e também o vídeo no modo 80 colunas.
>
> Para fazer essas duas coisas ele "cutuca" o hardware do M80 de um
> certo jeito. Pois bem, eu passei vários dias disassemblando,
> rodando, debugando, analisando e estudando o código de bootstrap do
> SO-08 no emulador. E eu tenho quase certeza de que descobri o
> "cutuco" (ou "cutucos").
>
> Entretanto, esse "cutuco" é algo que no papel não faz sentido, não
> deveria funcionar. Deve ter algo que não estou enxergando.
>
> Se você estiver lendo isso e tem acesso ao modelo M80 (ou posterior)
> pra fazer testes, e/ou tem conhecimento de assembly e do hardware do
> CP-500, por favor entre em contato comigo.
>
> --
> Você recebeu essa mensagem porque está inscrito no grupo "CP500" dos
> Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
> envie um e-mail para cp-500+un...@googlegroups.com
> <mailto:cp-500+un...@googlegroups.com>.
> <https://groups.google.com/d/msgid/cp-500/38b754f5-9891-4d27-b093-890adb639eban%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> Você recebeu essa mensagem porque está inscrito em um tema no grupo
> "CP500" dos Grupos do Google.
> Para cancelar inscrição nesse tema, acesse
> https://groups.google.com/d/topic/cp-500/8t5yo1v-5AM/unsubscribe
> <https://groups.google.com/d/topic/cp-500/8t5yo1v-5AM/unsubscribe>.
> Para cancelar inscrição nesse grupo e todos os seus temas, envie um
> e-mail para cp-500+un...@googlegroups.com
> <mailto:cp-500+un...@googlegroups.com>.
> Para ver essa discussão na Web, acesse
> https://groups.google.com/d/msgid/cp-500/CAK6XL6B1P%3DHLDTzM77rMaTcXscRG3E0vFZZvJU_B4aLOgGdKvw%40mail.gmail.com
> <https://groups.google.com/d/msgid/cp-500/CAK6XL6B1P%3DHLDTzM77rMaTcXscRG3E0vFZZvJU_B4aLOgGdKvw%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Leonardo Roman da Rosa

unread,
Aug 24, 2022, 12:24:39 PM8/24/22
to cp-...@googlegroups.com
Quem também pode conseguir ajudar é o Everaldo Lima.
Ele é o autor da placa adicional que existe no M80 original para gerar vídeo de 80 colunas:

Procurem ele nos grupos de retrocomputação no Facebook.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "CP500" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cp-500+un...@googlegroups.com.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/cp-500/a00d25d6-4a60-4218-b8e6-e13eb4fee66c%40schenkel.net.

Leonardo Brondani Schenkel

unread,
Aug 24, 2022, 1:37:08 PM8/24/22
to CP500
Sim, tenho mantido contato com ele mas infelizmente ele não sabe.

Mas acho que não vai mais precisar. Depois de gastar umas 50 horas fazendo engenharia reversa do SO-08 e quebrando a cabeça, eu consegui modificar o SDLTRS o suficiente para fazer o SO-08 completar o boot:

Screenshot from 2022-08-24 15-57-40.png

Como podem ver, o modo 80x25 ainda não está funcionando e alguns outros detalhes como interrupções ainda precisam de ajuste. Mas é completar o boot foi um benchmark importante.

Felipe Sanches

unread,
Aug 24, 2022, 1:43:49 PM8/24/22
to cp-...@googlegroups.com
Maravilha! Parece que dessa vez o caminho será o oposto, com os aprimoramentos no SDLTRS sendo portados para o MAME ;-)

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cp-500+un...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/cp-500/b9765fd9-f42d-4072-8eb5-3959364e762fn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages