Retro Raktár – Részletes betekintés az IBM Personal Computer felépítésébe és szoftveres ökoszisztémájába

IBM Personal Computer Model 5150

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.

Table 4a: IBM BASIC parancsok összefoglalása (Commands)
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.
Table 4b: IBM BASIC utasítások összefoglalása (Statements)
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.
Table 4c: IBM BASIC függvények összefoglalása (Functions)
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.