CP/M Komutları
Pek çok mikro-bilgisayar sistemi, İngilizce Prompt ismi verilen özel uyarı simgeleri kullanırlar. Örneğin BASIC programlama dilinde INPUT deyiminin işlenmekte olduğunu belirten uyarı imi, ? (soru) simgesidir. CP/M işletim sistemi, o anda geçerli (kullanılmakta) olan diski işaret etmek üzere
A> biçiminde bir uyarı imi kullanır. Fakat bilgisayar sisteminin birden çok diski olabileceğinden uyarı imini bir diğer diski işaret edecek biçimde değiştirmek olanaklıdır. Bu nedenle terminalde görüntülenen uyarı imi biçimlerinde de olabilir. Uyarı imini bir diskten diğerine yöneltmek için yeni diskin adını yazıp : (üst üste iki nokta) simgesini koyduktan sonra “Return” tuşuna basmanız yeterlidir. Bu yazıda Return tuşuna basılma işlemi CR ile ifade edilecektir. Küçük bir örnek verelim:
A>B: CR B>
Bir CP/M komutunun kodlanabilmesi ve bilgisayara iletilebilmesi için CP/M uyarı imine cevap olarak tüm komut satırını yazıp CR tuşuna basılması gerekir. Örneğin:
CR
Ekim BANGER
CP/M komut satırı şunlardan oluşur:
1) Komut için bir anahtar sözcük (yukarıdaki örnekte, DIR) 2) İsteğe bağlı olarak ek bilgiler (yukarıdaki örnekte, B:) 3) Satır sonunda basılan tuşu (yukarıdaki CR)
Kodlanan komut, CP/M sistemi içinde hangi programın çalışması gerektiğini belirler. Seçime bağlı ek bilgiler ise bir kütük (dosya) tanımlanması olabileceği gibi birtakım parametrelerden de oluşabilir. Son olarak satır sonunu işaret etmek üzere “Return” tuşuna basılır.
CP/M Kurallarına Uygun Kütük (Dosya) Tanımlaması
CP/M sistemi içinde her kütüğün tek ve eşsiz bir tanımlanması vardır. Dolayısıyla her kütüğün bir ismi olduğu gibi aynı isimli iki ayrı kütük de olamaz. Bir kütük üç ayrı bölümden oluşan bir ifade ile tanımlanır. Bu bölümler,
1) Disk (Disk/Disket sürücüsü) ismi 2) Kütüğün birinci-ismi 3) Kütüğün tipi olarak belirlenmişlerdir. Daha sonraki satırlarda genel kütük tanımlamalarını yaparken aşağıda verilen genel forma uygun davranılacaktır:
d: simgesi A'dan P'ye kadar herhangi bir disk sürücüsünü ifade edecektir. Örneğin, A: simgesi söz konusu kütüğün A diski (başka bir deyişle, A sürücüsüne takılı disk/disket)
üzerinde olduğunu belirtir. * Birinci-isim simgesi ise kütüğün birinci ve ana ismini belirtmektedir. Bu bilgi, 1 ile 8 arasında herhangi bir sayıda alfabetik ve/ya da rakamsal karakterden oluşmalıdır. Alfabetik ve/ya da rakamsal karakterden oluşabilecek olan kütük tipi, kütüğün ana isminden bir . (nokta) imi ile ayrılmalıdır. Aşağıda doğru yazılmış genel amaçlı kütük tanımlamaları verilmiştir:
D:BİRİNCİ-İSİM BİRİNCİ-İSİM.TİP D:BİRİNCİ-İSİM.TİP
Şimdi yukarıdaki genel tanımlamaya uygun bazı özel örnekler verelim:
BORDRO A:BORDRO BORDRO.COM A:BORDRO.COM
Bazı CP/M komutlarının yazımında kütük işlemleri üstü kapalı olarak yazılabilir. Bu amaçla İngilizce “Wildcards” adı verilen özel kısaltma işaretleri kullanılır. Kısaltma işaretlerinin kullanımı, komutun özelliklerine bağlı olmakla birlikte yalnız birinci isim ve tip alanlarında kullanılmaktadır. CP/M altında yararlanılan kısaltma işaretleri iki tanedir: * (asterisk) ve ? (soru). ? (soru) işareti, kütük isminde yazılmayan bir karakterin yerini doldurur ve bu tanıma uyan (soru işareti yerine hangi karakter denk gelirse gelsin) bütün kütükleri göz önüne alır. * (asteriks) işareti ise ? (soru) işareti gibi çalışmakla birlikte birden çok karakter yerini doldurur. Örneğin, A diskinin/disketinin üzerinde
HESAP1.BAS HESAP2.BAS HES.BAS HESAPLA.BAS BASIC.COM kütüklerinin bulunduğunu varsayalım. Kütük ismini HES*.BAS olarak belirttiğimizde
HESAP1.BAS HESAP2.BAS kütükleri göz önüne alınırken, kütük ismini hes*.bas olarak bildirdiğimizde
HESAP1.BAS HESAP2.BAS HES.BAS HESAPLA.BAS kütükleri değerlendirilecektir.
Komut Yazımında Benimsenen Varsayımlar
Aşağıda belirtilen simgeler ileriki satırlarda benimsenen varsayımları ve CP/M'in bazı özel uygulama karakterlerini sıralamaktadır:
() SID ve ED komutları için seçime bağlı bilgileri gösterir. | Seçime bağlı seçenekleri ayırır. n : Bir tamsayıyı belirtir.
<CR> “Return” tuşuna basılacağını belirtir.
^ CTRL tuşuna basılacağını belirtir. El bu tuştan kaldırılmadan bir başka tuşa basılacağı unutulmamalıdır.
o : Bir opsiyon (seçenek) listesini belirtir.
R/W Oku/yaz anlamındadır. R/O Salt-oku anlamındadır. sys Sistem özelliğini belirtir. DIR Fihrist (İng. Directory) özelliğini belirtir. * Karakterler alanı amaçlı kısaltma imi, : Karakter amaçlı kısaltma imi.
CP/M Plus Komutları ve Programları
MAC YAZIM : MAC kütük-ismi
(*seçenekler)
Amaç: MAC, CP/M Plus işletim sisteminin “MACRO Assembler” dilidir. Kullanabilmek için erişilebilir disklerden birinin üzerinde MAC.COM kütüğünün bulunması gereklidir. MAC ile derlenecek assembly dili programlarının diske (diskete) ASM tipiyle kaydedilmiş olması gereklidir. Derleme işlemi sonunda MAC derleyicisi, tipleri HEX, PRN ve SYM olmak üzere 3 ayrı kütük yaratır. HEX tipindeki dosya onaltılık INTEL formatında olmak üzere derlenmiş programı içerir. PRN tipindeki kütük ise ekranda (konsolda) ya da yazıcıda görüntülenebilir nitelikte olup derleme işlemini ve sonuçlarını içerir. SYM tipli kütük ise derlenen programın simge tablosunu taşımaktadır. MAC ile yapılan derleme sonunda ortaya çıkan kütük değişik ortamlara (örneğin disk/disket sürücülerine) yönlendirilebilir. Bir örnek verelim: A sürücüsüne takılı disketin üzerindeki ED.COM ya da Wordstar ile yazılmış kaynak.ASM isimli bir assembler kaynak programını MAC derleyicisini kullanarak derleyelim:
A> MAC kaynak *PZ AA HA
Bu komut ile bilgisayara kaynak ASM kütüğünün A diskinde olduğu, derleme sonucunda oluşan HEX kütüğünün A diskine yazılacağı ve PRN kütüğünün istenmediği bildirilmektedir. Derleme sonucunda A diski üzerinde kaynak.HEX kütüğü oluşacaktır. Derlenen kütüğü çalışabilir makine koduna çevirebilmek için HEX-COM.COM programını kullanmamız gerekecektir. MAC ile kullanılabilecek seçenekler için CP/M Plus El Kitabı'na başvurmak yararlı olacaktır.
RMAC YAZIM : RMAC kütük-ismi
(seçenekler)
AMAÇ: RMAC, CP/M Plus işletim sisteminin yerleştirilebilir (İng. Relocatable) “MACRO Assembler” dilidir. ASM tipindeki dosyaları Rel tipine derler (çevirir). Kullanımı MAC programının kullanımına benzer.
| | |
RMAC ile derlenen kütükleri “LINK.COM” programı ile COM tipine çevirebiliriz. Yukarıdaki örneği yenilersek;
A> RMAC KAYNAK $PZ SARA
Bu örnekte anlatılan, kaynak.ASM kütüğünün A diskinde olduğu, görüntülenebilir PRN kütüğünün istenmediği, simge tablosu kütüğünün ve derlenen program kütüğünün A diskine yazılacağı belirtilmektedir. SID YAZIM :
SID (program-kütüğüismi) (,simge-tablosuismi)
AMAÇ: SID Instruction Debugger), makine kodu düzeyindeki programlarla ilgilenmek, onların hatalarını bulmak, bu düzeyde değişiklik yapmak gibi amaçlarla kullanılacak bir CP/M Plus programıdır. Erişilebilir disklerin birinin üzerinde SID.COM ismiyle kaydedilmiş olmalıdır. “Monitor Program” adıyla anılan program topluluğu içinde düşünülmelidir. Bir işletim sistemi korsanı (!) için olmazsa-olmaz türünde bir yardımcıdır. Digital Research, bu programın kullanımı için ayrı bir döküman (SID-Productivity Tool, Di; tal Research) hazırlamıştır. CP/M'in 2.2 versiyonunda aynı amaçla DDT.COM ismindeki program kullanılmaktaydı. İşte SID ile yapabileceklerinizden bazıları:
(1) Assembler programları yazmak, (2) Belleğin içeriğini düzenlemek, değiştirmek, (3) CP/M'in ve bilgisayarın sistem alanlarını incelemek, değiştirmek (4) Simge tablosu üzerinde işlemler yapmak, (5) Belleğe program yüklemek, değiştirmek ve yeniden saklamak, (6) Makine kodunu Assembly diline geri çevirmek (İng. Disasembiy), (9) Program akışını izlemek, (8) Register'ları incelemek, değiştirmek vs. Ayrıca SID programını HİST.UTL ve TRA-CE.UTL ile birlikte kullanarak üzerinde çalıştığınız program hakkında istatistikler ve histogramlar elde edebilirsiniz. Bazı kullanım örnekleri verelim:
A2 SID
B> SID FATURA.COM
A> SID B:YAZICI.COM
B> A:SID SÖZLÜK.DOK
DIR YAZIM : dil rinci-isim, tip
AMAÇ: Belirli bir diskteki kütüklerin isimlerinin konsolda görüntülenmesi amacıyla kullanılır. DIR komutuyla SYS özelliğine sahip kütükler görüntülenemez. SYS özelliğine sahip kütüklerin isimlerini konsolda görüntüleyebilmek DIRS komutunu kullanmak gerekir Bazı DIR/DIRS örnekleri verelim:
A> DIR
A> DIR B:
A> DIR B:BASIC.COM
A> DIR HES*.BAS
A> DIR HES???.BAS
A DIR *.*
Ap DIR B:HES*.?A?
A> DIRS
A> DIRS*.COM
CP/M Plus sistem disketini incelediğinizde üzerinde DIR.COM ismiyle kayıtlı bir kütüğün bulunduğunu göreceksiniz. Bu program daha önceki versiyonlarda bulunmayan yeni bir seçenektir. CP/M 2.2 versiyonunda SDIR.COM ve STAT.COM olarak bilinen iki programın kimi özelliklerini taşır. Bu yeni komut ile birden çok disk taranabilir ve kütükler hakkında ayrıntılı bilgi elde edilebilir. Birkaç kullanım örneği verelim:
A> DIR (FUUL)
A> DIR B: (DRATE)
A> DIR |USER- ALL,
DRIVE- ALLI
A> DIR *.COB *.FOR
*.PAS
A> DIR A: (RW,SYSI
ED YAZIM : d:kütük-ismi.tip AMAÇ: ED komutu (programı) CP/M işletim dilinin metin editörüdür. Yerleşik bir komut değildir, Kotautu kullanabilmek için erişilebilir disklerden birinde ED.COM kütüğünün bulunması gerekir. ED programının alt komutlarını kullanarak kaynak kütükler yazabilir ve bu kütüklerde değişiklik yapabilirsiniz. Tam ekran editleme olanakları bulunmadığından ancak *Ehven-i Ser” durumlarda kullanılmasını örgütleyebileceğimiz bir programdır. (Dosta not: Bu satırların yazarı bu metni ED.COM kullanarak değil, fakat Wordstar ile yazmıştır!) Her şeye rağmen bazı kullanım örnekleri verelim:
AD> ED CMP3.DOK
AD> ED B:EKRAN.BAS
A> B:ED PERSONEL.COB
A> ED PROFIİLE.SUB
ERA
YAZIM : ERA d:
k-ismi.tip
AMAÇ: Bir ya da bir grup kütüğün diskten silinmesi amacıyla kullanılır. Yerleşik komutlardan biridir. Kütük tanımlamalarında kısaltma imleri kullanılabilir. (Korsana Not: Bu komut gerçekte diskin üzerindeki kütüğü değil, fakat fihristteki kütük kaydını siler; daha doğrusu ilgili kütük kaydına “silindi” işareti koyar. Eğer fiziksel olarak fihriste erişmeyi becerebilirseniz yanlışlıkla sildiğiniz kütükleri geri getirebilirsiniz.) Bazı örnekler vereli,
A> ERA PROG.BAS
B> ERA B:STOK.COB
A> ERA OYUN
A> ERA B:LİSTE.HEX
B> ERA HESAP?.*
A> ERA *.*
ERAGE
YAZIM : ERAGE
ERAGE kütük-ismi ERAGE kütük-ismi İCONFİRM)
AMAÇ: ERA komutu gibi diskten (daha doğrusu fihristten kütük silmek) amacıyla kullanılır. CP/M Plus ile birlikte gelen değişikliklerden biridir. ERA olarak kısaltılabilir. ERA-SE.COM kütüğü olarak kayıtlıdır. *“CONFIRM” seçeneği ile silme seçiminin doğrulanması istenebilir. Bazı.
örnekler verelim:
A> ERAGE KAYNAK.SYS
A> ERA A:HES*.*
ICONFIRM)
A> ERA
PIP YAZIM : Çok zengin bir kullanımı vardır.
ismi — kütük-ismi (seçenekler) PiP kütük-ismi d: (seçenekler) PIP d:BİRİNCİ-İSİM.TİP — kütükkütük-İsmi-2, ... PIP kütük-ismi birimi: — kütük-ismi İseçenekler) PIP kütük-ismi ;birimi — birim: İseçenekler) PIP CR *
AMAÇ: PIP, CP/M'in yerleşik olmayan, geçici olarak belleğe yüklenen programlarından biridir. PIP komutu şu amaçlarla kullanılır:
1) Kütüklerin kopya edilmesi, 2) Kütüklerin birleştirilmesi, 3) Donanım birimleri arasında kütüklerin aktarılması.
PIP komutunun genel formatında birinci kütük tanımlaması, hedef kütüğü belirler. İkinci tanımlama ile kütük belirtilir. Kaynak, kütük tanımları virgüllerle ayrılmak koşuluyla tekrar edilebilir. Böylece çok sayıda kütüğün aynı isim altında birleştirilmesi mümkün olur. Kaynakta hedef kütük tanımlaması yerine herhangi bir mantıksal CP/M birimi belirtilebilir. PIP komutu yalnız başına kodlandığında ilgili program belleğe yerleşir ve * uyarı imini (İng. Prompt) konsola yazarak kütük tanımlaması ve altkomut beklemeye başlar. Şimdi PIP komutunun kullanımı ile ilgili bazı örnekler verelim:
1) Bir disketten diğerine kütük kopyası A> PIP A:=FORMAT.COM A>PIP B:=FORMAT.COM=A: 2) Bir kütüğün kopya edilmesi ve
isminin değiştirilmesi
A> PIP B:PROGO2.BAS-
A:PROGO1.BAS
A> PIP PROGO2.BAS-
PROGO1.BAS
3) Çok sayıda kütüğün kopyalanması A> PIP B:=*.* A> PIP
.* CR
*.DÖK(AV)
A> PIP DÖKÜMAN?
A> PİP
A>PIP
B> A:PIP B> PIP 4) Çok sayıda kütüğün birleştirilmesi
A> PIP B:YENİ.DÖK=KÜTÜK1.DÖK,KÜTÜK2.DÖK 5) Bir kütüğün bir başka kullanıcı alanında (USER) alınıp kopyalanması A> PIP SIC.COM=G3: 6) Dış donanıma ya da donanımdan kütük aktarılması A> PIP RAN.BAS=CON: A> PIP LST:=CON: A> PIP LST:=C:FATURA.PAS[T8] A> PIP PRN:=B:CPM3.DÖK.
PIP.COM programı CP/M işletim sisteminin en yararlanılan servis programlarının başında gelir. Bu programı kullanarak yapabilecekleriniz arasında bilgisayarlar arası haberleşme, metin yazma ve bu metni diskete kaydetme, dosyaları yazıcıya kopyalama gibi çok ilginç işler bulunmaktadır. Komutun tam anlamıyla kullanımını öğrenebilmek için 'CP/M USER'S GUIDE' yararlı olabilir.
B:EK-
RENAME YAZIM : RENAME RENAME yeni-kütük-ismi = eski-kütük-ismi REN di:yeni-kütük-ismi = eski-kütük-ismi
AMAÇ: RENAME komutu, disk üzerinde var olan bir kütüğün isminin değiştirilmesi amacıyla kullanılır. CP/M'in yerleşik komutlarından biridir. CP/M 2.2'de olduğu gibi REN olarak kullanılabilir. Aşağıda bazı kullanım örnekleri verilmiştir.
A> REN
ESKİ.BAK
A> REN
B:STOK1.DAT.B:STOK.DAT
YENİ.DAT-
SEREREK
A> REN
A> RENAME
ARENAME A*.DOK - A*.PRT
Kütük tanımlamaları belirtilmediği takdirde işletim sistemi, size kütük tanımlamalarını soracaktır. Bu CP/M Plus ile birlikte gelen yeniliklerden biridir. SAVE
YAZIM : SAVE
AMAÇ: SAVE komutu CP/M 2.2'nin yerleşik komutlarından biri olan SAVE komutu CP/M Plus'da geçici komut özelliğini taşımaktadır. Bu nedenle SAVE komutunu kullanabilmek için erişilebilir disklerden bir tanesinde SAVE.COM kütüğünün bulunması gerekir. Geçici program alanının (TPA) belirli bir bölümünün belirtilen isimle kütüğe kayıtlanmasını sağlar. Örnek:
A> SAVE
SHOW
YAZIM : SHOW
SHOW (d:)
SHOW (d:) (SPACE)
SHOW (d:) İLABEL)
SHOW (d:) (USERS)
SHOW (d:) (DIR)
SHOW (d:)
AMAÇ: SHOW komutu, geçici komutlarından biridir. Kütükler, disk birimleri hakkında bilgi verir. CP/M Plus'ın bu komutu, 2.2 versiyonundaki STAT komutunun bazı görevlerini üstlenmiştir. SHOW komutunun kullanılabilmesi için SHOW.COM kütüğü bulunmalıdır. Bazı kullanım örnekleri :
1) Disklerdeki boş yer miktarını öğrenme A> SHOW (SPACE) 2) Disk sürücü özellikleri A> SHOW (DRIVE) 3) Kullanıcı alanları hakkında bilgi edinme A> SHOW (USERS) 4) Boş fihrist elemanı sayısını öğrenme A> SHOW (DIR)
SUBMIT YAZIM :
SUBMIT SUBMIT kütük-ismi SUBMIT kütük-ismi parametre ... parametre
AMAÇ: Geçici komutlardan biridir. SUB tipinde bir kütükte depolanmış olan CP/M komutlarının sırayla işlenmesi amacıyla kullanılır. Kütük tanımlamasını izleyen parametreler alanında kullanılan kütüğe değişik ek bilgiler (disk sürücü ismi, kütük ismi gibi bilgiler) aktarılabilir. Böyle bir durumda .SUB kütüğü içinde $1, $2, ... gibi yapay parametrelerin tanımlanmış olması gerekir. CP/M Plus “BOOT” edildiği anda disk üzerinde SUBMIT.COM ve PROFILE.SUB kütükleri bulunuyorsa, açılış (BOOT) işleminin tamamlanmasından hemen sonra PROFILE.SUB kütüğündeki komutlar işlenmeye başlanır. Dolayısıyla SUBMIT komutu CP/M altında sıralı işleme (Batch Processing) ve kendiliğinden-başlama (Auto Start) amaçlı olarak kullanılabilir. Örnekler:
A> SUBMIT ÖRNEK
A> SUBMIT B:AÇILIŞ
A> SUBMIT PROFİLE B: DIR
TYPE
YAZIM :
TYPE
TYPE
isim.tip
TYPE kütük-ismi
TYPE kütük-ismi
INOPAGE)
AMAÇ: TYPE komutu, CP/M'in 2.2'nin ve Plus'ın yerleşik komutları arasındadır. Bunun yanında CP/M Plus işletim sistemi altında, PAGE ve NOPAGE seçenekleri ile birlikte kullanılabilen ve TYPE.COM kütüğünde içerilen yeni bir biçimi daha vardır. Bu komut, ASCII formatında yazılmış kütüklerin konsolda görüntülenmesi amacıyla kullanılır. TYPE ile birlikte kısaltma imleri (* ve ?) kullanılamaz. TYPE komutundan önce CTRL-P girilmesi halinde konsoldan geçen liste bilgiyazara aktarılır; yeni bir CTRL-P tuşu yazıcıya aktarımı keser. TYPE işleminin durdurulması için herhangi bir tuşa basılması yeterlidir. Örnekler:
A>TYPE SÖZLÜK.DÖK A>TYPE A:DÖKÜMAN.001 A>TYPE PERSONEL.BAS A> TYPE B:PROGRAM.COB A>TYPE İRSALİYE.PAS [NOPAGE] A> TYPE ALACAK.FOR
USER YAZIM : USER
USER n
AMAÇ: Geçerli kullanıcı alanının verilen n no.lu kullanıcı alanı ile değiştirilmesi amacıyla kullanılır. Geçerli kullanıcı alanları 0 ile 15 arasındadır. CP/M açılışta 0 no.lu kullanıcı alanını varsayar. SHOW (USERS) geçerli ve etkin kullanıcıları görüntüler. Örnek:
A>USER 3
Bu komutun işlenmesi ile CP/M uyarı iminin işaretinin,
3A> biçimini aldığı görülür. Yine bu özellik, CP/M Plus'ın getirdiği değişikliklerden biridir.
COPYSYS YAZIM : COPYSYS AMAÇ: CP/M Plus işletim sisteminin açılış (BOOT) izlerini (TRACK) bir disketten diğerine kopya etmek amacıyla hazırlanmış bir yardımcı programdır. CP/M 2.2'de kullanılan SYSGEN işleminin yerini alan bu işlem, Commodore 128/128D gibi sistemlerde kullanılmaktadır. Açılış izlerinin yaratılması işlemi, “Format” işlemiyle birlikte gerçekleştirilmektedir.
DATE YAZIM : DATE DATE CONTINUOUS DATE zaman-ifadesi
DATE SET
AMAÇ: Zaman ve tarihin belirlenmesi ve görüntülenmesi amacıyla kullanılan bir komuttur. Kullanılabilmesi için DATE.COM isimli kütük erişilebilir olmalıdır. Kullanım örnekleri aşağıda özetle verilmiştir: A> DATE A> DATE C A> DATE 10/08/86 23:23: A> DATE SET DEVICE YAZIM : DEVICE DEVICE NAMES DEVICE VALUES DEVICE mantıksalbirim (XON ; NOXON ; baud-oranı) DEVICE fiziksel-birim
(XON ; NOXON ; baud-oranı) DEVICE (XON ; NOXON ; baud-oranı) DEVICE mantıksalbirim - fiziksel-birim (seçenek) (,fizikselbirim (seçenek)... ) DEVICE mantıksalbirim NULL DEVICE CONSOLE (PAGE) DEVICE CONSOLE COLUMNS -n, LINES- NO
AMAÇ: Kullanılabilmesi için DEVICE.COM kütüğünün bulunması gerekir. Mantıksal birimler (LOGICAL) ve fiziksel birimler (PHYSICAL DEVICES) arasındaki atamaları (eşlemeleri) sağlar. Bir başka deyişle CP/M Plus'tan önceki CP/M versiyonlarında bulunan STAT.COM programının görevlerini üstlenmiştir. Seri haberleşme işleminde, yazıcı ve ekran ile ilgili işlerde sıkça kullanılan komutlardan biridir. Özet olarak bazı örnekler verirsek:
Ay DEVİCE
A> DEVİCE NAMES
Ay DEVİCE VALUES
A> DEVİCE CRT
A> DEVİCE CON
A> DEVİCE CONDUT:—-LPT,
CRT
A> DEVİCE AUXIN: - CRT2
IXON,9600)
A> DEVİCE LİST: - NULL
A> DEVİCE LPT (XON,4800)
A> DEVİCE CONSOLE
IPAGE)
A> DEVİCE CONSOLE
400
Commodore 128/128D sistemlerinde CP/M Plus altında 40/80 kolon ekran özelliklerini DEVICE.COM programını kullanılarak değiştirebileceğinizi hatırlatalım.
DUMP YAZIM : DUMP kütük-ismi AMAÇ: Bir kütüğün içinin ekran ve/veya yazıcıya ASCII ve onaltılık formatta dökümü amacıyla kullanılan bir servis programıdır. Çoğu zaman işlem SID.COM kullanılarak yapılabildiğinden pek yoğunlukta kullanılan bir program değildir. Kullanılabilmesi için DUMP.COM kütüğünün erişilebilir disklerde olması gerekir. Örnek:
Ay DUMP CPM3.DOK
GENCOM
Yazım formatını ve amacını ayrıntılarıyla ele almayacağımız GENCOM.COM programı, CP/M Plus işletim sistemine RSX (Resident SYSTEM Extensions) denen bazı eklemeler yaparken kullanılan bir yardımcıdır.
GET YAZIM : GET (CONSOLE INPUT FROM) FILE kütük-ismi (seçenekler) GET (CONSOLE INPUT FROM) CONSOLE AMAÇ: Bilgisayar sisteminin konsol girdilerini belirtilen bir kütükten almasını sağlamak amacıyla kullanılır. Komut, GET.COM kütüğü ile oluşturulmuştur. Daha önceki CP/M versiyonlarında kullanılan XSUB.COM programının genişletilmiş bir biçimidir. Bazı örnekler:
A> GET FİLE girdiler
A> GET CONSOLE
PUT YAZIM : PUT CONSOLE (OUTPUT TO) FILE kütük-ismi (seçenek) PUT PRINTER (OUTPUT TO) FILE kütük-ismi (seçenek) PUT CONSOLE (OUTPUT TO) CONSOLE PUT PRINTER (OUTPUT TO) PRINTER
AMAÇ: Konsol ya da yazıcı çıktısının bir kütüğe ve tekrar konsol ya da yazıcıya yönlendirilmesi işleminde kullanılır. Komutu PUT.COM kütüğü oluşturur. Örnekler:
AŞ PUT PRİNTER OUTPUT
TO FILE YAZICI
(ECHO,SYSTEM)
A> PUT PRINTER OUTPUT
TO PRİNTER
EE
HELP YAZIM : HELP HELP konu HELP Konu alt-başlık HELP konu HELP konu alt-başlık- 1... alt-başlık-8 HELP konu HELP
AMAÇ: CP/M Plus işletim sistemi ve ilgili komutları hakkında yardımcı bilgi vermek amacıyla hazırlanmış bir yardım programıdır. İşletim sistemi disketleri üzerinde kullanıcıya sağlanmıştır. Örnekler:
A> HELP
Ay HELP GET
A> HELP HELP
A> HELP DIR OPTİONS
A> HELP SET EXAMPLES
HELP PUT
HEXCOM VE LINK YAZIM : HEXCOM kütük. LINK kütük-ismi (seçenekler) LINK kütük-ismi (seçenekler) ... kütükismi ismi
(seçenekler) LINK kütük-ismi (seçenekler) — kütük-ismi (seçenekler)
AMAÇ: Her iki program, HEX-COM.COM ve LINK.COM biçimlerinde bulunmaktadır. MAC ve RMAC ile derlenen kütüklerin çalıştırılabilir makine koduna (COM tipine) dönüştürülmesi amacıyla kullanılırlar. Örneğin:
A> HEXCOM B:KAYNAK
A> LINK B:KAYNAK3
A> LINK PROG-PROGI,
PROG2,PROG3,PROG4
INITDIR YAZIM : INITDIR d: AMAÇ: Disk fihristinde kütüklere zaman ve tarih etiketlerinin eklenmesini olanaklı kılar. Bu komut ancak INITDIR.COM kütüğü olduğunda kullanılabilir; çünkü yerleşik değildir. Örnek:
A> INITDIR
LIB YAZIM : LIB kütük-ismi (seçenekler) LIB kütük-ismi (seçenekler) — kütük-ismi (modül) (,kütük-ismi (modül) ...)
AMAÇ: DIGITAL RESEARCH ya da MICROSOFT tarafından yazılmış dillerle (örneğin RMAC gibi) hazırlanmış ve derlenmiş programların COM tipine dönüştürülmesi işlemi sırasında bazı hazır modüller bunları depolayan kitaplıklardan (LIBRARY) doğrudan alınıp kullanılabilir. Bu derlenmiş program kitaplıklarının hazırlanmasında kullanılan programlardan biri de LIB.COM programıdır. Bu tip programlar genel olarak “Kitaplık Düzenleyicisi” (LIBRARY MANAGER) olarak anılırlar. MICROSOFT tarafından yazılan LIB-80 bu türe ilişkin örneklerden bir diğeridir. SET YAZIM :
SET (seçenekler)
SET d: (seçenekler)
SET kütük-ismi
SET
İseçenek — seçenek-
değeri)
SET kütük-ismi
— seçenek-
değeri)
SET (d:)
İCREATE- ON ;
OFF)
SET (d:)
ON ; OFF)
SET (d:)
(UPDATE-ON ;
OFF)
AMAÇ: CP/M Plus işletim sisteminin özelliklerinden olan şifre (PASSWORD) düzenlenmesi ve kütüklerin zaman-etiketlenmesi (TIME STAMPING) amacıyla kullanılan bir komuttur. CP/M 2.2'de STAT komutu ile gerçekleştirilen, kütüklere R/W, R/O, SYS, DIR özelliklerinin kazandırılması işlemi, CP/M Plus sistemi altında SET.COM programı ile yerine getirilir. Örnekler verelim: 1) Etiket (LABEL) işlemleri A SET (NAME=CPMOOI) A SET (PASSWORD=şifre) 2) Şifre (PASSWORD) işlemleri 3) Kütük özellikleri değiştirme işlemleri
Ay Set kaynak.ASM (RO
SYS)
Ay SET kaynak.COM (DIR)
4 Zaman-tarih etiketi işlemleri
A> SET |ACCESS- ON)
Ay SET (CREATE-ON)
5) Sürücü özellikleri
Ay SET B: (RW)
A> SET A: (ROJ
SETDEF
YAZIM : SETDEF SETDEF (d:) SETDEF d: (, d: (, d: SETDEF (ORDER = (tip )) SETDEF (DISPLAY ; NODISPLAY) SETDEF (PAGE ; NOPAGE)
AMAÇ: Kütüklerin disklerde aranma sırasının ve geçici kütüklerin yaratılacağı diskin belirlenmesi işlemi SETDEF.COM programı ile yapılmaktadır. SETDEF komutu ayrıca işlenmek üzere aranacak kütüklerin tiplerini sıralama işleminde de kullanılır. SUBMIT ile etkin hale getirilen program isimlerin görüntülenip görüntülenmemesi yine SETDEF komutu ile ifade edilmektedir. Örnekler:
A> SETDEF
A> SETDEF
— B:)
A> SETDEF B:,*
A> SETDEF (PAGE)
A> SETDEF -
(SUB,COM))
A> SETDEF (NO DISPLAY)
XREF YAZIM : XREF (d:) kütük-ismi
(SP)
AMAÇ: XREF.COM programı, DIGITAL RESEARCH Firması kaynaklı programlama dilleri ile yazılmış ve derlenmiş programlarda kullanılan etiket ve değişkenlere ilişkin çapraztablonun (İng. REFERENCE TABLE) çıkarılması işleminde kullanılır. XREF programı sonuç olarak tipi “XRF” olan bir kütük yaratır. Örnekler:
A> XREF B:ıKAYNAK
A> XREF A:KAYNAK $P
SÜRECEK Bu yazımızda CONTROL-PORT ile ilgili
Ayhan KALAYLIOĞLU bir uygulama yapacağız. Bu giriş yalnızca JOYSTICK kabul etmiyor. Yapılabilecek başka uygulamalara örnek olarak biz burada size kendinizin yapıp çalıştırabileceği bir
LIGHTPEN'den bahsedeceğiz.
Commodore 64'ümüzün birinci CONTROL-PORT'unun pek çoğumuzun bilmediği bir fonksiyonu daha var. Gerçekten de pek fazla kullanım alanı bulamayan bu fonksiyon aslında oldukça ilginç özellikler taşıyor ve bilgisayar kullanımına yeni bir bakış açısı getirebilir. Bahsettiğimiz fonksiyonu gerçekleştiren 6 numaralı pin'den başkası değil. Bu pin'in iki değişik fonksiyonu var. Birincisi JOYSTICK'in ateş etme tuşu ile ilgili bilgiyi taşımak. İkincisine ve daha ilginç olanına aşağıda değineceğiz. Belki daha evvel duymuş veya görmüş olabileceğiniz bir uygulamadan söz edeceğiz. Bu uygulama bir YAZILIM + DONANIM ünitesi ve yaptığı iş ise monitör veya televizyon ekranını doğrudan bir bilgi giriş aracı olarak kullanabilmeyi mümkün kılmak. Bu uygulama yardımıyla ekranın üzerine kâğıda çizer gibi aynı rahatlıkla çizim yapmanızı veya ekrandan, doğrudan üzerine götürüp seçmek suretiyle bir programın menü veya değişik altfonksiyonlarının seçimini rahatça yapmanızı sağlıyor. Bu görevi gören aletlere LIGHTPEN denip aynı zamanda C-64 ve VIC 20'ye uygulanabilen modelleri de mevcut. Gerek donanım gerekse yazılım açısından incelendiğinde oldukça basit olduğu gözlenen bu uygulamayı kendimiz de yapabiliriz. Zaten yazımızın asıl konusu da bu. LIGHTPEN'in donanım kısmının en önemli parçası fototransistör veya fotodiyot diye adlandırılan elektronik bir ünite. Fototransistör görev itibarıyla gelen ışığın şiddetine göre elektriksel sinyaller üretiyor. Fototransistör'ü uyaran ışık ise ekrandan gelen elektron ışınlarından başkası değil. Ekranın önünde duran fototransistör ise elektron ışını önünden geçerken oluşan kısa süreli ışık darbesini algılar ve diğer elektronik ünitelere işlenmek üzere elektriksel sinyaller olarak gönderir. LIGHTPEN'in çalışması için ekranın belli bir ölçüde parlaklığa sahip olması gereği de bundandır. LIGHTPEN'den bilgisayara bir sinyal geldiğinde bilgisayar, elektron ışını hangi pozisyonda iken sinyalin gönderildiğini kaydeder. Böylece bilgisayar herhangi bir programın kullanabilmesi için LIGHTPEN'in ekran üzerindeki X- ve Y- koordinatlarını belirlemiş olur. Herhangi bir program yazmaya kalkışmadan önce kendimize bir LIGHTPEN bulup bilgisayarımıza bağlamalıyız. Yukarıda da dediğimiz gibi öncelikle bir ihtiyacımız olacak. Biz burada verdiğimiz devrede TIL78 model fototransistör'ü kullandık. Devremizde kullanılacak tüm parçalar şu anda piyasada elektronik malzeme satan mağazalardan rahatça temin edilebilecek biçimde seçilmiştir. Bu devrede fototransistör yerine LDR adlı elektronik malzeme tipini kullanmanızı önerenler olursa kesinlikle dinlemeyin. Her ne kadar bu iki tip elektronik elemanın görevleri ve fonksiyonları birbirine benzerse de karakteristikleri oldukça farklıdır. Şayet devremizde LDR kullanacak olursak bu parça oldukça yüksek hızda hareket eden elektron ışınını takip etmek için çok yavaş kalacak ve devremiz yüzde yüz çalışmayacaktır. Şayet şans eseri daha evvelden beri bir LIGHTPEN'e sahipseniz; buradaki devreyi yapmanıza gerek kalmadan aynı üniteyi kullanıp burada anlatacağımız denemeleri yapabilirsiniz.
Şimdi fototransistör'ü nasıl kullanıp, nasıl bağlayacağınızı anlatalım. TIL78 model fototransistör'ün iki bacağı vardır. Bunlar “Kollektör” ve “Emiter” diye adlandırılır. Bu bacaklardan hangisi hangisidir ve ne işe yarar? Bunu öğrenmek için üç yol var. Bunlardan birincisi acemi bir elektronikçiyseniz sizin için en uygun olanı: Fototransistör'ü satın aldığınız dükkandaki kimselere sorup anlattıracaksınız. Geriye kaldı iki çözüm: Fototransistör'ün üst kılıfının kollektör tarafı biraz düzleşmiş bir şekle sahiptir. Bundan başka kollektör bacağı ötekine göre daha kısadır. Gelelim üçüncü yönteme: Bu yöntemi daha evvel de duymuş olmalısınız. Adı deneme yanılma yöntemi. Devrenin fototransistör dışında geri kalan kısmı monte edilir ve fototransistör iki ihtimale tâbi tutulur. Şayet herhangi bir kısa devreye sebep olmazsanız devrenin hiçbir bölgesi gerek doğru gerek yanlış bağlantıdan zarar görmeyecektir. Fakat bu yönteme çok zorda kalmadıkça başvurmamanızı öneririz.
'nun üzerine çizim yapabiliyorsunuz. Programı yazın, bir yerde saklayın (SAVE edin); daha sonra da çalıştırın. Program çalışır çalışmaz ilk olarak size basılan noktaların kalıcı olup olmaması gerektiğini soracaktır. Orada belirtilen harflerle cevabınızı bilgisayara bildirin. Birkaç saniye sonra ekran tümüyle silinip beyaza bürünecektir. Ekranın rastgele bir yerinde ise küçük bir dörtgen belirecektir. Fototransistör'ü elinize alıp ekrana değdirin. Küçük dörtgenimiz LIGHTPEN'imizi takip edecektir. Dikkat edilmesi gereken bir husus da tuş takımı ve LIGHTPEN'in birbirlerini daimi rahatsız ettikleri (bunun nedeni joystick-port'un tuş takımı ile aynı chip'e bağlı olması). Rastgele birkaç tuşa dokunduğunuzda göreceksiniz ki küçük dörtgenimiz çılgın gibi oraya buraya zıplamakta. Benzer şekilde bilgisayar direkt mod'dayken LIGHTPEN'i takılı vaziyette ekran üzerinde gezdirirseniz ekrana bilumum saçmasapan karakterler çıkacaktır. VİC 20 kullanıcıları bu sorunla nun LIGHTPEN'inizi çalıştırabilmesi gerekir. Buna rağmen program çalışmıyorsa suçu devrede olabilecek küçük bir kısa devrede aramak gerekir. Şayet elektronikten pek anlamıyorsanız anlayan birine başvurmanız önerilir; bunun sizin probleminizin çözümünde faydalı olacağına inanıyorum. Parça listesinde tüm parçaların isimleri verilmiştir. Fakat bu yazı içindeki tüm açıklama ve anlatımlar öğreticilikten çok elektronikten anlayan kimseler seviyesindedir. Size tavsiyemiz şimdiden daha sorunlar çıkmadan böyle birini bulup yardım istemenizdir. Yoksa işi iyice çorba edip ortalığa zarar verip geri dönülmeyecek yerlere gelebilirsiniz. Gelelim devreye: NE555 tipinde bir IC (Integrated Circuit — Entegre devre) içermekte. NE555 devremizde monoflop görevi yapmakta. Monoflop'un 2 numaralı bacağına kısa bir negatif impuls geldiğinde, monoflop kısa bir süre çalışma durumunda kalır ve hemen peşinden (pasif) duruma geçer. 2 numaralı bacağa (trigger bacağı)
Deneme ve gösteri amacıyla | karşılaşmayacaklardır. Çünkü VIC | çer. 2 numaralı bacağa (trigger baca- LİGİ ill EN Tt O ma dökü CONTROLPORT NE 555 PN 6 ia KOLLEKTÖR KOLEKTÖR İZ. BŞ i ! Bc | EMİTER PIN 8 (GND) | EMER BASKILI DEVRE FOTOTRANSİSTÖR JOVSTİK GİRİŞİ
“LIGHTPEN DEMO” adlı bir program yazdım. Joystick Demo programlarına oldukça benzeyen bu program LIGHTPEN vasıtasıyla ekrana noktalar basmakta. LIGHTPEN'i ekranın neresine götürürseniz o koordinatta noktalar oluşmakta. Böylece doğrudan (dolaysız olarak) ekran sizin bilgi giriş aracı oluyor ve doğrudan o
20'de tuş takımı ve LIGHTPEN ayrı kanallarda çalışmaktadır. Şayet ilk çıkan dörtgeni hareket ettiremiyorsanız bunun birçok nedeni olabilir: Programı doğru yazmış ve LIGHTPEN'i kusursuz monte etmiş olsanız bile ekrandan LIGHTPEN'imize yeterli ışık gelmiyor olabilir. Ekranınızın parlaklık ayarını arttırın; buna gelecek darbeleri demin değindiğimiz fototransistör sağlar. Elektron ışını ekranda fototransistörün bulunduğu pozisyondan geçerken fototransistör kısa süreli bir negatif impuls gönderir, bu impuls monoflop tarafından bilgisayarın değerlendirebileceği sinyallere çevrilir, bu sinyal bir transistör tarafından kuvvetlendirilerek bilgisayara gönderilir. En sonda bulunan kuvvetlendirici kat sayesinde LIGHTPEN'imizin karanlık ekranlarda da çalışabilmesi sağlanmıştır. Fakat gene de değişik karakteristikteki ortamlarda devremizin hâlâ çalışmasını sağlamak için bir de ayar (kalibrasyon) noktası koyduk. Bir megaohm'luk trimpot tipi direncin sağladığı bir ayarla oynayıp optimal sonucu elde etmeye çalışın. Ayar yapmak oldukça basit: Trimpot'unuzu LIGHTPEN'inizin düzenli çalıştığı bir noktaya kadar çevirin. Bir kiloohm'luk direnç, kuvvetlendirici transistörümüz için bir öndirençtir. Devrede geri kalan elemanların görevi ise monoflop'un çalışma seviyesinde kalıp geriye (pasif seviyeye) düşmesi arasında geçecek zamanı ayarlamaktır. Şimdi de programımızı daha yakından görelim. 390 ve 400'üncü satırlarda renk hafızası sıfırlarla doldurulup boş ekranın siyah renk alması sağlanıyor. LIGHTPEN'in pozisyonu bilgisayar tarafından gerek X- gerek Y- koordinatları olarak dokuz bit hassasiyetle algılanmakta. X- koordinatının üst sekiz biti 53267 adresli hafızada bulunmaktadır (VIC 20'de 36871). X- değerinin sıfır numaralı bit'ine ulaşamıyoruz. Bu yüzden LIGHTPEN'le yapılan çizimin hassasiyeti hiçbir zaman iki bitişik noktanın altına inemiyor. Fakat bu hassasiyet düşük çözünürlüklü grafik (bir karakter — bir nokta) için yetip de artıyor bile. 440'tan 470'inci satıra kadar olan bölümde X- ve Y- koordinatları beşer kere okunup aritmetik olarak toplanıyor ve 480'inci satırda bu toplamlar beşe bölünüyor. Yani kısacası beş noktalık örnek okunup bunların ortalaması alınıyor. Bu işlem okunan değerleri stabil hale getirmek için kullanılıyor, çünkü yapılan denemeler göstermiştir ki bilhassa X- değeri aşırı derecede oynamaktadır. Bunun yanında Y- koordinatı daha sakin bir davranış örneği göstermektedir.
510 ve 520'inci satırlarda okunan değerler ekran koordinatlarına çevriliyor. Şayet kendiniz başka bir program yazıp, o programı LIGHTPEN'inizle çalıştırmak istiyorsanız bilhassa bu programın bu kısımlarını değiştirip bazı denemeler yapmanız gerekmektedir. 540'ıncı satırda ise okunan değerler kontrol edilmekte. Bu kontrolün yapılması bilhassa aşırı derecede oynayan X- değeri yüzünden ayrı bir önem kazanıyor. Geri kalan satırlar ise oldukça tanıdık tipte olduğu için açıklamaya gerek duymuyorum.
İkinci programımız LIGHTPEN ile yapılan başka bir uygulamayı gösteriyor. Burada LIGHTPEN çizmek için değil de bir programın menülerini seçmekte kullanılıyor. Y- değerimiz daha bir güvenilir olduğundan burada yalnızca onu kullanacağız; yani bizim için önemli olan yalnızca vertikal pozisyon. Bu programın yaptığı iş ise C64/VIC 20'nin üç ses kanalından birini seçmenizi sağlıyor. Her kanal değişik frekansa ayarlanmış durumda olduğu için seçiminizi aynı zamanda kulağınızla da hissedebilirsiniz. İstediğiniz kanalı ekranda o kanala ait alanı LIGHTPEN'inizle işaretleyip belirtebilirsiniz. 470'inci satırda LIGHTPEN'in Y- pozisyonu okunuyor. 490'ıncı satır ve devamında seçilen kanal ve ona ait frekans belirleniyor. Şayet aynı kanalı bir kere daha seçerseniz 550'inci satır sayesinde o kanalın bir kere daha çalışması engelleniyor. Böylece kanalın susup yeniden çalışmasından oluşabilecek gürültüler engelleniyor. Şayet LIGHTPEN'inizi kendi yazdığınız programlarda da bol miktarda kullanmak istiyorsanız, fototransistör kısmını düzgün bir kılıf içine yerleştirmeniz gerekiyor. Bunun için eski bir tükenmezkalem veya dolmakalem kılıfını kullanmak en rahatı olacaktır. Kılıfın içini boşaltın (yani kalemi katledin), fototransistörünüzün bacaklarına uzatma amacıyla çift hatlı bir kablo lehimleyin; lehimlenen uçları ve çevresini izole edin ki herhangi bir kısa devreye sebep vermesin. Kısa devre herhangi bir zarar vermeyecektir. Fakat böyle bir durum fototransistörü devre dışı bırakacağından devremiz çalışmayacaktır. Fototransistörü kılıfa sokun ve nazikçe arka tarafından itin. İtme işlemini fototransistör diğer uçtan görününceye kadar sürdürün. Bu arada fototransistörün ve bağlantılarının zarar görmemesine dikkat edin. Dikkat etmeniz gereken başka bir husus da fototransistörün “gören” yüzünün dışarı doğru dönük olmasıdır. Fototransistörü bu pozisyona getirdikten sonra sabitleyin (yapıştırmak veya sıkıştırmak vasıtasıyla). Gelelim kalemimizin ışık alacak ağzının büyüklüğüne: Bu delik ne kadar küçük olursa LIGHTPEN'imiz koordinatları o kadar doğru algılar. Fakat bu delik gene de LIGHTPEN'imize çalışması için gerekli ışığı geçirmelidir. Gerek bu deliği büyüterek gerek monitörümüzün veya televizyonumuzun parlaklık ayarıyla oynayıp uygun bir çalışma noktası bulun. Böylece gerçek bir LIGHTPEN'e sahip olunuz.
00100 REM <CİTE> 00100 REM
REM * * REM *
REM * * <e26> REM * LİGHTPEN *
00130 REM * - - * 00130 REM * > - *
00148 REM * * 00140 REM * *
00150 REM * DEMO * ©0150 REM * SOUND *
00160 REM * * 00160 REM * - * <e08>
00170 REM * * 00170 REM * *
00186 REM * BY AYHAN — <209> ©0180 REM * BY AYHAN —
00180 REM * * <a38> ©0180 REM * *
REM * — 26.10.1886 SUNDAY * <138> REM * 26.10.1886 SUNDAY * <i38>
60210 REM * * REM *
REM * FOR MAGAZİNE 'COMMODORE' * REM * FOR MAGAZİNE 'COMMODORE' «
REM * * ©0230 REM * * <e23>
00240 REM 00240 REM
: <100> : <ese>
00260 REM İNFORMATİON 00260 REM ORAL SCREEN
00270 PRİNT NOKTALA ©0270 POKE 53281,1 : POKE 53280,3
R HER" 00280 PRİNT S
00282 PRİNT SILINSIN MI ECİNİZ <a18>
cese> ©0280 PRİNT
#0280 PRİNT VEYA <R <ara>
<esa> FOR | s1 TO 3 <145>
60300 GET AS 1 İF AS 4 ** THEN 300 <238)> 00310
00310 IF TKEN L 00320 PRİNT “<2SPACE)B B SES KANALI <086>
00330 PRİNT
00330 REM İNİTİRLİZİNG 60348 NEXT | <17e>
60340 POKE 53280,0 : POKE S3281,1 60350 <esı>
00356 PRİNT "<CLR>" 1 A 1824 1 40 <238) 00360 REM İNİTİALİZE
00360 C 1 D * 53267 00370 TI * 4 1 Sİ « Sda72 <a38>
00370 <018> 60380 FOR | 1 TO 16 <816>
00380 REM FİLL COLOR MEMORY 00390 READ ALE
©0380 FOR | « TO 56285 00400 POKE SİYA B <ea7>
80400 POKE 1,6 1 NEXT 1 <o26> NEXT
00410 DATA 24,15, 0,207, 1,50, 7.207 <ara>
00420 REM READİNG THE VALUES 00430 DATA 8,100, 14,207, 15,150, 6,240 <138>
00430 REM ANO STABILİZİNG ©0440 DATA 13,240, 20,240 <173>
00440 FOR | 1 TO 5S 00450
00450 X * X * PEEK 00460 REM *** ASK LİGHTPEN POSİTİON <186>
60460 Y Y * PEEK ©0470 Y « PEEK (53268)
00470 NEXT | <asa>
X İNT 1 YS İNT 00490 REM CHECK POSİTİON
IF Y > 78 AND Y< Si THEN Ta
00500 REM * CONVERTİON TO COORDİNATES « <osa>
00510 KX * INT <ısa> 00516 IF Y > 118 AND Y< 131 THEN TE
KY * INT (<Y-45)/189040) bu
00530 : IF Y > 188 AND Y< İZİ THEN Ta
00540 REM CHECK COORDİNATES 18 <ıza>
80550 IF KK < O THEN KX © <a18>
IF O THEN KY s8 <ase> 00540 REM ** CHANGE THE SOUND CHANEL
00578 IF KX > THEN KX <e7a> 00550 IF Ta Tİ THEN 468 <136>
08588 IF KY THEN KY <e31> 00560 POKE
: <a37> 00570 POKE Sİ*TE İZ
00600 REM CLEAR/SET POİNT 00580 <aes>
08610 IF L © THEN POKE <078> 00580 REM VALUES & RETURN <037>
POKE 160 <ısa> TI « Ta
00630 : <ası> GOTO 460 <1se>
00640 REM NED VALUES & RETURN <087>
KA * KK 1 YA X YS O
GOTO 428 <ise> 00640
60670 <ass> 00650 REM
60680 <ass> ©0660 REM CHANGES FOR VİC 80 <238)>
* <108> 00670 REM
00700 REM REM
00710 REM CHANGES FOR VIC 80 <033)> 60680 REM DELETE 370-440!
00720 REM 88708 REM İn
80730 REM <155> REM NOW TYPEt
©0740 REM REPLACE THESE LİNES REM
00750 REM 00730 REM 270 POKE 36878,27 <ısa>
00760 REM 340 POKE 36879,24 ©0740 REM 370 T2 * 36874 : POKE 36878,15 <153>
00770 REM 358 PRİNT B 00750 REM 478 Y « PEEK 36871)
<185> 00760 REM 508 IİFY<
00780 REM 360 : <a17> ©
00798 REM 390 FOR | TO 38905 60770 REM IİFY<CLOSE
60800 REM KX İNT
B0810 REM 526 KY * INT <ısa> 00780 REM 520
REM 8
00830 REM IF YOU WANT TO SAVE <814> 00780 REM 568 POKE Ti ,© <ise>
REM THİS PROGRAM YOU SHOULD ©0800 REM 570 POKE <ese>
00850 REM REFORMAT LİNES 270-290