Global Trash

Hepinize selam demo meraklıları... Demo teknikleri köşemizde yine beraberiz. Bu ay, geçen aydan yarım kalan intromuzu bitireceğiz. Önümüzdeki aylarda ise böyle uzun source'lar vermek yerine kısa source'lar ile teknik açıklamalarına başlayacağım. Gelecek ay, verdiğim intronun tam açıklamasını bulabilirsiniz. Siz bu ay, tabloda görülen source'u yazın. Bu köşeyi yeni gören arkadaşlar, geçen ayki Global Trash yazımızı mutlaka okusunlar. İntromuz, geçen ay belirttiğim gibi şöyle: En üstte bir scroll ve altında logo. Bununla ilgili rutinleri geçen ay vermiştim. Şimdi, arka plana soldan sağa doğru hareket eden yıldızlar yerleştirelim. Bu yıldızları, açıklamış olduğum Star Editör programı ile yapabilirsiniz. Her neyse, ekranın alt kısmında bir text screen (text ekranı) bulunuyor. Bu yazıların arkasında çeşitli renklerden oluşan bir raster aşağıya doğru hareket ediyor. Bu teknik, birçok oyun ve introda kullanılmıştır. Bu ay yine intromuza Noisetracker modülü ekleyeceğiz. Assemblerden müziğin nasıl çalındığını merak eden okuyucularımız, umarım sevineceklerdir. İntromuzun en büyük şamatası ise, açılışta sahte bir guru meditation hatası vermesi. Bunu elimden geldiğince gerçekçi yapmaya çalıştım; sakın hata zannetmeyin!!! Ben bile gerçek guru mu, yoksa kendi yazdığım guru mu ayırt edemiyorum! Hatta rutinde yaptığım bir hata sonucu, iki adet guru üst üste çıktı. Tabii ki çok şaşırdım, ikincisi gerçek guru mesajıymış!!! Siz bu ay, tüm bu rutinleri yazın ve inceleyin. Bir sorununuz çıkarsa mutlaka bana yazın. Gelecek ay, bu introyu CLI'dan çalışacak halde "exe" etmeyi anlatacağım. Evet, programı geçen ay anlattığım şekilde yazın ve compile edin. Daha önce verdiğim source'un aynısını verip boşu boşuna yer işgal etmek istemiyorum. Onun yerine eklemeleri hatırlatacak şekilde vereceğim. Eski rutine eklemeler yapın. Yanlarında G yazan satırlar geçen ay verildi, onları yazmayın. Onları sadece yeni rutinlerin nerelere eklendiğini belirtmek için verdim. Müzik çaldırmak için, bir replay rutinine ihtiyacınız olacak. Bu rutin birçok utility disketinin içinde bulunur. Source içinde belirttiğim yere yükleyin ve mt data ile yanında bir adres yazan satırı silin. Bizim source'umuz otomatik olarak modülünüzün $30000 adresinde olduğunu belirtiyor. Modül datasını bu adrese yükleyin (binary olarak). İntroyu elimden geldiğince kısa yazmaya çalıştım. Umarım fazla zorlanmadan yazarsınız. Evet, gelecek ay tüm açıklamayı bekleyin. Önümüzdeki aylarda sizlere çok renkli bir demo sayfası hazırlayacağım. Köşemize yazmayı unutmayın. Her türlü sorunuzu bekliyorum... CU L8R..

TABLO:
— Demoteknikleri örnek 2 *
;* Program: Kağan ÜNALDI *
org $30000 adresine yerleştirir.
load $30000
start:movem.l a0-a6/d0-d7,-(a7)
move.l —
-$84(a6)
lea int,al ;İntuition.library adresi
jsr -$198(a6) aç (guru için)
move.l — dO,intbase ;library adresini sakla
beg exit ;hata var programdan çık!
lea — ;G
jsr — -$198(a6)
tstl :G
beg exit 6G
bsr — clsmem ;Hafızayı temizleme rutini
bsr — mt init ;müzik istiyorsanız bunu yazın
bsr — gürü şguru med. rutini

; alttaki rutin yıldızları hafızaya yerleştirir

sprite: lea star,a3 ;yıldızların source adresi
lea $7a000,a4 ;yıldızların hafıza adresi
put: move.l — (a3)4,(a4)4  ;dataları kopyala
bne.s put şişlem bittiyse devam et.
move.l — gfxbase,d0 — ;gfx.lib adresini yenile
;buralarda eski rutinler var
move.l #newcop,(a2) — ;G
bsr göotextser ;Textleri ekrana basma rutini
mouse: cmpi.b — #255,$dff006 — ;G
bne.s mouse
bsr scroll
bsr renkcycle ;renk efekti rutinine git
bsr sply ;yıldız efekti rutini
bsr mt music ;müzik çaldırır
btst #6,$bfe00l ;G
bne mouse
move.l — oldaddy,a2
move.l — oldcop,(a2) :G
move.l —
İsr -$8a(a6)
move.l — :G
jsr -$19e(a6)
move.l — intbase,al — ;Intuition.library'ı adresi
İsr -$19e(a6) :bu library'ı kapat
texit: — movem.l (a7)4,a0-a6/d0-d7
out: rts
clsmem:lea $60000,a0 ;Temizlenecek hafıza adresi
move.l — #$2000,di — şuzunluğu/4
elrloop: cir.l (a0)4 ;hafızayı temizle
dbra ;rutini devam ettir
lea $70000,a0 şaynı şekilde $70000 adresini
move.l — — ;temizle (text adresi)
cirloopl: cir.l (a0)4
dbra
Tits ;programa geri dön

şalttaki rutin guru hatasını sağlar

gürü: move.l  intbase,a6 ;library adresi
lea Gtext,a0 ;guru texti adresi
move.l —
move.l — #$12,d7 şana zamanlayıcı
Settime: — move.1#$26000,d6 ;zamanlayıcı
Time:  sub.l #1,d6 ;zamanlayıcı kontrolü
bne Time ;zaman bitti mi?
behg #1,$bfe001;power ledi değiştir
sub.b #1,d7 ;zamanlayıcıyı azalt
bne Settime — ;bu değer 0 oldu mu?
İsr -$5a(a6) ;guru penceresi (alert)
Tts
initoper: gfxbase,a6;graphics library adresi
;burada scroll bitmap var
lea bitmap1,a0 ;text bitmap adresi
move.l — #$70000,8(a0)  ;txt alanı bitmapl1-4-8 'e
move.l — #bitmapl rastport144;bitmap adresi
lea rastportl,al ;Tastport adresi
jsr -48(a6) ;els (ekranı temizler)
Tts ;Tutine geri dön
renkeycle:moveg.l — #53,d4
;55 adet raster çubuğu
lea cycin,al
ster çubuğunun başı
lea — cycinl,a2 ;ve sonu
move.la2,a3 şaynı adresi a3'e kopyala
eycloop: move.w  2(a2),10(a2) şeycle işlemi
sub.l #8,a2 ;bir sonraki renk
— d4,cycloop
move.w10(a3),2(a1) ;renkleri resetler
Tts şana rutine dön
»...... ;burada scroll rutini var
Tts ;Tutin sonu
götextser:move.l gfxbase,a6;gfx.library adresi
move.l —
moveg.l #5,d6 ;6 satır text
printscloop:
move.l — txtbasescr,a0 ;harfin adresi
bsr locate ;koordinatları ayarla
move.l — #rastportl,al ;rastport adresi
move.l — #24,d0  ;24 adet harf
-60(a6) — ;printext (harfleri bas)
adda.l #24, txtbasescer;sonraki satıra geç
addi.l #10,d5 — ;yeksenini ayarla
dbfd6,printscloop şana döngü
Tts ;Tutine geri dön
locate: move.l — #rastportl,al ;rastport adresi
move.l — #65,d0 (65. pixele bas)
move.l — —
İsr -240(a6) ;move cursor
Tits

rutin yıldızları hareket ettirir

Sply: lea $7a000-1,a0 ;yıldızlar bu adreste
move.l — #255,d7 ;255 tane yıldız
Splp: addg.b — #1,$2(a0)
add.w #8,a0
addg.b — #2,$2(a0)
add.w
addg.b — #1.$2(a0)
add.w #8,a0
addg.b — #2,$2(a0)
— #8,a0
addg.b — #3,$2(a0) ;bu rutinler hareketi
add.w ;sağlar
dbf d7.Splp ;döngü
Tts ;Tutine dön

; Buraya noisetracker v2.0 replay rutinini yükleyin ; Bu rutin birçok utility disk içinde bulunur ; özellikle AERO TOOL v3.0 adlı utility disk içinde hepsi var.

bizim kullanacağımız copperlist ------

newcop:
dc.w $008e,$2c81,$0090,$2cc1,$0092,$0038,$0094,$00d0
dc.w $0102,$0000,$0104,$0000,$0120,$0000,$0122,$0000
de.w $0120,$0007,$0122,$a000
dc.w $0108,$0006 şmodulo 6
dc.w $0100,$1200 ;scroll tek bitplane (2 renk)
de.w ;bitplane points ($60000 adres)j
;logo renkleri buraya
.W $b407,$fffe
de.w $0100,$0000
;— renk çubukları 2 ---
;burada ilk raster bar olacak.
dec.w $0100,$1200
de.w $0108,$0000
de.w $00e0,$0007,$00e2,$0000 — ;text ekranı burayı aynen yazın
dc.w $0182,$0000,$c807,$fffe ;kalanını yazın, renk registerleri
eycin:
dc.w $0182,$0111,$c907,$fffe
dc.w $0182,$0222,$ca07,$fffe
dc.w $0182,$0333,$cb0T7,$fffe
dc.w $0182,$0444,$cc07,$fffe
$0182,$0555,$cd07,$fffe
dc.w $0182,$0666,$ce07,$fffe
dc.w $0182,$0777,$cf07T,$fffe
dc.w $0182,$0888,$d007,$fffe
dc.w $0182,$0999,$d107,$fffe
dc.w $0182,$0aaa,$d207,$fffe
dc.w $0182,$0bbb,$d307,$fffe
dc.w $0182,$0ccc,$d407,$fffe
dc.w $0182,$0ddd,$d507,$fffe
dc.w $0182,$0cee,$d607,$fffe
dc.w $0182,$0fEf,$d707,$fffe
dc.w $0182,$0ffe,$d807,$fffe
dc.w $0182,$0ffd,$d907,$fffe
dc.w $0182,$0ffc,$da07,$fffe
dc.w $0182,$0ffb,$db07,$fffe
dc.w $0182,$0ffa,$dc07,$fffe
dc.w $0182,$0ff9,$dd0O7,$fffe
dc.w $0182,$0ff8,$de07,$fffe
dc.w $0182,$0ff7,$dfO7,$fffe
dc.w $0182,$0ff6,$e007,$fffe
dc.w $0182,$0ff5,$e107,$fffe
dc.w $0182,$0f£4,$e207,$fffe
dc.w $0182,$0ff3,$e307,$fffe
dc.w $0182,$0ff2,$e407,$fffe
de.w $0182,$0ff1,$e507,$fffe
dc.w $0182,$0fe1,$e607,$fffe
dc.w $0182,$0fd2,$e707,$fffe
dc.w $0182,$0fc3,$e807,$fffe
dc.w $0182,$0fb4,$e907,$fffe
dc.w $0182,$0fa5,$ea07,$fffe
dc.w $0182,$0f96,$eb07,$fffe
dc.w $0182,$0£87,$ec07,$fffe
dc.w $0182,$0178,$ed07,$fffe
de.w $0182,$0f69,$ee07,$fffe
dc.w $0182,$0f5a,$ef07,$fffe
dc.w $0182,$0f4b,$f007,$fffe
dc.w $0182,$0f3c,$f107,$fffe
de.w $0182,$0f2d,$f207,$fffe
dc.w $0182,$0f1e,$f307,$fffe
dc.w $0182,$0e2c,$f407,$fffe
dc.w $0182,$0e3b,$f507,$fffe
dc.w $0182,$0d5a,$f607,$fffe
dc.w $0182,$0c79,$f707,$fffe
dc.w $0182,$0888,$f807,$fffe
dc.w $0182,$0777,$f907,$fffe
dc.w $0182,$0666,$fa07,$fffe

BÖLGELER, MADENLER,

Günlük 20 döviz kurunu takip edebilir, istatistik ve farklarını görebilirsiniz. Yerinde karar verebilmeniz için hazırlandı...

dc.w $0182,$0555. $fbOT7 $fffe AdLibAntigue |
dc.w $0182,50444,$fc07,$fffe ALBERTUSBANCO İŞ
dc.w $0182,$0343,$fd07,$fffe Araviteci Corvinuş
Arguitecfura bOr'VİNU: Şimdi Masaüstü
dc.w $0182,$0222,$fe07,$fffe Caslon540
de.w $0182,$0111,$ff07,$fffe EuroStil Fontlari
m adet olup
dc.w FrizOuaGiliSans
; FrizOua Shannon
dc.w ;copper listin sonu Garamond Omega Ti
;Star datasını buraya yükleyin (label' in adı star olmalı) GartGra N
; alttaki örneğe bakın, sartGra New Yorker Bütün fontları
; . lere
| Micro Palacio
Star: Futura
n — del $3AD83BO00,$80008000,$3C843D00,$80000000 Ün form Uncial Poraw 3.0
devam eder...
mt data: egu $30000 ;module adresiz$30000
bitmap: bik.b 40,0 :G
bitmap1: bik.b 40,0
rastport: — bik.b 100,0
rastportl: bik.b 100,0
txtbase: scrolltxt :G
txtbaseser: dc.l txtscr
oldcop: del 0 6
gixbase: dc.l 0 :G
intbase: de.l o
timer: de.l 0
oldaddy: dc.l 0
gfxname: dc.b "graphics.library",0,0 ;G
int: dc.b "intuition.library",O
de.b — 10,110
dc.b — " Software Failure. Press left mouse button to continue.",O Şubelerini arayınız
dc.b — $ff,50,$be
dc.b "Guru Meditation #$1000009.00c0371a",0
even
scrolltxt:

; burada scroll texti var.

şalttaki text mesaj textidir, 6 satır ve 24 harf olmalı
txtser:
de.b " GLOBAL TRASH ASSEMBLER "
de.b " — ÖRNEK 2: TEXTSCREEN
dc.b — " PROGRAM: "
dc.b GORDUGUNUZ MINI
de.b il INTRONUN TAMAMI
dec.b " ASM-ONE İLE YAZILMISTI
end ;programın sonu