Computadora "Virtual"

Foro dedicado a la emulación de sistemas clásicos en el PC o en otros sistemas.
Avatar de Usuario
Zardoz
MSX Turbo R
MSX Turbo R
Mensajes: 283
Registrado: 09 Sep 2013, 19:04
Sistema Favorito: (Otro)
primer_sistema: (Otro)
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Madrid
Contactar:

Computadora "Virtual"

Mensajepor Zardoz » 11 Feb 2014, 18:54

Bueno. Como ya indique en su día, estoy trabajando en el ordenador virtual para un juego. Ahora mismo la cosa ha evolucionado de tal manera que quizás lo que más se le acerque del mundo real seria una maquina con bus S100 que le hubiesen puesto alguna clase de Plug&Play a la "autoconfig".

Venia a pediros opinión sobre como os parece el sistema, si complicado de usar o sencillo. Primero os lo describo por encima.

:matrix2:
La maquina consiste en una placa base que tiene una cierta funcionalidad propia en forma de un par de dispositivos integrados (bepper, temporizador, RTC y un controlador de teclado) y una "ASIC". Aparte tiene ranuras de expansión para dispositivos, slots de memoria (inicial 128KiB expandible hasta 1MiB), y una ranura par una tarjeta de CPU. Hay un bus de datos de 32 bits y uno de direcciones de 24 bits. Las CPUs de 16 o 8 bits tienen que llevar alguna forma de paginación o segmentación de memoria para poder direccionar por lo menos 24 bits, ya que por norma, los dispositivos se mapean por encima de 0x110000 y la ROM (32 KiB) esta decodificada a 0x100000. Hay como 14 MiB de direcciones para el hardware, lo cual sobra a patadas. En principio vamos con dos CPUs posibles (una variante del DCPU-16 y el TR3200) ficticios, aunque se deja la puerta abierta a otros micros futuros o incluso micros reales como por ejemplo, algo compatible binariamente con un Z80 (no una emulación fiel, pero que si pueda correr código maquina del Z80.)

Aquí viene el tomate gordo y donde me interesa realmente vuestra opinión. Como se espera que se puedan enchufar bastantes dispositivos, lo cual seria un infierno si hubiese que configurarlos todos a mano con "jumpers" ya que es posible tener varias tarjetas duplicadas; habíamos pensado hacer que la placa base tenga una "ASIC" inteligente llamada "Hardware Enumerator Device". Este dispositivo negocia con los dispositivos no integrados y les asigna interrupciones y bloques de direcciones de memoria. Así que el SO o los programas solo tienen que hablar con este dispositivo para saber que tarjetas hay, y que interrupciones usa y que bloque de direcciones decodifica.

¿ Complicado ? ¿ Sencillo ? ¿ Problemático ? Me he planteado otros esquemas, como que un dispositivo tenga una lista de interrupción/bloque de direcciones y que si no puede usar la primera entrada de la lista, pase al siguiente... creo que podría ser algo más sencillo y más predecible (por ejemplo, pase lo que pase, se que en la dirección X esta mapeado la tarjeta gráfica si hay por lo menos una pinchada.). Si hay problemas es más que probable que sean con los dispositivos duplicados y evita tener que sacar listas de recursos vía el "Hardware Enumerator Device", solo habría que tener la lista de dispositivos y sabiendo el orden en que estan, sabes que recursos va a usar.

Los ficheros en "ingles" : https://github.com/trillek-team/trillek ... tree/idea1
Última edición por Zardoz el 18 Feb 2014, 11:53, editado 1 vez en total.
Yep, I have a blog :zardoz.es
Emulador DCPU-16 VM
Emulador Trillek

Avatar de Usuario
Zardoz
MSX Turbo R
MSX Turbo R
Mensajes: 283
Registrado: 09 Sep 2013, 19:04
Sistema Favorito: (Otro)
primer_sistema: (Otro)
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Madrid
Contactar:

Re: Computadora "Virtual"

Mensajepor Zardoz » 12 Feb 2014, 19:14

Y aquí una re-escritura parcial con la otra idea de las listas : https://github.com/trillek-team/trillek ... tree/idea2
Parece que gusta algo más, por el hecho de que es más predecible.
Yep, I have a blog :zardoz.es
Emulador DCPU-16 VM
Emulador Trillek


Volver a “Emuladores”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados