Un sistema operativo gráfico para los Atari 8 bit

Sistemas Atari ST, STe, STm, STfm, ST+, STe, ...
Avatar de Usuario
explorer
Commodore 128
Commodore 128
Mensajes: 90
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias recibidas: 5 veces

Un sistema operativo gráfico para los Atari 8 bit

Mensajepor explorer » 09 Sep 2015, 13:21

Imagen
http://atari8.co.uk/gui/

(traducción)

El proyecto GUI/OS creció a partir de una simple demo con un ratón, basado en el controlador de ratón manejado por interrupciones, de John Maris, gracias a las ideas y ayuda de los miembros de AtariAge analmux, andym00 y popmilo. Se desarrolló un sprite puntero en un hardware simulado en alta resolución, completamente independiente de la aplicación subyacente.

Mientras tanto, Paul Fisher tomó toda la responsabilidad del diseño de la fuente de letras y producción (creando una cadena de herramientas de producción para convertir fuentes BDF y usarlas con nuestro GUI), y diseñó muchos cientos de iconos y docenas de otros recursos. También es jefe de beta-tester, y sin la asistencia de Paul, este proyecto hubiera sido imposible sobrellevarlo. Paul también creó muchas pantallas con el aspecto de cómo debería aparecer el producto terminado. Estas pantallas son representaciones realistas de elementos de pantalla implementados actualmente. El SO gráfico incluirá:

  • un kernel multitarea apropiativa con soporte de hasta 16 procesos
  • sistema de mensajería entre procesos, con soporte de hasta 64 mensajes pendientes
  • reemplazar completamente Atari OS y DOS
  • controladores de sistema de archivos con soporte para FAT12, FAT16 y FAT32
  • ventanas desplazables, redimensionables y superpuestas
  • menús en cascada y contextuales
  • atajos e iconos de escritorio desplazables
  • perfilado de carga de CPU por cada proceso y general
  • cajas de diálogo con un rico conjunto de controles (cajas de listas, contadores, desplazadores)
  • fuentes de letras de 256 caracteres 256, desde los 6 a los 24 puntos
  • estilos de cursiva, negrita, subrayado, bordeado y sombra para todas las fuentes
  • control de ratón suave, rápido y adaptable
  • gestor de archivos en el escritorio, con soporte para arrastrar-y-soltar
  • API completa y documentación técnica para los desarrolladores

Mientras que se espera que el SO soporte de forma mínima máquinas 64 KB XL/XE sin expansiones, realmente el hardware mínimo requerido será un Atari 8 bit XL/XE con al menos 128 KB, un cartucho flash (o Ultimate 1 MB/Incognito), y un ratón o trackball compatible con ST o Amiga.

A finales de 2012, Jörn Mika (alias Prodatron), autor del notable Sistema Operativo Gráfico SymbOS para el CP/M, MSX y otras plataformas Z80, se me acercó con algunas sugerencias con respecto a la presentación, gestión de ventanas y multitarea. Debido a estas conversaciones cruciales, y a la visión que proporcionó Jörn, la decisión que se tomó fue la de abandonar el árbol binario de estructuras de objetos internos del GUI A8 (modelado inicialmente a partir del TOS del ST), y adoptar en su lugar una ventana plana de registros casi idéntica a las usadas por la API de SymbOS. Este cambio produjo inmediatamente reducciones considerables en la complejidad del código y el tamaño, y en un incremento en la eficiencia. Y aún quedaba espacio para mejoras en otras áreas en complejidad del código y tamaño, y un incremento en la eficiencia.

Después de más de seis meses de persistentes dudas sobre la propiedad de la tecnología “máscara de ventana” que había diseñado, decidí dar el paso y hacer lo que Jörn sugería que podría conseguir un considerable aumento en la velocidad de presentación: a saber, abandonar las máscaras de ventanas (que, por otra parte, podría bien haberse llamado “regiones”), y usar un sistema de gestión de ventanas tradicional basado en el redibujado de rectángulos “sucios”, como el que se usa en SymbOS. En el verano/otoño de 2013 me puse a escribir una implementación completa del gestor de ventanas basado en rectángulos. Impresionado con el resultado, agregué el cambio y optimicé todo el sistema para usar los rectángulos, y esta reescritura masiva resultó en una mejora de la eficiencia de aproximadamente del 100 por cien cuando se presenta contenido en ventas superpuestas. Después de otras optimizaciones en el motor de presentación de las fuentes de letras, finalmente comenzamos a ver lo que era una semejanza al aparentemente mágico SymbOS.

Además de esto, Jörn me convenció que la tarea apropiativa era posible en el 6502, así que en mayo de 2014, comencé la ardua tarea de convertir el código actual para que se ejecutara desde un cartucho multibanco, mientras que, de forma simultánea, se diseñaba el kernel multitarea apropiativa. En agosto de 2014, el cartucho creado funciona bien y el kernel es totalmente funcional, y podemos, finalmente, presenciar múltiples tareas compartiendo el tiempo de CPU en el Atari 8 bit, y usando una cola de mensajes como sistema de comunicación. Gracias a Jörn y muchos miembros del foro AtariAge, de quienes se han implementado algunas de sus técnicas muy novedosas sobre la gestión de la pila y la página cero.

Lo que es especialmente alentador en este estado es que el Atari 8 bit puede, ahora, ejecutar un planificador apropiativo, y funciona bien, a pesar de la pila fija del 6502. Y el hardware personalizado del Atari permite hacer posibles otras cosas muy bonitas, como el cálculo del uso del procesador, sumando lo que se consume en cada proceso, así como la monitorización del tiempo de la CPU cuando está ociosa.

Para ayudar a potenciales desarrolladores, la documentación de la API continuará a lo largo de 2015, y -era de esperar- esta tarea se volverá más sencilla a medida que la arquitectura del sistema se vuelve más definida mientras se codifica. Existe todavía un montón de trabajo (controles de la interfaz de usuario, sistema de archivos, controlador SIO, etc.), pero ahora tenemos un SO gráfico multitarea rudimentario -y que es eficiente y utilizable- así que parece que no haya límite a lo que se puede conseguir.
Última edición por explorer el 06 Feb 2016, 18:38, editado 4 veces en total.
JF^D Perl Programming

Avatar de Usuario
robcfg
Amiga 1200
Amiga 1200
Mensajes: 1710
Registrado: 07 May 2009, 15:34
Sistema Favorito: Amstrad CPC
primer_sistema: Atari 800XL/600XL
Ubicación: Madrid
Gracias dadas: 59 veces
Gracias recibidas: 30 veces

Re: Un sistema operativo gráfico para los Atari 8 bit

Mensajepor robcfg » 10 Sep 2015, 00:00

Está muy interesante!

Prodatron estaba comentando el tema también en el CPCWiki.

La verdad es que le están sacando humo al 6502 del Atari, jeje!


Volver a “Atari”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado