Fonksiyon Tuşları Ne İşe Yarar?

Commodore 64'te sayısal ve alfabetik tuşlara ilaveten her biri iki işleve sahip olabilen dört fonksiyon tuşu vardır. Hepimiz bu tuşların bir program içinde menü seçiminde ya da genel olarak program kontrolünde işe yaradıklarını görmüşüzdür. Bu tuşlara program içinde ya da doğrudan bir programla GET komutu ile işlev kazandırılabilir. Bu tuşları programlayabilmek için sahip oldukları değerlerini bilmek gereklidir.

LARA
st)

156

Shift tuşuna aynı anda basmak bu ASCII değerlerini dört sayı artırır.

FR —> EZ 140

Şimdi kısa bir program aracılığıyla fonksiyon tuşlarını görevlendirelim. GET A$:IF A$="" THEN 100

110
1lü
150
140
150
GET
1F
IF
IF
170 As159
1830 İF Azml1 EŞ
170 İF A-140
THEN
THEN
THEN
THEN
THEN
THEN
THEN
THEN

Bu programda kontrol, basılan fonksiyon tuşuna göre uygun satıra aktarılır. Bu işlem bir 'ON... GOTO' döngüsü ile daha kolay gerçekleştirilebilir.

IF Aks"
İF
100 GET Ağı
120 ÖN AR
1600,1700, 1800
1100
1.200
1500
1400
1500
1600
1700
1800
GOTO- İ100,1200,1500,1400,

Fonksiyon Tuşları

"THEN 100
Fİ
FE
REM FE
:REM EZ
FE
:REM
"REM FS
:REM FB
THEN 100
OR
THEN 100

Bu teknik, genel bir program içinde de kullanılabilir. Bu yazıda size bir komut oluşturacak karakter dizisini fonksiyon tuşlarına yükleyebilecek ve bu komutları her fonksiyon tuşuna basıldığında ekrana getirecek bir program sunmak istiyoruz. Bu örneğimizde fonksiyon tuşlarına BASIC komutlarını yükleyeceğiz. Bu komutların sonuna “RETURN” komutunu da ekleyebiliriz. Böylece fonksiyon tuşlarına eklenen komutların doğrudan işlemesi mümkün olabilir. Örneğin “LIST” komutunun sonuna eklenerek “F1” programlanırsa, hafızadaki programı tuşuna basarak listelemek mümkün olur. Burada dikkat edilmesi gereken husus fonksiyon tuşlarına bağlanacak karakter dizisinin (string) uzunluğudur. Klavye Giriş Buffer'ı bu dizinin en fazla 10 karakter olmasını mümkün kılmaktadır. Yapacağınız programlarda, fonksiyon tuşlarına yalnızca 8 değil (shift tuşunu kullanıp kullanmamanıza bağlı olarak) 16 komut yükleyebilirsiniz. Böyle bir durumda fonksiyon tuşlarını aşağıdaki gibi görevlendirmek mümkün.

f- fi f2 - 8 f3 — f4A — f/ f5 — shift/f1 f6 — shift/f3 f7 — shift/f5 f8 — shift/f7 f9 — commodore (C-)/f1 f40 —- commodorelf3 f414 — f12 — commodorelf/ f13 — control/f1 f14 — control/f3 f15 — control/f5 f16 —

Aşağıda fonksiyon tuşlarını görevlendirmekte kullanılacak makine dilinde bir program veriyoruz. Fonksiyon tuşlarına ait diziler hafızaya bir BASIC programla yüklenecektir.

#FUNCTION KEYS FOR C64

OOO
KEYVEC
BUFFER
NÖKEYS
KEYNO
L.STEEY
TEMP
FMİN
FMAX
SETFLİĞ
OLDKEY
ÖDÜZ
DOLİ
OOLrLA
AŞ INIT
) ED
BO
O
OZ
FHIN
4
£
LDA
LDY
STY
RTS
GPRY
BS
SEC
STA
ASI
BEĞ
CP'X
BNE
AHİ
TEMP
#1
SHİFTE
CERMEKEY
#4
EKEEYS FOR ÜRM
SE TTE BUFFER
IR FOR EEYBÜĞARD DECÖDİNG
) R T&RLE
KE
;ELAĞ FOR SHİFT,CEM,CTR
NUMBER FOR ERE
; MATRI X
;NÜMBER ÖF LAST EEY
'ROARD BUF.
Hi 3 NL MERE R ÜF
FÜR
FOR
LÖWEST FUNCTTON KEY
HIGHEST FUNCTTÜN EEY
; CODE
; CODE
; ET VECTOR TO NEW ROUTİNE
SEY NÜMERER
;ASCITI CODE
; COMFARE WİTH
FUNCTİON KEY?
FUNC. KEY
; TO KEYBOARD
ş TEMES TÜ
0046 DAT
©
OOZÜ
CEMKEY
;FÜİNTER TÖ NEXT TABLE
NÜSFPEL TAX TO İNDEX
GETEEY ;GET ASSTİĞNMENT FROM TABLE
ENDKEY
BUFFER, Y
ŞAND IN

ALREADY

ENDEEY ST* YE ik NUMBER ÖF CHARACTERS
Hi “ÖR CODE
SPF FLAĞS
TARLE ECU *

Şimdi vereceğimiz BASIC program dizi 10 karakterden fazla yapabilirsiniz. Cümle içinde tırnak makina dilindeki programı çalıştıra- Eğer fonksiyon tuşuna basar basmaz cümlenin içinde bir virgül gözüküyorcak ve dizileri hafızaya yerleştirecek- komutunuzun çalışmasını istiyorsanız, sa, cümle 330. satırdaki gibi tırncık işatir. Diziler programda datalar halinde dizinin sonuna “RETURN” karakterini ek- retiyle kapatılmalıdır. O verilmiştir (300-330. satırlar) ve istenil- lemeyi unutmayın. Bunu, cümledeki diği gibi değiştirilebilir. Ancak hiçbir son karakterin yerine * * koyarak

100 FOR I #828 TO 914
110 READ NEXT
120 DATA 169,71,160,3,141,1437,2,140,144,2,96,164
150 DATA 205,196,197, 240,10, 4,201
140 DATA
150 DATA 101, 197, 10,
160 DATA 240, 7,224, 4,208, 9,24,105,40,724, 105,40
170 DATA 24, 40,170,160,0,189,0,207,240,9,153
180 DATA
190 DATA :
200 IF THEN PRİNT'ERROR İN DATA" SEND
210
215
REM PLACE KEY ASSİGMENTS İN MEMORY
REM
: FOR TÜ FÜR LEN(X£)
THEN REM RETURN
260 IF AsAS THEN
270 Az NEXT
280 IF Iİ END
290 NEXT
ZOO (
Z1O DATAPFRE (0) «,
320 DATAF'ÖKE ,PEEK INELT#
, RETURN

TIGIR

Bu yazıdaki programlar

Dergideki dökümlerden çıkarıldı; satırlar derginin kontrol toplamlarıyla doğrulandı ve programlar VICE emülatöründe denendi. Tarayıcıdaki C64'te çalıştırabilir, indirip bir emülatöre sürükleyip bırakabilir ya da gerçek bir C64'te LOAD "AD",8,1 ile yükleyebilirsiniz. "Sorun bulundu" yazanlarda bazı satırlar okunamadı ya da tutmadı; düzeltilmiş bir sürümünüz varsa contact@coze.org adresine gönderin.