아타리 Microsoft BASIC
Atari Microsoft BAS개발자 | 마이크로소프트, 아타리, 주식회사 |
---|---|
최종 릴리즈 | 2.0 / 1982; 전 ( |
플랫폼 | Atari 8비트 패밀리 |
크기 | 27 KB |
유형 | Microsoft BASIC |
면허증. | 저작권 © 1981, 1982 Microsoft Corporation.독자 사양 |
6502 버전의 Microsoft BASIC의 Atari Microsoft BASIC 및 Atari Microsoft BASIC II는 Atari 8비트 머신에 이식되었습니다.1981년에 출시된 첫 번째 버전은 32KB의 RAM이 필요했으며 플로피 디스크로 제공되었습니다.그 다음 해에 출시된 두 번째 버전은 대부분의 코드를 ROM 카트리지에 포함시켰으며 옵션 플로피에도 추가 기능이 포함되어 있었습니다.
Atari Microsoft BASIC은 Apple Soft BASIC이나 Commodore BASIC과 같은 현대의 BASIC과 높은 호환성을 가지고 있으며, Atari BASIC은 다소 다른 방언으로 여러 면에서 호환성이 없습니다.Atari BASIC과 마찬가지로 Atari Microsoft BASIC은 Atari 플랫폼을 활용하기 위한 많은 새로운 명령어와 기능을 포함하고 있습니다.Atari BASIC의 유사한 기능과 부분적으로만 호환되었습니다.
역사
Microsoft 는, 인텔 8080 베이스의 BASIC 를 6502 로 포팅 했을 때에, 정밀도를 높이기 위해서, 부동 소수점 포맷을 원래의 32 비트 형식에서 옵션의 40 비트 형식으로 확장하는 데 시간이 걸렸습니다.두 버전 모두 컴파일러 플래그를 제공하여 동일한 코드에서 컴파일할 수 있습니다. 32비트 포맷이 8KB 미만일 경우 코드 길이가 40비트 포맷일 경우 9KB에 가깝습니다.
Atari 8비트 홈 컴퓨터에는 8KB ROM 카트리지용 슬롯이 장착되어 있습니다.Atari의 프로그래머들은 마이크로소프트의 BASIC을 하나의 카트리지에 넣기 위해 고심하고 플랫폼의 장점을 살리기 위한 기능도 추가했습니다.1978년 여름, Atari는 BASIC이 1979년 시스템 출시에 맞춰 준비될 수 있도록 포팅 작업을 아웃소싱하기로 결정하였고, Shepardson Microsystems Inc.(SMI)로 이어졌습니다.SMI는 즉시 이 작업이 불가능하다고 판단하고 대신 완전히 새로운 버전의 BASIC을 만들 것을 제안했습니다.이것은 아타리 베이직이 되어 1979년에 [1]아타리 400과 800으로 발매되었습니다.
Atari는 MS 코드로 작업을 계속했고 1981년 플로피 디스크로 버전 하나를 출시했다.Atari BASIC에 비해 MS의 표준 명령어 범위가 넓어진 것 외에 새로운 버전에는 그래픽스, 사운드 및 플랫폼의 기타 기능에 대한 많은 명령어가 추가되었습니다.또한 향상된 성능을 제공하는 정수 변수와 완전 정수 연산[a] 패키지도 포함되었습니다.그러나 최소 32KB의 RAM이 필요하고 디스크에서만 실행되기 때문에 특별히 인기가 있었던 적은 없습니다.
두 번째 릴리스인 Atari Microsoft BASIC II는 대부분의 코드를 16KB의 확장 카트리지로 옮기고 거의 사용하지 않는 코드를 디스크에 추가 11KB로 저장했습니다.이는 크로스 플랫폼 사용을 의도한 많은 프로그램을 카트리지만으로 실행할 수 있게 되었다는 것을 의미합니다.1982년에 출시된 BASIC II도 실제 사용 빈도가 낮았다.
세부 사항
기본 인터프리터는 Commodore BASIC과 Apple Soft BASIC의 기반이 되는 동일한 9KB MOS 6502 코드를 기반으로 하며 대부분 호환성이 있습니다.이것의 중요한 측면은 스트링 핸들링 시스템이었는데, 이 시스템은 이러한 플랫폼과 동일한 코드를 기반으로 했습니다.반면 Atari BASIC은 문자열을 문자 배열로 취급하는 전혀 다른 시스템을 사용했으며 대부분의 다른 시스템과 호환성이 없거나 쉽게 이식할 수 없었습니다.
시스템의 운영체제 ROM에서 악명높은 느린 것을 대체한 원래의 40비트 포맷 부동소수점 연산 라이브러리를 유지하여 다른 플랫폼과 같은 속도로, 아타리 베이직보다 훨씬 빠른 속도로 연산 코드를 실행하였다.또한 성능을 높이기 위해 정수 연산 패키지도 추가되어 있습니다.정수 연산 시스템은 정수 변수에 할당되거나 리터럴 값이 모두 정수일 때 트리거되었습니다.둘 중 하나가 참이 아닌 경우 정수 값은 부동소수로 변환되고 부동소수점 코드를 계산에 사용한 후 정수로 다시 변환되어 저장됩니다.
두 정수의 나눗셈 | 정수 및 부동 소수점 분할 |
---|---|
PRINT 3/2 1 | PRINT 3/2.0 1.5 |
퍼포먼스와 관련된 또 다른 주목할 만한 개선사항은FOR...NEXT
루프. Atari BASIC은 루프의 회선 번호를 배치하여 이 작업을 수행했습니다.FOR
실행 스택에 접속되어 있기 때문에, 관련지어져 있는 경우에,NEXT
루프백하는 회선을 검출할 수 있습니다.반대로 MS BASIC은 항상 그 라인의 메모리 위치를 스택에 배치하고 있기 때문에 이 라인은 다시 스택으로 점프할 수 있습니다.FOR
일치하는 라인을 전체 프로그램에서 검색할 필요가 없습니다.Atari BASIC의 이 기묘한 점은 성능 저하의 주요 원인 중 하나이며, Atari Microsoft BASIC에서는 그렇지 않았기 때문에 일반적으로 Atari BASIC보다 훨씬 빠르게 실행되었습니다.
입력 시 행 전체를 토큰화한 Atari BASIC과 달리 MS BASIC은 소스 코드를 부분적으로만 토큰화했습니다.행이 입력되면 행 번호는 ASCII에서16비트 정수로 변환되고 첫 번째 프로그램 문은 싱글바이트 값으로 토큰화되어 나머지 행은 텍스트 형식으로 남습니다.마지막 문자는 행의 끝을 나타내기 위해 하이비트를 설정했습니다.사용 사례에 따라서는 Atari BASIC이 회선을 토큰화하면 프로그램 저장에 사용되는 메모리가 줄어들 수 있습니다.이 차이는 편집 시 행 전체를 체크했던 Atari 버전과는 달리 MS 코드의 런타임에만 구문 오류가 발견된다는 것을 의미하기도 합니다.이론적으로 편집 시간 컴파일은 Atari BASIC을 MS보다 훨씬 더 빠르게 만들었지만, 이 장점은 위의 다른 성능 문제로 사라졌습니다.
MS BASIC은 입력 시 마침표로 단축할 수 있었던 아타리 베이직과 달리 짧은 형식의 키워드를 입력하는 시스템을 포함하지 않았다.프로그램 실행 시LIST
ed, 키워드가 확장됩니다.동일한 끝에 제어 문자 완성을 추가한 Commodore 버전입니다.
Atari Microsoft BASIC은 플랫폼의 장점을 활용하기 위해 많은 신기능을 추가했습니다.한 가지 흥미로운 추가 사항은AFTER (600) GOTO 100
60분의 1초의 지정된 수의 '지피'를 기다린 후에FOR
또,WAIT
대신 다음 행으로 넘어가기 전에 메모리 주소가 변경되기를 기다리는 동안 일시 중지됩니다. WAIT
는 MS BASIC의 초기 버전에 포함되어 있었지만 널리 사용되지 않았습니다.
Atari Microsoft BASIC에는 Atari BASIC의 그래픽과 사운드 명령어가 대부분 포함되어 있습니다.이상하게도 원본은DRAWTO
에 합병되었다.PLOT
옵션 사용PLOT...TO...
포맷합니다.즉, Atari BASIC의 그래픽 코드가 호환되지 않습니다.Atari Microsoft BASIC은 Atari BASIC에서 사용할 수 없었던 플레이어/미사일 그래픽과 사용자 정의 문자 세트를 처리하기 위한 많은 추가 명령을 추가했습니다.
Atari Microsoft BASIC은 다음 두 가지 패키지로 제공됩니다.
- 플로피 디스크 – CX8126
- ROM 카트리지– RX8035카트리지에는 16KB밖에 들어가지 않았기 때문에 나머지 11KB 파일은 "확장" 디스크에 포함되어 있었습니다.카트리지 버전은 Atari Microsoft BASIC II라고 불렸습니다.
Atari BASIC보다 기능이 풍부하지만 Microsoft BASIC은 Atari BASIC만큼 인기를 끌지 못했습니다.가장 큰 문제는 다음과 같습니다.
- 메모리 증가(최소 32KB)
- 필요한 디스크 드라이브
- 퍼포먼스(Atari BASIC보다 빠르지만 Turbo-Basic XL 및 BASIC XL보다 느림)
- Atari BAS와 호환되지 않음IC
- 추가 비용
카트리지 버전에서는 처음 두 가지 요건이 필요 없었지만 모든 기능에 디스크 드라이브가 필요했습니다.
메모들
- ^ 정수 변수를 포함하지만 값을 부동소수점 형식으로 변환하여 수학을 수행한 Commodore 버전의 MS BASIC과 대조적입니다.