IBM 베이직

IBM BASIC
IBM PC 메인보드에 8KB ROMDIP 칩 5개와 빈 8KB ROM 확장 소켓이 있습니다.4개의 칩에 카세트 베이직이 있고, 1개의 칩에 BIOS가 있습니다.

일반적으로 IBM BASIC으로 줄인 IBM Personal Computer Basic은 1981년 IBM Personal Computer Model 5150(IBM PC)과 함께 IBM에서 처음 출시한 프로그래밍 언어입니다.IBM은 PC 및 PCjr용으로 마이크로소프트로부터 라이센스를 받은 4가지 버전의 Microsoft BASIC 인터프리터를 출시했습니다.카세트 베이직, 디스크 베이직, 고급 베이직(BASICA) 및 카트리지 베이직으로 알려져 있습니다.Disk BASIC 및 Advanced BASIC 버전은 PC DOS 4까지 IBM PC DOS에 포함되어 있었습니다. IBM 버전은 ANSI 표준 BASIC의 기능과 더불어 IBM PC 라인의 그래픽 및 사운드 하드웨어를 지원했습니다.전체 화면 편집기를 사용하여 소스 코드를 입력할 수 있으며 기본적인 프로그램 디버깅을 위한 매우 제한된 기능이 제공되었습니다.IBM은 또한 1982년 PC DOS 1.10 출시와 동시에 PC용 Microsoft BASIC 컴파일러 버전을 출시했습니다.

배경

IBM은 회사의 메인프레임용 자체 BASIC 버전을 이미 가지고 있음에도 불구하고 IBM 개인용 컴퓨터용 Microsoft BASIC을 라이센스했습니다.Don Estridge는 다음과 같이 말했습니다.Microsoft BASIC은 전 세계에 수십만 명의 사용자를 보유하고 있습니다.그걸 어떻게 반박할 거야?"[1]

IBM 카세트 BASIC

IBM 카세트 BAS
IBM Cassette BASIC.png
개발자Microsoft (IBM용)
처음 등장한1981
영향받은
IBM Disk BASIC, IBM BASICA, GW-BASIC

IBM Cassette BASIC은 원래 IBM PC의 8KB BIOS ROM과는 별도로 32KB(읽기 전용 메모리)로 제공되었으며, 실행하는 데 운영 체제가 필요하지 않았습니다.플로피 디스크 드라이브가 설치되어 있지 않거나 부팅 코드가 부팅 가능한 FD를 찾을 수 없는 경우, 카세트 BASIC은 INT 18h를 통해 BIOS에 의해 호출되는 기본 사용자 인터페이스를 제공합니다.카세트 베이직이라는 이름은 프로그램과 데이터를 저장하기 위해 플로피 디스크가 아닌 카세트 테이프를 사용했기 때문에 유래되었습니다.카세트 베이직은 오리지널 PC와 XT, PS/2 라인의 초기 모델의 ROM에 내장되어 있습니다.IBM 카세트 테이프 인터페이스에 프로그램 로드 및 저장만 지원하며, 원본 모델 5150 이후 모델에서는 사용할 수 없습니다.5150의 엔트리 레벨 버전에는 카세트 BASIC을 실행하기에 충분한 16KB의 RAM(랜덤 액세스 메모리)만 포함되어 있었습니다.그러나 디스크 드라이브 없이 판매된 PC는 거의 없고, 대부분 PC DOS와 Disk BASIC을 실행하기에 충분한 RAM을 탑재하여 판매되었기 때문에 카세트 베이직은 거의 사용되지 않았습니다.많은 PC는 Advanced BASIC도 실행할 수 있었습니다.카세트 베이직에는 C1.00(16k-64k 메인보드가 장착된 초기 IBM PC에 있음), C1.10(이후 모든 IBM PC, XT, AT 및 PS/2에 있음) 및 C1.20(PCjr에 있음)의 세 가지 버전이 있습니다.

IBM 디스크 BASIC

IBM 디스크 BAS
IBM Disk BASIC.png
개발자Microsoft (IBM용)
처음 등장한1981
영향을 받다
IBM 카세트 BASIC
영향받은
IBM BASICA, GW-BASIC

IBM Disk BASIC(기본).COM)은 32KB 카세트 베이직 [2]ROM, BASIC을 사용하기 때문에 원래 IBM PC DOS에 포함되어 있었습니다.COM은 Compaq [3]Portable과 같은 호환성이 높은 PC 클론에서도 실행되지 않았습니다.디스크 베이직이라는 이름은 프로그램과 데이터를 저장하기 위해 플로피 디스크와 카세트 테이프를 사용했기 때문에 유래되었습니다.디스크 베이스의 코드로, ROM 상주 코드의 에라타가 수정되어 플로피 디스크와 시리얼 포토가 서포트되고 있습니다.

디스크 베이직은 버전 번호 앞에 문자 D를 사용하여 식별할 수 있습니다.Cassette BASIC에는 없는 디스크 지원 및 일부 기능이 추가되지만 BASICA의 확장 사운드/그래픽 기능은 포함되지 않습니다.Disk BASIC의 주요 목적은 48KB의 메모리만 있는 IBM PC용 "경량" 버전입니다.그 후 COM은 약 23KB의 사용자 코드를 사용할 수 있는 반면, BASICA는 약 17KB밖에 사용할 수 없습니다.1986년까지 256k 이상의 DOS 버전을 탑재한 새로운 PC는 모두 디스크 베이직(Disk BASIC)을 BASICA라고 하는 작은 스탭으로 줄였습니다.배치 파일과의 호환성을 위한 COM.이렇게 여분의 RAM이 있더라도 BASIC은 여전히 사용자 프로그램에 대해 61KB 미만의 용량만 할당하고 관리합니다(Cassette BASIC, BASIC).COM 또는 BASICA.

IBM Advanced BASIC

IBM Advanced BASIC(기본)
IBM BASICA.png
개발자Microsoft (IBM용)
처음 등장한1981년(1981년)
플랫폼IBM 퍼스널 컴퓨터
OSIBM PC DOS
영향을 받다
IBM 카세트 베이직, IBM Disk BASIC
영향받은
GW 베이직

IBM Advanced BASIC(BASICA).COM)는 원래의 IBM PC DOS에도 포함되어 있어 카세트 베이직의 [2]ROM 상주 코드가 필요했습니다.디스켓 파일 액세스, 디스크 프로그램 저장, PC 내장 스피커를 이용한 모노포닉 사운드, 픽셀 설정 및 클리어, 선 및 원 그리기, 색상 설정, 통신 및 조이스틱 누름 이벤트 처리 등의 기능을 추가했다.BASICA는 비 IBM 컴퓨터(일명 "100% 호환" 머신) 또는 이후 IBM 모델에서는 실행되지 않습니다.이러한 모델에는 필요한 ROM BASIC이 없기 때문입니다.

BASICA 버전은 v1.00에서 v3.30으로 끝나는 각각의 DOS와 동일합니다.BASICA의 초기 버전은 하위 디렉토리를 지원하지 않으며 일부 그래픽 명령은 약간 다르게 작동합니다.예를 들어 LINE 문이 화면 밖으로 이어지는 선을 그리기 위해 사용된 경우 BASIC 2.x 이후에서는 BASIC이 가장 가까운 인접 선과 교차할 뿐이므로 화면에서 벗어나 교차하지 않습니다.BASIC 1.x의 PAINT 명령은 지정된 좌표에서 채우기 시작하여 상하 방향으로 바깥쪽으로 확장됩니다. BASIC 2.x에서는 시작 좌표 아래의 모든 것을 채우고 종료 후에는 그 위의 모든 것을 채웁니다.BASIC 1.x의 PAINT 명령도 시스템 스택을 저장에 사용하고 복잡한 영역을 채울 때 OFLOW 오류가 발생할 수 있습니다.이를 해결하려면 CLEAR 문을 사용하여 BASIC 스택을 확장할 수 있습니다(128바이트가 기본 크기입니다).BASIC 2.x는 도색 시 스택을 사용하지 않으므로 이 문제가 없습니다.

Compaq BASIC 1.13은 PC용 최초의 독립형 BASIC(카세트 BASIC을 실행할 필요가 없음)일 뿐만 아니라 IBM BASICA 1.00 및 1.10을 제외하고 FCB를 사용하고 교차선이 있는 원본 LINE 문(CompaQ BASIC 1.13의 페인트 문)을 포함하는 유일한 버전이기도 합니다.ng 새로운 채우기 알고리즘과 스택 없음).

PC DOS의 초기 버전에는 BASICA 게임 DANKE를 비롯한 PC의 기능을 보여주는 BASIC 프로그램의 샘플이 포함되어 있습니다.BAS.

GW-BASIC은 프로그램에 카세트 BASIC 코드를 포함하는 것을 제외하고 BASICA와 동일합니다.따라서 비 IBM 컴퓨터 및 ROM에 카세트 BASIC이 없는 이후 IBM 모델에서 실행할 수 있습니다.

IBM PCjr 카트리지 BASIC

BASIC의 ROM 카트리지 버전은 1984년에 출하된 IBM PCjr에서만 사용할 수 있으며,[4] 이 기계에서 가능한 추가 그래픽 모드와 사운드 기능을 지원합니다.어드밴스드 [5]베이직의 슈퍼셋입니다.카트리지 BASIC은 PCjr의 첫 번째 128KB 메모리 내에서만 동작하며 확장 RAM에서는 동작하지 않습니다.즉, DEF SEG 기능을 사용하여 &H1FF0 위의 메모리 세그먼트를 가리킬 수 없습니다.

DOS 프롬프트에 BASICA 라고 입력하면, 카트리지 BASIC 이 유효하게 됩니다.반대로 IBM BASICA 버전 2.1 이상에서는 PCjr이 검출되면 실행을 거부하지만 패치를 적용하여 이 문제를 해결할 수 있습니다.

작동

부트 디스크 또는 카트리지 없이 PC 또는 PCjr을 부팅할 때 카세트 베이직이 로드됩니다.DOS 명령 프롬프트에서 명령어 이름(각각 BASIC 및 BASICA)을 입력하면 Disk BASIC 및 Advanced BASIC이 로드됩니다(대신 카트리지 BASIC을 활성화하는 PCjr 제외).메모리 할당을 제어하는 옵션 파라미터도 있습니다.로드되면 로그온 식별 메시지에 프로그램 버전 번호가 표시되고 전체 화면 텍스트 편집기가 시작됩니다(오른쪽 이미지 참조).기능 키에는 화면 하단에 표시되는 공통 명령이 할당됩니다.명령을 입력하여 프로그램을 로드하거나 저장할 수 있으며 식을 직접(즉시) 모드로 입력하여 실행할 수 있습니다.입력의 행이 숫자로 시작되는 경우, 언어 시스템은 프로그램 소스의 일부로 다음 텍스트 행을 저장하여 프로그래머가 각 문 앞에 행 번호를 입력하면서 프로그램 전체를 한 줄씩 입력할 수 있도록 한다.화면에 표시되는 행은 행 번호의 증가순으로 표시됩니다.커서 키로 커서를 이동시키고 화면에 표시된 텍스트 위에 입력하면 표시된 프로그램 소스 코드 행을 변경할 수 있습니다.프로그램 소스를 토큰화된 형태로 내부에 저장하여 공간 절약 및 실행 시간을 절약하기 위해 예약된 단어를 1바이트 토큰으로 대체한다.프로그램은 콤팩트한 토큰 형식으로 저장하거나 다른 프로그램과 함께 보고 편집할 수 있는 DOS ASCII 텍스트[6] 파일로 저장할 수 있습니다.대부분의 다른 DOS 애플리케이션과 마찬가지로 IBM BASIC은 텍스트 모드 프로그램이며 윈도우, 아이콘, 마우스 지원 또는 잘라내기 및 붙여넣기 편집 기능이 없습니다.

레거시

1983년에 출시된 GW-BASIC은 IBM Cassette BASIC이 없는 컴퓨터에서 BASICA의 모든 그래픽 모드와 기능을 지원하는 디스크 기반 Microsoft 제품입니다.

현재 단종된 MS-DOS 및 PC DOS용 BASICA의 후속 버전은 1991년에 출시된 QBasic입니다.Microsoft QuickB를 삭제한 버전입니다.ASIC 컴파일러:QBasic은 인터프리터이며 소스 파일을 컴파일할 수 없습니다.QuickB는ASIC 는, 의 프로그램을 컴파일 해 보존할 수 있습니다.EXE 실행 파일 형식입니다.QuickBASIC에는 특정 고급 언어 문장과 기능(대부분 OS 인터페이스와 저수준 기계어 프로그래밍 포함), 멀티 모듈 프로그램 지원 및 고급 디버깅 기능이 포함되어 있습니다.이 기능들은 모두 QBASIC에는 없습니다.

레퍼런스

  1. ^ Curran, Lawrence J.; Shuford, Richard S. (November 1983). "IBM's Estridge". BYTE. pp. 88–97. Retrieved 19 March 2016.
  2. ^ a b Williams, Gregg (January 1982). "A Closer Look at the IBM Personal Computer". BYTE. p. 36. Retrieved 19 October 2013.
  3. ^ Dahmke, Mark (January 1983). "The Compaq Portable". BYTE. pp. 30–36. Retrieved 27 July 2013.
  4. ^ 독자의 피드백: IBM BASIC 버전, Compute! 매거진 제78호 1986년 11월 8페이지, 2011년 12월 23일
  5. ^ IBM. PCjr 카트리지 공지 사항.1983-11-01 ([1])
  6. ^ DOS 텍스트 파일은 각 행을 CR(캐리지 리턴, ASCII 13) 및 LF(라인 피드, ASCII 10) 문자 쌍으로 순서대로 종료합니다.

외부 링크