ZONADEPRUEBAS RETROINFORMÁTICA
Por favor Iniciar sesión o Registrarse.
La fecha y hora actual es viernes, 29 de marzo 2024, 06:35
Inicio  Buscar  Ayuda  Iniciar sesión  Registrarse  Miembros  Sala de chat

ZONADEPRUEBAS RETROINFORMÁTICA :: SISTEMAS CLÁSICOS :: EMULADORES :: Emulador de CP/M para Linux.  :: Página 1 De 2 :: [ 1  | 2 ]
NotFound
Senior Member
Imagen


Mensajes: 131
Emulador de CP/M para Linux. (domingo, 11 de enero 2004, 11:49) Citar  
Hola.

Aprovechando que tenía unos días libres he empezado un nuevo proyecto retro: un emulador de CP/M.

No es un emulador de una máquina en la que corra CP/M, no, emula solamente el microprocesador para ejecutar los programas de usuario y todas las llamada a CP/M son capturadas y ejecutadas nativamente. O sea, que no hay imágenes de disco ni cosas por el estilo, abre ficheros directamente de disco.

Por ahora es solamente para Linux, quizá más adelante lo adapte a Windows.

Se llama Alia/DOS y podeis descargar una versión muy preliminar (pero que ya es capaz de ejecutar, por ejemplo, el Basic del Amstrad PCW) de:

www.arrakis.es/~ninsesabe/aliados/

Suponiendo que me de tiempo a escribir la página, claro, si no probar dentro de uno o dos días.


Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
Orden de las respuestas: última respuesta primero :: primera respuesta primero
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (miércoles, 14 de enero 2004, 04:01) Citar  
Citar:

Para empezar los códigos de escape (por lo que he podido deducir el equivalente a "negrita", tal vez tabuladores...) salen como "ESC", lo que hace imposible el manejo del programa.


Ya, es que con los códigos de control estoy haciendo lo mismo que con las funciones del sistema operativo: he ido implementando los que he ido necesitando nada más y el resto muestro cuales son para ir viendo cuales más necesito con cada programa. Bien, en cuanto pueda hacer unas pruebas resolveré ese tema.


Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
colossus
Moderador
Imagen
Imagen

Mensajes: 315
RE: Emulador de CP/M para Linux. (miércoles, 14 de enero 2004, 02:32) Citar  
Citar:
Pues al final he hecho lo que debería haber hecho al principio, que es probar yo el juego, y efectivamente es la BIOS 45...

Bueno, hice un cut&paste de la consola así que era difícil equivocarse Eso sí, la interpretación del error era ya cuestión tuya. Si es algo espefífico del PCW pues a otra cosa...

He probado ya un Word Star (versiones 3 y 4) para CP/M, y un compilador de Pascal (Turbo Pascal 3.00A). Para empezar los códigos de escape (por lo que he podido deducir el equivalente a "negrita", tal vez tabuladores...) salen como "[ESC]", lo que hace imposible el manejo del programa.

Un saludo: Colossus

IP conectada Estado: desconectado Perfil 
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 16:12) Citar  
Hola.

Pues al final he hecho lo que debería haber hecho al principio, que es probar yo el juego, y efectivamente es la BIOS 45, hice mal en creer que te equivocabas, mis disculpas.

Pues tras corregir unos errores que había en la localización de las llamadas a BIOS resulta que es la llamada 30 decimal, que según la documentación es "Reserved for System Implementor", o sea que efectivamente es algo específico del PCW y por ahí no sacamos nada para CP/M. Bueno, al menos el lío me ha servido para corregir unos fallos




Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 15:37) Citar  
Hola.

Pues no, había mirado la 45 decimal y los mensajes de Alia/DOS de función no soportada son en hex, o sea que es la 69. Pues es más raro todavía, esa es de CP/M Net. Bueno, la llamaré en Joyce y le echaré un vistazo a lo que devuelve, permanezcan atentos a sus pantallas.


Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 15:02) Citar  
Citar:
Para empezar he probado una par de programas BASIC a pelo, MASTER y MAU, y parecen ir bien siempre y cuando los ejecutes en un xterm de 90x32 caracteres (si no también van bien, pero no se entiende nada ).


Sí, olvidé mencionar ese detalle. Claro, si el programa espera un terminal del poco usual tamaño del pcw hay que dárselo.

Por cierto, prueba a ejecutar el RPED.BAS, si mal no recuerdo del disco 1, en un terminal de más de 90 columnas y verás un curioso error del programa.

Citar:

En los que se menciona "partialy in machine code" (por ejemplo el Blitz) cascan con un "BIOS CALL 45 unimplemented.".


¿45? Las llamadas BIOS no llegan tal alto, ¿No será BDOS? Si es BDOS, tampoco existe una llamada documentada con ese número, imagino que será algo específico del PCW. Bueno, si el programa es gráfico puede ser del GSX, no tengo documentación del GSX a mano para mirarlo ni recuerdo que números usa.

A ver que dice google...

BDOS function 45 - Set action on hardware error
Supported by: Personal CP/M, MP/M II and later, CP/Net redirector.

Pues no se que versión es Personal CP/M, pero en la referencia de CP/M Plus esa función no viene y el PCW que yo sepa usa CP/M Plus... bueno, la referencia que tengo es de CP/M 3 a secas y la del PCW es 3.1, o al menos eso dice una llamada Return Version Number en el joyce con los discos maestros que conseguí por ahí, que en el arranque dice que es CP/M Plus v1.2

Por cierto, muy interesante el sitio donde he encontrado eso:
www.seasip.demon.co.uk/Cpm/index.html

Pues nada, implementaré la función esa (probablemente no haciendo nada) y veremos el siguiente sitio en que peta.



Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
colossus
Moderador
Imagen
Imagen

Mensajes: 315
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 14:12) Citar  
Citar:
Lo que busco es software genérico de CP/M. Un wordstar, por ejemplo, estaría bien. Y de programas Basic, que no usen gráficos


Sí, eso pensaba yo... Para empezar he probado una par de programas BASIC a pelo, MASTER y MAU, y parecen ir bien siempre y cuando los ejecutes en un xterm de 90x32 caracteres (si no también van bien, pero no se entiende nada ). En los que se menciona "partialy in machine code" (por ejemplo el Blitz) cascan con un "BIOS CALL 45 unimplemented.".

Seguiré probando...

Un saludo: Colossus





IP conectada Estado: desconectado Perfil 
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 10:22) Citar  
Hola.

He echado un vistazo a los sitios que me comentas y las cosas parecen ser o específicas para PCW o utilidades que manejan los discos a bajo nivel. De las específicas me puede interesar más adelante alguno que usa gráficos a través de GSX, pero el soporte de GSX no está entre las cosas más prioritarias.

Lo que busco es software genérico de CP/M. Un wordstar, por ejemplo, estaría bien. Y de programas Basic, que no usen gráficos.


Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
colossus
Moderador
Imagen
Imagen

Mensajes: 315
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 08:04) Citar  
Hola:

Citar:
Dime un par de programas y de donde bajarlos, que hay tantas cosas que hacer que no se por cuales empezar, y un buen criterio es hacer que funcioen programas concretos.


Pues el caso es que lo que probé era para PCW, y tampoco sé decirte si era un problema del CP/M en general o de la arquitectura PCW en particular.

De donde bajé cosas principalmente fue de:
www.seasip.demon.co.uk/Cpm/software/amstrad.html
y
www.euronet.nl/users/fvempel/basic.html

Si tengo tiempo iré probando cosillas poco a poco y te iré comentando por MP los resultados, pero tú ya tienes por dónde empezar

Un saludo: Colossus

IP conectada Estado: desconectado Perfil 
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 07:25) Citar  
Citar:
Con los pocos programas para PCW que me he podido bajar de la red parece ir bastante bien. Por lo menos crea correctamente en mi disco duro los ficheros extraidos de los autodescomprimibles, aunque normalmente la cosa acaba con un "Not Supported" o algo por el estilo.


Dime un par de programas y de donde bajarlos, que hay tantas cosas que hacer que no se por cuales empezar, y un buen criterio es hacer que funcioen programas concretos.

Citar:
El Mallard BASIC efectivamente funciona, y ejecuta programillas que no hagan cosas demasiado raras.


Pues lo mismo, dime un par de ellos que no funcionen.

Citar:

Un detalle: para compilarlo con "make" utilizando sólamente la biblioteca ImcZ80, además de comentar una línea en cpm.cpp como dices en el README, he tenido que eliminar el parámetro "-lZ80" de la línea 33 del Makefile.


Ah, sí, se me olvidó ese detalle, a ver si esta tarde lo arreglo.

Citar:
Creo que eso es todo por ahora. En resumen me parece muy interesante. ¿Piensas añadirle algo más?


Claro, la idea es (con tiempo) emular CP/M Plus al completo, BIOS y BDOS... bueno, quizá las cosas de conmutación de bancos de memoria no, pero como hay versiones no bancadas eso no le quitaría generalidad. Lo que está hecho son simplemente las funciones que he ido necesitando implementar para que funcionen algunos programas y tener algo utilizable, pero esto es sólo el comienzo.


Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 
colossus
Moderador
Imagen
Imagen

Mensajes: 315
RE: Emulador de CP/M para Linux. (martes, 13 de enero 2004, 06:49) Citar  
Buenas, NotFound:

Por fin he encontrado un ratiilo para ojear el alia/DOS.

Con los pocos programas para PCW que me he podido bajar de la red parece ir bastante bien. Por lo menos crea correctamente en mi disco duro los ficheros extraidos de los autodescomprimibles, aunque normalmente la cosa acaba con un "Not Supported" o algo por el estilo. El Mallard BASIC efectivamente funciona, y ejecuta programillas que no hagan cosas demasiado raras.

Un detalle: para compilarlo con "make" utilizando sólamente la biblioteca ImcZ80, además de comentar una línea en cpm.cpp como dices en el README, he tenido que eliminar el parámetro "-lZ80" de la línea 33 del Makefile.

Creo que eso es todo por ahora. En resumen me parece muy interesante. ¿Piensas añadirle algo más?

Un saludo: Colossus

PD: también he probado muy por encima el miasma, pero ya te ha hablado de él en ecss gente mucho más cualificada que yo

PD2: Citar:
El principal secreto de poder hacerlo tan rápido es que la emulación de la CPU Z80 no me la he currado yo...
Hombre, eso ya lo suponía

IP conectada Estado: desconectado Perfil 
NotFound
Senior Member
Imagen


Mensajes: 131
RE: Emulador de CP/M para Linux. (domingo, 11 de enero 2004, 13:34) Citar  
Citar:
Sencillamente impresionante: una semana de ausencia y vuelves con un compilador y un emulador de CP/M... Aunque dados mis escasos conocimientos de CP/M no me voy a enterar de mucho estoy deseando echarles un ojo cuando los hayas colgado en tu página.


Ya están colgados los dos. Miasma lleva algunos asm de ejemplo, las pruebas que se pueden hacer de Alia/DOS es ejecutar cosas con él... y ver como la mayoría dicen "Función no soportada".

El principal secreto de poder hacerlo tan rápido es que la emulación de la CPU Z80 no me la he currado yo, he usado la de Joyce y/o la libz80, que son las dos GPL.

El ensamblador, en cambio, es mio hasta el último byte.

Citar:
A parte de para felicitarte escribo para decirte (por si tú no dispones de uno) que si quieres que haga algún tipo de prueba en el PCW8256 que tengo funcionando no tienes más que decirlo.


Pues gracias, pero las pruebas que he necesitado las he hecho con Joyce. Bueno, saber que alguien lo ha probado en "la cosa real" no está de más, claro. Pues simplemente compilar los .asm de ejemplo que son para CP/M y probarlos en el PCW.

Citar:
PD: ¿Has mandado las Z80Util al W.O.S.?


Si mal no recuerdo les había mandado un e-mail pero no me contestaron.



Salu2
IP conectada Estado: desconectado Perfil Página web del miembro 

PBLang 4.59 © 2002-2003 by Martin Senftleben
Imagen