MBASIC - MBASIC

MBASIC
Paradigma zorunlu
Tarafından dizayn edilmiştir Microsoft
Geliştirici Microsoft
işletim sistemi CP / M
İnternet sitesi www .microsoft .com
Tarafından etkilenmiş
TEMEL

MBASIC olan M icrosoft BASIC uygulanması BASIC için CP / M işletim sistemi. MBASIC, Microsoft'un ilk ürünleri arasında yer alan orijinal Altair BASIC tercümanlarının soyundan gelmektedir . MBASIC, Osborne 1 bilgisayarla birlikte verilen iki BASIC sürümünden biriydi . "MBASIC" adı, BASIC yorumlayıcısının MBASIC.COM disk dosyası adından türetilmiştir.

Çevre

Z80 CP / M sisteminde çalışan MBasic 5.21, o zaman için tipik bir monokrom monitörde görüntülenir.

MBASIC sürüm 5, en az 28 kB rasgele erişim belleğine (RAM) ve en az bir disket sürücüsüne sahip bir CP / M sistemi gerektiriyordu .

Ev bilgisayarı üreticileri tarafından bilgisayarın belirli donanım özelliklerini kullanmak üzere özelleştirilen Microsoft BASIC-80 sürümlerinden farklı olarak , MBASIC tüm giriş ve çıkışlar için yalnızca CP / M işletim sistemi çağrılarına güveniyordu. Yalnızca CP / M konsolu (ekran ve klavye), satır yazıcı ve disk aygıtları mevcuttu.

Kişiselleştirilmemiş formdaki MBASIC'in grafik , renk, oyun çubukları, fareler, seri iletişim , ağ oluşturma , ses ve hatta gerçek zamanlı saat işlevi için hiçbir işlevi yoktu . MBASIC, ana bilgisayar CP / M işletim sisteminin özelliklerini tam olarak desteklemiyordu, örneğin, bir disket üzerindeki dosyaları düzenlemek için CP / M'nin kullanıcı alanlarını desteklemiyordu. CP / M sistemleri tipik olarak tek kullanıcılı ve bağımsız olduğundan, dosya veya kayıt kilitleme veya herhangi bir çoklu görev biçimi için herhangi bir hüküm yoktu . Bu sınırlamaların dışında, MBASIC o zamanlar BASIC'in güçlü ve yararlı bir uygulaması olarak kabul edildi.

Özellikleri

Dil sistemi

MBASIC bir tercümandır . Program, kaynak metin içinde hafızasında kayıtlı olan Tokenized TEMEL bellek alanını ve hız yürütme kurtaran kişi baytlık jeton yerine anahtar kelimeleri ile, form. Bir satır numarası ön ekli herhangi bir satır, program metni olarak kaydedildi; Bir satır numarası ön ekine sahip olmayan BASIC deyimleri, komut olarak hemen çalıştırıldı. Programlar, düzenleme için ekranda listelenebilir veya sıkıştırılmış ikili formatta veya düz ASCII metni olarak diske kaydedilebilir . Her kaynak hattı, bir GOTO veya GOSUB aktarımının hedefi olarak kullanılabilecek bir numara ile tanımlandı . Yalnızca satır düzenleme komutları sağlandı. Bir programı düz metin olarak kaydetmek ve tam özellikli bir düzenleyiciyle düzenlemek genellikle yararlı oldu.

Program metni, değişkenler, disk arabellekleri ve CP / M işletim sisteminin tümü, 8080 işlemcisinin 64 kilobaytlık adres alanını paylaşmak zorundaydı. Tipik olarak, MBASIC'i ilk başlatırken, 64 kilobayt RAM ile donatılmış bir makinede bile programlar ve veriler için 32 kB'den daha az bellek kullanılabilir. REM Anahtar sözcük veya kesme işaretinin önüne eklenen yorum satırları, program metnine yerleştirilebilir, ancak, BASIC kullanıcılarının kodlarını tam olarak belgelemelerini engelleyen değerli bellek alanını kaplardı. Daha büyük ve daha karmaşık programların çalıştırılmasına izin vermek için, MBASIC'in sonraki sürümleri, program metni bölümlerinin program kontrolü altında okunmasına ve yürütülmesine izin veren işlevleri destekledi (" CHAIN " ve MERGE ifadeler). "Kabuk" komutunun yürütülmesi için hiçbir destek sağlanmadı, ancak bu işlevsellik belirli bir programcı tarafından çoğaltılabilir.

MBASIC'in belirli bir avantajı, sözdizimi ve çalışma zamanı hataları için sağlanan tam metin hata mesajlarıdır. MBASIC ayrıca, çalıştırılırken satır numaralarını görüntüleyen bir "izleme" işlevine de sahipti. Bu, normal program çıktısı ile aynı ekran alanını işgal ederken, sonsuz döngüler gibi durumları tespit etmek için yararlıydı .

Dosyalar ve girdi / çıktı

Veriler, sıralı dosyalar olarak (her satırın sonunda CR / LF'nin CP / M konvansiyonu ile sınırlandırılmış) veya yeterince belirlenmiş bir programcı verilen sabit kayıt uzunluklu rasgele erişim dosyaları olarak okunabilir ve diske kaydedilebilir. , veritabanı tipi kayıt işlemlerini gerçekleştirmek için kullanılabilir. Microsoft ikili biçimi için kayan nokta sayıları sadece ikili formata ASCII metin gösterimi ya da başka yaygın programlama ile kullanan diğer programlar ile değiştirilebilir ki verileri geliyordu uygulanması için özel oldu.

Değişkenler ve veri türleri

MBASIC aşağıdaki veri türlerini destekledi:

  • 0 ila 255 karakter uzunluğundaki dizelerde 8 bit karakter verileri;
  • 16 bitlik tam sayılar;
  • İki basamaklı üslü altı ondalık basamağa eşdeğer 32 bit kayan nokta (tek duyarlık);
  • İki basamaklı üslü on altı ondalık basamağa eşdeğer 64 bit kayan nokta (çift duyarlık).

Dize operatörleri, alt dize seçimi, birleştirme, atama ve eşitlik testini içeriyordu.

Yukarıdaki türlerdeki dizilere 7 boyuta kadar izin verildi, ancak diziler üzerinde hiçbir işlev veya operatör çalışmadı; örneğin, dizi ataması yoktu. Zamanın diğer bazı BASIC uygulamalarının aksine, MBASIC matris işlemleri, karmaşık sayılar veya finansal hesaplamalar için ondalık (BCD) veri türü için destek sağlamadı . Tipik CP / M sistemlerinde kayan nokta donanımı bulunmadığından tüm kayan nokta işlemleri yazılımda gerçekleştirilmiştir . Yerleşik matematik fonksiyonları (sinüs, kosinüs, tanjant, doğal log, üstel, karekök) yalnızca tek kesinlikli sonuçlar verdi. Bir yazılım sözde rasgele sayı üreteci sağlandı; bu, kullanıcının oyunlar ve bazı simülasyonlar için yararlı bir sayı dizisi elde etmek için bir çekirdek numarası girmesine bağlıydı. MBASIC izin verdi, ancak LET atama ifadeleri için anahtar kelimeyi gerektirmedi .

Mikrobilgisayarlarda BASIC'in ilk sürümleri, bir veya iki karakterli değişken adları için kötü bir şöhrete sahipti, bu da değişkenlerin anlamlarını karmaşık programlarda hatırlamayı zorlaştırıyordu. MBASIC sürüm 5, programcıların değişkenlere okunabilir adlar vermesine izin veren 40 karakter uzunluğa kadar tanımlayıcılara izin verdi.

Program akış kontrolü

MBASIC'deki program akış kontrolü, IF...THEN...ELSE... koşullu testler, WHILE...WEND döngüler GOTO ve GOSUB talimatlarla kontrol edildi . CASE Bir ON...GOTO... (hesaplanmış GOTO) çok yönlü şubeler sağlasa da, herhangi bir açıklama mevcut değildi . Alt rutinlerin hiçbir parametresi yoktu ve tüm değişkenler globaldi. MBASIC, programcılar için yapısal programlamayı zorunlu hale getirmedi ve spagetti kodu yazmak kolaydı .

PEEK'ler, POKE'lar ve kullanıcı işlevleri

70'lerin sonları ve 80'lerin başlarındaki 8 bit bilgisayarlarda BASIC'ler hakkında hiçbir tartışma, doğrudan belleğe okuma ve yazma için PEEK ve POKE işlevlerinin öneminden bahsetmeden tamamlanmayacaktır . Bu sistemler tipik olarak bellek korumasına sahip olmadığından , bu, bir programcının işletim sisteminin bölümlerine veya başka türlü kullanılamayacak işlevlere erişmesine izin verdi. Bu aynı zamanda kullanıcı programlarının sistemi asması için fırsatlar da sağladı. Örneğin, bir CP / M programcısı POKE , sistem BIOS'u destekliyorsa , BASIC'in konsol aygıtını seri bağlantı noktasına geçirmesine izin veren bir işlev kullanabilir . Gerçek zamanlı saatlere sahip makineler PEEK için, saate erişmek için bir dizi talimat kullanılmış olabilir.

Daha karmaşık işlemler için MBASIC, bir BASIC programından çağrılabilen kullanıcı tanımlı işlevlere izin verdi. Bunlar tipik olarak ayrılmış bir bellek alanına veya bir dizi makine kodu (işlem kodları) olarak dizgi sabitlerine POKEd yerleştirildi . MBASIC ayrıca , doğrudan 8080 donanım giriş / çıkış bağlantı noktalarını okuyan ve bunlara yazan donanım INP ve OUT talimatlar da sağladı . Bu, çevresel aygıtları kontrol etmek için kullanılabilir, ancak en az bir ortak CP / M sistemi olan Osborne 1'de, tüm G / Ç talimatları sistem tarafından kullanılmak üzere önceden hazırlanmıştır.

Kullanımını yapılan her türlü MBASIC programları PEEK ve POKE , ve makine kodu kullanıcı fonksiyonları, değişiklik yapılmadan makineler arasında taşınabilir değildi.

MBASIC'in halefleri

Microsoft'un CP / M için BASIC-80'in yanı sıra, ISIS-II işletim sisteminde olduğu gibi bir MBASIC varyantı da mevcuttu .

MSX-BASIC ayrıca, MSX makinelerine özgü birkaç uzantı içeren, MBASIC'in iyi bilinen bir halefidir .

CP tüm fonksiyonları / M MBASIC IBM PC disk tabanlı kullanılabiliyordu BASICA veya GWBasic mümkün PC uyumlu kişisel CP / M sistemlerinden programların göçü yaptı. Anahtar kelimeleri temsil etmek için kullanılan belirteçler farklıydı, bu nedenle CP / M programlarının ASCII kaynak biçiminde kaydedilmesi gerekiyordu. Tipik olarak, CP / M sürümüne yerleştirilen ekran biçimlendirme kaçış dizileri, BASIC'in PC sürümlerinde bulunan imleç konumlandırma komutları ile değiştirilecektir, aksi takdirde çok az yeniden yazma gerekli olacaktır.

BASCOM

Microsoft , MBASIC'e benzer bir kaynak dil kullanan bir CP / M BASIC derleyicisi ( BASCOM olarak bilinir ) sattı. MBASIC altında hata ayıklanan bir program BASCOM ile derlenebilir. Program metni artık bellekte olmadığından ve derleyicinin çalışma zamanı öğeleri yorumlayıcıdan daha küçük olduğundan, kullanıcı verileri için daha fazla bellek mevcuttu. Gerçek program yürütme hızı yaklaşık 3 kat arttı.

Geliştiriciler BASCOM'u popüler ancak yavaş ve beceriksiz CBASIC'e alternatif olarak memnuniyetle karşıladılar . CBASIC'den farklı olarak, BASCOM'un MBASIC kaynak kodu için bir ön işlemciye ihtiyacı yoktu, bu nedenle etkileşimli olarak hata ayıklanabilirdi. Bir dezavantaj, Microsoft'un bir programın derlenmiş her kopyası için% 9 ve donanım-yazılım kombinasyonları için 40 ABD doları tutarında telif hakkı talep etmesiydi. Şirket, geliştiricilerin mali kayıtlarını denetleme hakkını da saklı tuttu. Yazarların yazılım için tipik telif oranları% 10-25 olduğu için , 1980'de InfoWorld BASCOM'un% 9'luk ek telif oranının "yazılım geliştirmeyi tamamen kârsız hale getirebileceğini" belirterek, "Microsoft'un [CBASIC'in kusurlarına] teknik çözüme sahip olduğu, ancak değil ekonomik olan ".

MBASIC'in Önemi

MBASIC, 8 bitlik CP / M bilgisayarlar çağında önemli bir araçtı. Yetenekli kullanıcılar, modern zaman sistemlerinde güçlü uygulama program komutları veya komut dosyası dilleri tarafından gerçekleştirilen görevleri otomatikleştirmek için MBASIC'de rutinler yazabilir. Yararlı MBASIC programlarının değişimi, bilgisayar kullanıcı gruplarının ortak bir işleviydi . Bir dergi makalesinden uzun BASIC listeleri girmek, yazılımı yeni bir CP / M sistemine "önyükleme" yapmanın bir yoluydu. Üst düzey bir dil için en az bir derleyici MBASIC'de yazılmıştır ve birkaç satırdan birkaç bin kod satırına kadar birçok küçük oyun ve yardımcı program yazılmıştır.

Diğer kullanımlar

MBASIC ayrıca , CP / M yorumlayıcısıyla ilgisi olmayan Basic Micro, Inc. tarafından geliştirilen Microchip Technology PIC mikro denetleyici ailesi için ticari bir BASIC derleyicisinin adıdır .

Referanslar

  • Thom Hogan ve Mike Iannamico, Osborne 1 Kullanıcı Referans Kılavuzu , (1982) Osborne Computer Corporation
  • David A. Lien, The BASIC Handbook , 2nd Edition Encyclopedia of the BASIC Computer Language, (1981), Compusoft Publishing
  • BASIC 80 Referans Kılavuzu , Microsoft Corporation, tarih yok