셀바루
SCELBALSCELBAL은 SCELBI 및 기타 초기 인텔 8008 및 8080 기반 마이크로컴퓨터용으로 1976년에 출시된 BASIC 프로그래밍 언어 버전입니다.이후 언어의 추가 기능에는 확장 연산 패키지와 문자열 처리가 포함되었습니다.원래 버전에는 8kB의 RAM이 필요했고, 추가된 RAM에는 최소 12kB가 필요했습니다.
이 언어는 서적 형태로 출판되었고, 소개 섹션 뒤에 흐름도, 그리고 8008 어셈블러 코드가 이어졌다.이 책에서는 메모리를 더 절약할 수 있는 방법, 예를 들어 어레이를 끄는 방법, 사용자가 언어에 새로운 기능을 추가하는 방법에 대해 설명했습니다.
역사
SCELBAL의 주요 저자는 마크 아놀드로, SCELBI가 발표된 1974년 고등학생이었다.Arnold는 와이오밍 대학(UW)의 교수들과 친구였고, 그들을 통해 그들의 Sigma 7 메인프레임 컴퓨터에 계정을 만들도록 주선했습니다.SCELBAL이 된 첫 번째 버전은 이 기계용으로 작성되었습니다.그 해 말, 그는 그 플랫폼에서 8008 크로스 컴파일러를 작성했습니다.
Arnold는 1975년에 UW에 입사하여 SCELBI의 창립자 중 한 명인 Nat Wadsworth에게 연락하여 새로운 플랫폼용 BASIC 컴파일 버전을 제안했습니다.이것은 카세트 테이프에 중간 버전을 저장하는 멀티패스 시스템입니다.이 방법은 사용하기 매우 번거롭지만 시스템의 4kB 8H 모델에서 실행되는 프로그램을 생성합니다.Wadsworth는 새로운 8B 모델에서 사용할 수 있는 8kB가 필요한 통역사를 선호했습니다.이 언어는 Wadsworth가 1975년에 발표한 8008용 기계 언어 프로그래밍에서 부동 소수점 루틴을 사용했습니다.
워즈워스는 아놀드에게 8B 개발 시스템을 보내는 등 마침내 계약을 주선하는데 몇 달이 걸렸다.이로 인해 1976년으로 언어 공개가 상당히 지연되었다.아놀드는 이러한 지연이 없었다면 SCELBAL이 1975년 말 알테어 베이직과 거의 동시에 출시되었을 것이라고 추측했다.그것은 [1]1976년 2월 닥스 저널 제2호에 장문의 기사로 처음 소개되었다.
SCLEBAL의 출시는 Byte의 1976년 6월호에 게재된 광고에서 발표되었습니다.이 광고는 언어를 SCELBI 플랫폼에 특별히 링크하지 않고, 8008 또는 8080 시스템에서 필요한 8kB RAM을 갖춘 BASIC 버전을 작성하기 위한 완전한 소스 목록으로 책 형태로 제공했을 뿐입니다.이 책의 가격은 49달러로 [2]2021년에는 약 233달러였다.
묘사
SCELBAL은 수치 계산에 32비트(4바이트) 부동소수점 형식을 사용했습니다.수치 계산에는 23비트 가수, 1비트 부호, 7비트 지수 및 1비트 부호가 사용됩니다.이것들은 첫 번째 바이트에서 가장 낮은 유의 바이트로 역순으로 구성되었고, 이어서 중간 바이트와 가장 유의한 바이트로 높은 비트에 부호가 표시되었습니다.그 지수는 맨 마지막에 왔고, 다시 한 번 [3]높은 비트에 부호를 넣었다.이 매뉴얼에서는 엔트리 포인트와 사용 [4]노트를 포함한 수학 패키지 전체의 어셈블리 코드를 문서화하고 있습니다.이 시대에는 32비트 형식이 일반적이었습니다.MOS 6502용 Microsoft BASIC에서 시작된 이후 버전은 일반적으로 정밀도를 [5]높이기 위해 40비트(5바이트) 형식을 채택했습니다.
SCELBAL은 Altair BASIC과 같은 초기 MS 버전을 포함한 다른 BASIC 방언과 비슷했으며 문자열 변수와 연산자 및 다수의 수학 함수가 부족했습니다.다른 차이점들은 덜 뚜렷했다.그IF
스테이트먼트에는 옵션 형식이 있습니다.IF...GOTO
필요없게 되었다.THEN
또한 [6]동일한 개념에 대한 MS 스타일의 짧은 형식을 유지했습니다.또, 다음과 같은 다른 문장의 조건부 실행도 허용했습니다.IF X<Y THEN PRINT X
를 클릭합니다.
기본 언어가 문자열 처리를 지원하지 않지만 리터럴(정수) 문자열을 사용할 수 있습니다.PRINT
의 지원 기능을 가지고 있습니다.CHR
인쇄할 수 없는 문자를 인쇄합니다.TAB
레이아웃을 제공합니다.이상하게도 시스템에서는 ASCII 코드가 하이비트를 설정하도록 요구되었기 때문에 일반 ASCII 문자 코드에서 SCELBI 문자 코드로 변환하려면 128을 더하거나 빼야 했습니다.예를 들어.
인쇄하다 "안녕하세요";CHR(172);CHR(160);"세계"
출력에 "[8]HELLO, WORLD" 문자열이 생성됩니다.
INPUT
는 보통 사용자가 입력한 텍스트를 수치로 읽지만 대신 SCELBI 코드로 읽어야 함을 나타내는 달러 기호를 허용했습니다.예를 들어.INPUT A
A에 대한 사용자 입력 '1'을 부동소수점 값 1로 읽습니다.INPUT A$
그러면 A가 177, 49('1'의 ASCII) + 128로 설정됩니다.또한 달러 기호를 사용하면 기존의 "?" 프롬프트는 인쇄되지 않으며, 일반적인 [8]경우처럼 캐리지 리턴을 기다리는 대신 단일 문자가 입력되는 즉시 명령어가 언어로 반환됩니다.
다른 몇 가지 차이점 중 하나는,NEW
MS에서 발견된 명령어는 기존 프로그램 코드와 데이터를 클리어하는 명령어입니다.SCR
"disclosed"[9]에 대해USR
기계어 루틴이라고 불리는 기능은UDF
"사용자 정의 함수"[10]를 선택합니다. UDF
에서는 단일 부동소수점 파라미터를 사용자 정의 함수에 전달할 수 있습니다.사용자 정의 함수의 머신 언어 코드는 런타임 [11]전에 고정된 위치에 있는 메모리에 로드되어 있어야 합니다.
에러 코드는 2글자로 줄었고, 코드:LOAD
그리고.SAVE
는 보일러 플레이트 형태로 제공되며 다른 [12]플랫폼으로 이식될 때 구현될 것으로 예상됩니다.회선번호는 1 ~9999 [10]의 범위에서 지정할 수 있습니다만, 대부분의 BASIC 에서는 16 비트 정수를 사용하고 있기 때문에, 1 ~32767 또는 1 ~65535 의 회선을 서포트하고 있습니다.
언어 기능
- 특별히 명기되어 있지 않는 한 1976년 매뉴얼에서 발췌한 것입니다.[13]
명령어
즉시 모드만
매뉴얼에서는 "이그제큐티브" 모드라고 부릅니다.
SCR
- 스크래치, MS와 동등
NEW
LIST
RUN
LOAD
SAVE
즉시 또는 프로그램 모드
PRINT
INPUT
- MS와 마찬가지로 여러 변수를 수용할 수 있습니다.
INPUT A,B,C
. 프롬프트 문자열은 포함되지 않았습니다. LET
- MS와 마찬가지로
LET
선택 사항이었기 때문에15 LET X=10
그리고.15 X=10
동등합니다. IF...THEN
IF...GOTO
- 대체 형식
IF...THEN
. GOTO
- '스페이스 버전'으로 표시됩니다.
GO TO
는 지원되지 않았습니다. GOSUB...RETURN
FOR...TO...STEP...NEXT
- MS와 마찬가지로
STEP
는 옵션이며 1로 간주됩니다.NEXT
이후 MS 버전과 달리 변수가 필요했습니다. REM
END
DIM
- 어레이는 MS와 동일하게 동작하지만 옵션이며 메모리 절약을 위해 전원을 끌 수 있습니다.단차원 어레이만 지원되며 모든 어레이의 총 요소 수는 64개였습니다.
기능들
INT
SGN
ABS
SQR
RND
- MS와 마찬가지로 더미 변수를 사용하여0 ~ 1 의 값을 반환합니다.
CHR
- MS에서 찾을 수 있는 $가 부족하다는 점에 유의하십시오.
CHR$
. TAB
UDF
내선번호
SCELBI는 시스템에 대한 두 가지 확장 기능인 수학 함수 보충과 문자열 보충을 발표했습니다.
산술 함수 보충
Mathemical Functions Supplement는 5개의 새로운 초월 함수를 추가했다.SIN
,COS
,EXP
,LOG
,그리고.ATN
를 클릭합니다.[14]
문자열 보충
String Supplement는 다수의 새로운 기능을 포함하여 산술 함수보다 약간 더 컸습니다.
문자열의 길이는 최대 80자로, 시스템은 총 64개의 문자열 변수를 유지할 수 있습니다.64개 중 하나 또는 모든 것이 1차원 배열일 수 있지만 총 수는 64개 문자열이어야 합니다.이상하게도 문자열 배열에는DIM
스테이트먼트.[15]
MS BASIC 및 이에 영감을 준 Dartmouth BASIC 문자열 처리와 달리 SCELBI는 SDS BASIC, HP Time-Shared BASIC 및 Northstar BASIC 또는 이후 Atari BASIC과 같은 현대의 BASIC에서 볼 수 있는 "슬라이싱" 스타일의 문자열 처리를 사용했습니다.다음과 같은 기능을 사용하는 대신LEFT$
,RIGHT$
,MID$
서브스트링에 액세스하기 위해 array-access 구문은 시작점 앞에 콜론을 붙이고 옵션으로 길이 앞에 세미콜론을 붙여서 사용하였습니다.SCELBAL은 문자열 어레이도 지원하므로 어레이 액세스 장치의 첫 번째 숫자는 어레이 인덱스이며 변수가 어레이가 아닌 경우에는 옵션입니다.예를 들어,[15] 코드는 다음과 같습니다.
10 허락하다 A$="안녕하세요" 20 인쇄하다 A$(:2;3)
출력에 「ELL」이 인쇄됩니다.어레이가 사용된 경우 첫 번째 [15]파라미터의 어레이인덱스가 필요한 구문은 다음과 같습니다.
100 허락하다 A$(1)="안녕하세요" 150 허락하다 A$(2)="세계" 200 인쇄하다 A$(2:2;3)
출력에 「ORL」이 인쇄됩니다.SCELBAL에서는 문자열의 시작점부터 끝까지의 문자를 지정하는 세미콜론도 생략할 수 있습니다.예를 들어, 코드는 다음과 같습니다.
210 인쇄하다 A$(2:2)
출력에 「OLD」가 인쇄됩니다.
SDS BASIC과 비슷하지만 슬라이싱 구문을 사용한 다른 BASIC과 비교하여 동작방법에 큰 차이가 있습니다.마지막 파라미터는 위치가 아닌 길이입니다.예를 들어 Atari BASIC에서는 비슷한 모양의 코드가 [16]다음과 같습니다.
20 인쇄하다 A$(2,3)
는 대신 "EL"을 출력합니다.이 명령어는 "위치 2와 3 사이의 모든 문자를 인쇄합니다"로 번역됩니다.이와 같이 SCELBAL은 MS BASIC과 보다 유사한 방식으로 동작합니다.여기서는 다음과 같습니다.[17]
20 인쇄하다 MID$(A$,2,3)
그리고.
210 인쇄하다 오른쪽(A$(2),2)
문자열에 대한 완전한 지원을 추가하기 위해 부록은 원본 파일을 대체했습니다.CHR
와 함께CHR$
MS [15]대응 구문과 일치합니다.저도 마찬가지예요.INPUT
문자열 변수가 숫자 변수처럼 작동하도록 수정되었으며 캐리지 리턴을 기다린 후 연관된 문자열 변수에 [18]사용자 입력 전체를 할당했습니다.또, 서포트 기능도 추가했습니다.LEN
그리고.ASC
,[15] 및VAL$
숫자 값을 포함하는 문자열을 해당 숫자의 문자열로 변환합니다.MS와 마찬가지로 연결에서는+
오퍼레이터.[18]
레퍼런스
인용문
- ^ Arnold, Mark; Wadsworth, Nat (February 1976). "SCELBAL - A Higher Level Language for 8008/8080 Systems". Dr. Dobb's Journal. pp. 30–53.
- ^ "Shocking!". Byte. June 1976. p. 47.
- ^ 아놀드 & 워즈워스 1976, 10.1페이지
- ^ 아놀드 & 워즈워스 1976, 10페이지
- ^ Steil, Michael (20 October 2008). "Create your own Version of Microsoft BASIC for 6502".
- ^ 아놀드 & 워즈워스 1976, 14.10페이지
- ^ 아놀드 & 워즈워스 1976, 2.3페이지
- ^ a b 아놀드 & 워즈워스 1976, 14.16페이지
- ^ 아놀드 & 워즈워스 1976, 14.1페이지
- ^ a b 아놀드 & 워즈워스 1976, 14.17페이지
- ^ 아놀드 & 워즈워스 1976, 14.3페이지
- ^ 아놀드 & 워즈워스 1976, 14.18페이지
- ^ 아놀드 & 워즈워스 1976.
- ^ 수학 1977, 페이지 1
- ^ a b c d e 스트링 1977, 페이지 1
- ^ Small, David, ed. (1983). "Atari Strings and Text Handling". The Creative Atari. Creative Computing.
- ^ 스트링 1977, 3페이지
- ^ a b 스트링 1977, 2페이지
참고 문헌
- Arnold, Mark; Wadsworth, Nat (1976). SCELBAL: A higher level language for 8008/8080 systems (PDF). SCELBI Computer Consulting.
- Arnold, Mark (1977). SCELBAL Mathematical Functions Supplement. SCELBI Computer Consulting.
- Arnold, Mark (1977). SCELBAL Strings Supplement. SCELBI Computer Consulting.