HARDWARE DERSANESİ

İyi günler, Bu ayki konumuz, Hacker'lık. İngilizce'de argo anlamı, gizli bir bilgiyi çalmak için yapılan uğraşı. Sözlük anlamı ise; Para için yazan kötü yazar. Tabii ikinci anlamının bir alakası olmadığından (!) biz birinciyi inceleyeceğiz.

Hayat ne kadar güzel. Sobamın tüpü bitti. Dışarıda kar yağıyor. İçerisi buz gibi. Üstüme örttüğüm battaniyenin içinde, yazımı yetiştirmeye çalışıyorum. Bunlar yetmiyormuş gibi telefon da bozuldu. Kimseyle haberleşemiyorum. Televizyonun anten kablosu 3 aydır kısa devre vaziyette durduğu için, ondan da hayır yok. FM radyom kendi çapında müzik paraziti yayıyor ve ben, delirmek üzereyim. Dışarıda neler oluyor. Hükümet değişti mi? Ya savaş ne oldu Irak mı, yoksa İran mı kazandı? Üşümemek için titremesini bilmek gerekirmiş derler. Ben hem titriyorum, hem de üşüyorum. Şu anda yapmak istediğim tek şey elimdeki şu video kasedi, videoya takmak. Ancak bunun için battaniyenin içinden çıkmam gerekiyor. Bir hamle yapıyorum! Ihhhh... Olumsuz bir deneme. Haydi, bunu başarabilirim. Bir defa daha... Videoya doğru ilerliyorum, bu arada hayatım gözlerimin önünden geçiyor. Kaseti takıyor ve Carl Lewis'ten daha hızlı bir şekilde battaniyeye doğru koşuyorum. Bu bir ölüm kalım meselesi. Her zaman olduğu gibi son anda battaniyenin içine atlayarak donmaktan kurtuluyorum. Ama o da ne? Tanrım inanamıyorum video'nun uzaktan kumandasını orada unuttum. Hayallerim, aşkım ve ben. Artık her şey bitti. Haiti, Hawai, Kanarya adaları, ekvator hepsi ama hepsi kasetteki filmde vardı. Bu ısınmak için tek kurtuluşumdu, ama bir saniyeli! Yapacak ikinci bir alternatifim daha var. İnin... işte, videonun uzaktan kumandasının çalıp bilgisayara kaydettiğim dataları. Bilgisayarın çıkışına bağladığım, modüle edici elektronik devre yardımıyla bunları videoya gönderebilirim. Artık üşümeye paydos. Yaşasın Hawai ve Hawai'li güzel kızlar.

Yapacağımız bu Hack devreleri vasıtasıyla bilgisayarı bir uzaktan kumanda aracı olarak kullanabiliriz. Örneğin videomuzun uzaktan kumandasının tüm işlevlerini bilgisayara yaptırabiliriz. Sadece bununla kalmayıp babanızın arabasının kapılarını açıp, arabanın alarmını iptal edebilirsiniz. Babanızın milyonlar verdiği o alarm sisteminin hiçbir işe yaramadığını anladığı andaki suratının fotoğrafını çekmek kadar güzel daha başka ne olabilir ki? Eğer bu fotoğrafı çekerseniz, lütfen bir kopyasını da bana gönderin. Eğer bir profesyonelseniz alarm sistemlerini iptal ettiğiniz arabaları çalabilirsiniz. Ancak bu yazının yazarı olarak, çaldığınız arabaların fiyatının yüzde 20'sini bana göndermediğiniz sürece, bu devre ile oluşacak zararlardan hiçbir mesuliyet kabul etmiyorum. Bu devre ile oluşacak zararın hepsi, devreyi yapana aittir.

Gelelim devremize. Devremiz bir infrared alıcı devresi ve bir infrared verici devresinden oluşmaktadır. Geriye kalan kısım ise bilgisayar programı ve bir sound sampler'dır. Devrenin tek kötü yanı ise, dışarıdan beslemeye ihtiyaç duymasıdır. Genel olarak bu kadar basit olan devremizin çalışma mantığına gelirsek yukarıda anlattığım işler dışında, daha neleri becerebileceği de sizin yaratıcılığınıza kalıyor. Devre vericiden gelen sinyalleri bilgisayarın hafızasına kopyalamaya ve gerektiğinde, bunları çıkışa tekrar geri verme mantığına dayanıyor. Yani biz bu devre vasıtasıyla videonun uzaktan kumandasından (VUK) gelen sinyalleri bir ses örnekleyici programı (Bu Audio Master ve bunun gibi programlar olabilir.) vasıtasıyla hafızaya atıyor ve siz elde etmiş olduğunuz bu kodlanmış sample'ı çalarak VUK'nın sinyallerinin aynılarını video'ya gönderebiliyorsunuz. Bu sayede videonuzu, televizyonunuzu veya müzik setinizi bilgisayar üzerinden kontrol edebiliyorsunuz.

Kullanılan malzemeler esnek ve piyasada bulunan malzemelerdir. Sound Sampler herhangi bir sound sampler olabilir. Önemli olan 10KHz'den daha yüksek bir örnekleme hızına sahip olmasıdır ki, piyasada bulunan tüm sampler'lar bu özelliğe uymaktadır. Nitekim dergimizin geçmiş sayılarında yayınlanmış bulunan sound sampler'ı da kullanabilirsiniz. Fototransistörlere ve fotodiyotlara gelince, bu numaraları bulamazsanız diğer çeşitleri de kullanabilirsiniz. Devre yapım itibarı ile sorun çıkartan bir devre değildir. Sinyallerin genliğini girişe bağlı olan potansiyometre ile uygun bir düzeye getirebilirsiniz. 9 volt DC besleme gerilimini, dışarıdan bir adaptörden alabilirsiniz. Verici devresi, Amiga'nın ses çıkışlarına bağlıdır. Devreyi düzgün yaptığınız takdirde çalışmaması için bir neden yoktur.

Evet devreyi çalıştırın. VUK'yı alıp PLAY tuşuna basın ve bunu bilgisayara kaydedin. Şimdi kaydettiğiniz örneği çalacak olursanız, videonuz çalışmaya başlayacaktır.

Diğer bir kullanım olarak fototransistor ve fotodiyot yerine ultrasonik alıcı ve vericiler koyabilirsiniz. Arabaların alarmlarının uzaktan kumandaları genelde ultrasonik olarak düzenlenmektedir. Ancak bu sinyaller 20-40 KHz arasında değiştiğinden, sound sampler'ınızın bu kaliteyi yakalayabileceğinden emin olmalısınız. İyi bir sound sampler'la bu sorunu halledebilirsiniz. Ayrıca bir kere datayı aldıktan sonra eğer matematiğiniz iyi ise bunu deşifre edebilir ve bu frekans ve sinyalleri üretip seri olarak sırayla oluşturacak bir program yazabilirsiniz. Tabii bunun anlamı açamayacağınız kapı kalmaz demektir. Tek gereken bir adet örnek almaktır.

Bunların dışında ultrasonik sesleri dinleyebilirsiniz. Örneğin bir yarasanın sesini örnekleyebilir ve bunu geri göndererek onun duvarlara çarpmasını sağlayabilirsiniz. Ayrıca ultrasonik frekansları köpeğiniz üzerinde deneyebilirsiniz. Emin olun çok rahatsız olacaktır.

Yukarıda da açıkladığım gibi bu devre ile oluşacak zararlar yapan kişiye aittir ve yazar bundan sorumluluk kabul etmez..

Hardware programlamaya başlamadan önce, hardware register'ları ve bunların adreslerini öğrenmemiz gerekmektedir. Hardware register'ları $DFF000 adresinden başlarlar. Herbiri 2 byte uzunluğunda yani bir word'dür. Her zaman even adresle yani çift sayılı adreslerde bulunurlar. Yani $DFF008, $DFF180 gibi. Dört tip register vardır.

r(Read): Bu tip register'lar sadece okunabilir. Üzerine yazma yapılamaz.

w(Write): Bunlar sadece yazılabilir. s(Strobe): Bu register'lara bir ulaşım yapılması durumunda tek seferlik bir işlem oluşur. Bu register'lar daha çok Agnus tarafından kullanılır.

er(Early Read): Bu tipte şekillendirilmiş bir register, DMA çıkış register'ıdır. DMA tarafından CHIP RAM'a yazılacak datayı içerir. İki adet bu tipte register vardır: DSKDATR ve BLTDDTR disk ve blitter çıkış register'ları. Bu register'lara sadece Agnus'un içindeki DMA controller ulaşabilir.

Verdiğimiz tablo, Custom Register'ları, bunların görevlerini, adreslerini ve ulaşılma şeklini göstermektedir. Burada register'ların başlangıç adresi $DFF000 olduğundan verilen register adresleri $DFF000 + register adresi olarak değerlendirilmesi gerekmektedir. Örneğin JOY0DAT register'ı, 00A relatif adresine sahiptir. Bu register'ın gerçek adresiyse $DFF000 + 00A = $DFF00A'dır. Custom register'ların sayısı 197 ve sadece DMA controller'ın ulaştığı register sayısı ise 54'tür. Tabloda geçen terimlerden MSB (Most Significant Byte), bir Word'ün en ağırlıklı byte'ı; BEAM ise TV ekranındaki elektron ışını anlamına geliyor.

REGISTER TABLOSU ADI ADR R W İŞLEVİ BLTDDAT 000 ER BLITTER ÇIKIŞ DATA (BLITTER->RAM) DMACONR 002 R DMA CONTROLLER REG. OKU VPOSR 004 R VERTIKAL BEAM POZİSYONUN MSB'İ VHPOSR 006 R VERTİKAL.HORİZONTAL BEAM POZİSYONU DSKDATR 008 ER DİSK DATA OKU. (DISK->RAM) JOY0DAT 00A R JOYSTICK/MOUSE POZİSYONU (PORT 0) JOY1DAT 00C R JOYSTICK/MOUSE POZİSYONU (PORT 1) CLXDAT 00E R COLLISION REGISTER ADKCONR 010 R AUDIO/DİSK CONTROL REGISTER OKU POT0DAT 012 R PORT 0'DAKİ POTANSİYOMETREYİ OKU POT1DAT 014 R PORT 1'DEKİ POTANSİYOMETREYİ OKU POTGOR 016 R POT PORT DATAYI OKU SERDATR 018 R SERIAL PORT DATA VE DURUMU OKU DSKBYTR 01A R DİSK DATA BYTE'I VE DURUMU OKU INTENAR 01C R INTERRUPT ENABLE OKU INTREOR 01E R INTERRUPT REQUEST OKU DSKPTH 020 W DİSK DMA ADRES BİTLERİ (18-16) DSKPTL 022 W DİSK DMA ADRES BİTLERİ (15-0) DSKLEN 024 W DİSK DMA BLOK UZUNLUĞU DSKDAT 026 W DİSK DATA YAZ. (RAM->DİSK) REFPTR 028 W REFRESH SAYICI VPOSW 02A W VERTİKAL BEAM POZİSYONUN MSB'İ YAZ VHPOSW 02C W VERTİKAL.HORİZONTAL BEAM POZİSYONU YAZ COPCON 02E W COPPER KONTROL REGISTER'I SERDAT 030 W SERIAL DATA VE STOP BİTİ YAZ SERPER 032 W SERIAL PORT KONTROL VE BAUD H I REGISTER'I POTGO 034 W POT. PORT DATA VE START BİTİ YAZ JOYTEST 036 W MOUSE SAYICILARINA YAZ STREQU 038 S VB'Lİ HORİZONTAL SENKRON E EQU V STRVBL 03A S VB'Lİ HORİZONTAL SENKRON STRHOR 03C S HORİZONTAL SENKRON SİNYALİ STRLONG 03E S UZUN HORİZONTAL HAT YAPICI Sıradaki register'lar copper tarafından, COPCON=1 olduğu zaman ulaşılabilirler BLTCON0 040 W BLITTER KONTROL REGISTER'I 0 BLTCON1 042 W BLITTER KONTROL REGISTER'I 1 BLTAFWM 044 W A'DAN İLK DATA WORD'Ü İÇİN MASK BLTALWM 046 W A'DAN SON DATA WORD'Ü İÇİN MASK BLTCPTH 048 W KAYNAK DATA C ADRESİ. (16-18 BİTLER) BLTCPTL 04A W KAYNAK DATA C ADRESİ. (1-15 BİTLER) BLTBPTH 04C W KAYNAK DATA B ADRESİ. (16-18 BİTLER) BLTBPTL 04E W KAYNAK DATA B ADRESİ. (1-15 BİTLER) BLTAPTH 050 W KAYNAK DATA A ADRESİ. (16-18 BİTLER) BLTAPTL 052 W KAYNAK DATA A ADRESİ. (1-15 BİTLER) BLTDPTH 054 W HEDEF DATA D ADRESİ. (16-18 BİTLER) BLTDPTL 056 W HEDEF DATA D ADRESİ. (1-15 BİTLER) BLTSIZE 058 W BLITTER WINDOW'UN BAŞLANGIÇ BİTİ/BÜYÜKLÜĞÜ ----- 05A - KULLANILMIYOR ...... 05C - KULLANILMIYOR ...... 05E - KULLANILMIYOR BLTCMOD 060 W BLITTER MODÜLE KAYNAK DATA C BLTBMOD 062 W BLITTER MODÜLE KAYNAK DATA B BLTAMOD 064 W BLITTER MODÜLE KAYNAK DATA A BLTDMOD 066 W BLITTER MODÜLE HEDEF DATA D 068 - KULLANILMIYOR

ADI ADR R W İŞLEVİ ...... 06A - KULLANILMIYOR ----- 06C - KULLANILMIYOR ...... 06E - KULLANILMIYOR BLTCDAT 070 W BLITTER KAYNAK DATA REGISTER C BLTBDAT 072 W BLITTER KAYNAK DATA REGISTER B BLTADAT 074 W BLITTER KAYNAK DATA REGISTER A ...... 076 - KULLANILMIYOR ----- 078 - KULLANILMIYOR ...... 07A - KULLANILMIYOR ----- 07C - KULLANILMIYOR DSKSYNC 07E W DİSK SENKRON PATTERN Aşağıdaki registerlar Copper tarafından her zaman yazılabilirler. COP1LCH 080 W BİRİNCİ COPPERLİST ADRESİ BİT(16-18) COP1LCL 082 W BİRİNCİ COPPERLİST ADRESİ BİT(1-15) COP2LCH 084 W İKİNCİ COPPERLİST ADRESİ BIT(16-18) COP2LCL 086 W İKİNCİ COPPERLİST ADRESİ BİT(1-15) COPJMP1 088 S BİRİNCİ COPPER LİSTİN BAŞINA ATLA COPJMP2 08A S İKİNCİ COPPER LİSTİN BAŞINA ATLA COPINS 08C W COPPER KOMUTA REGISTER'I DIWSTRT 08E W GÖRÜNTÜ EKRANININ SOLÜST KÖŞESİ DIWSTOP 090 W GÖRÜNTÜ EKRANININ SAĞALT KÖŞESİ DDFSTRT 092 W BİTPLANE DMA START (HORIZ. POZ) DDFSTOP 094 W BİTPLANE DMA STOP (HORIZ. POZ) DMACON 096 W DMA KONTROL REGISTER'I YAZ CLXCON 098 W COLLISION KONTROL REGISTER'I YAZ INTENA 09A W INTERRUPT ENABLE YAZ INTREQ 09C W INTERRUPT REQUEST YAZ ADKCON 09E W AUDIO/DISK/UART KONTROL REGISTER'I AUD0LCH 0A0 W AUDIO DATA 0 ADRESİ BİT(16-18) AUD0LCL 0A2 W AUDIO DATA 0 ADRESİ BİT(1-15) AUD0LEN 0A4 W KANAL 0 UZUNLUK VE SES DATASI AUD0PER 0A6 W KANAL 0 PERİYOD SÜRESİ AUD0VOL 0A8 W KANAL 0 VOLÜM AUD0DAT 0AA W KANAL 0 SES DATASI (D/A ÇEVİRİCİYE) ...... 0AC - KULLANILMIYOR 0AE - KULLANILMIYOR AUD1LCH 0B0 W AUDIO DATA 1 ADRESİ BIT(16-18) AUD1LCL 0B2 W AUDIO DATA 1 ADRESİ BIT(1-15) AUD1LEN 0B4 W KANAL 1 UZUNLUK VE SES DATASI AUD1PER 0B6 W KANAL 1 PERİYOD SÜRESİ AUD1VOL 0B8 W KANAL 1 VOLÜM AUD1DAT 0BA W KANAL 1 SES DATASI (D/A ÇEVİRİCİYE) ----- 0BC - KULLANILMIYOR ----- 0BE - KULLANILMIYOR AUD2LCH 0C0 W AUDIO DATA 2 ADRESİ BIT(16-18) AUD2LCL 0C2 W AUDIO DATA 2 ADRESİ BIT(1-15) AUD2LEN 0C4 W KANAL 2 UZUNLUK VE SES DATASI AUD2PER 0C6 W KANAL 2 PERİYOD SÜRESİ AUD2VOL 0C8 W KANAL 2 VOLÜM AUD2DAT 0CA W KANAL 2 SES DATASI (D/A ÇEVİRİCİYE) ...... 0CC - KULLANILMIYOR ...... 0CE - KULLANILMIYOR AUD3LCH 0D0 W AUDIO DATA 3 ADRESİ BIT(16-18) AUD3LCL 0D2 W AUDIO DATA 3 ADRESİ BIT(1-15) AUD3LEN 0D4 W KANAL 3 UZUNLUK VE SES DATASI

ADI ADR R/W İŞLEVİ AUD3PER 0D6 W KANAL 3 PERİYOD SÜRESİ AUD3VOL 0D8 W KANAL 3 VOLÜM AUD3DAT 0DA W KANAL 3 SES DATASI (D/A ÇEVİRİCİYE GİDER) ----- 0DC - KULLANILMIYOR ----- 0DE - KULLANILMIYOR BPL1PTH 0E0 W BITPLANE 1 ADRESİ. BİT (16-18) BPL1PTL 0E2 W BITPLANE 1 ADRESİ. BİT (1-15) BPL2PTH 0E4 W BITPLANE 2 ADRESİ. BİT (16-18) BPL2PTL 0E6 W BITPLANE 2 ADRESİ. BİT (1-15) BPL3PTH 0E8 W BITPLANE 3 ADRESİ. BİT (16-18) BPL3PTL 0EA W BITPLANE 3 ADRESİ. BİT (1-15) BPL4PTH 0EC W BITPLANE 4 ADRESİ. BİT (16-18) BPL4PTL 0EE W BITPLANE 4 ADRESİ. BİT (1-15) BPL5PTH 0F0 W BITPLANE 5 ADRESİ. BİT (16-18) BPL5PTL 0F2 W BITPLANE 5 ADRESİ. BİT (1-15) BPL6PTH 0F4 W BITPLANE 6 ADRESİ. BİT (16-18) BPL6PTL 0F6 W BITPLANE 6 ADRESİ. BİT (1-15) ----- 0F8 - KULLANILMIYOR 0FA - KULLANILMIYOR ----- 0FC - KULLANILMIYOR ...... 0FE - KULLANILMIYOR BPLCON0 100 W BITPLANE KONTROL REGISTER'I 0 BPLCON1 102 W BITPLANE KONTROL REGISTER'I 1 (SCROLL DEĞERİ) BPLCON2 104 W BITPLANE KONTROL REGISTER'I 2 (PRİORITY CONT) ...... 106 - KULLANILMIYOR BPL1MOD 108 W TEK PLANE'LER İÇİN BİTPLANE MODULE'Ü BPL2MOD 10A W ÇİFT PLANE'LER İÇİN BITPLANE MODULE'Ü ...... 10C - KULLANILMIYOR 10E - KULLANILMIYOR BPL1DAT 110 W BITPLANE 1 DATA (RGB ÇIKIŞA) BPL2DAT 112 W BİTPLANE 2 DATA (RGB ÇIKIŞA) BPL3DAT 114 W BİTPLANE 3 DATA (RGB ÇIKIŞA) BPL4DAT 116 W BİTPLANE 4 DATA (RGB ÇIKIŞA) BPL5DAT 118 W BİTPLANE 5 DATA (RGB ÇIKIŞA) BPL6DAT 11A W BİTPLANE 6 DATA (RGB ÇIKIŞA) 11C - KULLANILMIYOR ----- 11E - KULLANILMIYOR SPR0PTH 120 W SPRITE DATA 0, BİT (16-18) SPR0PTL 122 W SPRİTE DATA 0, BİT (1-15) SPR1PTH 124 W SPRİTE DATA 1, BİT (16-18) SPR1PTL 126 W SPRİTE DATA 1, BİT (1-15) SPR2PTH 128 W SPRİTE DATA 2, BİT (16-18) SPR2PTL 12A W SPRİTE DATA 2, BİT (1-15) SPR3PTH 12C W SPRİTE DATA 3, BİT (16-18) SPR3PTL 12E W SPRİTE DATA 3, BİT (1-15) SPR4PTH 130 W SPRİTE DATA 4, BİT (16-18) SPR4PTL 132 W SPRİTE DATA 4, BİT (1-15) SPR5PTH 134 W SPRİTE DATA 5, BİT (16-18) SPR5PTL 136 W SPRİTE DATA 5, BİT (1-15) SPR6PTH 138 W SPRİTE DATA 6, BİT (16-18) SPR6PTL 13A W SPRİTE DATA 6, BİT (1-15) SPR7PTH 13C W SPRİTE DATA 7, BİT (16-18) SPR7PTL 13E W SPRİTE DATA 7, BİT (1-15) SPR0POS 140 W SPRİTE 0 START POZİSYONU (VERT VE HORIZ) SPR0CTL 142 W SPRİTE 0 KONTROL REG. VE VERTİKAL STOP SPR0DATA 144 W SPRİTE 0 DATA REGISTER A (RGB ÇIKIŞA) SPR0DATB 146 W SPRİTE 0 DATA REGISTER B (RGB ÇIKIŞA) SPR1POS 148 W SPRİTE 1 START POZİSYONU (VERT VE HORIZ) SPR1CTL 14A W SPRİTE 1 KONTROL REG. VE VERTİKAL STOP SPR1DATA 14C W SPRİTE 1 DATA REGISTER A (RGB ÇIKIŞA) SPR1DATB 14E W SPRİTE 1 DATA REGISTER B (RGB ÇIKIŞA) SPR2POS 150 W SPRİTE 2 START POZİSYONU (VERT VE HORIZ) SPR2CTL 152 W SPRİTE 2 KONTROL REG. VE VERTİKAL STOP SPR2DATA 154 W SPRİTE 2 DATA REGISTER A (RGB ÇIKIŞA) SPR2DATB 156 W SPRİTE 2 DATA REGISTER B (RGB ÇIKIŞA) SPR3POS 158 W SPRİTE 3 START POZİSYONU (VERT VE HORIZ) SPR3CTL 15A W SPRİTE 3 KONTROL REG. VE VERTİKAL STOP SPR3DATA 15C W SPRİTE 3 DATA REGISTER A (RGB ÇIKIŞA) SPR3DATB 15E W SPRİTE 3 DATA REGISTER B (RGB ÇIKIŞA) SPR4POS 160 W SPRİTE 4 START POZİSYONU (VERT VE HORIZ) SPR4CTL 162 W SPRİTE 4 KONTROL REG. VE VERTİKAL STOP SPR4DATA 164 W SPRİTE 4 DATA REGISTER A (RGB ÇIKIŞA) SPR4DATB 166 W SPRİTE 4 DATA REGISTER B (RGB ÇIKIŞA) SPR5POS 168 W SPRİTE 5 START POZİSYONU (VERT VE HORIZ) SPR5CTL 16A W SPRİTE 5 KONTROL REG. VE VERTİKAL STOP SPR5DATA 16C W SPRİTE 5 DATA REGISTER A (RGB ÇIKIŞA) SPR5DATB 16E W SPRİTE 5 DATA REGISTER B (RGB ÇIKIŞA) SPR6POS 170 W SPRİTE 6 START POZİSYONU (VERT VE HORIZ) SPR6CTL 172 W SPRİTE 6 KONTROL REG. VE VERTİKAL STOP SPR6DATA 174 W SPRİTE 6 DATA REGISTER A (RGB ÇIKIŞA) SPR6DATB 176 W SPRİTE 6 DATA REGISTER B (RGB ÇIKIŞA) SPR7POS 178 W SPRİTE 7 START POZİSYONU (VERT VE HORIZ) SPR7CTL 17A W SPRİTE 7 KONTROL REG. VE VERTİKAL STOP SPR7DATA 17C W SPRİTE 7 DATA REGISTER A (RGB ÇIKIŞA) SPR7DATB 17E W SPRİTE 7 DATA REGISTER B (RGB ÇIKIŞA) COLOR00 180 W RENK PALETİ REGISTER'I 0 COLOR01 182 W RENK PALETİ REGISTER'I 1

Artık Chip Register'larını programlamaya geçebiliriz. Chip register'ları direk olarak adreslenebilirler. Örneğin: Arkaplan renk register'ının değerini değiştirelim. Eğer tabloya bakacak olursak bu register'ın relatif adresinin $180 olduğunu görürüz. Gerçek adresin $dff180 olduğunu hesaplayıp MOVE.W komutuyla buraya istediğimiz değeri verebiliriz.

MOVE.W  #DEĞER,$DFF180 ; değer COLOROO'a

Eğer bir register'dan daha fazlasına ulaşılacaksa, baz adresi bir adres register'ında depolamak ve bir ofsetle indirect adresleme yapmak iyi bir fikirdir. Bir örnek verelim:

LEA     $DFF000,A5 
;baz adresi A5'e yerleştir 
MOVE.W #DEĞER 1 ,$ 180(A5);COLOR00=değerl 
MOVE.W #DEĞER2,$ 182(A5);COLOR01 =değer2 
MOVE.W.... VS.

Normalde Chip register'lara görüldüğü gibi word seviyesinde ulaşılır. Ancak register'lara LONGWORD seviyesinde de ulaşılabilir. Bu sayede iki register bir defada yazılmış olur. Örneğin:

MOVE.L #$40000,$0E0(A5);BPL1PTH ve BPL1PTL

;register'larına gerçek ;değerleri girer. Chip register'larına ulaşım yukarıdaki örneklerde olduğu gibidir.

Bu aylık yazımızı burada noktalıyor ve hepinize en içten sevgilerimizi yolluyoruz.

ADI
ADR   R W İŞLEVİ 
COLOR02  184 
W RENK PALETİ REGISTER'İ 2 
COLOR03  186 
W RENK PALETİ REGISTER'İ 3 
COLOR04  188 
W RENK PALETİ REGISTER'U 
COLOR05  18A 
W RENK PALETİ REGISTER'İ 5 
COLOR06  18C 
W RENK PALETİ REGISTER'İ 6 
COLOR07  18E 
W RENK PALETİ REGISTER'İ 7 
COLOR08  190 
W RENK PALETİ REGISTER'İ 8 
COLOR09  192 
W RENK PALETİ REGISTER'İ 9 
COLOR10  194 
W RENK PALETİ REGISTER'İ 10 
COLOR11   196 
W RENK PALETİ REGISTER'İ 11 
COLOR12  198 
W RENK PALETİ REGISTER'İ 12 
COLOR13  19A 
W RENK PALETİ REGISTER'İ 13 
COLOR14  19C 
W RENK PALETİ REGISTER'İ 14 
COLOR15  19E 
W RENK PALETİ REGISTER'İ 15 
COLOR16  1A0 
W RENK PALETİ REGISTER'İ 16 
COLOR17  1A2 
W RENK PALETİ REGISTER'İ 17 
COLOR18  1A4 
W RENK PALETİ REGISTER'İ 18 
COLOR19  1A6 
W RENK PALETİ REGISTER'İ 19 
COLOR20  1A8 
W RENK PALETİ REGISTER'İ 20 
COLOR21   1AA 
W RENK PALETİ REGISTER'İ 21 
COLOR22  1AC 
W RENK PALETİ REGISTER'İ 22 
COLOR23  1AE 
W RENK PALETİ REGISTER'İ 23 
COLOR24  1B0 
W RENK PALETİ REGISTER'İ 24 
COLOR25  1B2 
W RENK PALETİ REGISTER'İ 25 
COLOR26  1B4 
W RENK PALETİ REGISTER'İ 26 
COLOR27  1B6 
W RENK PALETİ REGISTER'İ 27 
COLOR28 1B8 
W RENK PALETİ REGISTER'İ 28 
COLOR29  1BA 
W RENK PALETİ REGISTER'İ 29 
COLOR30  1BC 
W RENK PALETİ REGISTER'İ 30 
COLOR31   1BE 
W RENK PALETİ REGISTER'İ 31 
1C0 dan IFE'ye kadar olan registerlar kullanılmazlar