나는 애플 (전문적으로는 아니지만 내가 배운 것)과 많은 사람들에게 프로그래밍을했습니다. 애플 소프트 베이직과 어셈블러는 애호가를위한 곳입니다. 다른 언어도 사용 가능-로고는 일반적이며 파스칼은 모든 곳에서 작성되었지만 아무도 그것을 사용하는 사람을 알지 못했으며, Apple IIGS의 Orca C, Forth가있을 때까지 어떤 Apple 플랫폼에서도 C가 사용되는 것을 알지 못했습니다. 거북이 스타일 (또는 로고 스타일이라고 부름) 그래픽이있는 인터프리터도 주위에 떠 있습니다.
몇 가지 질문과 기본 아이디어를 다룰 것입니다.
BASIC으로 작성된 인기있는 게임을 생각할 수 있습니까? C는 어때?
Applesoft BASIC뿐만 아니라 Integer BASIC (이름에서 알 수 있듯이 부동 소수점 숫자도 없음)도 많은 쉐어웨어가 BASIC으로 작성되었습니다. Eamon 시리즈는 생각 나지만 실제로는 다른 많은 것을 생각할 수 없습니다. 또한 Beagle Bros.가 작성한 많은 소프트웨어는 BASIC (대부분 게임이 아닌 유틸리티)에서 수행되었습니다.
그래도 대부분의 상용 소프트웨어는 어셈블러로 작성되었다고 생각합니다.
그러나 게임이 그런 식으로 작성되었다고 상상할 수 없습니다. 편집자 / IDE가 있습니까? 프로그램은 디스크 / 테이프에 어떻게 저장 되었습니까?
나는 Merlin Assembler를 사용하여 IDE가 그것을 확장하고 있다고 부를 수 있었지만 잘 작동했습니다. 당신이 말했듯이 시스템 모니터에 드롭하고 opcode를 입력하고 거기에서 실행할 수 있습니다. 멀린은 시스템 모니터에서 돌아올 수있는 방법을 가지고있었습니다 (지금은 기억이 나지 않습니다).
그러나 시각적 편집기가 없었습니까?
Applesoft 환경을 조금 더 좋게 만드는 타사 도구가 있었으며 화살표를 사용하여 화면을 스크롤하고 시각적 편집기처럼 편집 할 수 있습니다 (여전히 줄 끝에서 리턴을 누르거나 변경 사항이 적용되지 않습니다). 나는 그것이 무엇인지 기억할 수 없다, 나는 그것을 조금 사용했다.
아니면 무언가를 그리거나 소리를 재생하려면 항상 하드웨어와 직접 대화해야합니까? 도서관이 전혀 없었습니까?
Apple II + / IIe / IIc에서는 거의 하드웨어와 대화하고있었습니다. ROM에 사용할 수있는 몇 가지 프로그램이 있지만 매우 제한적이며 일반적으로 그래픽 모드를 변경하거나 스피커를 트리거하기 위해 49152를 찌르는 등 원하는대로 메모리를 변경하기 위해 레지스터를 변경하기 위해 다양한 메모리 위치를 PEEK 및 POKE합니다. .
Apple IIGS에서 ROM에는 멋진 GUI를 구현하기 위해 Macintosh와 유사한 라이브러리가 포함되어 있습니다. ROM은 시간이 지남에 따라 업데이트되었으며 최신 라이브러리를 사용하는 시스템 디스크를로드 한 경우 ROM이 아닌 디스크에서 읽히므로 부팅 시간이 매우 느려집니다. ROM 01, 02 및 03이 있었고 02-> 03은 무료 업그레이드였으며 01 이전에는 01로 무료 업그레이드를 할 수있는 릴리스가있었습니다.
사용 된 이미지 / 오디오 형식과 같은 다른 차이점을 듣고 기쁩니다. 파일을 올바르게 이해하면 실제로 파일 개념이 없다는 것을 감안할 때 어떻게 작동했는지 궁금합니다. 그래픽과 사운드를 어셈블러에 입력해야 했습니까? BASIC에서 어떻게 작동 했습니까?
파일이 있었고 그 의미가 무엇인지 잘 모르겠으며 ProDOS는 디렉토리를 지원했습니다 (이전의 DOS는 인식하지 못한 파일의 개념을 가지고 있었음). 비트 맵과 .pcx를 사용했습니다. II + / IIe / IIc 시리즈의 오디오 파일은 기억 나지 않지만 비디오 게임 블립 및 루프보다 잡음을 더 멋지게 만들기가 어렵 기 때문입니다. 멋진 소리를내는 일부 해킹이 있었지만 (특히 Gun N 'Roses를 연주 한 디스크가 있음) 거의 항상 문법적으로 이루어졌습니다.
현대 환경과 비교했을 때, 그것은 완전히 원시적이었습니다. 그러나 동시에 여러 프로그램을 실행할 수있는 지원이 없었기 때문에 컴파일러도 효과적으로 편집기 여야했습니다. vi와 emacs의 이점을 실제로 논쟁 할 수는 없었으므로 컴파일러가 제공 한 모든 내용, 당신은 사용법을 배웠습니다. 라이브러리에 쌓여있는 라이브러리를 사용하는 것보다 훨씬 쉽다고 생각하며 하드웨어 작업을하고 그것이 무엇인지 알고 있다면 많은 트릭이 있습니다. 예를 들어, "일시 중지"의 일반적인 구현은 "for (int i = 0; i <1000; i ++)"(기본과는 다릅니다)였습니다. 하드웨어는 너무 빠르기 때문에 지금은 사용되지 않습니다. d는 엄청난 수의 숫자가 필요하지만, 그렇지 않은 경우에도 다른 종류의 컴퓨터에서 실행되므로 다른 사람들 (II +, IIe,
이것은 모두 메모리에서 가져온 것이므로이 글을 쓰는 동안 참조를 보지 않았기 때문에 내 메모리에 결함이 있고 사과하지 않은 경우 사과드립니다. 그러나 나는 이것이 당신에게 약간의 맛을주고 몇 가지 질문에 대답하기를 바랍니다.