Trang bìa của mã hợp ngữ của Altair BASIC | |
Thiết kế bởi | Micro-Soft |
---|---|
Phát triển bởi | Bill Gates, Paul Allen, Monte Davidoff[1][2] |
Phát hành lần đầu | 2.0 (4K and 8K editions) 1 tháng 7 năm 1975[3][4][5][6] |
Phiên bản ổn định | 5.0
/ 14 tháng 7 năm 1978 |
Nền tảng | Altair 8800 |
Altair BASIC là một trình thông dịch (đã ngừng phát triển) cho ngôn ngữ lập trình BASIC chạy trên MITS Altair 8800 và các máy tính S-100 bus tiếp theo. Đó là sản phẩm đầu tiên của Microsoft (lúc đó tên là Micro-Soft), được MITS phân phối theo hợp đồng. Altair BASIC là sự khởi đầu của dòng sản phẩm Microsoft BASIC.
Bill Gates nhớ lại rằng, khi ông và Paul Allen đọc về Altair trong số ra tháng 1 năm 1975 của tạp chí Popular Electronics, họ hiểu rằng giá máy tính sẽ sớm giảm xuống đến mức bán phần mềm cho máy tính sẽ là một hình thức kinh doanh có lợi nhuận.[7] Gates tin rằng, bằng cách cung cấp một trình thông dịch BASIC cho các máy tính mới, họ có thể khiến các dòng máy này trở nên hấp dẫn hơn đối với những người có sở thích. Họ liên lạc với người sáng lập MITS Ed Roberts, nói với anh rằng họ đang phát triển một trình thông dịch, và hỏi liệu Ed có muốn xem một chương trình mẫu hay không. Điều này bắt chước thực hành ngành công nghiệp kỹ thuật với các thử nghiệm sản phẩm, chỉ thông báo về một sản phẩm không tồn tại để đánh giá sự quan tâm. Roberts đồng ý gặp họ trong một vài tuần sau đó, vào tháng 3 năm 1975.
Lúc đó Gates và Allen không có trình thông dịch nào, hay thậm chí cả một hệ thống Altair để phát triển và thử nghiệm hệ thống. Tuy nhiên, Allen đã viết một giả lập Intel 8008 cho liên doanh trước đây của họ Traf-O-Data chạy trên một máy tính chia sẻ thời gian PDP-10. Ông đã phỏng theo chương trình mô phỏng này dựa trên hướng dẫn lập trình Altair, và họ đã phát triển và thử nghiệm viết trình thông dịch trên PDP-10 của Harvard. Các nhân viên của Harvard không hài lòng khi họ phát hiện ra điều này, nhưng không có chính sách bằng văn bản nào đề cập đến việc sử dụng máy tính.[8] Gates và Allen đã mua thời gian sử dụng máy tính từ một dịch vụ chia sẻ thời gian ở Boston để hoàn tất việc gỡ lỗi chương trình BASIC của họ. Họ đã thuê sinh viên Harvard David Davidoff để viết các thủ tục số học dấu phẩy động cho trình thông dịch, một tính năng không có sẵn trong nhiều phần mềm cạnh tranh.
Trình thông dịch đã hoàn thành, bao gồm hệ thống I/O và trình soạn thảo theo dòng của riêng nó, chỉ vừa với bốn kilobytes bộ nhớ, để lại nhiều khoảng trống cho chương trình được diễn giải. Để chuẩn bị cho bản demo, họ đã lưu trữ trình thông dịch đã hoàn thành trên một băng đục lỗ mà Altair có thể đọc, và Paul Allen bay tới Albuquerque.
Khi máy bay sắp tới nơi, Allen nhận ra rằng họ đã quên viết một chương trình bootstrap để đọc băng đục lỗ vào bộ nhớ. Viết bằng ngôn ngữ máy 8080, Allen hoàn thành chương trình trước khi máy bay hạ cánh. Chỉ sau khi họ nạp chương trình vào Altair và thấy một dấu nhắc hỏi về kích thước bộ nhớ của hệ thống thì Gates và Allen mới biết rằng trình thông dịch của họ đã làm việc trên phần cứng Altair. Sau đó, họ đặt cược xem ai có thể viết chương trình bootstrap ngắn nhất, và Gates đã thắng.[9][10]
Roberts đồng ý phân phối trình thông dịch trên. Ông cũng thuê Gates và Allen để duy trì và cải thiện nó, khiến Gates phải nghỉ học tại Harvard. Họ đã sản xuất một số phiên bản: bản gốc BASIC 4K và sau đó là BASIC 8K, BASIC mở rộng, ROM BASIC mở rộng và Disk BASIC.
Phiên bản nhỏ nhất, 4K BASIC, đã có thể chạy trong một máy có 4k RAM, chỉ còn khoảng 790 byte miễn phí cho mã chương trình. Để làm cho ngôn ngữ phù hợp với không gian nhỏ như vậy, phiên bản 4K thiếu xử lý chuỗi và loại bỏ một số hàm toán học. Chúng được thêm trở lại vào BASIC 8K, trong đó có thư viện chuỗi, một tập hợp các hàm toán học lớn hơn bao gồm RND cho các số ngẫu nhiên, toán tử boolean, và PEEK và POKE. Phiên bản 8K là cơ sở cho hầu hết các phiên bản BASIC trong thời đại máy tính gia đình. BASIC mở rộng đã thêm vào lệnh PRINT USING và lệnh đĩa cơ bản, trong khi Disk BASIC mở rộng thêm các lệnh xử lý đĩa để cho phép các lệnh I/O thô.[11][12]
Vào tháng 10 năm 1975, 4K BASIC được bán với giá 150 đô la, BASIC 8K với giá 200 đô la và BASIC mở rộng với giá 350 đô la. Giá đã được giảm xuống còn 60 đô la, 75 đô la và 150 đô la tương ứng cho những người đã mua "bộ nhớ 8K của Altair và bảng điều khiển Altair I/O." Các phiên bản ngôn ngữ có sẵn trên băng giấy hoặc băng cassette.[13]
Như họ đã mong đợi, Altair rất phổ biến với những người có sở thích như Câu lạc bộ Máy tính Homebrew. Altair BASIC, với tư cách là trình thông dịch BASIC ưa thích của MITS, cũng rất phổ biến. Tuy nhiên, những người có sở thích đã sử dụng phương pháp "chia sẻ tương tự" với phần mềm và không nghĩ gì về việc sao chép chương trình thông dịch BASIC cho những người có sở thích khác. Thành viên Homebrew Dan Sokol đặc biệt nhiệt tình; sau khi bằng cách nào đó có được một băng giấy của chương trình thông dịch trên, ông đã tạo ra 25 bản và phân phối chúng tại cuộc họp Homebrew tiếp theo, thúc giục người nhận tạo thêm bản sao. Gates đã trả lời năm 1976 với một bức thư ngỏ với ngôn ngữ mạnh mẽ với cáo buộc những người sao chép phần mềm của ông là hành vi trộm cắp và tuyên bố rằng ông không thể tiếp tục phát triển phần mềm máy tính mà mọi người không trả tiền. Nhiều người có sở thích dùng BASIC phản ứng chống lại bức thư trên.
Theo các điều khoản của thỏa thuận mua, MITS sẽ nhận được quyền đối với trình thông dịch sau khi đã trả một số tiền nhất định trong tiền bản quyền. Tuy nhiên, Microsoft đã phát triển phiên bản của trình thông dịch cho các hệ thống khác như Motorola 6800. Khi họ quyết định rời bỏ MITS, một tranh chấp phát sinh về việc liệu toàn bộ số tiền đã được thanh toán chưa và liệu thỏa thuận đó có áp dụng cho các phiên bản khác không. Microsoft và MITS đã tranh chấp với một trọng tài, và thật bất ngờ của Roberts, đã quyết định ủng hộ Microsoft dựa trên việc MITS thất bại trong việc tiếp thị phần mềm với "nỗ lực tốt nhất" của họ.[14] Phiên dịch BASIC vẫn là cốt lõi của hoạt động kinh doanh của Microsoft cho đến đầu những năm 1980, khi công ty chuyển sang bán MS-DOS.
MITS/Pertec 'materially breached its best efforts obligation...'