Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: 1 [2] 3   Aşağı git
Yazdır
Gönderen Konu: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ  (Okunma Sayısı 31746 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
coze
Uzman
*****
Mesaj Sayısı: 1.672


Hieh hieh hieh heh ...


Üyelik Bilgileri WWW
« Yanıtla #15 : Ocak 04, 2009, 08:37:58 ÖÖ »

vay anasina yeni bir grup doguyor arkadaslar

e hazir bu kadar bilgi vermisken spectrum'da tracker filan varmidir, muzik nasil yapiliyor onu da biraz anlatin bari
Logged

Retro Hincal Uluc
joker_
Genel Yönetici
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #16 : Ocak 04, 2009, 13:02:14 ÖS »

oleyyy ilk demomuz geldi,süpersin hades eline sağlık

Logged
joker_
Genel Yönetici
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #17 : Ocak 04, 2009, 13:03:17 ÖS »

logoyu nasıl oluşturdun?
Logged
hades
Üye
****
Mesaj Sayısı: 375



Üyelik Bilgileri
« Yanıtla #18 : Ocak 04, 2009, 14:32:43 ÖS »

logoyu tamamen programla oluşturdum. logonun ilk hali 500 küsur byte ile oluşuyordu. Rutinde tekrar eden kısımlar vardı. Ayrıca ekran belleğinin yapısı nedeniyle adres hesaplamalarını alt program halinde yapınca logoyu üreten kod epeyce kısaldı. Bir kaç optimizasyon işleminden sonra yanılmıyorsam 113 byte ile logo tamamlandı. Sadece "E" harfi biraz uğraştırdı. Zaten asm listesinde "eee" ile başlayan bölüm diğer harfleri üreten kısımlardan farklı. Kodun geri kalanını ise 64+3 byte yazı, logonun alt-üst çizgileri, logo renklendirme ve alttaki renk efekti oluşturuyor. Gerçi 14 byte boş yer kaldı. Bir dahaki kodda 256 baytı sonuna kadar kullanacağım.
Coze, tracker varmı yokmu bilmiyorum ama gruba bir müzisyen lazım gibi. 48K'yı bırakıp 128K'ya geçmemiz gerekebilir.
 
Gazım bitmeden birşeyler kodlayayım
« Son Düzenleme: Ocak 04, 2009, 14:34:30 ÖS Gönderen: hades » Logged
hades
Üye
****
Mesaj Sayısı: 375



Üyelik Bilgileri
« Yanıtla #19 : Ocak 04, 2009, 21:23:21 ÖS »

demoyu .tap uzantılı hale getirdim. indirin, emulatöre sürükle bırak yapın çalışsın.

www.freewebs.com/yenidunyalarda/retlogo.tap

Bu arada gruba kimler katıldı? (Joker, Arda, İlkergörkem Ney)
(İlker'e de bir nick bulalım.)
En kıza zamanda cevap yazın. Ufak bir intro hazırlamayı düşünüyorum.
Logged
joker_
Genel Yönetici
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #20 : Ocak 04, 2009, 21:40:23 ÖS »

joker_ /ret 
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #21 : Ocak 04, 2009, 22:44:39 ÖS »


Bu arada gruba kimler katıldı? (Joker, Arda, İlkergörkem Ney)
(İlker'e de bir nick bulalım.)

Halen Crescent üyesi olduğum için gruba ancak dışarıdan destek verebilirim. Ama safkan bir specchum olarak RET üyesi de sayıyorum kendimi...

Gerçi scene içinde birçok çift gruplu eleman var, (bkz. vigo) fakat bu süreç nasıl işliyor bilemiyorum. Sanırım grup arkadaşlarımla görüşüp bir fikirlerini almam gerekiyor.

Scene grupları ve organizasyonlar hakkında bilgisini paylaşmak isteyen var mı? Nightlord? Vigo? Nasıl olur bu işler?
Logged

ilkergorkem
Üye
***
Mesaj Sayısı: 179



Üyelik Bilgileri
« Yanıtla #22 : Ocak 04, 2009, 23:00:27 ÖS »

Benim nick im ' MiG ' dir herzaman bazen forumlara ad soyadla giriyorum herkes nick li ya biraz değişik olsun diye. Yani MiG/RET diyebiliriz
Logged

ZX Spectrum 48K+ , Amiga 1200 , ZX Spectrum +2 , Amstrad 6128
---------------
7D9 Oyun Yarışması 2.si Board Soccer
7DX Oyun Yarışması 3.sü Run Baby Run
7DX 2013 Oyun Yarışması 3.sü Falcon Patrol
hades
Üye
****
Mesaj Sayısı: 375



Üyelik Bilgileri
« Yanıtla #23 : Ocak 05, 2009, 20:45:34 ÖS »


Halen Crescent üyesi olduğum için gruba ancak dışarıdan destek verebilirim. Ama safkan bir specchum olarak RET üyesi de sayıyorum kendimi...

Gerçi scene içinde birçok çift gruplu eleman var, (bkz. vigo) fakat bu süreç nasıl işliyor bilemiyorum. Sanırım grup arkadaşlarımla görüşüp bir fikirlerini almam gerekiyor.

Scene grupları ve organizasyonlar hakkında bilgisini paylaşmak isteyen var mı? Nightlord? Vigo? Nasıl olur bu işler?


Crescent bir C64 grubu, RET ise Spectrum grubu. Platformlar farklı olduğu için bir sorun olmamalı.
Logged
hades
Üye
****
Mesaj Sayısı: 375



Üyelik Bilgileri
« Yanıtla #24 : Ocak 10, 2009, 14:51:00 ÖS »

Spectrum için Z80asm örneklerine devam ediyoruz. Sıradaki programımız ekrandaki görüntüyü renkleriyle beraber başaşağı çeviren kısa bir program.

Kod:
;------------------------;
; HORIZONTAL FLIP SCREEN ;
; 10-01-2009 hades/ret ;
;------------------------;

org 32768 ;program 32768 (8000h) adresinden başlıyor.

main ld de,4000h ;ekran belleği başlangıç adresi.
ld hl,57e0h ;ekran belleği sol alt posizyon adresi.
ld c,60h ;24 karakter*8pixel=192 pixel satırının yarısı 96.
call loop1 ;alt rutine git.
ld de,5800h ;renk belleği başlangıç adresi
ld hl,5ae0h ;renk belleği sol alt pozisyon adresi.
ld c,0ch ;24 karakter satırının yarısı.

loop1 ld b,20h ;Bir satırdaki karakter sayıcısı (32).
loop0 ld a,(de) ;DE registerinin gösterdiği adresteki değeri oku.
push af ;Aküyü yığına at.
ld a,(hl) ;HL registerinin gösterdiği adresteki değeri oku.
ld (de),a ;Aküdeki değeri DE'deki adrese yaz.
pop af ;Akünün önceki değerini yığından al.
ld (hl),a ;AKüdeki degeri HL'deki adrese yaz.
inc de ;DE'yi 1 arttır.
inc hl ;HL'yi 1 arttır.
djnz loop0 ;Karakter sayıcısını 1 azalt, 0 olmadıysa işlemleri tekrarla.
push de ;DE'yi yığına at.
ld de,40h ;DE'ye 40h (64) değerini ver.
sbc hl,de ;HL'deki değerden DE'deki değeri çıkart ve sonucu HL'ye yaz.
pop de ;DE'nin önceki değerini yığından al.
dec c ;sayacı 1 azalt.
jr nz,loop1 ;sayaç 0 olmadıysa işlemleri tekrarla.
ret ;geri dön

end

http://www.freewebs.com/yenidunyalarda/horizontal flip.tap


* normal.gif (6.18 KB, 352x296 - Görüntüleme: 1605 kez.)

* horizontal flip.gif (6.19 KB, 352x296 - Görüntüleme: 1661 kez.)
« Son Düzenleme: Ocak 11, 2009, 00:24:11 ÖÖ Gönderen: hades » Logged
hades
Üye
****
Mesaj Sayısı: 375



Üyelik Bilgileri
« Yanıtla #25 : Ocak 10, 2009, 22:29:43 ÖS »

Spectrum için örneklere devam. Şimdiki program ise ekranı sağdan sola çeviren bir program. Beni biraz uğraştırdı. Ufak bir hesaplama hatası nedeniyle bir kaç saat kaybettim

Kod:
;----------------------;
; VERTICAL FLIP SCREEN ;
; 10-01-2009 hades/ret ;
;----------------------;
org 32768

main ld hl,4000h
ld de,401fh
ld c,192
loop1 ld b,10h
loop0 push bc
push hl
ld a,(hl)
call rotate
ld (tempa),a
ld a,(de)
call rotate
pop hl
ld a,(tempb)
ld (hl),a
ld a,(tempa)
ld (de),a
inc hl
dec de
pop bc
djnz loop0
call newadr
jr nz,loop1
color ld hl,5800h
ld de,581fh
ld c,18h
loop5 ld b,10h
loop4 ld a,(hl)
push af
ld a,(de)
ld (hl),a
pop af
ld (de),a
inc hl
dec de
djnz loop4
call newadr
jr nz,loop5
ret
rotate ld b,8
ld hl,tempb
loop2 rr a
rl (hl)
djnz loop2
ld a,(hl)
ret
newadr push bc
ld bc,30h
ex de,hl
add hl,bc
ex de,hl
ld bc,10h
add hl,bc
pop bc
dec c
ret
;---------------------------------------------
tempa defb 0
tempb defb 0
end

http://www.freewebs.com/yenidunyalarda/vertical flip.tap


* normal1.gif (6.26 KB, 352x296 - Görüntüleme: 1614 kez.)

* vertical flip.gif (6.23 KB, 352x296 - Görüntüleme: 1686 kez.)
« Son Düzenleme: Ocak 11, 2009, 00:18:41 ÖÖ Gönderen: hades » Logged
hades
Üye
****
Mesaj Sayısı: 375



Üyelik Bilgileri
« Yanıtla #26 : Ocak 11, 2009, 11:05:03 ÖÖ »

Yukarıdaki iki programı birleştirince ortaya çıkan sonuç ise aşağıda.

http://www.freewebs.com/yenidunyalarda/horverflip.tap


* normal1.gif (6.26 KB, 352x296 - Görüntüleme: 1599 kez.)

* hor-ver. flip.gif (6.21 KB, 352x296 - Görüntüleme: 1560 kez.)
Logged
ilkergorkem
Üye
***
Mesaj Sayısı: 179



Üyelik Bilgileri
« Yanıtla #27 : Ocak 11, 2009, 23:35:13 ÖS »

Bu örnegi spin e aktardım ama atic atac yada herhangi bir resmi ekrana getirip onun üzerinde bu efekti nasıl uygulatıcam bulamadım? 
Logged

ZX Spectrum 48K+ , Amiga 1200 , ZX Spectrum +2 , Amstrad 6128
---------------
7D9 Oyun Yarışması 2.si Board Soccer
7DX Oyun Yarışması 3.sü Run Baby Run
7DX 2013 Oyun Yarışması 3.sü Falcon Patrol
LW3D
Yönetici
*****
Mesaj Sayısı: 11.303


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #28 : Ocak 12, 2009, 11:44:35 ÖÖ »

Spectrum'la pek alakalı değilim (neyle alakalıyım çıkaramadımda)...Ama Hades'in bu başlığı ve örnekler çok güzel... Tebrikler hades..
Logged

Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #29 : Ocak 12, 2009, 11:51:36 ÖÖ »

Bu örnegi spin e aktardım ama atic atac yada herhangi bir resmi ekrana getirip onun üzerinde bu efekti nasıl uygulatıcam bulamadım? 

TAP dosyalarını gayet iyi şekilde hazırlamış hades. Ama kendim yapacağım diyorsan:

ZX Spin assembler'ını aç, Hades'in yolladığı kodu yapıştır.
Sonra File > Assemble...
 
penceresine gir, varsayılan ayarlarda bırak ("Assemble to" () Memory).
 OK  butonuna bas, kod derlenecek ve hafızaya konacak (No errors yazması lazım altta).

Sonra Zx spectrum kısmında ekrana birşeyler yazdır, örneğin;

print "test falan filan"
sonra ekranda yazılar var iken
RANDOMIZE USR 32768
komutu ile ekranı çevirebilirsin.
Logged

Sayfa: 1 [2] 3   Yukarı git
Yazdır
Gitmek istediğiniz yer: