Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

Crackeo preservativo
Restaurando ROMs
Una cosa lleva a la otra
Desbloqueando logros
Teclado en el PCW

Últimos comentarios

genocho
Victor Cortes Abad
Habi
Enrique
Dandare

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Abj dice: pues aquí, sin ganas de follar

PDS-ando (I)

Habi - 23/05/2015 12:29:47 - Tecnoesoterismo

En los tiempos de los ordenadores de 8 bits existió un sistema de desarrollo muy interesante para las compañías de software, llamado PDS (Programmers Development System). Mucho se ha dicho del tema en otros sitios así que no me extenderé aquí; simplemente decir que constaba de una interfaz de hardware para PC, otra para cada tipo de ordenador para el que se quisiera desarrollar y finalmente de software de desarrollo y de control remoto.
 
Para más información del tema hay un artículo muy bueno aquí: http://www.cpcwiki.eu/index.php/PDS_development_system, y en el caso que vamos a tratar un fichero TAP ya creado aquí: http://www.worldofspectrum.org/infoseekid.cgi?id=1000532. Toda esta información está disponible gracias a la gente del GUA y a José Leandro.
 
En cualquier caso: hace poco ha llegado a mis manos el contenido del CD que venía con la interfaz original que se ve en el artículo de la CPCWiki. CD que contiene además un montón de herramientas de desarrollo. Y CD que contiene, además, el código fuente de un montón de juegos / conversiones de la época. Por los títulos y algún que otro mensaje supongo que estos ficheros debieron pertenecer a Paul Griffiths y / o Andrew Severn. Por ejemplo, hay una versión final (además de la demo) del Dominion, pero también está el Blob the cop. También hay un montón de material no usado, rutinas hechas, etc. Muy jugoso todo ello.
 
Y aquí es donde empieza mi post: quiero jugar con todo ese material, así que... vamos a emular el PDS wink. Todas las imágenes de este post son además vínculos a versiones más grandes de las mismas, por si se quiere mirar algo con detalle.
 
Primero cogemos mi viejo emulador de Spectrum y le añadimos el código del PDS; como bien puede verse en su esquema correspondiente es un Z80PIO, pero se simplifica mucho ya que:
  1. No usa interrupciones.
  2. Trabaja siempre en modo control, no usa READY o STROBE alguno.
  3. Es un bus paralelo de 8 bits en el puerto A, con dos "relojes" en el puerto B.
Para la implementación del IPC escojo usar mailslots (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365576%28v=vs.85%29.aspx), ya que me permiten multidifusión, pueden funcionar sin estar asociados y funcionan en red. Es decir, puedo emular el que estén desconectadas las cosas, tener los emuladores en máquinas distintas, etc.
 
 
 
Por otro lado, me dio el punto y decidí usar DosBox para la emulación de PC (me es cómodo que acceda directamente al sistema de ficheros de Windows). Basta adaptarlo al Visual Studio y añadirle la emulación del PDS. En el caso del PC es un 8255 que de nuevo se simplifica mucho:
  1. El puerto A es siempre el bus en lectura.
  2. El puerto B es siempre el bus en escritura.
  3. El puerto C es de control: dos relojes por cada interfaz y otros cuatro bits que, aparentemente, no se usan (¿versión de 4 interfaces? ¿Control extra (uno de ellos va hacia el Z80PIO, pero no se usa)?).
Finalmente, la emulación la hago asíncrona, para prevenir timeouts en la parte del pc (uno de sus varios bugs: no puede ser usada en ordenadores rápidos).
 
 
Como ejemplo, un caso sencillito: la carpeta llamada "Plurps" (¿qué será, será?). Lanzamos ambos emuladores, cargamos la cinta en el de Spectrum en 64000 y el PDSZ80 en el PC. Pulsamos F9 para el menú de disco y escogemos la carpeta, seleccionamos el formato XMSDOS, la extensión PJG y cargamos todo. A continuación cambiamos la línea "SEND COMPUTER 2" por "SEND COMPUTER 1" (importante, pues sólo emulo la primera interfaz de momento), le damos a F1 y vemos como se ensambla todo y nos pregunta si lo sube al ordenador. Le decimos que sí (Y) y sólo nos queda ejecutar en 65533, ya sea modificando el registro PC en el emulador o usando el propio control remoto (F4).
 
 
Una cosa que me gusta es que si se usan varias directivas ORG sube el código por trozos a su sitio, en el mismo orden. El menú del control remoto nos permite un montón de cosas extras; os dejo una captura del mismo, así como otra del editor de gráficos integrados que tiene el sistema de desarrollo.
 
 
 
Seguiremos informando...


Añadir comentario

Nombre:
Email:
Comentario:
Pregunta: Sea f(x)=8x2+6x+2. ¿Cuánto vale f(x) para x=-1?
Respuesta: