1981 augusztusában az IBM bemutatta az IBM Personal Computer (Model 5150) készüléket, amely alapjaiban változtatta meg a mikroszámítógépek piacát és hozta el a személyi számítógépek professzionális korszakát. A BYTE magazin 1982. januári részletes elemzése alapján az eszköz nem csupán egy újabb számítógép lett a piacon, hanem egy olyan iparági szabvány, amely a hardveres és szoftveres megoldásaival évtizedekre meghatározta a technológiai fejlődés irányát. Az IBM szakított a korábbi zárt fejlesztési politikájával, és egy nyitott architektúrájú, modulárisan bővíthető rendszert hozott létre, amely egyszerre célozta meg az otthoni felhasználókat és az üzleti szférát.
A gép sikerének titka a gondosan megválasztott komponensekben, a fejlett billentyűzet-kialakításban, valamint a Microsoft által biztosított operációs rendszer és BASIC interpreter szoros integrációjában rejlett. Ez a mélyreható elemzés az eredeti technikai dokumentációk és korabeli tesztek alapján mutatja be az IBM PC belső felépítését, grafikus és szöveges képességeit, a beépített programozási nyelvek működését, valamint a korabeli konkurens modellekkel szembeni piaci pozícióját.
An Intel 8088 processzor és a belső architektúra
Az IBM Personal Computer szívét az Intel 8088-as mikroprocesszor adja, amely 4,77 MHz-es órajelen fut. Bár a processzor belsőleg 16 bites architektúrával és regiszterkészlettel rendelkezik – megegyezve a teljes értékű Intel 8086-os modellel –, a külső adatbusza csupán 8 bites. Az IBM mérnökei azért döntöttek ezen hibrid megoldás mellett, mert így jelentősen csökkenteni tudták az alaplap és a rendszermemória gyártási költségeit, miközben megtartották a 16 bites utasításkészlet minden szoftveres előnyét. A processzor ciklusideje a főtároló esetében 410 nanoszekundum, míg a hozzáférési idő 250 nanoszekundum.
Az alaplapon, közvetlenül az Intel 8088-as processzor mellett található egy üres integrált áramköri foglalat is, amelyet a dokumentáció kisegítő processzor foglalatként jelöl meg. Ez a foglalat az Intel 8087-es matematikai koprocesszor fogadására szolgál, amely a jövőben a lebegőpontos matematikai műveletek hardveres gyorsításáért felel majd, jelentősen növelve a mérnöki és tudományos alkalmazások futtatási sebességét.
A rendszermemória felépítése rendkívül rugalmas. Az alaplapra gyárilag 40 KB méretű, csak olvasható memória (ROM) van integrálva, amely a Microsoft által fejlesztett kibővített BASIC interpretert tartalmazza. A felhasználói írható-olvasható memória (RAM) alapesetben 16 KB-ról indul, de a hardveres kialakításnak köszönhetően ez az alaplapon és a bővítőhelyeken keresztül egészen 256 KB-ig növelhető. A memória megbízhatóságát paritásbit-ellenőrzés biztosítja: minden egyes byte-hoz egy kilencedik bit is tartozik, amely folyamatosan ellenőrzi az adatok épségét. Ha a rendszer paritáshibát észlel, azonnal leállítja az aktuális program futását, megakadályozva a hibás adatok feldolgozását vagy merevlemezre írását.
Bővítőhelyek és a rendszerszintű kommunikáció
A gép belső felépítésének legfontosabb eleme az öt darab 62 tűs bővítőhely (expansion slot), amelyek az alaplapi I/O csatornát teszik hozzáférhetővé a külső kártyák számára. Ez a buszrendszer támogatja a közvetlen memória-hozzáférést (DMA), amelyből négy független csatorna áll rendelkezésre. Az egyik ilyen csatornát kifejezetten a dinamikus RAM memóriák automatikus frissítésére (refresh) használja a rendszer, míg a többi a nagy sebességű adatátvitelt biztosítja a perifériák és a memória között. A rendszer emellett nyolcszintű megszakítás-vezérléssel (interrupt) rendelkezik, amelyből hat szintet a felhasználói kártyák is szabadon igénybe vehetnek.
A bővítőhelyek jelei magukban foglalják a teljes címbuszt (A0-A19), az adatbuszt (D0-D7), a rendszerórajelet (CLK), a memóriavezérlő vonalakat (MEMR, MEMW), valamint a különböző feszültségszinteket (+5V, -5V, +12V, -12V) és a földelést (GND). Ez a nyitott felépítés teszi lehetővé, hogy külső gyártók memóriabővítőket, játékvezérlő kártyákat, soros kommunikációs portokat vagy meghajtó-illesztőket fejlesszenek a számítógéphez.
A billentyűzet és a rendszerindítási folyamat
Az IBM PC billentyűzete a korabeli mikroszámítógépes kínálat egyik legfejlettebb darabja. Összesen 83 billentyűből áll, amely egy különálló, nehéz, ergonomikusan formázott egységben kapott helyet, és egy hatlábú, rugalmas spirálkábellel csatlakozik a központi egység hátuljához. A billentyűk kialakítása homorú (szoborszerű), amely pontosabb gépelést tesz lehetővé, és a mechanika határozott taktilis, valamint hallható visszajelzést ad minden egyes leütéskor. A billentyűzet dőlésszöge az alján található két műanyag láb segítségével állítható.
A kiosztás jobb oldalán egy dedikált numerikus billentyűzet található, amely kurzorvezérlőként is funkcionál, míg a bal oldalon tiaz darab programozható funkcióbillentyű helyezkedik el, amelyek jelentése az éppen futó szoftvertől függően dinamikusan változhat. A rendszer rendelkezik egy 10 karakteres beviteli pufferrel is, ami megakadályozza a karakterek elvesztését, ha a felhasználó gyorsabban gépel, mint ahogy a számítógép feldolgozni képes. Különleges billentyűkombinációk is helyet kaptak: a Ctrl, Alt és Del gombok egyidejű lenyomásával indítható el a rendszer meleg újraindítása, míg a Ctrl és a Num Lock kombináció felfüggeszti az éppen futó BASIC program végrehajtását.
A számítógép bekapcsolásakor egy automatikus önteszt (Power-On Self-Test – POST) fut le, amely összesen tizennégy különböző hardveres ellenőrzést végez el. A folyamat teszteli az Intel 8088-as processzort, a beeen épített ROM-ot, a teljes RAM memóriát (öt különböző írási-olvasási teszttel), a videokártyát, a billentyűzetet, a kazettás egységet és a flopimeghajtókat. A teszt időtartama a beépített memória méretétől függ: egy 64 KB RAM-mal szerelt gép esetében az ellenőrzés körülbelül 18 másodpercet vesz igénybe, a teljes rendszer felállása pedig 25 másodpercet igényel. Ha a rendszert a Ctrl-Alt-Del kombinációval indítják újra, a memóriatesztek egy része kimarad, így a folyamat lényegesen gyorsabb.
Megjelenítési opciók: szöveges és grafikus kártyák
A felhasználóknak már a vásárláskor választaniuk kell a két teljesen eltérő megjelenítési technológia között, mivel a gép alapkiépítésben nem tartalmaz video-adaptert:
- Monochrome Display and Printer Adapter: Ezt a kártyát kifejezetten irodai, üzleti környezetre tervezték. Kiváló minőségű, tűéles, 25 soros és 80 oszlopos szöveges megjelenítést biztosít a zöld foszforos IBM monitoron. A karakterek egy 9-szer 14 pontos mátrixban jelennek meg, maguk a betűk pedig 7-szer 9 pontosak. Ez a kártya egyáltalán nem támogatja a grafikus megjelenítést vagy a színeket, viszont tartalmaz egy integrált párhuzamos nyomtatóportot az IBM mátrixnyomtató számára.
- Color/Graphics Monitor Adapter: Ez a kártya 16 KB saját memóriával rendelkezik, és három különböző felbontási módot kínál. Kompozit videojelet vagy RGB bemenetet biztosít monitorok, illetve modulátoron keresztül televíziók számára.
A Color/Graphics adapter részletes üzemmódjai a következők:
- Szöveges módok: Támogatja a 25 soros, 40 oszlopos (televíziókhoz optimális) vagy a 25 soros, 80 oszlopos (RGB monitorokhoz szánt) megjelenítést. Ebben a módban minden karakter 16 különböző előtérszínnel és 8 különböző háttérszínnel rendelkezhet, valamint beállítható a karakterenkénti villogás (blink) is. A teljes 256 karakteres készlet elérhető, amely a normál betűkön és számokon kívül matematikai szimbólumokat, görög betűket és speciális táblázatrajzoló karaktereket is tartalmaz.
- Közepes felbontású grafikus mód (Medium-Resolution): 320-szor 200 képpontos felbontást nyújt. Ebben a módban egyszerre négy szín jelenhet meg a képernyőn. A Color 0 (a háttérszín) a szabványos 16 szín bármelyike lehet, míg a maradék három színt két előre rögzített palettából lehet kiválasztani. Az első paletta a cián, magenta és fehér színeket, míg a második a zöld, piros és barna színeket tartalmazza.
- Nagy felbontású grafikus mód (High-Resolution): 640-szer 200 képpontos felbontást biztosít. A nagy felbontás és a korlátozott kártyamemória miatt ez a mód kizárólag kétszínű (fekete-fehér) megjelenítésre képes.
A beépített IBM BASIC szintek és működési környezetek
Az IBM Personal Computer szoftveres ellátottságának alappillére az IBM BASIC nyelv, amely három különböző konfigurációs szinten érhető el a rendszermemória és a hardverkiépítés függvényében:
1. Cassette BASIC: Ez a legalsó szint, amely minden IBM PC-ben gyárilag megtalálható, mivel a 40 KB-os alaplapi ROM-ba van égetve. Lehetővé teszi pontok rajzolását, vonalak húzását közepes és nagy felbontásban, hangok kiadását a beépített belső hangszórón keresztül, valamint kezeli a fényceruzát (light pen) és a játékvezérlőket (joystick). Az adatok mentésére és betöltésére magnókazettás interfészt használ.
2. Disk BASIC: Futtatásához legalább 32 KB RAM memória és egy flopimeghajtó szükséges. További 12 KB-ot foglal le a felhasználói memóriából. Tartalmazza a Cassette BASIC összes funkcióját, és kiegészíti azt magas szintű lemezes írási és olvasási parancsokkal, hozzáférést biztosít a valós idejű órához (dátum és idő), valamint támogatja a téglalap alapú grafikus területek mentését és visszatöltését, illetve az RS-232C soros porton keresztüli kommunikációt.
3. Advanced BASIC (BASICA): Futtatásához legalább 48 KB RAM és egy lemezes meghajtó szükséges, a memória-overheadje körülbelül 29 KB. Ez a legfejlettebb verzió, amely támogatja az eseményvezérelt programozást (event trapping), a fejlett makrografikai parancsokat, valamint a többszólamú zenelejátszást.
Fejlett grafikai és zenei makronyelvek a BASIC-ben
Az IBM BASIC egyik leginnovatívabb tulajdonsága a karakterláncokon (string) alapuló makronyelvek bevezetése a grafika és a hangkezelés területén. Ahelyett, hogy bonyolult koordináta-számításokat és egyedi pontrajzoló ciklusokat kellene programozni, a DRAW és PLAY parancsok komplex utasítássorozatokat képesek végrehajtani egyszerű szöveges adatok feldolgozásával.
A DRAW parancs egy önálló grafikai mikronyelveként működik, amelynek gyökerei az Apple II formatáblázataihoz nyúlnak vissza, de szintaxisa jóval fejlettebb. Egy hosszú, vékony téglalap kirajzolásához például elegendő az alábbi karakterláncot definiálni és átadni a parancsnak:
A$ = "R40;U10;L40;D10"
DRAW A$
Ez az utasítás a grafikus kurzor aktuális pozíciójából kiindulva 40 egységet rajzol jobbra (Right), 10 egységet fel (Up), 40 egységet balra (Left), majd 10 egységet le (Down). A rendszer támogatja a szubrutinszerű működést is: egy karakterláncból meghívható egy másik karakterlánc, ami lehetővé teszi az alakzatok transzformációját. Az A1;XA$; parancs például 90 fokkal elforgatja az óramutató járásával ellentétes irányba, majd kirajzolja az A$ stringben tárolt dobozt. A parancsok argumentumaként változókat is megadhatunk (például DRAW "A=I;XA$;"), ahol az elforgatás mértéke az I változó értékének 90-szerese lesz.
A PLAY utasítás hasonló elven működik, de a beépített belső hangszóró megszólaltatásáért felelős. Egy olyan karakterláncot képes értelmezni, amely zenei hangokat, oktávváltásokat, szüneteket és tempómódosításokat tartalmaz. Például a PLAY "C1;D#2;G-4" parancs egy egész C hangot, egy fél D-sharp hangot és egy negyed G-flat hangot plays le egymás után. A zenei alrendszer egyik legnagyobb előnye, hogy akár egy 32 hangból álló puffert is képes kezelni a háttérben (background). Ez azt jelenti, hogy a BASIC program futása nem akad el a zene lejátszása alatt; a dallam függetlenül szól, miközben a számítógép végrehajtja a következő programsorokat.
Eseményvezérelt megszakítások (Event Trapping) és kommunikáció
Az IBM BASIC egy másik, mikroszámítógépeknél rendkívül szokatlan funkciója a hardveres események szoftveres lekezelése (event trapping) anélkül, hogy a felhasználónak gépi kódú megszakításrutinokat kellene írnia. A rendszer képes figyelni a kommunikációs portokat (COM), a funkcióbillentyűk lenyomását (KEY), a fényceruza használatát (PEN), valamint a játékvezérlők gombjait (STRIG).
A működési elv az ON event GOSUB line struktúrára épül. Ha például kiadjuk a PEN ON parancsot, a rendszer aktiválja a fényceruza figyelését. Amikor a felhasználó a fényceruzát a képernyőhöz érinti, a BASIC interpreter automatikusan megszakítja az éppen futó főprogramot, és elágazik a megadott sorszámon található szubrutinra. A PEN OFF parancs kikapcsolja ezt a figyelést, míg a PEN STOP egy köztes állapotot hoz létre: az eseményt rögzíti a rendszer, de a szubrutint csak akkor hajtja végre, ha a programban legközelebb kiadják a PEN ON utasítást. Ugyanez a mechanizmus alkalmazható a funkcióbillentyűkre (KEY(n) ON/OFF/STOP) is.
Ha az IBM Asynchronous Communications Adapter kártya be van szerelve a gépbe, az IBM BASIC képes a távoli, soros porton csatlakozó eszközöket pontosan úgy kezelni, mintha azok szabványos lemezes fájlok lennének. A programozók a jól ismert GET és PUT parancsokat, valamint az olyan beviteli és kiviteli utasításokat használhatják, mint az INPUT #f, LINE INPUT #f, INPUT$, PRINT #f, PRINT #f USING és WRITE #f, ahol eszköznévként a COM1: vagy COM2: portokat kell megadni.
A beépített programszerkesztő előnyei
Az IBM BASIC magában foglal egy teljes képernyős szerkesztőt (BASIC Program Editor), amely radikálisan eltér a korábbi mikroszámítógépeknél megszokott soralapú megoldásoktól. Ha a felhasználó módosítani szeretne egy programsort, a kurzormozgató nyilakkal egyszerűen a kívánt sorra navigálhat a képernyőn, elvégezheti a javításokat az Ins (beillesztés) és Del (törlés) gombok használatával, majd az Enter lenyomásával a javított sor azonnal felülírja a régi kódot a memóriában, függetlenül attól, hogy a kurzor éppen hol áll a soron belül.
A kódolás gyorsítására szolgál az Alt kulcs shorthand (gyorsíró) funkciója is. Az Alt gomb és az ábécé bizonyos betűinek egyidejű lenyomásával teljes BASIC parancsszavak írathatók ki a képernyőre egyetlen mozdulattal. Például az Alt + C kombináció azonnal beírja a COLOR szót, míg az Alt + R a RUN parancsot jeleníti meg, ami jelentősen csökkenti a gépelési időt és a szintaktikai hibák esélyét.
Az IBM DOS felépítése és parancskészlete
A Microsoft által a Seattle Computer Products segítségével fejlesztett IBM lemezes operációs rendszer (IBM DOS) felületes hasonlóságot mutat a korszak elterjedt CP/M rendszerével – például a parancssori prompt itt is az A> formát ölti –, azonban belsőleg egy sokkal fejlettebb, a Microsoft 16 bites Unix-szerű rendszeréhez, a Xenix-hez hasonló alapokra épül. A parancsok megfogalmazása sokkal egyértelműbb és logikusabb, mint a CP/M rejtélyes utasításai.
Jó példa erre a fájlok másolásának folyamata. A CP/M rendszerben használt kriptikus:
PIP B:NEWFILE1=A:MYFILE1
parancs helyett az IBM DOS a végtelenül egyszerű és egyértelmű:
COPY A:MYFILE1 B:NEWFILE1
struktúrát használja, amely a MYFILE1 fájlt az A meghajtóról a B meghajtóra másolja NEWFILE1 néven. Az operációs rendszer alapvető parancskészlete magában foglalja az ERASE parancsot a fájlok törlésére, a FORMAT parancsot a hajlékonylemezek előkészítésére, a RENAME parancsot az átnevezésre, a DIR parancsot a lemez tartalmának listázására, valamint a DATE és TIME parancsokat.
Piaci összehasonlítás és árazási struktúra
Az IBM Personal Computer piaci pozíciójának megértéséhez elengedhetetlen a korabeli főbb versenytársak, az Apple II Plus és a Radio Shack TRS-80 Model III árainak és felszereltségének vizsgálata. Az IBM egy kifejezetten moduláris árpolitikát alkalmazott (unbundling technika): a komponenseket külön-külön árazták be, így a vásárlónak a kábelekért, a monitorért és a meghajtókért is külön kellett fizetnie.
| Rendszerkonfiguráció típusa | Ár (USD) |
|---|---|
| IBM PC Alapmodell: 48 KB RAM, kazettás interfész, Color/Graphics kártya | 1745 |
| IBM PC Standard üzleti modell: 48 KB RAM, 1 db flopimeghajtó, video adapter, DOS szoftver | 2575 |
| IBM PC Bővített modell: 64 KB RAM, 1 db flopimeghajtó, video adapter, DOS, játékvezérlő kártya | 2720 |
| IBM PC Kétmeghajtós modell: 64 KB RAM, 2 db flopimeghajtó, video adapter, DOS | 3290 |
| IBM PC Csúcsmodell: 128 KB RAM, 2 db flopimeghajtó, kártyák, DOS | 3830 |
| Apple II Plus: 48 KB RAM, 1 db flopimeghajtó, DOS operációs rendszer | 2175 |
| Apple II Plus Professzionális: 48 KB RAM, 1 db flopimeghajtó, DOS, Videx Videoterm (80 oszlopos kártya), Enhancer II | 2788 |
| Radio Shack TRS-80 Model III: 48 KB RAM, 1 db flopimeghajtó, DOS operációs rendszer | 1995 |
Bár az IBM PC alapvető rendszeregysége a billentyűzettel önmagában 1265 dollárba került, egy valóban használható, lemezes üzleti konfiguráció ára meghaladta a 2500 dollárt. Ezzel az árszinttel a gép drágább volt, mint a Radio Shack vagy az alapkiépítésű Apple II Plus, azonban a professzionális kiegészítőkkel felszerelt Apple II Plus rendszerhez képest az IBM már versenyképes alternatívát biztosított, lényegesen fejlettebb hardveres alapokon. A hajlékonylemezes belső meghajtók (meghajtónként 570 dollár, a vezérlőkártya 220 dollár) single-sided kivitelűek, 40 sávot kezelnek, sávonként 8 darab 512 byte-os szektorral, ami meghajtónként kb. 160 KB (pontosan 163 840 byte) szabad tárolókapacitást ad.
Rendszerszintű IBM BASIC parancs- és utasításjegyzék
Az alábbi hivatalos táblázatok átfogóan tartalmazzák az IBM Personal Computer BASIC nyelvének teljes parancs-, utasítás- és függvénykészletét az eredeti dokumentációk alapján, részletes funkcionális leírásokkal kiegészítve.
| Parancs | Leírás és funkció a rendszerben |
|---|---|
| AUTO | Automatikusan generálja a sorszámokat a programsorok beírásakor. |
| BLOAD | Gépi kódú (bináris) program vagy memóriakép közvetlen betöltése a memóriába. |
| BSAVE | Egy meghatározott memóriaterület vagy gépi kódú program közvetlen lemezre mentése. |
| CLEAR | Törli az összes programváltozó értékét és felszabadítja a munkaterületet. |
| CONT | Egy megszakított vagy leállított BASIC program futtatásának folytatása. |
| DELETE | Meghatározott sorszámtartományba eső programsorok törlése a memóriából. |
| EDIT | Egy adott programsor megnyitása szerkesztésre a beépített teljes képernyős editorban. |
| FILES | A lemezen található összes vagy a szűrésnek megfelelő fájlok listázása. |
| KILL | Egy adott fájl végleges törlése a hajlékonylemezről. |
| LIST | A memóriában tárolt BASIC programsorok kilistázása a képernyőre. |
| LLIST | A memóriában található programsorok közvetlen kinyomtatása a nyomtatóra. |
| LOAD | Egy BASIC programfájl beolvasása a lemezről a memóriába. |
| MERGE | Egy lemezen tárolt programsorok hozzáfűzése és összefésülése a memóriában lévő programmal. |
| NAME | Egy lemezen található fájl átnevezése. |
| NEW | A memóriában lévő aktuális program és változók teljes törlése. |
| RENUM | A programsorok automatikus újra-sorszámozása. |
| RESET | Minden nyitott lemezes fájl lezárása. |
| RUN | A memóriában található program végrehajtásának elindítása. |
| SAVE | A memóriában lévő program elmentése a lemezre. |
| SYSTEM | Kilépés a BASIC környezetből és visszatérés az IBM DOS operációs rendszerbe. |
| TRON / TROFF | A program futásának nyomon követése (trace) be- és kikapcsolása. |
| Utasítás | Funkció és technikai leírás |
|---|---|
| BEEP | Megszólaltatja a belső hangszórót egy rövid figyelmeztető hangon. |
| CALL | Egy memóriában tárolt gépi kódú szubrutin meghívása. |
| CHAIN | Egy új program betöltése és futtatása a változók megtartásával. |
| CIRCLE | Kör, ellipszis, ív vagy tortadiagram-szelet rajzolása (Advanced BASIC). |
| CLOSE | Lezárja a megadott sorszámú adatfájlt vagy eszközt. |
| CLS | Letörli az aktuális videóképernyőt. |
| COLOR | Beállítja az előtér, a háttér és a keret színeit. |
| COM…ON/OFF/STOP | Engedélyezi vagy letiltja a kommunikációs port megszakításait. |
| COMMON | Változók átadása egy láncolt (CHAIN) programnak. |
| DATA | Konstans adatok tárolása a programkódon belül. |
| DATE$ | Beállítja vagy lekérdezi az aktuális dátumot. |
| DEF FN… | Felhasználó által definiált egyedi függvény létrehozása. |
| DEF SEG | Meghatározza az aktuális memóriaszegmenst a PEEK/POKE műveletekhez. |
| DEF USR | Meghatározza a kezdőcímet az USR függvénnyel hívott gépi rutinokhoz. |
| DIM | Dimenzionálja a tömböket, lefoglalva a memóriát. |
| DRAW | Egy grafikus objektum kirajzolása karakterlánc-makronyelv alapján. |
| END | Befejezi a program futását és lezárja a fájlokat. |
| ERASE | Felszabadítja a memóriából a használaton kívüli tömböket. |
| ERROR | Szimulál egy meghatározott hibakódot. |
| FIELD | Meghatározza a rekordmezők felosztását a tetszőleges elérésű fájlpufferben. |
| FOR…TO…STEP | Létrehoz egy fix lépésszámú számláló ciklust. |
| GET (disk I/O) | Beolvas egy rekordot egy tetszőleges elérésű fájlból. |
| GET (graphics) | Elmenti a képernyő egy téglalap alakú grafikus területét egy tömbbe. |
| GOSUB | Elágazás egy megadott sorszámon kezdődő szubrutinra. |
| GOTO | Feltétel nélküli ugrás a program egy másik sorszámára. |
| IF…THEN…ELSE | Feltételes elágazás megvalósítása. |
| INPUT | Adatbevitel kérése a billentyűzetről vagy adatfájlból. |
| KEY ON/OFF | Be- vagy kikapcsolja a funkcióbillentyűk kijelzését a 25. sorban. |
| KEY | Lehetővé teszi a tíz funkcióbillentyű egyedi újradefiniálását. |
| KEY…ON/OFF/STOP | Aktiválja vagy leállítja a funkcióbillentyűkhöz rendelt megszakításokat. |
| LET | Szabványos értékadó utasítás változókhoz (opcionális). |
| LINE | Egyenes vonal, téglalap vagy kitöltött doboz rajzolása a képernyőre. |
| LINE INPUT | Beolvas egy teljes karaktersort az első Enter jelig. |
| LOCATE | A kurzor pozicionálása a szöveges képernyőn és a láthatóság beállítása. |
| LPRINT / LPRINT USING | Adatok normál vagy formázott kinyomtatása a párhuzamos nyomtatóra. |
| LSET / RSET | Egy karaktersor balra (LSET) vagy jobbra (RSET) igazítása a fájlpufferen belül. |
| MID$ | Kicseréli egy karaktersor egy részét egy másik karaktersorra (utasításként). |
| MOTOR | Közvetlenül elindítja vagy leállítja a kazettás magnó motorját. |
| NEXT | Lezárja a FOR ciklust. |
| ON COM/KEY/PEN/STRIG…GOSUB | Meghatározza a hardveres megszakítás esetén végrehajtandó szubrutin helyét. |
| ON ERROR GOTO | Bekapcsolja a szoftveres hibakezelő rutint. |
| ON…GOSUB / ON…GOTO | Többirányú elágazás megvalósítása egy számított érték alapján. |
| OPEN | Megnyit egy lemezes fájlt vagy egy kommunikációs portot. |
| OPTION BASE | Beállítja a tömbök minimális indexértékét (0 vagy 1). |
| OUT | Kiküld egy byte-ot egy hardveres I/O port címére. |
| PAINT | Kifest egy zárt grafikus területet a képernyőn a határvonalig (Advanced BASIC). |
| PEN ON/OFF/STOP | Aktiválja, letiltja vagy felfüggeszti a fényceruza megszakításait. |
| POKE | Beír egy közvetlen byte értéket a kijelölt fizikai memóriacímre. |
| PRINT / PRINT USING | Karakterek normál vagy formázott megjelenítése a kijelzőn. |
| PRESET / PSET | Egyedi pont rajzolása a háttérszínnel (PRESET) vagy a megadott színben (PSET). |
| PUT (disk I/O) | Kiírja a puffer tartalmát egy tetszőleges elérésű lemezes fájl rekordjába. |
| PUT (graphics) | Egy elmentett grafikus tömbkép visszarajzolása a képernyőre logikai műveletekkel. |
| RANDOMIZE | Újraindítja a véletlenszám-generátort egy új kezdőértékkel. |
| READ | Beolvassa a DATA utasításokban tárolt következő adatot. |
| REM | Megjegyzés elhelyezése a programkódon belül. |
| RESTORE | Visszaállítja a DATA belső adatmutatóját a program egy megadott sorára. |
| RESUME / RETURN | Visszatérés egy hibakezelő rutinból (RESUME) vagy egy GOSUB szubrutin végéről (RETURN). |
| SCREEN | Beállítja a használni kívánt képernyő-üzemmódot. |
| SOUND | Egy frekvenciájú és időtartamú hang kiadása a belső hangszórón keresztül. |
| STOP | Felfüggeszti a program futását, parancssori ellenőrzést engedélyezve. |
| STRIG ON/OFF | Be- vagy kikapcsolja a joystick gombjainak mintavételezését. |
| STRIG…ON/OFF/STOP | Aktiválja vagy leállítja a joystick gombjaihoz tartozó megszakításokat. |
| SWAP | Megcseréli két azonos típusú programváltozó értékét. |
| TIME$ | Lekérdezi vagy beállítja a pontos belső rendszeridőt. |
| WAIT | Felfüggeszti a programot, amíg egy I/O porton a megadott bitminta meg nem jelenik. |
| WHILE / WEND | Egy feltételes ciklus indítása (WHILE) és lezárása (WEND). |
| WRITE | Adatok kiírása a képernyőre vagy fájlba vesszővel elválasztva. |
| Függvény | Visszatérési érték és funkció leírása |
|---|---|
| ABS | Egy numerikus kifejezés abszolút értéke. |
| ASC | Egy karaktersor első karakterének megfelelő ASCII számérték. |
| ATN | A megadott érték arkusz tangense radiánban. |
| CDBL / CSNG / CINT | Szám átkonvertálása dupla pontosságú (CDBL), egyszeres pontosságú (CSNG) lebegőpontos formátumba, vagy kerekítése a legközelebbi egészre (CINT). |
| CHR$ | Egy ASCII kódnak megfelelő karaktert ad vissza stringként. |
| COS / SIN / TAN | Egy radiánban megadott szög koszinusza (COS), szinusza (SIN) vagy tangense (TAN). |
| CSRLIN | Visszaadja a képernyőn lévő kurzor aktuális sorpozícióját (1-25). |
| CVD / CVI / CVS | Fájlból beolvasott karaktersorok visszaalakítása dupla pontosságú számmal (CVD), egésszé (CVI) vagy egyszeres pontosságú számmal (CVS). |
| EOF | Logikai igaz értéket ad vissza, ha elértük a vizsgált adatfájl végét. |
| ERL / ERR | A legutóbb bekövetkezett hiba sorának száma (ERL) vagy magának a hiba kódjának értéke (ERR). |
| EXP / LOG / SQR | Az exponenciális függvény értéke (EXP), természetes logaritmus (LOG) vagy négyzetgyök (SQR). |
| FIX / INT | Levágja egy szám tizedesjegyeit kerekítés nélkül (FIX), vagy a kifejezésnél kisebb vagy egyenlő legnagyobb egészet adja vissza (INT). |
| FRE | A szabad, felhasználható munkamemória aktuális mérete byte-ban. |
| HEX$ / OCT$ | Egy decimális szám átalakítása hexadecimális (HEX$) vagy oktális (OCT$) karaktersorrá. |
| INKEY$ | Beolvas egyetlen karaktert a billentyűzet pufferről várakozás nélkül. |
| INP | Beolvas egy 8 bites értéket a megadott hardveres I/O port címéről. |
| INPUT$ | Meghatázott számú karakter beolvasása egy fájlból vagy a billentyűzetről. |
| INSTR | Megkeresi egy karaktersor első előfordulási helyét egy másik karaktersoron belül. |
| LEFT$ / RIGHT$ / MID$ | Kivág egy megadott hosszúságú részletet egy karaktersor bal szélétől (LEFT$), jobb szélétől (RIGHT$) vagy egy belső pozíciótól kezdve (MID$). |
| LEN / LOF | Egy karaktersor hossza karakterekben (LEN), vagy a megnyitott fájl teljes fizikai mérete byte-ban (LOF). |
| LPOS / POS | Visszaadja a nyomtatófej aktuális pozícióját a pufferben (LPOS) vagy a szöveges kurzor oszloppozícióját (POS). |
| MKD$ / MKI$ / MKS$ | Numerikus értékek átalakítása speciális karaktersorrá a lemezes fájlba való kiírás előtt. |
| PEEK / POKE | Közvetlen byte beolvasása (PEEK) vagy beírása (POKE) a kijelölt fizikai memóriacímre. |
| PEN / POINT | Lekérdezi a fényceruza állapotát (PEN) vagy a grafikus képernyő megadott koordinátáján lévő pixel színkódját (POINT). |
| RND | Egy 0 és 1 közötti pszeudo-véletlenszámot generál. |
| SCREEN | Lekérdezi a képernyő egy adott pozícióján lévő karakter ASCII kódját vagy színattribútumát szöveges módban. |
| SGN | Egy szám előjele (+1 ha pozitív, 0 ha nulla, -1 ha negatív). |
| SPACE$ / SPC | Létrehoz egy megadott számú szóközből álló stringet (SPACE$), vagy szóközöket helyez el a PRINT utasításban (SPC). |
| STICK | Lekérdezi a csatlakoztatott játékvezérlők aktuális koordinátáit. |
| STR$ / VAL | Egy szám átalakítása karaktersorrá (STR$), vagy egy számjegyeket tartalmazó karaktersor visszaalakítása számmá (VAL). |
| STRING$ / TAB | Karaktersor létrehozása egyetlen ismétlődő karakterből (STRING$), vagy a kurzor oszloppozícióra léptetése a PRINT-en belül (TAB). |
| USR / VARPTR | Regisztrált egyedi gépi kódú függvény meghívása (USR), vagy egy programváltozó, illetve fájlvezérlő blokk memóriacíme (VARPTR). |
Az IBM Personal Computer megjelenése és annak korabeli részletes szakmai elemzése világossá tette, hogy a számítógépgyártó óriás sikeresen egyesítette a meglévő mikroszámítógépes ipar legjobb gyakorlatait a saját szigorú minőségi követelményeivel. A nyitott felépítés, a kiterjedt és beépített szoftveres funkcionalitás, valamint a nagy teljesítményű 16 bites belső architektúra olyan szilárd alapot teremtett, amely rövid időn belül dominánssá tette az IBM szabványt a világpiacon.