
Ada sebuah artikel menarik yang tersorok dalam majalah COMPUTE! (issue 83, April 1987) bertajuk "Structured BASIC 64" oleh Scott Kell. Saya kata "tersorok" kerana ia tidak pun diiklankan di muka depan (cover page) majalah berkenaan. Ia terletak di muka surat 92, berkongsi ruang dengan artikel sebelumnya yang bertajuk "Amiga System Fonts".
Pengenalan kepada artikel "
Structured BASIC 64" itu juga agak menarik kerana ia dibuka dengan ayat "This unusual Commodore 64 utility should interest anyone who wants to learn about structured programming techniques". Agaknya ia dikatakan sebagai luar biasa (unusual) kerana pada ketika itu, kekangan utama apabila mengaturcara sebuah komputer 8-bit ialah betapa kuasa pemprosesannya amat terhad: data 8 bit, kelajuan mikroprosessor yang terhad (1 MHz untuk MOS6502/10), RAM yang sedikit (64 KB maksimum) dan sebagainya. Maka lebih banyak usaha ditumpukan untuk mendapatkan hasil yang maksimum dari sumber yang terhad yang terdapat dalam komputer-komputer sumpama itu. BASIC hanya digunakan untuk aturcara-aturcara mudah sahaja. Apabila keperluan menjadi lebih kompleks, maka "machine code" digunakan sebagai ganti BASIC, kerana BASIC, sebagai bahasa interpretasi, tidak cukup pantas.
Versi BASIC yang diperluaskan seperti Simon's BASIC dan Super Expander dapat mengatasi sebagian daripad masalah ini kerana beberapa arahan baru yang ditambah dapat menggantikan proses-proses yang memerlukan pemprosesan yang rumit seperti mengndalikan sprite, kesan bunyi dan grafik. Akan tetapi ianya diletakkan di dalam katrij. Jadi pengguna-pengguna yang tidak mempunyai katrij yang sama tidak dapat menggunakan aturcara yang ditulis dalam versi berkenaan. Tambahan pula Commodore tidak mengeleuarkan satu "extension" yang standard, tetapi dua versi: Super Expander dan Simon's BASIC.
Walaupun terdapat beberapa "BASIC compiler" mula dikeluarkan ketika itu tetapi ia tidak begitu popular kerana dengan RAM yang terhad, maka aturcara perlu dikompilasi daripada disket. Ini ternyata proses yang memerlukan masa yang panjang dan kesabaran yang setara juga.
Structured BASIC 64
Artikel berkenaan nampaknya merupakan reaksi kepada bahasa-bahasa pengaturcaraan berstrukur yang mula popular pada ketika itu sperti Pascal, Modula 2, Forth dan C. Sterusnya artikel berkenaan menyentuh hakikat bahawa BASIC bukanlah bahasa yang menekankan kaedah pengaturcaraan berstuktur. Jadi perisian bantuan bernama "Structured BASIC 64" itu diolah untuk membantu pengaturara berubah daripada BASIC ke dunia pengaturcaraan berstrukur.
Beberapa kata-kunci BASIC 2.0 telah diubah atau ditambah kepadnya. Untuk if-else, ianya telah ditambah menjadi:
- if - then - endif
- if - then - else - endif
Untuk struktur pengulangan, dari kata-kunci asas for-next, yang berikut ini telah ditambah pula:
- repeat - until
- while - wend
Untuk konstruk if-then yang berbagai-bagai, umpamanya untuk membuat pilihan yang banyak kemungkinannya, kadangkala ia diselesaikan dengan menggunakan on-goto atau on-gosub. Namun, seperti yang
dibincangkan sebelum ini, penggunaan goto dan gosub boleh mnimbulkan masalah apabila nombor-nombor baris aturcara diubah. Dalam Structured BASIC 64, kata-kunci yang diperkenalkan untuk mengatasi masalah ini ialah:
- cases of - case - otherwise - endcases
Agak menarik juga kerana kata-kata kunci ini tidak sama seperti yang digunakan oleh Commodore BASIC 7, iaitu select case - case - end select. Mungkin agaknya pada ketika itu tidak ada lagi suatu keseragaman dalam memilih kata-kata kunci tambahan ini.
Untuk subroutine pula, penggunaan label telah diperkenal. Jadi arahan gosub "intro" boleh digunakan menggantikan gosub 1000 atau seumpamanya. Dalam Stuctured BASIC 64, sesuatu label mesti diletakkan di antara tanda "quotation" dan mesti ditempatkan di pangkal baris arahan sebaik sahaj selepas nombor baris. Contohnya:
1200 "introduction": print "Hello World!"
Walaupun dengan penggunaan label, nombor-nombor baris arahan masih perlu digunakan untuk setap baris arahan. Nombor tersbut mungkin tidak lagi diperlukan untuk gosub tetapi perlu untuk susunan atau urutan baris dari baris pertama hingga ke akhir.
Perisian bantuan ini amat menarik dari segi saiznya yang hanya 1,160 bytes. Ianya dicetak dalam bentuk format MLX. Suatu hari nanti, Insya-Allah, saya akan "key in" aturcara bantuan ini dan mencubanya.