벤튼 하버 베이직

Benton Harbor BASIC
벤튼 하버 베이직
가족기본의
설계자 :고든 레트윈
디벨로퍼윈텍, 히스킷
첫 등장1978;45년전 (1978)
플랫폼히스킷 H8
OSHDOS
면허증.상업의 독점 소프트웨어
영향을 받음
다트머스 베이직

Benton Harbor BASICExtended Benton Harbor BASICH8 마이크로컴퓨터를 위해 Heathkit에 의해 작성된 BASIC 프로그래밍 언어의 두 가지 버전입니다.베이직은 다트머스 베이직(Dartmouth BASIC)에서 패턴화되었기 때문에 1970년대 후반의 많은 마이크로소프트 베이직 클론과는 몇 가지 면에서 차이가 있습니다.이 둘은 전자가 8kB의 메인 메모리만 있는 시스템에서 실행할 수 있었고 문자열 상수만 지원했다는 점에서 차이가 있으며 Extended는 12kB가 필요했고 문자열 변수와 추가 기능이 필요했습니다.그것은 히스킷이 있었던 마을의 이름을 따서 지어졌습니다.[1]

역사

Heathkit은 1974년부터 새롭게 등장하는 마이크로컴퓨터 분야를 주시해 왔지만, 그 당시에는 기존 Heath 고객들 중 어떤 사람이 마이크로컴퓨터를 사용할지 알 수 없었습니다.1975년 1월에 MITS알테어 8800 키트를 선보이면서 태도가 바뀌었고, 그것은 폭주하는 베스트셀러였습니다.히스킷은 여러 가지 설계 결정으로 인해 신뢰성이 떨어지는 것으로 알려진 [2]알테어보다 훨씬 우수한 자체 키트를 개발하기 위해 프로그램을 시작했습니다.[a]컴퓨터를 만드는 개념은 회사에서 여전히 뜨거운 이슈로 남아있었지만, 한 엔지니어가 "좋아요, 우리는 컴퓨터를 만들 거예요."라고 말한 후 진전되기 시작했습니다.하지만 소프트웨어에는 관여하지 않을 것입니다!"[2]

소프트웨어에 관여하지 말자는 생각은 순식간에 나쁜 생각으로 드러났습니다.새 디자인은 대부분 정화된 Altair, 즉 S-100 버스 디자인이었지만, 변환 없이는 Altair 소프트웨어가 실행되지 않을 정도로 차이가 있었습니다.이로 인해 예비 소유자는 자신의 컴퓨터와 거의 관련이 없게 될 것입니다.[3]최소한 몇 가지 기본적인 프로그램이 포함된 시스템을 판매하기로 결정했지만, 회사 내에서 소프트웨어 경험이 있는 사람은 아무도 없었습니다.[3]

이 회사는 시스템을 위한 프로그램 세트를 작성하기 위해 인디애나주 라파예트의 윈텍에게 연락했습니다.Wintek은 그들의 프로그래머 중 한 명인 Gordon Letwin을 미시간주 벤튼 하버에 있는 Heath 본사로 보냈습니다.히스의 프로젝트 책임자인 루이스 프렌젤(Louis Frenzel)은 렛윈이 긴 머리에 하이탑 스니커즈, 벨벳 코트를 입고 비즈니스 미팅을 위해 도착한 적이 있다고 설명했습니다.프렌젤은 레트윈의 등장에 놀랐음에도 불구하고, 레트윈이 자신이 무엇을 하고 있는지를 재빨리 깨닫고 직접 고용하기로 결정했습니다.[3]

Letwin의 첫 번째 프로젝트는 플랫폼을 위한 운영 체제HDOS였습니다.이것이 완성된 후, 그는 베이직 작업을 했습니다.첫 번째 버전은 매우 단순하여 가장 기본적인 기능만 지원하고 6자리의 정밀도로 제한되었으며 문자열 조작이 부족했으며 줄당 [3]하나의 문장만 허용했습니다.[4]이 버전은 모든 H8 시스템과 함께 출고되었습니다.사용자는 10달러에 문자열 변수와 다양한 부가 기능을 추가한 버전 10부터 시작된 확장 베이직도 구입할 수 있습니다.[5]

그 시스템은 특별히 잘 검토되지 않았습니다.한 평론가는 이것을 "중간 품질"이라고 부르며 북극성 베이직보다 10배 정도 느린 속도에 대해 우려를 나타냈습니다.[6]또한 Extended가 향상된 성능을 제공한다는 Heath의 주장에도 불구하고, 한 사용자에 의한 벤치마킹은 제곱근과 같은 일부 수학 함수를 제외하고는 대부분의 연산이 속도가 동일하거나 약간 느리다는 것을 보여주었습니다.[7]

묘사

프로그램편집

그 시대의 대부분의 BASIC과 마찬가지로, 시스템은 대화형 모드나 프로그램 모드, 또는 당시 알려진 대로 즉시 모드와 지연 모드에서 사용될 수 있습니다.Heath는 이를 명령 모드 및 프로그램 모드라고 합니다.명령 모드에서 행 번호 없이 입력한 문이 즉시 실행되었습니다.번호가 맨 앞에 있는 사람들은 프로그램 저장소의 적절한 위치에 놓이게 되었고, 아마도 기존의 줄을 같은 번호로 교체했을 것입니다.이후의 가정용 컴퓨터 버전과는 대조적으로, H8은 어떤 종류의 커서 주소를 지정할 수 있는 디스플레이를 가정하지 않았기 때문에, 코드를 편집하는 것은 전체 라인을 다시 입력함으로써 이루어져야 했습니다.*기민한[8]줄 번호는 1에서 65,535 사이일 수 있으며,[9] 기본 버전에서는 단일 줄이 최대 80자, 확장 버전에서는 100자가 될 수 있습니다.[8]

이 시스템의 고급 기능 중 하나는 자동 완성 시스템을 제공한다는 점이었습니다.초기 명령을 입력하면 고유하게 식별할 수 있는 즉시 시스템이 전체 단어를 즉시 삽입합니다.[10]Sinclair BASIC과 같은 일부 다른 방언들도 비슷한 특징을 제공했지만, 그들은 특별한 키 누름이나 대체를 수행하는 문자를 사용하여 그렇게 했습니다.

문 및 명령어

명령어 모드에서만 사용할 수 있는 명령어와 명령어 또는 프로그램 모드에서 사용할 수 있는 명령어를 그룹으로 구분했습니다.명령 모드에서만 사용할 수 있는 것들 중에는 다음이 있습니다.RUN,CONTINUE만약 그것이 일시 정지되었다면, 그리고SCRATCH일반적인 것보다는NEW프로그램을 삭제합니다. (SCRACH는 여러 현대 베이직에서 사용되었습니다.)다음을 사용하여 프로그램을 저장했습니다.DUMP대신에SAVE, 를 사용하여 로드됩니다.LOAD. 파일 이름이 길었고 파일 이름이 길었을 수 있습니다.VERIFY덤프 [11]후에

명령어나 프로그램 모드에서 사용할 수 있는 문장은 대부분의 언어를 나타냅니다.이들 중에는 공통적인 것들이 있었습니다.IF...THEN그리고 그에 상응하는IF...GOTO몇몇 다른 시스템에서 볼 수 있습니다FOR...NEXT...STEP,DIM1차원 또는 2차원의 경우,GOSUB...RETURN,GOTO변수와 선 번호 상수를 사용할 수 있는 기능이 있는 경우LET,LIST한 줄이나 전체 프로그램만 나열할 수 있었습니다.ON...GOTO그리고.ON...GOSUB 계산된 가지,PEEK그리고.POKE,PRINT,READ...DATA그리고.RESTORE. 그 시대의 대부분의 방언에서 볼 수 있는 많은 진술들이 빠졌습니다, 다음을 포함합니다.STOP,END,DEF FN그리고.REM.INPUT는 단일 옵션 프롬프트로 지원되었으며, 프롬프트가 있는 경우에는 일반적으로 나타나는 물음표가 표시되지 않습니다.프롬프트 문자열을 입력하지 않고 세미콜론 구분자만 입력하면 트리거될 수도 있습니다.[12]추가된 것은.PAUSE키를 누를 때까지 실행을 중지한 명령어입니다.[13]

수학 연산자는 표준이었습니다.+,-,*,/그리고.^. 논리 연산자도 마찬가지로 표준이었습니다.=,<,>,<=,>=그리고.<>.[14]부울[14] 연산자 포함NOT,AND그리고.OR.[15]

기능 또한 대부분 표준이었습니다. 다음을 포함하여ABS,ATN,ABS,COS,EXP,INT대부분의 버전에서 그러하듯이 바닥이 아니라 잘린 것입니다.LOG,POS커서 위치를 되돌린거죠RND,SGN,SIN,SQR,SPC많은 공간 문자를 출력하고 있습니다.TAB특정 열로 이동하려면,FRE사용 가능한 메모리 양을 인쇄하고USR어셈블러 언어 루틴을 호출합니다.[16]난수는 시리즈를 기반으로 합니다.RND(0)시리즈를 진행하지 않고 마지막 번호를 반환할 겁니다RND(-1)다시 파종하고 파라미터에 있는 양의 값이 시리즈의 다음 값을 반환합니다.[17]

추가적인 특수 목적 기능과 명령어들도 있었습니다.PAD전면 패널의 키패드에서 누르고 있는 키의 값을 반환합니다.SEGPAD의 키 값을 숫자로 변환하여 7 세그먼트 디스플레이에 POKE할 수 있습니다.[18][19]알테어 베이직과 마찬가지로 벤튼 하버도 포함되어 있습니다.OUT인텔 8080이 번호가 매겨진 I/[19]O 포트를 사용한 것처럼 포트 번호에 값을 쓰는 문장.

변수에는 단일 문자 또는 단일 문자를 사용할 수 있으며 한 자리 - 두 개의 문자 이름은 사용할 수 없습니다.[20]

확장 베이직

Extended BASIC의 주목할 만한 추가 사항은 문자열 변수와 문자열에서 동작할 수 있는 많은 함수들이었습니다.문자열 변수는 대부분의 방언처럼 $ 기호로 표시되었으며 256자까지 사용할 수 있습니다.[20]문자열 함수는 표준을 포함했습니다.CHR$,STR$,LEFT$,RIGHT$,MID$,ASC그리고.VAL.[21]연결이[21] 수행되었습니다.+.[15]확장[15] 지원됨LINE INPUT공백을 값 사이의 구분자로 해석하는 대신 전체 줄을 하나의 문자열로 읽습니다.[22]

또 다른 변화는 그것이FRE명령어를 대체한 기능FREE, 메모리 사용을 보여주는 상세한 표를 출력했습니다.PAUSE시간이 지나면 일시 중지 상태를 종료하는 옵션 값을 사용하도록 수정되었습니다.내부 클럭은 매 밀리초마다 업데이트되었으므로 이 값은 2ms 단위였습니다.더뉴PORTstatement는 PRINT의 출력을 다른 장치로 향하게 하여 OUT를 사용하고 문자열 위에 루프를 거는 것보다 훨씬 쉽게 텍스트를 출력할 수 있게 했습니다.[13]

Extended는 프로그래밍을 더 쉽게 하기 위한 여러 기능도 추가했습니다.주목할 만한 것은 두 번째 쉼표로 구분된 입력을 추가하여 다음과 같은 행을 나열할 수 있도록 한 것입니다.LIST 10,500, 아타리 베이직 같은 다른 방언에서도 볼 수 있습니다.기타 포함BUILD, 대부분의 방언에서 그렇게 불려질 것입니다.AUTO, 자동 회선 번호를 켭니다.예를 들어.BUILD 100,10행을 입력하면 "100"이 자동으로 인쇄되고, 입력된 행마다 10, 100, 110, 120 등의 숫자가 증가합니다.이것은 누름으로써 꺼졌습니다.control-C.[23] DELETE다음과 같은 범위 형식을 사용하여 줄의 범위를 삭제할 수 있도록 허용했습니다.LIST.[24]

또 다른 추가 사항은.CNTRL명령어는 번호가 매겨진 항목 목록에 따라 다양한 설정을 가집니다.CNTRL 0,500, "setting zero"의 경우, GOSSUB를 수행하여 제어 B 키 누름에 응답하도록 시스템을 설정합니다. 이 경우 500.설정 1은 지수 형식으로 전환되기 전의 자릿수를 설정하고, 2는 전면 패널 LED 디스플레이의 업데이트를 제어하며, 3은 쉼표로 구분된 목록을 인쇄할 때 사용되는 "인쇄 영역"의 너비를 설정하고, 4는 하드웨어 시계를 켜거나 끕니다.[25]시계를 끄면 프로그램 속도가 15%[26]까지 빨라질 수 있습니다.

마지막으로, 다음을 포함하여 소수의 새로운 수학 함수들이 추가되었습니다.MAX그리고.MIN쉼표로 delim된 값의 목록과 함께 제공됩니다.TAN.[27]

메모들

  1. ^ 이러한 문제 중 일부에 대한 기존 설계자의 긴 토론은 S-100 버스 종료레거시 지원 페이지를 참조하십시오.

참고문헌

인용문

  1. ^ 서든 1977, 페이지 35.
  2. ^ a b 짐머만 1982, 페이지 16.
  3. ^ a b c d 짐머만 1982, 17쪽.
  4. ^ 무어 1981, 페이지 122.
  5. ^ 포두스카 1979, 페이지 134.
  6. ^ 무어 1981, 페이지 125.
  7. ^ 포두스카 1979, 페이지 134, 135.
  8. ^ a b 매뉴얼 1980, 페이지 5.74.
  9. ^ 매뉴얼 1980, 페이지 5.25.
  10. ^ 매뉴얼 1980, 페이지 5.72.
  11. ^ 매뉴얼 1980, 페이지 5.27–5.32.
  12. ^ 매뉴얼 1980, 페이지 5.59.
  13. ^ a b 매뉴얼 1980, 페이지 5.89
  14. ^ 매뉴얼 1980, 페이지 5.84.
  15. ^ a b 매뉴얼 1980, 페이지 5.85.
  16. ^ 매뉴얼 1980, 페이지 5.66.
  17. ^ 매뉴얼 1980, 페이지 5.91.
  18. ^ 매뉴얼 1980, 페이지 5.64–5.65.
  19. ^ a b 포두스카 1979, 페이지 135.
  20. ^ a b 매뉴얼 1980, 페이지 5.83.
  21. ^ 매뉴얼 1980, 페이지 5.70.
  22. ^ 매뉴얼 1980, 페이지 5.60.
  23. ^ 매뉴얼 1980, 페이지 5.27.
  24. ^ 매뉴얼 1980, 페이지 5.28.
  25. ^ 매뉴얼 1980, 페이지 5.34–5.36.
  26. ^ Poduska 1979, p. 35.
  27. ^ 매뉴얼 1980, 페이지 5.92.

서지학

  • "Benton Harbor BASIC and Extended BASIC" (PDF). Heath Disk Operating System Software Reference Manual (PDF). Heath. 1980.
  • Poduska, Paul (March 1979). "Building the Heath H8 Computer" (PDF). Byte. pp. 12–13, 124–140.
  • Moore, Martin (April 1981). "Building the H-89 - Part 2". Kilobaud Microcomputing. pp. 116–125.
  • Zimmerman, Fredrick (Fall 1982). "The H8's Fifth Anniversary: Origins and Outlook". Sextant.
  • Surden, Esther (4 July 1977). "Heath Sees Future Revenues From DP". ComputerWorld.

추가열람