İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Mesajlar - myriac

Sayfa: [1]
1
çeşitli / sos - 1
« : 10.10.2005 21:03:56 »
:) , skate harikaydı yaa....

ve de nightlord ; "acme ve etiketler" konusunu açman muhteşem,

thanx

2
çeşitli / sos - 1
« : 09.10.2005 20:43:00 »
merhaba nightlord,

stradr1 = $0400
stradr2 = $0428
stradr4 = $0478
.
.
.
.
.




lda #sta $fa
lda #>satir1
sta $fb
lda #sta $fc
lda #>stradr1
sta $fd
jsr satirbas

satirbas
ldy #$00
loop
lda ($fa),y
beq out
sta ($fc),y
iny
cpy #$28
bne loop
out
rts

satir1 !scr "bu satir ekranin en ustunde yer alacak"
!byte 0


aslına bakarsanız sizlere karşı bu defa yazılı düşünme gereğini hissettim:

bir özet yapacak olursam :
yukarıdaki örnekte;

stradr1 = $0400
stradr2 = $0428
stradr4 = $0478

öncelikle bu üç satırla,  videomatrixte karakterlerin basılacağı satır numaraları hex adres tanımları olarak atandı.

en alttaki satir1 etiketinin 2 byte 'lık hex adresi

lda #sta $fa
lda #>satir1
sta $fb

koduyla;
küçük byte aküye sonra fa adresine
büyük byte aküye sonra fb adresine     yazıldı.

ve ;

lda #sta $fc
lda #>stradr1
sta $fd

koduyla satır adresleri

küçük byte aküye sonra fc adresine
büyük byte aküye sonra fd adresine     yazıldı.

ve jsr satirbas

burada y register ındaki 00 değeri indexli olarak lda (fa),y kullanımından doğan ardışık adreslere indexli olarak eklenip aküye atıldı.beq satırı out etiketine henüz gitmiyor çünkü sanırım y deki değer 28 değil.(AMA ŞUNU ANLAMADAIM BEQ kendinden önce gelen son satıra göre işlem yapmıyormu ? yani beq burda hangi karşılaştırmaya ait dallanma sağlıyor ?)          ve sta ($fc),y satırıyla fc,fd ye yazılmış olan stradr1 in adres değeri yerinden itibaren aküdeki değeriyle basıldı.  y 1 artırıldı 28 e eşit olasaya kada döngü döndü.

anlatımım biraz karışık olabilir, ama beq satırı haricinde anladım (mı) sanırım. :)

satir1 !scr "bu satir ekranin en ustunde yer alacak"
!byte 0

birde burada "!byte 0" napıyor onu anlamadım.ve son sorum fa,fb,fc,fd, adresleri c-64 te null' mı? fe,ff de böylemi ? başka böle boş adresler var mı?

bu arada izmir hatay b.evler de oturuyorum.

saygılarımla,

3
çeşitli / sos - 1
« : 07.10.2005 22:49:11 »
!byte $0b, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00

lda #$01
jsr $e536

jmp *

incelememi istediğin örneğinde;
bana sadece bu satırlarla ilgili açıklama değilde, ipucu verir misin ?

birde "pointers & c64" ilgili kaynak gösterebilir misin ? (yerli yabancı farketmez)

4
çeşitli / sos - 1
« : 06.10.2005 23:04:44 »
!to "test.prg"

* = $c000

jsr clear_screen
ldy #$c0
jsr delay
ldx # < text1
ldy # > text1
jsr copy_text

end:
jmp end


clear_screen:
ldx #0
lda #$20
cs_loop:
sta $0400,x
sta $0500,x
sta $0600,x
sta $0700,x
inx
bne cs_loop
rts

screen = $0400 + (12*40)

copy_text:
stx ct_loop + 1
sty ct_loop + 2
ldx #0
ct_loop:
lda $0000,x
sta screen,x
inx
cpx #40
bne ct_loop
rts

delay:
ldx #0
d_loop:
dex
bne d_loop
dey
bne d_loop

rts
text1:
!scr "merhaba dunya "
text2:
!scr "iste geliyorum "
text3:
!scr "bangir bangir "


şu programda sadece text1' in içeriğini yazması gerekmezmi ?,

MERHABA DUNYA (cpx #13 yaparsam)

kırk karaktere kadar da diğer bazı sembolleri basması
(cpx # 40 olursa).çünkü text2 ve text3 etiketlerine REM attığımda ekran şöle oluyor :

MERHABA DUNYA@@@@@@@@@@@@@@@@@@@@ (cpx#40 iken)

toplam 40 karakter



halbuki program yukarıdaki halinde 12. satıra 40 karakter yerleştiriyor ama, text2 ve text 3 üde neden ?

yani tüm etiketler aktif ,program run ettiğimde ekran 12. satırın başından itibaren şöyle :

MERHABA DUNYA ISTE GELIYORUM BANGIR BANG

toplam 40

nasıl text2 ve text 3üde alıyor ?

halbuki kodda

ldx # < text1
ldy # > text1
jsr copy_text

sadece bunlar var..

5
çeşitli / sos - 1
« : 06.10.2005 17:37:47 »
* = $c000

jsr clear_screen
ldy #$40
jsr delay
ldx # < text1
ldy # > text1
jsr copy_text
ldy #$80
jsr delay
ldx # < text2
ldy # > text2
jsr copy_text
ldy #$c0
jsr delay
ldx # < text3
ldy # > text3
jsr copy_text
end:
jmp end


clear_screen:
ldx #0
lda #20
cs_loop:
sta $0400,x
sta $0500,x
sta $0600,x
sta $0700,x
inx
bne cs_loop
rts

screen = $0400 + (12*40)

copy_text:
stx ct_loop + 1
sty ct_loop + 2
ldx #0
ct_loop:
lda $0000,x
sta screen,x
inx
cpx #40
bne ct_loop
rts

delay:
ldx #0
d_loop:
dex
bne d_loop
dey
bne d_loop
rts
text1:
!scr "merhaba dunya "
text2:
!scr "iste geliyorum "
text3:
!scr "bangir bangir "

lütfen birisi aklımı açsın :
3. chapter' ın bu kısmına kada bilgilerimi tazeledim,
defalarca okudum, danışmayacam dedim kimseye ama işte yazıyorum
1) 16 bitlik text1 yada text 2,3 etiketini 2 baytlık registerlara  bölüp argüman olarak x ve y diye belirtip sora dallanıyoruz mantığını kavrayamıyorum,
2) soa copy_text e dallandığımız yerde
stx ct_loop + 1
sty ct_loop + 2
satırlarında x ve y kndini nerelere nasıl yazıyor ? (şayet böyleyse, stx in bu kullanımı kafamı karışırdı)
3) cpxle döngü  neden kırka kadar sayıyor ?

kısacası halihazırda varolan text1: text2: text3: etiketlri varken argüman geçirerek bu yazıları ekrana yazdırmayı bi türlü çözemedim.

lütfen acemiye bi yardım kimse gülmesin
c64 asm yi tekrar öğrenmyi çok istiyorum :(

Saygılrımla,

Sayfa: [1]