TI 베이직(TI 99/4A)

TI BASIC (TI 99/4A)
TI 베이직
TI BASIC HELLO WORLD.png
처음 등장한1979년; 43년 전 (1979년)
면허증.독자 사양

TI BASIC은 1979 Texas Instruments TI-99/4 가정용 컴퓨터와 1981년 개선된 버전인 TI-99/4A에 내장된 ANSI 인증 BASIC 프로그래밍 언어 인터프리터입니다.

현대의 마이크로컴퓨터에서 볼 수 있는 대부분의 BASIC과는 달리 TI BASIC은 Microsoft BASIC으로 이력을 추적하지 않고 ANSI와 ECMA의해 작성된 새로운 Minimal BASIC 표준에 따라 TI가 개발한 인터프리터였습니다.이는 1960년대 오리지널 다트머스 베이직(Dartmouth BASIC)을 기반으로 한 것입니다.TI BASIC과 보다 일반적인 MS 품종 사이에는 많은 차이가 있으며 때로는 미묘한 차이가 있습니다.

Minimal BASIC에는 현대의 BASIC에서 흔히 볼 수 있는 많은 기능이 없습니다.TI Extended BASIC 카트리지는 나중에 BASIC 사용자가 접근할 수 있는 기능을 강화한 TI Extended BASIC 카트리지를 선보였습니다.여기에는 다른 BASIC에서 볼 수 있는 다양한 기능뿐만 아니라 스프라이트 처리, 사운드 및 플랫폼의 기타 기능을 위한 새로운 시스템 기능도 포함되어 있습니다.

가정용 컴퓨터에서 흔히 볼 수 있듯이, TI BASIC은 프로그래밍뿐만 아니라 씬 운영체제로도 사용되었다.TI는 Minimal BASIC에 텍스트, 그래픽스 및 테이프 또는 기타 파일 시스템에 기록하는 등의 기본적인 파일 조작을 위한 명령어를 추가했습니다.TI-99 플랫폼의 특징 때문에, TI BASIC은 일반 기기의 약 절반에 해당하는 매우 느린 성능으로 가장 주목받았지만, 반대로 높은 수치 정확도를 자랑했다.

성능

TI-99는 TI-990 미니컴퓨터 라인업의 로우엔드 모델에 싱글칩 중앙처리장치(CPU)를 제공하도록 설계된 16비트 설계인 TMS9900 마이크로프로세서를 기반으로 합니다.TMS9900은 마이크로컴퓨터에 사용하기에 적합했지만, 그 당시 완전한 컴퓨터를 구축하는 데 필요한 나머지 지원 칩은 변함없이 8비트였고, 여기에는 TI의 광범위한 칩 카탈로그가 포함되어 있었습니다.미니컴퓨터에서 16비트 지원 시스템은 많은 개별 칩으로 구성되었지만, 이는 저가 제품으로는 적합하지 않았습니다.따라서 TI는 기계를 주로 8비트로 만들고 다양한 지원 칩을 이 8비트 버스에 연결하는 솔루션을 채택했으며, TMS9900은 16비트 [1]값을 생성하기 위해 버스를 두 번 읽습니다.

TMS9900의 명령어 세트 아키텍처는 16비트 opcode에 기반하고 있었습니다.즉, 일반적으로 프로그램은 8비트 머신에서보다 2배 커집니다.고가의 메모리 시대에, 이것은 큰 코스트를 낳았습니다.이 문제를 해결하기 위해 TI는 "그래픽 프로그래밍 언어" 또는 GPL로 알려진 자체 언어 또는 중간 표현을 사용하여 8비트 가상 머신을 만들었습니다. 이를 통해 프로그램을 보다 콤팩트한 형식으로 작성할 수 있습니다.이 접근법의 단점은 모든 GPL 명령을 1개 이상의 기본 TMS9900 [2]명령으로 즉시 변환해야 한다는 것입니다.GPL 코드 자체는 기계의 8비트 쪽에 저장되어 [3]있어 성능이 더욱 저하되었습니다.

이 모든 이유로 인해 기계는 이론적으로 가능한 것보다 훨씬 느리게 작동했습니다.이것은 BASIC에서 특히 두드러졌다.사용자 프로그램의 모든 명령은 8비트 메모리에서 읽고 GPL로 작성된 코드를 사용하여 해석한 다음 8비트 버스를 통해 다시 출력해야 했습니다.그 결과, TI BASIC의 퍼포먼스는 저조했습니다.그 시대의 일반적인 벤치마크에서는 TI-99는 일반적으로 Commodore PET나 Apple [4]II와 같은8비트 머신의 절반 속도로 동작했습니다.예를 들어 Byte Sheve를 BASIC에서 실행하는 데 TI BASIC에서 3960초가 소요된 반면 Apple II에서 Applesoft BASIC에서 테스트하는 데 2806초가 소요되어 [5]TI보다 약 30% 더 빠릅니다.

TI BASIC 요소

편집 및 실행

당시 대부분의 베이직과 달리 TI BASIC은 풀스크린 에디터를 제공하지 않았다.대신 라인 에디터가 제공되어 사용자가 한 번에 한 줄을 추가하거나 편집할 수 있게 되었습니다.각 스테이트먼트의 순서 지정에는, 명시적인 행 번호가 사용되었습니다.이 제품은>보다 일반적인 것과 달리 즉시 모드에서 현재 새 행을 나타내는 프롬프트READY. 회선번호의 범위는 1 ~32767 이며, 이 범위를 벗어난 회선을 입력하면 "BAD LINE NUMBER" 오류가 [7]발생하였습니다.[6]회선 입력은NUMBER명령어, 즉시 모드에서만 사용할 수 있으며 오름차순 회선 번호가 [8]입력되어 있습니다.RESEQUENCE기존 프로그램의 [9]번호를 변경합니다.

TI BASIC에는 다수의 디버깅명령어도 포함되어 있습니다. BREAK와 같은 일을 했다STOP특정 회선에서의 실행을 정지합니다.STOPimmediate 모드로의 종료는, 다음의 회선에서는 행해지지 않았습니다.BREAK나타났지만, 회선에서는BREAK참조.예를 들어.BREAK 130130행으로 이동할 때마다 프로그램이 즉시 모드로 종료됩니다. UNBREAK기존 중단점을 [10]껐습니다.또한.TRACE현재 실행 라인의 라인 번호를 각도 브레이킷으로 출력합니다.<100><110>기타 및UNTRACE껐어요.[11]

진술들

TI BASIC의 ANSI 호환 스테이트먼트는 다음과 같습니다.데이터, DEF, DIM, 종료, 대상..To...STEP, GOSUB, GOTO, If...그러면...ELse, 입력, LET, Next, On..고섭아, 켜...GOTO, OPTION Base, Print, 랜덤화, READ, REM, Restore, Return, STOP.이들 중 대부분은 MS와 동일한 방식으로 운영되며 두 가지 기능이 추가되었습니다.RANDOMIZE지정된 "시드" 값으로 난수 생성기를 재시작합니다.OPTION BASE는 어레이의 첫 번째 엔트리를 0 또는1로 설정하는데 MS는 항상 제로 베이스입니다.이 표준 세트에 CALL, CLOSE, DISPLAY [12]OPEN이 추가되었습니다.

Minimal BASIC [13]표준에 따라 IF스테이트먼트는 브랜치만 실행할 수 있었고, 그 시대의 거의 모든 BASIC에서 공통적으로 행해졌던 임의의 스테이트먼트는 실행할 수 없었습니다.예를 들어 다음과 같은 코드입니다.

100 한다면 X>5 그리고나서 인쇄하다"대규모 IT" 

TI BASIC에서는 유효하지 않습니다.대신, 이 작업은 여러 회선을 사용하여 수행해야 합니다.

100 한다면 X<=>5 그리고나서 300 200 인쇄하다"대규모 IT" 

따라서 변환이 부울 비교의 의미를 변경하는 데 주의를 기울이지 않으면 1개씩의 오류가 발생하기 쉽습니다.하지만 TI BASIC에서는ELSE절:[14]

100 한다면 X>5 그리고나서 200 또 다른 300 

PRINT명령문은 콜론을 사용하여 더 일반적인 콤마 또는 세미콜론 외에 여러 줄의 항목을 구분합니다.이로 인해 TI BASIC에는 [15]없는 개념인 스테이트먼트 구분자로 사용할 수 없게 되었습니다.즉, 한 줄에 하나의 문만 사용할 수 있습니다.BASIC 통역사의 작업 방식 때문에GOTO- 기반 루프는 코드를 한 줄에 결합함으로써 대폭 고속화할 수 있으며, 이를 통해 프로그램을 통해 회선 번호를 검색할 필요가 없어집니다.이 사소한 기능 누락으로 인해 코드가 훨씬 느려질 수 있습니다.이 기능을 추가한 것은 Extended BASIC의 일부입니다.

Minimal BASIC 시스템에 대한 확장 기능은 종종 BASIC에서 직접 표시되지 않고 대신 를 통해 액세스되었습니다.CALL명령어와 일련의 이름 있는 GPL 기반 서브루틴을 사용합니다.예를 들어.CALL CLEAR화면을 클리어하고,CALL KEY키보드에서 현재 누르고 있는 키의 키 코드를 반환합니다.언어에는 PEEK와 POKE가 없기 때문에 BASIC 내에서 새로운 CALLABLE 코드를 작성할 방법이 없었습니다.이러하려면 TI Editor/Assembler,[16] 소형 어셈블러가 포함된 TI Mini Memory 카트리지 또는 Extended BASIC을 사용해야 합니다.

기능들

문자열 조작에 LEFT$, MID$, RIGHT$INSTR사용한 Microsoft BASIC과 달리 TI BASIC은 ANSI 준거 SEG$ 및 POS를 사용했습니다.

ABS
절대값
ASC
문자열 첫 번째 문자의 ASCII 숫자 값
ATN
아크탄젠트
CHR$
숫자를 ASCII 문자로 문자열로 변환
서비스 등급
코사인
EOF
파일 끝에 도달했는지 테스트합니다.
EXP
지수화
인트
매개 변수보다 작거나 같은 최대 정수
문자열 길이
로그.
자연 로그
POS
다른 문자열에서 문자열이 처음 표시됨
RND
의사 난수 생성기
세그먼트
문자열의 하위 문자열을 반환합니다.
SGN
부호함수
사인
SQR
제곱근
STR$
숫자를 문자열로 변환하다
태닝
접선
동작하지 않다
문자열을 숫자로 변환합니다.

서브 프로그램

하위 프로그램은 CALL 문(예: CALL CLEAR)을 사용하여 호출됩니다.

  • CHAR 그래픽 문자의 정의
  • CLEAR 화면을 지웁니다.
  • COLOR 8글자의 전경색과 배경색을 정의합니다.
  • GCHAR 화면에서 지정된 위치에 있는 한 문자를 읽습니다.
  • HDHAR 화면 위치에 문자를 쓰고 수평으로 반복합니다.
  • JOYST 조이스틱의 위치를 반환합니다.
  • 키 화면에 에코가 표시되지 않는 키보드 읽기
  • 화면 화면 색상을 변경합니다.
  • 사운드 소리(주파수 사용) 및 노이즈 생성
  • VCHAR 화면 위치에 문자를 쓰고 세로로 반복합니다.

확장 BASIC

TI Extended BASIC 카트리지.

TI BASIC은 시스템의 내장 ROM에 설치되어 있으며, 1981년 TI는 기존 코드에 추가 기능을 추가한 플러그인 ROM 카트리지를 출시하여 여러 [17]면에서 언어를 개선하였습니다.Extended BASIC으로 알려진 이 제품은 플랫폼에 [18]매우 기대되는 추가 제품이었습니다.

변경 사항 중에는 한 줄에 여러 개의 문장을 사용할 수 있는 기능이 추가되었습니다.여러 문을 사용하면 성능이 향상될 수 있습니다.한 줄에 구현된 루프는 훨씬 빠르게 실행됩니다.또한 문장은 이제 여러 줄에 걸쳐 있을 수 있습니다.기본 방언은 문자열 구분자로 콜론을 이미 사용했기 때문에 Extended BASIC은 이 목적으로 더블콜론을 사용했습니다.예를 들어 TI BASIC에서는 콜론이 2개인 스테이트먼트도 가능하기 때문에 혼란스럽습니다.PRINT "A"::"B""A", "B" 순으로 출력되므로 이러한 문장은 확장 베이직에서 공간을 추가해야 합니다.PRINT "A": :"B"를 클릭합니다.[17]

또 다른 연체된 추가 사항은 다음과 같습니다.IF스테이트먼트는 이제 단순히 명령어가 아닌 임의의 스테이트먼트를 실행할 수 있게 되었습니다.GOTO확장 베이직에서는 다음과 같은 간단한 문장을 쓸 수 있습니다.IF X>10 THEN X=X-1이 동작은, 에서는 동작했습니다.ELSE절, 다음과 같은 문장이 허용됩니다.IF A=4 AND B=6 THEN R=10 ELSE PRINT "OOPS"를 클릭합니다.[17]

기타 추가 사항으로는 다음과 같은 일부 새로운 문장이 있습니다.ACCEPT,IMAGE,LINPUT,ON BREAK,ON ERROR,ON WARNING,SUB,SUBEND그리고.SUBEXIT마지막 세 문은 구조화된 프로그래밍에 사용되며 명명된 서브루틴을 생성할 수 있습니다.Extended BASIC은 또한 많은 새로운 기능, 특히 CALLable 루틴을 포함하였습니다.후자 중에는 스프라이트 명령어 라이브러리가 포함되어 있으며,[17] 그 중에는 자동으로 계속되는 모션을 생성하는 명령어가 포함되어 있습니다.

음성 합성

TI Speech Synthizer를 장착하면 TI Extended BASIC 사용자는 사전 정의된 단어에서 화면에 텍스트를 쓰는 것처럼 쉽게 음성을 생성할 수 있습니다.예를 들어, 다음과 같은 텍스트 행이 음성 신시사이저를 [17]통해 컴퓨터를 식별할 수 있습니다.

전화 ("안녕하세요 저는 #텍사스 인스트루먼트 #TI 아흔아홉 포 홈 컴퓨터")

여러 단어 구문은 # 기호로 구분됩니다.#TEXAS INSTRUMENTS#를 참조해 주세요.스피치 신시사이저의 내장 어휘인 338개의 단어와 구에 포함되지 않은 단어를 사용하면 단어를 천천히 철자화 할 수 있다.TI의 터미널 에뮬레이터 II 카트리지는 텍스트/스피치 기능을 [17]제공했습니다.

레퍼런스

인용문

  1. ^ "The TI-99/4A internal architecture". 16 August 2000.
  2. ^ Nouspikel, Thierry. "GPL: Graphic Programming Language". Retrieved 2 August 2020.
  3. ^ "I grew up and learned basic on a TI-99/4a. It was a wonderful and simple time..." Hacker News. Retrieved 2 August 2020.
  4. ^ Knight, Daniel (10 January 2016). "How Fast Were Those Late 1970s Home Computers?". Low End Mac.
  5. ^ Gilbreath, Jim; Gilbreath, Gary (January 1983). "Eratosthenes Revisited: Once More through the Sieve". Byte. pp. 283–325.
  6. ^ 가이드 1981, II-5페이지
  7. ^ 가이드 1981, II-8페이지
  8. ^ 가이드 1981, II-26페이지
  9. ^ 가이드 1981, II-27페이지
  10. ^ 가이드 1981, II-33페이지
  11. ^ 가이드 1981, II-36페이지
  12. ^ 가이드 1981, 페이지 1
  13. ^ Minimal BASIC (PDF) (Technical report). ECMA. January 1978.
  14. ^ 가이드 1981, II-51페이지
  15. ^ 가이드 1981, II-65페이지
  16. ^ "Mini Memory".
  17. ^ a b c d e f 1983년
  18. ^ Kaplan, Gary (June 1981). "Extended BASIC Review". TI 99er.

참고 문헌

외부 링크