Bu sayfadaki yazılar
Sayfanın metni
Sayfa 15
Tuna Ertemalp
Hoşbulduk... Geçen bölümümüzde grafik komutlarını bitirmiştik. Bu sefer biraz daldan dala atlayacağız. Önce Commodore 64'ün müzik yeteneklerini kullanan komutları tanıyacağız. Daha sonra sıra, sprite tanımlama ve hareket ettirme konusunda karşılaşılan güçlükleri yok eden emirlere gelecek. Hemen buna bağlı olarak, karakter setini nasıl değiştirebileceğimizi göreceğiz. Ve son olarak da, PASCAL, MODULA-2 ve bunlar gibi yüksek dillerde varolan ve son zamanlarda Basic'in de bir parçası olmaya başlayan yapısal kontrol komutlarını
Simons' Basic ile nasıl kullanacağımızı inceleyeceğiz.
Önce Müzik Komutları
Commodore 64'ün SID (Sound Interface Device) ünitesi, benzerleri arasında tartışılmaz bir üstünlüğe sahiptir. Ancak programlanması POKE komutları ile oldukça zor olmakta. Bu nedenle Simons' Basic, yepyeni müzik komutları oluşturmuş. Önce bilgisayarın ses yüksekliğini ayarlamamız lazım. VOL n komutu ile bunu yapabilirsiniz. Burada 'n' parametresi 0-15 arası bir sayı olmalı. 0 ile ses kapalı kalırken, 15 ile de ses en yüksek volümüne ulaşmaktadır. Sıra geldi, parçayı çalacak sesin tanımına. Ses iki biçimde tanımlanır. Önce o sesin nasıl üretileceği, yani hangi dalga türünde olacağı saptanmalıdır. Sonra da sesin zaman içindeki dalgalanmasının nasıl olacağı belirtilir. Bunlardan birincisi için WAVE n,xxxxxxxx komutu kullanılmalı. Burada n ile Commodore 64'ün ses üreteçlerinden hangisini kullanmak istediğimizi belirtiyoruz. 1-3 arası bir sayı olmalı bu. 'xxxxxxxx' ise o sesi kontrol eden yazmacın (registerin) sahip olması gereken değeri ikili sayı sisteminde gösterir. Bunun nedeni, bu yazmacın sahip olduğu her bir bit'in
(herhalde bu bit'in bir byte'ı oluşturan 8 bit'ten biri olduğunu biliyorsunuz) ayrı bir öneminin oluşu. Böylece sesi çok değişik şekillerde etkilemeniz mümkün. Bu parametre, örneğin 00010000 olabilir. Dikkat etmeniz gereken şey, bu parametrenin mutlaka 8 basamaktan oluşması ve 0 ile 1'den başka karaktere sahip olmaması gerektiği. Bu bit'lerin en soldakine yedinci bit, en sağdakine de sıfırıncı bit denir. Buna göre her bir bit'in anlamı kısaca aşağıdaki gibidir. Daha ayrıntılı bilgi için ya bu konuda kitaplara ya da “Programcının elkitabı'na başvurmalısınız.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 14
Özellikle dünya çapında yaygın kullanıma sahip olan Fortran IV'te, 1985 yılında Fortran'dan türetilmiş olan Basic'teki gibi, sık sık GOTO komutuyla ileriye veya geriye atlamalar yapmak gerekiyor. En son versiyon olan Fortran V, IF...THEN...ELSE...ENDIF... gibi yapıları dilin dışında bıraktı.
Z80 MİB'iyle çalışan hemen tüm mikro-bilgisayarlar için CP/M'de Fortran geçerli. Fakat C-64 için bu dil henüz uyarlanmamış durumda. Fortran'ın geliştirilmesinden birkaç yıl sonra, iki önemli programlama dili ortaya çıktı: Algol ve Cobol.
Algol (ALGOrythmic Language), öncelikle matematiksel-teorik problemlerin çözümüne yönelikti. Bu dil hiçbir zaman Fortran'ın erişmiş olduğu yaygınlığa erişemedi. Ama başka bir önemli yarar sağladı: Gelişkin, öbeğe dayalı dillerin oluşturduğu “neslin” “atası” oldu. Bu neslin en son temsilcisi, Ada olarak adlandırılan dil.
Cobol (COmmon Business Oriented Language) 1959 yılında ticari kullanımlar için geliştirildi. Geliştirme hedeflerinden biri, elektronik bilgi işlem uzmanı olmayan kişilerin de programları okuyabilmelerini sağlamak arzusu (daha doğru bir ifadeyle söylemek gerekirse, hayali) idi.
Böyle bir hedef belirlemeden, dünyada şimdiye kadar yaratılmış dillerin belki de en kötüsü ortaya çıktı. Üstüne üstlük bir de ticari kullanımın en yaygın dili haline geldi ve ancak Basic kullanan ev bilgisayarlarının yayılmasıyla bu egemenliği sarsıntıya uğrayabildi. Cobol programlarında doğal dil (İngilizce) kullanılır. “IF X > 0 THEN A=B/X” şeklindeki bir Basic ifadesi, Cobol'da “IF X GREATER 0 THEN DIVIDE B BY X GIVING A” şekline dönüşür.
Tabii ki, böyle bir dilde her matematiksel formül, bir bakışta tümüyle görülemeyecek bir yığın oluşturuyor. Bunun üzerine bir de, Cobol'un programcıyı bir ön derleyici olarak kullanmak şeklindeki garip özelliği ekleniyor. “Procedure” olarak adlandırılan asıl programa ek olarak, programcı (!) tarafından bir değişken için ne kadar bellek alanı harcanması gerektiğinin belirlendiği, “Data Division” adlı bir bölüm var. Ayrıca bir değişkenin iç gösteriminin ekrana veya bilgiyazara verilmesi için dekode edilmesi de burada belirlenmek zorunda. Cobol, bütün bunlara karşın böylesine bir yaygınlık kazanmış olmasını, öncelikle, büyük veri miktarının kütükler halinde organize edilmesi ve yönetilmesi yeteneğine borçlu. Bu yetenek ticari alanda büyük yarar sağlayabiliyor. Fakat diğer tüm kullanım alanları için, Cobol, rahatça uygunsuz olarak nitelenebilir. Bütün bu uyarılara rağmen Cobol'la uğraşmak isteyen biri, küçük bilgisayarlar alanında bugün ancak CP/M modunda bu olanağa sahip olabilir. O sırada önde gelen diller olan Fortran, Algol ve Cobol'un olumlu yönlerini kapsayan tek bir dil oluşturma güdüsü, altmışlı yılların ortalarında PL/1 (Programming Language 1) dilinin doğmasına yol açtı. Fakat amaçlanan hedefe ulaşılamadı. Aslında PL/1 bu üç dilin çeşitli özelliklerini kendi içinde topladı, ama bunlar en iyi özellikler değildi. PL/1 programları mükemmel gibi gözükmelerine karşın, şaşılacak derecede bağlantısız ve yapısızdı. Bir PL/1 programı, programcının kişisel stiline bağlı olarak, Fortran'da, Algol'da ya da Cobol'da yazılmış görünümüne sahip olabilir; daha da kötüsü, bunların her üçünün bir karmaşası olabilir. Toplu olarak hakim olunamayacak sayıda anahtar kelimenin varlığı, her programcıyı kolayca hata yapmaya itebilir. PL/1 dili, CP/M işletim sistemi bulunan ev bilgisayarlarına uygulanabiliyor.
Pascal EL RR a
Bu eski, ama hâlâ yaygın olarak kullanılan dillerden sonra, programlama dilleri arasında modern bir klasik sayılabilecek olan bir dile geldik. Bu dil, 1971'de Niklaus Wirth tarafından Algol'a dayanılarak geliştirilmiş olan Pascal. Pascal adı, diğer bilgisayar dillerinde olduğu gibi bir kısaltma değil. Bu ad, 19. yüzyılda yaşamış olan Fransız matematikçisi ve filozofu Blaise Pascal'in onuruna verilmiş. Selefi Algol gibi, Pascal de katı biçimde standartlaştırılmış bir dil. Hâlâ çoğu Pascal versiyonunda temel alınan, hangi dil ögelerinin kullanılabileceğini ve bunların etkilerini katı bir şekilde belirliyor. Son zamanda Kaliforniya'da geliştirilen bir alternatif versiyon -USCD- Pascal-, Wirth-Standardı'nda yeri olmayan “string” veri türünü ve buna karşılık gelen fonksiyonları da öngörüyor. Aralarında fark, bunun dışında çok az. Pascal programlarının aktarılabilirliğinden bahsetmek gereksiz, çünkü Pascal'de gerekli olan her yeni veri türü kolayca tanımlanabiliyor. Eğer kullanabileceğiniz “string” veri türü elinizde yoksa,
TYPESTRING - ARRAYII..80) OFCHAR;
yazmanız yeterli.
Pascal'de “char”, önceden tanımlanmıştır ve her defasında bir tek karakteri temsil etmektedir. Yukarıdaki Pascal satırı (yeni) veri türü olan “string”de en çok 80 “char” ögesinden oluşan bir alan olarak tanımlanacaktı. Bu bağlamda devam edilebilir ve zincir (string) değişkenleriyle çalışılabilir. Bu, Pascal'de daima zorunlu olan, değişken birleşmesiyle gerçekleşir: VAR ALPHA: STRING; Böylece, string türünde olması gereken bir Alpha değişkeni birleştirilmiş olur. Bu yolla veri türü yedekleri istendiği kadar artırılabilir. Bu, ilk defa Pascal'de tutarlı bir şekilde gerçekleştirilebilen ve o zamandan beri de modern programlama dillerinde olmaması düşünülemeyen bir yenilik. Pascal, verimliliği ve mantıksal ve sağlıklı yapısı nedeniyle, eğitim dili olarak acemi programcılar ve enformatikçiler arasında çok seviliyor. Bu dil, yapılandırılmış programlamayı ve hatta sorunu çözerken yapılandırılmış biçimde düşünmeyi öğretiyor. Böyle bir katkı, tabii ki daha büyük programların geliştirilmesinde küçümsenemeyecek bir avantaj. Pascal'in C64 ve CP/M için uygun birçok versiyonu var.
(Devam Edecek)