Fiz muita programação na Apple (não profissionalmente, mas é o que aprendi) e na Applesoft BASIC e assembler onde ficava para os entusiastas. Outras línguas estavam disponíveis - o logotipo era comum, Pascal era escrito em todos os lugares, mas eu não conhecia ninguém que o usasse, eu não sabia muito bem que o C era usado em qualquer plataforma da Apple até o Orca C para o Apple IIGS; intérprete com gráficos no estilo de tartaruga (ou o nome de logotipo) flutuando também.
Abordarei algumas de suas perguntas e depois as idéias básicas:
Você consegue pensar em jogos populares escritos em BASIC? E o C?
Um monte de shareware foi escrito em BASIC, não apenas no Applesoft BASIC, mas também no Integer BASIC (que, como o nome indica, não tinha números de ponto flutuante). A série Eamon me vem à mente, mas não consigo pensar em muitas outras. Além disso, muito do software escrito pelo Beagle Bros. foi feito no BASIC (principalmente utilitários, não jogos).
Porém, acredito que a maioria dos softwares comerciais foi escrita em assembler.
Mas não consigo imaginar que os jogos foram escritos assim, havia editores / IDEs? Como os programas foram armazenados em discos / fitas?
Eu usei o Merlin Assembler, para chamá-lo de IDE, mas pode ter funcionado bem. Como você disse, você pode ir para o monitor do sistema, inserir códigos de operação e executar a partir daí. Merlin tinha uma maneira de retornar a ele a partir do monitor do sistema (que não me lembro como agora).
Mas não havia editor visual?
Havia uma ferramenta de terceiros que tornava o ambiente da Applesoft um pouco melhor e permitia que você usasse suas setas para rolar pela tela e fazer edições como um editor visual (você ainda precisaria pressionar Enter no final de uma linha ou as mudanças não fariam). Não me lembro o que era, usei bastante.
Ou era necessário conversar diretamente com o hardware o tempo todo, se você quisesse desenhar algo ou tocar um som? Havia alguma biblioteca?
No Apple II + / IIe / IIc, você estava apenas conversando com o hardware. Havia alguns programas em ROM que você poderia usar, mas eles eram muito limitados e, geralmente, você faria PEEK e POKE vários locais de memória para alterar registros para fazer o que queria, por exemplo, para alterar os modos gráficos, cutucar 49152 para acionar o alto-falante etc. .
No Apple IIGS, a ROM era fornecida com um conjunto de bibliotecas semelhantes às do Macintosh, para fazer GUIs sofisticadas e outras coisas. As ROMs foram atualizadas com o tempo e, se você carregasse um disco do sistema que usava bibliotecas mais recentes, elas liam do disco em vez da ROM, causando um tempo de inicialização muito lento. Havia ROM 01, 02 e 03, e 02 -> 03 era uma atualização gratuita e havia uma versão anterior a 01, que faria uma atualização gratuita para 01 também.
Ficaria feliz em ouvir outras diferenças, como os formatos de imagem / áudio usados. Dado que não havia realmente um conceito de arquivos, se eu entendi direito, estou me perguntando como isso funcionou. Você precisou digitar seus gráficos e sons no assembler? Como isso funcionou no BASIC?
Havia arquivos, não sei o que você quer dizer com isso, e o ProDOS suportava diretórios não menos (o DOS anterior ainda não tinha o conceito de um arquivo que você reconheceria). Eu usei bitmaps e .pcx. Não me lembro de nenhum arquivo de áudio da série II + / IIe / IIc, mas isso era difícil de fazer barulhos mais sofisticados do que blips e bloops de videogame. Havia alguns hacks por aí que emitiam sons sofisticados (em particular, eu tinha um disco que tocava Gun N 'Roses), mas quase sempre era feito gramaticalmente.
Comparado aos ambientes modernos, era absolutamente primitivo. Mas lembre-se, não havia suporte para executar vários programas ao mesmo tempo; portanto, seu compilador também precisava ser seu editor - você não podia argumentar sobre os benefícios do vi vs. emacs; portanto, o que o compilador lhe deu, você aprendeu a usar. Eu acho que foi muito mais fácil do que usar bibliotecas empilhadas em bibliotecas, e há muitos truques se você estiver trabalhando para o hardware e souber o que é. Por exemplo, uma implementação comum de "pausa por um momento" era "para (int i = 0; i <1000; i ++)" (é diferente no BASIC), que nunca é usada agora, porque o hardware é tão rápido que você ' d precisaria de um número enorme e, mesmo que não fosse, seria executado em diferentes tipos de máquinas, por isso seria uma pausa diferente para pessoas diferentes (II +, IIe,
Isso é tudo da memória, eu não procurei nenhuma referência enquanto escrevia isso, então peço desculpas se minha memória está com defeito e lhe disse coisas erradas. Mas espero que isso lhe dê um gostinho e responda algumas de suas perguntas.