Ana Sayfa

Commodore 64'te Otomatik Program Başlatma Sırrı

1 dk okuma

Çoğu eski bilgisayar, disk sürücüsünden programları doğrudan başlatma (autoboot) özelliğine sahipti; bu sayede işletim sistemi yükseltmeleri kolaylaşıyor ve oyunlar sistemin kontrolünü tamamen ele alabiliyordu. Ancak Commodore 64 (C64) bu sistemlerden biri değildi. C64'ün firmware'i her zaman kullanıcıyı BASIC komut istemine yönlendirir ve bir programı çalıştırmak için LOAD "*",8,1 komutunu yazıp ardından RUN demek gerekirdi. Yine de, o dönemde bazı programlar RUN komutunu gerektirmeden yükleme tamamlandığında otomatik olarak başlıyordu. Bu makale, Dan Carmichael tarafından 1984'te COMPUTE!’s Gazette dergisinde yayımlanan ve C64'te otomatik başlatmayı sağlayan bir tekniği inceliyor.

Makale, bu otomatik yükleyicinin nasıl çalıştığını anlamak için C64'ün BASIC runtime'ı ile makine dili programları arasındaki etkileşimi detaylandırıyor. C64 BASIC'in Microsoft BASIC'in bir türevi olduğunu ve bellek yapılarının esnek olduğunu belirtiyor. Özellikle, BASIC tarafından kullanılan belleği bölen TXTTAB ($2B), VARTAB ($2D) ve ARYTAB ($2F) adlı üç işaretçi (pointer) bulunuyor. LOAD komutu hem BASIC hem de makine dili programlarıyla çalışır; BASIC programları TXTTAB'in gösterdiği yere yüklenirken, makine dili programlarının yükleme adresi programın kendisinden alınır. Hangi tür program yüklenirse yüklensin, VARTAB ve ARYTAB değişkenleri son yükleme adresine göre ayarlanır. Makine dili programları için bu durum, BASIC sistemini genellikle karıştırır ve normal komutların hatalı çalışmasına neden olur. Makale, bu karmaşık bellek yönetimini kullanarak programların otomatik olarak nasıl başlatılabildiğini tersine mühendislik yoluyla açıklıyor.

İçgörü

Bu makale, Commodore 64'ün kısıtlı sisteminde bile yaratıcı programlama teknikleriyle kullanıcı deneyimini iyileştirmenin yollarını gösteriyor.

Kaynak