2024. április 25., csütörtök

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

Negyven éves az Altair BASIC - a Microsoft első terméke

1975 tavaszán, pár hónappal az Altair 8800 számítógép megjelenése után, a Microsoft piacra dobta első szoftverét, egy BASIC értelmezőt.

[ ÚJ TESZT ]

Evolúció, azaz az Altair BASIC öröksége

Az Altair BASIC megalapozta a Microsoft szoftverfejlesztéséinek egyik irányát. Bő 10 éven át, a '80-as évek közepéig a cég egyik fő termékét a különböző BASIC értelmezők adták.

BASIC 4K version 3.2
Eredeti verzió, 4kB RAM elég a futtatásához

BASIC 4K version 4.0
Az eredeti verzió hibajavított változata: nem fagy le a memóriatesztnél 64kB RAM esetén, és a kisbetűvel írt parancsokat is elfogadja.

BASIC 8K version 4.0
Duplájára nőtt a BASIC: 8kB RAM kell a futtatásához. Jelentősen kibővített funkciókkal rendelkezik az eredeti változathoz képes: megjelenik a sztring típus, és a sztringkezelő függvények. Ez az első igazán használható BASIC verzió.

COMMODORE BASIC
1976-ban, a MOS 6502 debütálásakor a Microsoft fogta a BASIC 8K-s verzióját, és átírta azt az új processzorra is. Az Altair BASIC-hez hasonlóan ezt is PDP-10-en fejlesztették. A 6502-es BASIC először a KIM-1, majd az OSI Model 500 számítógépeken jelent meg.
Egy évvel később a Commodore licencszerződést kötött a Microsoft-tal, és a Commodore PET-ben már "COMMODORE BASIC" néven jelent meg az MS terméke. A legszembetűnőbb változás az volt, hogy az "OK" feliratot lecserélték "READY"-re. Talán így akarták a Commodore-nál eltitkolni a program eredetét? Minden esetre ez nem sikerült, mert Bill Gates egy easter egg-et rejtett el a PET BASIC-ben: a WAIT6502,1 parancsra megjelent a MICROSOFT! felirat a képernyő bal felső sarkában.


Kép forrása: http://www.pagetable.com/?p=43

A Commodore későbbi számítógépeiben (C64, plus/4, C128) is a Microsoft BASIC fut. A komplett 6502-es BASIC forráskódja itt található.

Extended BASIC
Térjünk vissza az Altair-hoz! Az Extended BASIC-ben két új típus is megjelenik: kétbájtos előjeles egész, és egy dupla pontosságú (8 bájtos) lebegőpontos számformátum. A kétbetűs hibaüzenetek helyett egész mondatokban közli a program a gondjait. A program futtatásához már 12kB RAM-ra van szükség.

MBASIC
A BASIC CP/M-en futtatható változata. Fordító is készült hozzá BASCOM néven, a Microsoft 9$ jogdíjat kért minden programért, amit ezzel fordítottak le. Intel 8080-as vonalon ez a legfejlettebb BASIC változat.


MBASIC CP/M-en

MBASIC 80x86 változat
Az MBASIC MS-DOS-ra átírt változata. Ugyan az Intel 8086 és Intel 8080 nem voltak kompatibilisek egymással, de az assembly-jük nagyon hasonló volt, könnyen át lehetett írni a forráskódot (automatizált eljárások is voltak rá), és az MS-DOS függvényhívások is hasonlóak voltak a CP/M-hez.

IBM-BASIC
Az 1981-ben megjelent IBM PC 5150 BASIC-jét is a Microsoft szállította. A program ROM-ba volt égetve, emiatt a gép lemezmeghajtó és operációs rendszer nélkül is működött. Ekkor – a C64-hez, vagy a Spectrum-hoz hasonlóan – a BASIC értelmező indult el. A programokat kazettáról lehetett betölteni. A programnak természetesen létezett lemezes változata is (BASICA.COM), de mivel ez is a ROM-ban található rutinokat hívta, BASIC-ROM-mal nem rendelkező PC-klónokon nem indult el. A BASIC-ROM-ot az INT 0x18 utasítással lehet indítani, érdekes hibaüzenetet kapunk, ha ezt egy modern gépen próbáljuk meg.

GW-BASIC
Az IBM-BASIC-nek a ROM nélkül is futtatható változata MS-DOS-on. Az egyik legnépszerűbb program a BASIC képességit demonstrálandó DONKEY nevű játék volt, ezt állítólag maga Bill Gates írta. A GW-BASIC az utolsó BASIC változat, ahol még felfedezhetők az eredeti, Altair-ra írt kódrészletek, az ezt követő Quick Basic már nulláról megírt, új program volt.


A legendás DONKEY nevű játék.

Végezetül hadd mutassak be egy rövid kódrészletet! Bal oldalt az eredeti 8080 kód (Z80 szintaktikával – számomra az könnyebben olvasható) az Altair BASIC-ből, mellette a 8086 kód a GW-BASIC-ből. Jól látható, hogy a mov bh,dh / mov bl,dl helyett egy mov bx,dx utasítás is lehetne, ez valószínűleg az automatizált 8080 -> 8086 konverzió miatt maradt így.

ld hl,6552 mov bx,6552
rst CompareHLDE cmp bx,dx
jp c,SyntaxError jc SyntaxError
ld h,d mov bh,dh
ld l,e mov bl,dl
add hl,de add bx,dx
add hl,hl add bx,bx
add hl,de add bx,dx
add hl,hl add bx,bx

Maga a kód egyébként nem csinál semmi különöset, C-ben így lehetne leírni:

if (dx > 6552) goto SyntaxError;
bx = 10 * dx;

Zárszó
Tudom, hogy egyes körökben "menő" dolog szidni Bill Gates-t, remélem, a cikk elolvasása után azért sokan elismerik majd, hogy nem csak jókor volt jó helyen, de tudott ő azért programozni is :-)

Azóta történt

  • CHIP-8 – játék-engine 1977-ből

    Az RCA COSMAC VIP számítógép és a CHIP-8 nyelv bemutatója, amely még csaknem 40 év múltán is él.

  • Tévedés, hogy az M2M modern hóbort

    Sokan nem értik, miért van szükség okoseszközökre, mi ez a felhajtás az IoT körül. Az igazság az, hogy a történet korábban kezdődött, mint ahogy legtöbb olvasónk született.

  • Home computerek - első rész

    40 évvel ezelőtt jelentek meg az első nagy szériában gyártott homecomputerek, amelyek egy lavinát indítottak el.

Előzmények

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.