웹 브라우저에서 Apple II BASIC 프로그램을 작성하는 방법

혹시 오래된 컴퓨터를 직접 코딩해 보고 싶었던 적이 있으신가요? BASIC 프로그래밍 언어를 활용하고 브라우저에서 전설적인 Apple II 시뮬레이터를 실행하면 그 꿈을 쉽게 이룰 수 있습니다! 1970년대 후반과 80년대 초반의 프로그래밍 환경을 생생하게 체험해 볼 기회입니다.

실제 Apple II 컴퓨터가 있다면 직접 실습해 볼 수도 있겠지만, 없다면 Will Scullin이 개발한 Apple ][js라는 편리한 Apple II 에뮬레이터를 사용해 봅시다. 이 글에서는 BASIC의 기초를 다루고 간단한 두 개의 프로그램을 실행해 보겠습니다.

Apple II가 중요한 이유

1977년에 출시된 Apple II는 마이크로프로세서 기술 덕분에 등장한 작고 저렴한 컴퓨터의 선두 주자였습니다. 이 개인용 컴퓨터는 일반인들이 비교적 쉽게 자신의 컴퓨터를 소유하고 조작할 수 있도록 했습니다. 이전에는 대부분의 컴퓨터가 매우 비싸고 대기업이나 기관에서만 소유하거나 공유했습니다.

Apple II는 저렴한 가격과 컬러 그래픽 기능으로 두각을 나타냈습니다. 또한 당시 세계에서 가장 저렴한 플로피 디스크 시스템인 Disk II와 호환되는 7개의 내부 확장 슬롯을 갖추고 있었습니다. Apple 공동 창업자인 Steve Wozniak의 뛰어난 회로 설계 덕분에 이 모든 기능이 가벼운 플라스틱 케이스의 작은 데스크톱 컴퓨터에 담길 수 있었습니다.

Apple II는 Apple에게 엄청난 성공을 가져다주었습니다. 약 16년의 수명(1993년에 단종) 동안 Apple II 플랫폼은 Wozniak의 원래 컴퓨터 설계를 기반으로 7가지 버전으로 출시되었습니다. 일반적인 Apple II 컴퓨터는 48KB 또는 64KB의 RAM과 1.022MHz 6502 CPU를 탑재하고 있었으며, 모든 모델에서 BASIC으로 프로그래밍할 수 있었습니다.

BASIC의 기초

1970년대 후반부터 80년대 초반까지 대부분의 개인용 컴퓨터에는 BASIC이라는 프로그래밍 언어가 포함되어 있었습니다. 이는 Beginners’ All-purpose Symbolic Instruction Code의 약자입니다. BASIC은 1964년 Dartmouth College Time Sharing System에서 처음 등장했으며, 사용하기 쉽다는 장점 덕분에 컴퓨터 과학 교육 도구로 빠르게 인기를 얻었습니다.

Apple II는 출시 당시 Wozniak의 Integer BASIC과 Applesoft의 두 가지 주요 버전의 BASIC을 탑재했습니다. Microsoft는 Windows로 유명해지기 훨씬 전에 Applesoft를 만들었습니다.

본문에서는 Applesoft BASIC을 사용합니다.

몇 가지 문법 팁

Apple II의 모든 BASIC 프로그램은 코드 줄로 구성되어 있습니다. 각 줄에는 번호가 있으며, 프로그램이 실행될 때 컴퓨터는 각 줄을 가장 작은 숫자부터 가장 큰 숫자 순서대로 실행합니다. 각 줄은 Return 키를 눌러 컴퓨터 메모리에 입력됩니다.

다음 세 가지 기본적인 BASIC 명령어는 항상 유용하게 사용될 것입니다.

프로그래밍 중에 언제든지 LIST 명령어를 입력하여 프로그램의 내용을 확인할 수 있습니다.
새로운 프로그램을 시작하려면(현재 프로그램을 메모리에서 지우려면) NEW를 입력하십시오.
화면을 지우려면 HOME을 입력하십시오.

프로그램을 입력하는 동안 실수를 하면 Apple II는 프로그램을 실행할 때 “SYNTAX ERROR”를 반환하고 오류가 발생한 줄 번호를 표시합니다. 오류가 있는 줄을 다시 입력하고 오타가 없는지 확인하십시오.

이해하셨나요? 이제 시작해 봅시다.

첫 번째 프로그램

먼저, 영원히 위로 카운트하는 아주 간단한 프로그램을 작성해 보겠습니다. 이는 모든 시스템에서 BASIC이 제대로 작동하는지 확인하는 간단한 방법입니다.

실제 Apple II가 있다면 전원을 켜십시오. Apple II Plus 이상과 같이 ROM에 Applesoft가 있는 기기 또는 적절한 언어 카드가 있는 원래 Apple II를 사용해야 합니다.

실제 Apple II 없이 따라하는 경우 새 브라우저 창에서 Apple ][js 에뮬레이터를 여십시오. Apple ][js는 JavaScript를 사용하여 실제 Apple II의 회로를 소프트웨어로 시뮬레이션합니다. 기본적으로 웹 브라우저에서 전체 Apple II 시스템을 실행하는 것입니다(Google Chrome에서 가장 잘 작동함).

에뮬레이터를 처음 로드하거나 플로피 디스크 시스템 없이 Apple II를 부팅하면 아래와 같은 화면이 나타납니다.

“Reset”을 누르거나 클릭합니다.

삐 소리가 나고 “]” 메시지와 함께 커서가 깜박입니다.

프롬프트에서 다음을 입력하고 각 줄 끝에서 Enter(또는 Return) 키를 누릅니다.

10 X=X+1
20 PRINT X
30 GOTO 10

실수한 경우 키보드의 왼쪽 화살표 키를 사용하여 커서를 뒤로 이동하여 수정하십시오. 입력하는 새 문자는 이전 문자를 덮어씁니다. 전체 줄을 다시 입력할 수도 있습니다.

특정 줄 번호가 있는 코드 줄을 입력할 때마다 BASIC은 이전에 해당 줄 번호에 저장된 내용을 새 입력으로 바꿉니다.

Apple II와 같은 이전 시스템에서 BASIC을 사용할 때 10의 배수로 줄 번호를 지정하는 것이 일반적입니다. 이렇게 하면 나중에 필요할 경우 새 코드 줄을 추가할 수 있는 공간이 생깁니다.

그런 다음 LIST를 입력한 다음 Enter(또는 Return) 키를 눌러 프로그램 목록을 봅니다.

실수로 필요하지 않은 행으로 끝나는 경우(예: 30 대신 32를 입력한 경우) 행 번호를 입력하고 Enter(또는 Return) 키를 눌러 삭제하십시오.

모든 것이 정상으로 보이면 프로그램을 실행할 때입니다. ] 프롬프트에서 RUN을 입력한 다음 Enter(Return) 키를 누릅니다.

프로그램은 영원히 1씩 위로 세고 화면 하단의 새 줄에 각 숫자를 인쇄합니다.

프로그램을 중지하려면 Ctrl+C를 누릅니다. 이렇게 하면 프로그램이 중단되어 실행이 중지됩니다.

그렇다면 이 프로그램은 어떻게 작동할까요? 한 줄씩 정리해 봅시다.

10 X=X+1
20 PRINT X
30 GOTO 10

10행: 여기에서 “X”라는 이름의 변수는 자기 자신에 1을 더한 것과 같다고 프로그램에 알립니다. 프로그램 시작 부분에서 “X”는 0과 같습니다. 따라서 첫 번째 패스에서 프로그램은 0에 1을 더하여 1이 됩니다.
20행: 프로그램은 PRINT 명령을 사용하여 변수 “X”의 내용을 화면에 표시합니다.
30행: GOTO 명령을 사용하여 루프에서 10행으로 프로그램을 다시 보냅니다. 변수 “X”의 값(이제 1씩 증가됨)은 10행에 피드백됩니다. 그런 다음 프로그램은 이 프로세스를 영원히 반복하고 1씩 위로 세고 각 루프에서 결과를 인쇄합니다.

간단한 입력 프로그램

이제 프로그램을 입력하고 나열하고 실행하고 중단하는 방법을 배웠으므로 입력한 내용으로 무엇인가를 수행할 수 있는 프로그램을 살펴보겠습니다.

먼저 NEW를 입력하고 Enter(Return) 키를 누릅니다. 이것은 메모리에서 마지막 프로그램을 지우므로 새로 시작할 수 있습니다.

다음을 한 줄씩 입력한 다음 각 끝에서 Enter(Return) 키를 누릅니다.

10 PRINT "WHAT IS YOUR NAME?"
20 INPUT N$
30 PRINT "HELLO, ";N$

완료되면 프로그램을 나열하여 올바르게 입력했는지 다시 확인하십시오.

다음으로 RUN을 입력하고 Enter(Return)를 눌러 실행합니다. 프로그램에서 물음표( ? )와 함께 입력을 요청합니다. 이름을 입력하고 Enter(Return)를 눌러 질문에 답하십시오.

마치 신기한 마법처럼, 프로그램은 당신의 이름을 알고 당신에게 답장을 보냈습니다! 그것은 어떻게 작동했을까요? 각 행을 살펴보겠습니다.

10 PRINT "WHAT IS YOUR NAME?"
20 INPUT N$
30 PRINT "HELLO, ";N$

10행: 프로그램이 화면에 한 줄의 텍스트를 표시했습니다. 인쇄하려는 텍스트의 모든 줄은 따옴표로 묶어야 합니다.
20행: 프로그램은 사용자에게 INPUT을 요청하고 결과를 N$라는 변수에 저장합니다. 달러 기호는 “문자열”의 약자입니다. 문자를 포함하는 모든 변수는 문자열 유형 변수여야 합니다.
30행: 프로그램은 Hello 다음에 쉼표와 공백을 표시한 다음 변수 N$의 내용을 인쇄했습니다. 세미콜론은 줄 바꿈을 삽입하지 않고 같은 줄에 N$를 인쇄하도록 프로그램에 지시했습니다.

겉핥기

이제 Apple II에서 BASIC을 맛보았으니, 친구들에게 여러분이 구형 컴퓨터를 프로그래밍했다고 자랑스럽게 말할 수 있습니다! 사실, 트위터에서 Steve Wozniak에게 직접 말할 수도 있습니다.

Applesoft BASIC에 대해 더 자세히 알아보려면 Yuri Yakimenko의 훌륭한 온라인 튜토리얼을 추천합니다. 여기서 설명한 내용보다 훨씬 자세한 내용을 다루고 있습니다. 또한 Applesoft BASIC 명령어에 대한 편리한 빠른 참조도 있습니다.

1978년부터 제공되는 Apple II 기본 프로그래밍 매뉴얼의 전체 스캔본을 살펴보세요. 프로그램을 저장하고 로드하는 방법 등 자세한 내용이 있습니다.

지난 42년 동안 수천 개의 놀라운 게임과 응용 프로그램이 Applesoft에서 프로그래밍되었으므로 Applesoft로 할 수 있는 일에는 무한한 가능성이 있습니다. (사실, 컴퓨터의 RAM 용량이 한계가 되겠지만, 그것은 훨씬 덜 시적입니다.)

Apple II 베테랑 여러분, BASIC 사용 경험에 대한 여러분의 이야기를 댓글로 듣고 싶습니다. 즐거운 프로그래밍 되세요!