Hice mucha programación en Apple (no profesionalmente, pero es lo que aprendí) y Applesoft BASIC y ensamblador sobre dónde estaba para los aficionados. Había otros idiomas disponibles: el logotipo era común, Pascal estaba escrito en todas partes, pero no conozco a nadie que lo usara, no estaba realmente al tanto de que C se usara en ninguna plataforma de Apple hasta que Orca C para Apple IIGS, hubo un Forth intérprete con gráficos estilo tortuga (o llámelo estilo logotipo) flotando también.
Abordaré algunas de sus preguntas y luego ideas básicas:
¿Puedes pensar en juegos populares escritos en BASIC? ¿Qué tal C?
Se escribió una gran cantidad de shareware en BASIC, no solo Applesoft BASIC sino también Integer BASIC (que como su nombre lo indica, no tenía números de coma flotante). Me viene a la mente la serie Eamon, pero realmente no puedo pensar en muchas otras. Además, gran parte del software escrito por Beagle Bros. se realizó en BASIC (principalmente utilidades, no juegos).
Sin embargo, creo que la mayoría del software comercial se escribió en ensamblador.
Pero no puedo imaginar que los juegos se escribieran así, ¿hubo editores / IDEs? ¿Cómo se almacenaron los programas en discos / cintas?
Utilicé Merlin Assembler, para llamarlo un IDE podría estirarlo, pero funcionó bien. Como dijiste, podrías ir al monitor del sistema e ingresar códigos de operación y correr desde allí. Merlín tenía una forma de regresar desde el monitor del sistema (que no recuerdo cómo ahora).
¿Pero no había editor visual?
Había una herramienta de terceros que hacía que el entorno de Applesoft fuera un poco mejor, y le permitía usar sus flechas para desplazarse por la pantalla y realizar ediciones como un editor visual (aún tenía que presionar la tecla de retorno al final de una línea o los cambios no se pegarían). No recuerdo qué fue eso, lo usé bastante.
¿O era necesario hablar directamente con el hardware todo el tiempo si quería dibujar algo o reproducir un sonido? ¿Había alguna biblioteca en absoluto?
En Apple II + / IIe / IIc prácticamente solo estabas hablando con el hardware. Había un par de programas en ROM que podía usar, pero eran muy limitados y, por lo general, PEEK y POKE varias ubicaciones de memoria para cambiar los registros y hacer lo que deseaba, por ejemplo, para cambiar los modos gráficos, poke 49152 para activar el altavoz, etc. .
En el Apple IIGS, la ROM viene con un conjunto de bibliotecas similares a las que viene con Macintosh, para hacer GUI sofisticadas y otras cosas. Las ROM se actualizaron con el tiempo, y si cargó un disco del sistema que usaba bibliotecas más nuevas, leerían desde el disco en lugar de ROM, lo que provocaría que el tiempo de arranque REALMENTE LENTO. Había ROM 01, 02 y 03, y 02 -> 03 era una actualización gratuita, y había una versión anterior a 01 que también harían una actualización gratuita a 01.
Me encantaría escuchar cualquier otra diferencia, como qué formatos de imagen / audio se usaron. Dado que no había realmente un concepto de archivos si lo entendía correctamente, me pregunto cómo funcionó. ¿Tuvo que escribir sus gráficos y sonidos en ensamblador? ¿Cómo funcionó eso en BASIC?
Hubo archivos, no estoy seguro de lo que quiere decir con eso, y ProDOS no admitió directorios (el DOS anterior no tenía pero aún tenía un concepto de un archivo que reconocería). Usé mapas de bits y .pcx's. No recuerdo ningún archivo de audio en la serie II + / IIe / IIc, pero eso fue porque era difícil hacer ruidos más elegantes que los blips y bloops de videojuegos. Hubo algunos hacks que emitieron sonidos sofisticados (en particular, tenía un disco que tocaba Gun N 'Roses), pero casi siempre se hacía de manera gramatical.
En comparación con los entornos modernos, era francamente primitivo. Pero recuerde, no había soporte para ejecutar múltiples programas al mismo tiempo, por lo que su compilador efectivamente también tenía que ser su editor; realmente no podía discutir los beneficios de vi vs emacs, así que lo que sea que le haya dado su compilador, aprendiste a usar. Creo que fue mucho más fácil que usar bibliotecas apiladas sobre bibliotecas, y hay muchos trucos si trabajas para el hardware y sabes de qué se trata. Por ejemplo, una implementación común de "pausa por un momento" fue "for (int i = 0; i <1000; i ++)" (es diferente en BASIC), que nunca se usa ahora, porque el hardware es tan rápido que usted ' necesitaría un número enorme, e incluso si no fuera así, se ejecutaría en diferentes tipos de máquinas, por lo que sería una pausa diferente para diferentes personas (II +, IIe,
Todo esto es de memoria, no miré ninguna referencia mientras escribía esto, así que me disculpo si mi memoria es defectuosa y te dije cosas incorrectas. Pero espero que esto le dé un poco de sabor y responda algunas de sus preguntas.