Basic Altair de Microsoft

https://www.genbeta.com/a-fondo/bill-gates-publica-completo-codigo-genial-que-ha-programado-su-vida-esta-joya-fue-primera-piedra-microsoft

Si nos preguntamos si el visual basic descrito puede ser reescrito para un procesador 8085 podemos decir que:


El artículo en Genbeta describe cómo Bill Gates compartió el código fuente de Altair BASIC, el primer producto de Microsoft, escrito originalmente para el procesador Intel 8080 del Altair 8800. Este código, presentado en un PDF de 157 páginas en lenguaje ensamblador, fue diseñado específicamente para las características del 8080, un microprocesador de 8 bits lanzado en 1974. La pregunta es si este código podría reescribirse para el Intel 8085, un procesador posterior y compatible en gran medida con el 8080.


El Intel 8085, lanzado en 1976, es una evolución del 8080. Ambos son microprocesadores de 8 bits con un conjunto de instrucciones muy similar, pero hay diferencias clave. El 8085 tiene algunas instrucciones adicionales (como RIM y SIM para manejo de interrupciones), un reloj integrado y un diseño más eficiente en términos de energía y hardware, ya que requiere menos circuitos externos. Sin embargo, el conjunto de instrucciones del 8080 es casi completamente un subconjunto del 8085, lo que significa que el código ensamblador escrito para el 8080 es, en principio, ejecutable en un 8085 sin modificaciones significativas, siempre que se respeten las condiciones de hardware.
El Altair BASIC fue escrito en ensamblador para el 8080 y optimizado para funcionar en los 4 KB de memoria disponibles en el Altair 8800. Dado que el 8085 mantiene compatibilidad binaria con el 8080, el código original podría ejecutarse directamente en un 8085, asumiendo que el entorno de hardware (memoria, entrada/salida, etc.) sea equivalente. Sin embargo, “reescribir” implica adaptar o reimplementar el código, lo cual podría tener distintos grados de complejidad dependiendo del objetivo.
Posibilidad técnica
Ejecución directa sin reescritura: Si el objetivo es simplemente hacer que el Altair BASIC funcione en un 8085, no sería necesaria una reescritura completa. El código ensamblador del 8080 es compatible con el 8085, y las diferencias en el conjunto de instrucciones no afectan las operaciones básicas usadas en el intérprete BASIC. Solo habría que ajustar el hardware subyacente (como puertos de E/S) si difieren del Altair 8800.

Optimización para el 8085: Si se desea aprovechar las características específicas del 8085 (como las nuevas instrucciones o el manejo de interrupciones), se podría reescribir partes del código. Por ejemplo, usar RIM y SIM para gestionar interrupciones podría mejorar la interacción con periféricos, aunque el Altair BASIC original no dependía heavily de interrupciones. Esto sería una optimización menor, no una reescritura completa.

Reescritura completa: Si el objetivo es reimplementar el intérprete BASIC desde cero para un sistema basado en 8085 con un hardware diferente (por ejemplo, un kit de desarrollo moderno con 8085), habría que adaptar las rutinas de entrada/salida, gestión de memoria y posiblemente algunas optimizaciones. Esto requeriría un esfuerzo significativo, pero es factible dado que el 8085 sigue siendo un procesador de 8 bits con capacidades similares al 8080.
Desafíos prácticos
Hardware: El Altair BASIC estaba diseñado para el Altair 8800, que usaba un bus S-100 y un esquema específico de E/S. Un sistema con 8085 podría tener un diseño diferente, lo que requeriría ajustar las direcciones de memoria y los puertos de E/S en el código.

Documentación: El PDF compartido por Gates ofrece el código fuente original. Reescribirlo implicaría traducir manualmente cada instrucción y rutina, un proceso laborioso pero posible con conocimientos de ensamblador.

Propósito: El 8085 no ofrece mejoras sustanciales en velocidad o capacidad que justifiquen una reescritura completa para el mismo propósito (un intérprete BASIC). El beneficio estaría en usarlo en un sistema distinto, no en el procesador en sí.
Conclusión
Sí, el Altair BASIC descrito en el artículo de Genbeta puede “reescribirse” para un procesador 8085, pero en la práctica no sería necesario un esfuerzo extenso para que funcione. El código original en ensamblador 8080 ya es compatible con el 8085, y los ajustes serían mínimos (principalmente en la interfaz de hardware) a menos que se busque optimizarlo específicamente para características únicas del 8085. Si el objetivo es educational o experimental, podrías tomar el PDF, analizar las rutinas clave (como el núcleo del intérprete o las funciones de E/S), y reimplementarlas ajustándolas a un sistema 8085 moderno, pero esto sería más un ejercicio de ingeniería inversa que una necesidad técnica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *