commodore.gen.tr

Diğer Nostaljik Bilgisayarlar => Sinclair - Yazılım => Konuyu başlatan: hades üzerinde Aralık 30, 2008, 22:56:59 ÖS



Konu Başlığı: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Aralık 30, 2008, 22:56:59 ÖS
Bu başlıkta basit asm rutinlerini paylaşmayı düşünüyorum. Mümkün olduğunca bilgi amaçlı soru/cevap/paylaşım mesajlarınızı yazınız.

İlk örneğimiz renk belleği kullanılarak yapılan basit bir colorbar rutini. Sadece 24 byte uzunluğunda.

Kod:
;---------------------------------------;
;    COLOR BAR DEMO ;
; 30-12-2008 / HADES ;
;---------------------------------------;

org 32768

main ld hl,22528 ;attributes memory start
ld b,24 ;line counter
loop2 ld a,64 ;0=normal 64=bright
ld c,8 ;color bar counter
loop1 ld d,4 ;row counter
loop0 ld (hl),a ;aküdeki deger memorye
inc hl ;memory adresi+1
dec d ;row counter-1
jr nz,loop0 ;0 degilse loop0'a git
add a,8 ;0 olduysa a+8
dec c ;color bar counter-1
jr nz,loop1 ;0 degilse loop1'e git
djnz loop2 ;line counter-1, 0 degilse
;loop2'ye git
ret ;0 olduysa programi bitir.
end


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Aralık 31, 2008, 14:02:49 ÖS
Daha önce başka bir başlıkta yazmış olduğum kodu buraya ekliyorum.

Kod:
;---------------------------------------;
; TEXT STRECH DEMO V1.0 ;
; 28-12-2008 / HADES ;
;---------------------------------------;
org 32768

main ld a,2
  call 1601h
  ; call 0d6bh ;CLS command
xor a
out (254),a
ld b,endmsg-msg
ld hl,msg
loop0 ld a,(hl)
rst 10h ;PRINT command
inc hl
djnz loop0
call longdelay
;--------------------------------------
line7 call la47004020
;--------------------------------------
line6 call la46004700
call la40204120
;--------------------------------------
line5 call la45004600
call la47004020
call la41204220
;--------------------------------------
line4 call la44004500
call la46004700
call la40204120
call la42204320
;--------------------------------------
line3 call la43004400
call la45004600
call la47004020
call la41204220
call la43204420
;-------------------------------------
line2 call la42004300
call la44004500
call la46004700
call la40204120
call la42204320
call la44204520
;-------------------------------------
line1 call la41004200
call la43004400
call la45004600
call la47004020
call la41204220
call la43204420
call la45204620
;-------------------------------------
line0 call la42004300
call la44004500
call la46004700
call la40204120
call la42204320
call la44204520
call la46204720
;--------------------------------------
call longdelay
xx jp main
;---------------------------------------
longdelay ld d,40
long call delay
dec d
jr nz,long
ret
;---------------------------------------
la41004200 ld hl,4100h
ld de,4200h
jp transfer
;---------------------------------------
la42004300 ld hl,4200h
ld de,4300h
jp transfer
;---------------------------------------
la43004400 ld hl,4300h
ld de,4400h
jp transfer
;---------------------------------------
la44004500 ld hl,4400h
ld de,4500h
jp transfer
;---------------------------------------
la45004600 ld hl,4500h
ld de,4600h
jp transfer
;---------------------------------------
la46004700 ld hl,4600h
ld de,4700h
jp transfer
;---------------------------------------
la47004020 ld hl,4700h
ld de,4020h
jp transfer
;---------------------------------------
la40204120 ld hl,4020h
ld de,4120h
jp transfer
;---------------------------------------
la41204220 ld hl,4120h
ld de,4220h
jp transfer
;---------------------------------------
la42204320 ld hl,4220h
ld de,4320h
jp transfer
;---------------------------------------
la43204420 ld hl,4320h
ld de,4420h
jp transfer
;---------------------------------------
la44204520 ld hl,4420h
ld de,4520h
jp transfer
;---------------------------------------
la45204620 ld hl,4520h
ld de,4620h
jp transfer
;---------------------------------------
la46204720 ld hl,4620h
ld de,4720h
jp transfer
;---------------------------------------
transfer ld b,20h
loop1 ld a,(hl)
ld (de),a
xor a
ld (hl),a
inc hl
inc de
djnz loop1
;--------------------------------------
delay ld bc,0020h
delay1 djnz delay1
dec c
jr nz,delay1
ret
;--------------------------------------
msg defb 16,7 ;INK 7
defb 17,0 ;PAPER 1
; defb 18,1 ;FLASH 1
defb 19,1 ;BRIGHT 1
defb 22,0,0 ;AT 0,0
defm "*359 byte demo/28-12-2008/hades*"
defm "this is my first demo for speccy"

endmsg end

http://www.freewebs.com/yenidunyalarda/strech-1.tap (http://www.freewebs.com/yenidunyalarda/strech-1.tap)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 01, 2009, 13:39:14 ÖS
hades
kodlar okunmuyor,karakterler bozuk,yada bende mi öyle görülüyor :)
-kodların yanlarına açıklamalarınıda yazabilirmisin,hangi satır ne yapıyor bilgimiz olur en azından.,
-spin asm yerine,c64 deki gibi note pad ile yazıp acme tarzı bir cross assambler ile compile edebileceğimiz araçlar varmı.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Ocak 01, 2009, 14:04:05 ÖS
explorerde bozuk çıkıyor, firefox ta okunuyor. kod yazarken boşlukları tab ile bırakıyorum. Belki karakter bozukluğunun sebebi bu olabilir.
elimden geldiğince açıklamaları yazmaya çalışırım.
spin asm benim çok hoşuma gitti. ufak bir kullanma kılavuzu hazırlaya bilirim belki. aslında kodları notepad de yazıp spin asm de compile edebilirsin. forumda başka bir başlıkta pasmo gibi bir programdan bahsedilmişti.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 01, 2009, 14:08:20 ÖS
spinasm kullanışlı, az önce senin kodları copy paste yaptım,yine ustalığını göstermişsin. :) abi şu grup fikrini bence ciddi ciddi düşünelim.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde Ocak 01, 2009, 17:46:28 ÖS
Bende sinclair ile ilgili forum yazılarının tamamını okudum. bir sürü bilgi edindim. Emulator ne varsa kurdum hepsinin bazı artıları var yeri geldiginde. Burdaki kodları alıp kullanmak için BASin release 14b yi kullanıyorum. Yazım kolaylığı olarak en çok BASin i begendim denemeni isterim joker.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: Arda üzerinde Ocak 01, 2009, 18:33:53 ÖS
Bende sinclair ile ilgili forum yazılarının tamamını okudum. bir sürü bilgi edindim. Emulator ne varsa kurdum hepsinin bazı artıları var yeri geldiginde. Burdaki kodları alıp kullanmak için BASin release 14b yi kullanıyorum. Yazım kolaylığı olarak en çok BASin i begendim denemeni isterim joker.

eve basin bir 128k speccy emulator, ayrıca assembler (14d) da gayet iyi ve aşağı yukarı stabil durumda. Yalnız unutmamalı ki Spin debugger'ı basinde mevcut değil, çünkü basin bir BASIC editörü. Assembler kısmı ise küçük asm fonksiyonları yönetmek için var. Buradaki örnekler için basin yerine Spin kullanmak daha doğru.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Ocak 01, 2009, 20:40:39 ÖS
Spin'in Tools seçeneğinde bulunan "48K keyboard helper" bölümünü seçince ekrana gelen pencerede "Quick BASIC"'i tıklayınca karşımıza gelen kısımda çok rahat bir şekilde program yazabiliyoruz. Satır numarasını ve komutları yaz, return'a bas, yazdıkların aynen spin ekranında. sonra RUN yaz çalıştır. Yani emulatörün ana ekranında hangi tuşta hangi komut var vs.. aramaya gerek kalmıyor.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 01, 2009, 20:41:10 ÖS
arda,
ne yaptın ne ettin sonunda forumdaki spectrumcu sayısını arttırdın,tebrikler valla  :D


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 01, 2009, 20:49:53 ÖS
Spin'in Tools seçeneğinde bulunan "48K keyboard helper" bölümünü seçince ekrana gelen pencerede "Quick BASIC"'i tıklayınca karşımıza gelen kısımda çok rahat bir şekilde program yazabiliyoruz. Satır numarasını ve komutları yaz, return'a bas, yazdıkların aynen spin ekranında. sonra RUN yaz çalıştır. Yani emulatörün ana ekranında hangi tuşta hangi komut var vs.. aramaya gerek kalmıyor.
az önce denedim çok kullanışlı gerçekten,komutları yaz ekranda görünsün.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Ocak 02, 2009, 21:34:44 ÖS
Gruba isim olarak "RET" kelimesini öneriyorum. Z80Asm'de geri dönüş komutudur. Bunca yıl aradan sonra Z80asm'ye bir tür geri dönüş yapmış oluyoruz.
Gruba katılmak isteyenler, farklı isimler önerebilirsiniz.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 02, 2009, 21:59:53 ÖS
bence ret güzel,


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde Ocak 02, 2009, 22:11:17 ÖS
evet cuk oturmus RET . benimde ogrendigim ilk 3 komuttan biri oldu zaten.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Ocak 04, 2009, 00:53:43 ÖÖ
İlk 256 (242) byte demomu upload ettim.

www.freewebs.com/yenidunyalarda/256b-1.zip (http://www.freewebs.com/yenidunyalarda/256b-1.zip)





Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde Ocak 04, 2009, 01:03:05 ÖÖ
off ya bende yapmak istiyorum böyle şeyler. Benim diyecegim tek şey çok güzel olmuş tebrikler.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: coze üzerinde 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 ;)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 04, 2009, 13:02:14 ÖS
oleyyy ilk demomuz geldi,süpersin hades eline sağlık



Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 04, 2009, 13:03:17 ÖS
logoyu nasıl oluşturdun?


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde 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 :)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde 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 (http://www.freewebs.com/yenidunyalarda/retlogo.tap)

Bu arada gruba kimler katıldı? (Joker, Arda, İlkergörkem ???)
(İlker'e de bir nick bulalım.)
En kıza zamanda cevap yazın. Ufak bir intro hazırlamayı düşünüyorum.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 04, 2009, 21:40:23 ÖS
joker_ /ret  ;)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: Arda üzerinde Ocak 04, 2009, 22:44:39 ÖS

Bu arada gruba kimler katıldı? (Joker, Arda, İlkergörkem ???)
(İ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?


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde 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


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde 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ı.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde 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 (http://www.freewebs.com/yenidunyalarda/horizontal flip.tap)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde 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 (http://www.freewebs.com/yenidunyalarda/vertical flip.tap)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde 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 (http://www.freewebs.com/yenidunyalarda/horverflip.tap)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde 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?  :(


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: LW3D üzerinde 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..


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: Arda üzerinde 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.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde Ocak 12, 2009, 19:56:11 ÖS
Slm Arda,
Aynen dediğin gibi yaptım zaten dün gece ve oldu da. Ama benim denemek istediğim, atic atac yada başka bir oyunun screen shoot ını alıp bu kodda uygulamak.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: мemrah üzerinde Ocak 12, 2009, 20:07:51 ÖS
ilker, selam. Soyledigini yapmanin bir suru yolu var. En basitlerinden bahsedeyim. ZX Spin kullandigini varsayarak, herhangi bir SCR dosyasini Spin'in emulasyon penceresine cekersen zaten icerigini spectrum'da 16384'ten itibaren ekran bellegine yukler. Sana ekte bir tane SCR gonderiyorum (zipledim cunku forum scr dosyasini kabul etmedi) Zip'ten cikarttigin SCR dosyasini bir kenara (ornegin masa ustune) al. Uzerinde calistigin kodu assemble et. Daha sonra eger 128 modunda isen EDIT menusunden SCREEN moduna gecmeni tavsiye ederim ki editor surekli ekrani silmeye kalkmasin. Daha sonra SCR dosyasini SPIN'in ana penceresi uzerine surukle ve birak... Resim ekranda... Daha sonra RANDOMIZE USR XXXXX ile kodu calistirabilirsin..

Diger yollar, oyunlarin TAP dosyasinin icine tape browser ile girip SCREEN$ dosyasini 16384 ile 16384+6912 arasina yuklemek, vs.

(istedigin oyunun TAP dosyasini indir, Spin'de Tape Browser'da ac, uzunlugu 6912 olan dosya ekran dosyasidir, bunu bul, LOAD "" CODE 16384,6912 yaz ve TAPE' i baslat)

Ehm... soruyu aslinda Arda'ya sormussun ama beni bi nevi nobetci Arda kabul edebilirsin.

 :)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: Arda üzerinde Ocak 13, 2009, 01:39:28 ÖÖ
oh forumda 4 spectrumcu var. Artık dünyayı ele geçirebiliriz.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: LW3D üzerinde Ocak 13, 2009, 10:12:39 ÖÖ
Dünyayı bilmem ama forumu ele geçirdiniz... ve bundan büyük mutluluk duyuyoruz... Ama 4 değil 5 kişisiniz bildiğim (+ joker_)


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: joker_ üzerinde Ocak 13, 2009, 15:27:03 ÖS
doğru biliyorsun lw3d :)
joker_ /ret


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: ilkergorkem üzerinde Ocak 13, 2009, 23:46:53 ÖS
Alıntı
Daha sonra eger 128 modunda isen EDIT menusunden SCREEN moduna gecmeni tavsiye ederim ki editor surekli ekrani silmeye kalkmasin

Alıntıdaki kısım haricinde dediklerinin hepsini yaptım (spin de edit menusu yok bende yada uykumdan göremiyorum)ama önemli değil demek istediğini anladım. Ve 3 yeni şey öğrenip geceyi başarıyla bitirmenin mutluluğu ile yatağa gidiyorum.

güzel anlatımın için teşekkürler memrah


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: мemrah üzerinde Ocak 14, 2009, 00:29:38 ÖÖ
EDIT menusu SPIN'in menulerinden birinde degil, 128K spectrumlarda, 128BASIC modundayken SHIFT+1 tusuna basinca cikar, buradaki seceneklerden birisi de SCREEN'dir. Secince, cursor ekranin alt iki satirina hapsedilir,bu alanin disina cikmaz, boylece ekrandaki resmin silinmesi onlenir. Eger SPIN'i 48K modunda kullaniyorsan bu EDIT menusu ozelligi calismaz tabi. 128K modu mu 48K modu mu kullanacagin senin tercihine kalmis. 


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: Arda üzerinde Ocak 14, 2009, 02:05:48 ÖÖ
burada verilen örnekleri 48k modunda denemek yerinde olacaktır.

şimdilik 128k modunu karıştırmayın.


Konu Başlığı: Ynt: SPECTRUM İÇİN Z80 ASM ÖRNEKLERİ
Gönderen: hades üzerinde Ocak 14, 2009, 23:55:38 ÖS
Şimdiki örneğimiz 70 byte uzunluğunda alternatif bir ekran silme efekti.
Ekrana birşeyler yazın, kodu deerleyin ve RANDOMIZE USR 32768 ile ekranın silinmesini izleyin.

Kod:
;-----------------------------------------------;
;       ekran silme efekti - 1 ;
;        14-01-2009 hades/ret ;
;-----------------------------------------------;

org 32768

main ld d,8 ; islem sayaci
;------------------------------------------------
loop4 push de ; islem sayacini sakla ; 5
ld hl,4000h ; ekran bellegi baslangic adresi
ld c,20h ; sütun sayaci
;------------------------------------------------
loop3 ld b,3 ; blok sayaci
push hl ; ekran adresini sakla (4000h,4001h, ..... ,57feh,57ffh) ; 4
;------------------------------------------------
loop2 push bc ; blok ve sütun sayaçlarini sakla ; 3
push hl ; o anki ekran blok adresini sakla (4000h,4800h,5000h) ; 2
ld c,8 ; bir bloktaki karakter sayaci
;------------------------------------------------
loop1 push hl ; o anki karakterin ekran adresini sakla (4000h,4020h, ..... ,57e0h) ; 1
ld b,8 ; bir karakterdeki pixel satiri sayaci
;------------------------------------------------
loop0 sla (hl) ; o anki karakter pixel satirini bir bit sola kaydir
;------------------------------------------------
ld e,16 ; gecikme sayaci
delay dec e ; gecikme sayacini 1 azalt
jr nz,delay ; sayaç 0 olmadiysa geciktirmeye devam et
;------------------------------------------------
inc h ; o anki karakterin bir sonraki pixel satirini elde et
djnz loop0 ; pixel satiri sayacini 1 azalt, 0 olmadiysa geri dön
;------------------------------------------------
pop hl ; saklanan ekran adresini al ; 1'
ld de,20h ; bir alt satirdaki karakter için adres farki
add hl,de ; yeni adresi elde et
dec c ; blok karakter sayacini 1 azalt
jr nz,loop1 ; sayaç 0 olmadiysa geri dön
;------------------------------------------------
pop hl ; saklanan ekran adresini al (4000h veya 4800h olabilir) ; 2'
ld de,0800h ; bir sonraki blok için adres farki
add hl,de ; sonraki blok adresini hesapla (4800h veya 5000h olabilir)
pop bc ; blok ve sütün sayaçlarini geri al ; 3'
djnz loop2 ; blok sayacini 1 azalt, 0 olmadiysa geri dön
;------------------------------------------------
pop hl ; ekran adresini al ; 4'
inc hl ; ekran adresni 1 arttir
dec c ; sütun sayacini 1 azalt
jr nz,loop3 ; sayaç 0 olmadiysa geri dön
;------------------------------------------------
pop de ; islem sayacini geri al ; 5'
dec d ; sayaci 1 azalt
jr nz,loop4 ; sayaç 0 olmadiysa geri dön
;------------------------------------------------
; bu bölüm renk bellegini siyah yapar
ld hl,5800h
ld de,5801h
ld bc,767
ld (hl),0
ldir
;-----------------------------------------------
; border rengi siyah olsun
xor a
out (254),a

ret ; mutlu son
end