Home  Articles  Programs 

Commodore Programlarını RS232 ile Uzaktan Kullanma Yöntemi

C64'ü minimum değişiklikle uzaktan kullanabilmek RS232 ile mümkün:

BASIC'te ve komut satırında CMD ile ekran çıktısını başka cihazlara, dosyalara yönlendirebildiğimizi biliyoruz. Örneğin OPEN1,2,0,CHR$(10):CMD1:LIST komutları RS232 kanalını açar, çıktıyı bu kanala yönlendirir ve LIST komutunun çıktısı RS232 ile bağlı cihaza (modem, terminal vb.) gider. Ancak, doğrudan modda (sanıyorum normal yolla başlangıç ayarları yapamadığımızdan) girişi yönlendiremiyoruz.

Ama, doğrudan modda olmasa da herhangi bir BASIC programını RS232 üzerinden çalışacak hale getirmek kolay. Yani BASIC içinde modemden gelen girdileri alıp, çıktıyı yine modeme gönderebiliyoruz.

Önce, programın en başlarına (değişkenlerden önce) RS232 ayarını koyuyoruz ve ilk ayarlar için rastgele bir okuma yapıyoruz:

1 OPEN 129,2,0,CHR$(10)+CHR$(0):GET#129,A$

Ardından giriş çıkışı klavye ve ekran yerine RS232 cihazına yönlendiriyoruz:

2 POKE 153,2:POKE 154,2

hepsi bu.

Programdan çıkarken ise

32767 POKE 153,0:POKE 154,3:CLOSE 129:END

ile giriş çıkışı eski haline getirebiliriz.

OPEN komutunun RS232 ile kullanımı için ayrıntılar C64 Programcının El Kitabında var, ben de oradan baktım. Ayarlar kısaca:

Open'daki 129= dosya no (127'den büyük olunca CR yerine CRLF karakterleri gönderiyor). 2= RS232 cihazı. CHR$(10) 2048bps için. 10 yerine 6 girilirse 300, 8 girilirse 1200bps oluyor. Default olarak en yüksek hız C64'te 2400bps ne yazık ki.

Örnek program:

50 REM BASIT GIRDI CIKTI ORNEK PROGRAMI
100 GOSUB 1000:REM EKRANI SIL
110 PRINT "==== MENU ===="
120 PRINT "1) SECENEK 1"
130 PRINT "2) SECENEK 2"
140 PRINT "0) CIKIS"
200 GET A$:IF A$="" GOTO 200
210 A=1+ASC(A$)AND7
220 ON A GOTO 500,300,400
290 GOTO 200
300 GOSUB 1000
310 PRINT "=== MENU 1 ==="
320 PRINT "..."
330 REM
390 GOTO 110
400 GOSUB 1000
410 PRINT "=== MENU 2 ==="
420 PRINT "..."
430 REM
490 GOTO 110
500 END
1000 FORI=1TO25:PRINT:NEXT:RETURN
1010 REM BASIT TERMINALLERI DE DUSUNEREK EKRAN TEMIZLEME
1020 REM

Şimdi bu örnekteki gibi basit bir BASIC programını RS232 ile uzaktan kullanılır hale getirmek için sadece şu değişiklikleri yapıyoruz:

0 OPEN 129,2,0,CHR$(10)+CHR$(0):GET#129,A$:POKE 153,2:POKE 154,2
500 POKE 153,0:POKE 154,3:CLOSE 129:END

Programın yeni hali:

0 OPEN 129,2,0,CHR$(10)+CHR$(0):GET#129,A$:POKE 153,2:POKE 154,2
50 REM BASIT GIRDI CIKTI ORNEK PROGRAMI
100 GOSUB 1000:REM EKRANI SIL
110 PRINT "==== MENU ===="
120 PRINT "1) SECENEK 1"
130 PRINT "2) SECENEK 2"
140 PRINT "0) CIKIS"
200 GET A$:IF A$="" GOTO 200
210 A=1+ASC(A$)AND7
220 ON A GOTO 500,300,400
290 GOTO 200
300 GOSUB 1000
310 PRINT "=== MENU 1 ==="
320 PRINT "..."
330 REM
390 GOTO 110
400 GOSUB 1000
410 PRINT "=== MENU 2 ==="
420 PRINT "..."
430 REM
490 GOTO 110
500 POKE 153,0:POKE 154,3:CLOSE 129:END
1000 FORI=1TO25:PRINT:NEXT:RETURN
1010 REM BASIT TERMINALLERI DE DUSUNEREK EKRAN TEMIZLEME
1020 REM
20000 REM ===============
21000 REM ILKER FICICILAR
22000 REM 17.07.2014
23000 REM ===============

Peki bu ne işe yarar?

Örneğin evdeki C64'ünüzü modeme ve telefon hattına bağlarsınız. Modeminiz otomatik yanıta ayarlanır. Ve işten ev telinizi laptopunuzun modemiyle arar ve C64'teki sevdiğiniz filanca programınıza bağlanırsınız.

Ya da benim gibi masada monitör fazlalığı istemiyorsanız Commodore'u bir NULL-MODEM kablosuyla bilgisayarınıza bağlar öyle kullanırsınız.

Bu arada bu yöntemin verimli kullanımı için PETSCII destekli bir terminal emülatörü programı kullanmak daha iyi olacaktır.

Yöntemin amacıysa mevcut BASIC programlarından basitlerini sadece 2 satır ekle RS232 ile uzaktan kullanılır hale getirmek.

İlker Fıçıcılar
20.07.2014

Keywords: Commodore, RS232, remote desktop


C64 Projects Twitter Page

İlker Fıçıcılar's CBM Page