최근 수정 시각 : 2025-10-05 11:58:47

BASIC 프로그래밍


파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 프로그래밍 언어}}}에 대한 내용은 [[BASIC]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[BASIC#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[BASIC#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
프로그래밍 언어: }}}[[BASIC]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[BASIC#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[BASIC#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}

파일:45317_front.jpg

1. 개요2. 시스템 요구 사항 및 주변기기3. 프로그래밍 환경 및 제약4. 지원 명령어 (키워드)5. 영상6. 관련 문서

1. 개요

BASIC Programming

1980년 4월 아타리에서 출시한 아타리 2600카트리지로, 간단한 BASIC 프로그래밍을 배울 수 있도록 설계된 교육용 소프트웨어다. 아타리의 대표 타이틀 중 하나인 어드벤처를 개발한 워렌 로비넷이 디자인했으며, 아타리 2600 라이브러리에서 몇 안되는 유틸리티성 카트리지로 독특한 위치를 차지한다.

1979년대 후반 개인용 컴퓨터의 여명기에 아타리는 자사의 인기 콘솔이 단순한 게임기가 아닌, 교육적 잠재력을 지닌 '비디오 컴퓨터 시스템(Video Computer System)'임을 홍보하고 싶어했다.[1] BASIC 프로그래밍은 이러한 비전의 산물로, 사용자가 직접 간단한 프로그램을 작성하여 그래픽사운드를 컨트롤 할 수 있었다.

물론 아타리 2600의 극히 제한된 하드웨어 사양, 특히 128바이트에 불과한 RAM 용량 때문에 본격적인 프로그래밍은 불가능했으며, 당시 컴퓨터를 접하기 어려웠던 어린이와 청소년들에게 프로그래밍의 기본 개념(변수, 조건문, 반복문 등)을 알려주는 입문서 역할 정도만 했다는 평가를 받는다.[2]

2. 시스템 요구 사항 및 주변기기

파일:AtariKeypad.jpg
BASIC 프로그래밍 구동에 필수적이었던 키패드 컨트롤러.

일반적인 조이스틱 컨트롤러로는 코드 입력이 불가능했기 때문에, BASIC 프로그래밍을 플레이하기 위해서는 한 쌍의 키패드 컨트롤러가 반드시 필요했다. 이 컨트롤러는 0부터 9까지의 숫자와 특수 기호가 그려진 12개의 버튼으로 구성되어 있으며, 게임에는 각 버튼에 BASIC 명령어와 알파벳을 할당한 오버레이가 동봉되었다.

사용자는 두 개의 키패드를 번갈아 사용하여 명령어를 조합하고 코드를 한 글자씩 입력해야 했다. 이 방식은 현대의 키보드에 비하면 매우 번거롭고 느렸으나, 당시로서는 콘솔에 텍스트를 입력하는 얼마 안되는 방법 중 하나였다.

3. 프로그래밍 환경 및 제약

카트리지를 실행하면 화면이 여러 개의 창으로 분할되어 프로그래밍에 필요한 정보를 보여준다.
  • Program: 사용자가 코드를 입력하고 편집하는 공간.
  • Variables: 프로그램에서 사용되는 변수와 그 값을 표시.
  • Stack: 연산 과정의 임시 결과를 보여주는 스택 공간.
  • Output: PRINT 명령의 결과가 출력되는 공간.
  • Graphics: 프로그램으로 제어할 수 있는 두 개의 사각형 그래픽이 표시되는 공간.
  • Status: 남아있는 프로그램 메모리 용량을 표시.

가장 큰 특징은 아타리 2600의 하드웨어에서 기인한 극심한 제약 사항인데,
  • RAM: 시스템 전체 RAM이 128바이트에 불과하여, 프로그램이 사용할 수 있는 메모리는 이보다 훨씬 적었다.
  • 프로그램 크기: 프로그램은 최대 64개의 심볼로 제한되었다. 여기서 심볼이란 변수, 숫자, 명령어(GOTO, IF 등) 하나하나를 의미한다.
  • 코드 라인: 프로그램은 기본적으로 9줄까지만 작성할 수 있었다. (특정 창을 닫으면 최대 11줄까지 가능)
  • 변수: 변수는 알파벳 대문자로 선언되었으며, 0부터 99까지의 정수만 다룰 수 있었다.
  • 제한된 명령어: 지원하는 명령어는 기본적인 산술 연산(+, -, *, /, Mod), GOTO, IF-THEN, PRINT 등으로 매우 한정적이었다.

4. 지원 명령어 (키워드)

BASIC 프로그래밍에서 지원하는 주요 명령어는 다음과 같았다.
구분 명령어 설명
문장 Print Output 창에 변수나 숫자를 출력한다.
구조 Goto 지정된 라인으로 프로그램 흐름을 이동시킨다.
If-Then 조건이 참일 경우 지정된 명령을 실행한다. (Else는 지원하지 않음)
그래픽 Clear 그래픽 화면을 초기화한다.
Hor1, Ver1 첫 번째 그래픽 객체의 수평/수직 위치를 제어한다.
Hor2, Ver2 두 번째 그래픽 객체의 수평/수직 위치를 제어한다.
함수 Hit 두 그래픽 객체가 충돌했는지 확인한다.
Key 키패드 입력 값을 반환한다.
수학 +, -, *, /, Mod 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산을 수행한다.
관계 연산자 <, >, = 비교 연산을 수행한다.

5. 영상


6. 관련 문서


[1] 애초에 아타리 2600의 원제부터가 '아타리 VCS(Video Computer System)'였으며, 지금 이름은 1982년 11월 후속작인 아타리 5200을 출시하면서 개명한 것이다.[2] 실용성이 거의 없으며, 만들 수 있는 프로그램이 매우 단순한 수준에 그쳤다는 비판을 받았다.