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)
commodore.gen.trDiğer Nostaljik BilgisayarlarSinclairSinclair - Yazılımzx asm'de AT satır, sütun komutu karşılığı...
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: zx asm'de AT satır, sütun komutu karşılığı...  (Okunma Sayısı 4258 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
hades
Üye
****
Mesaj Sayısı: 334



Üyelik Bilgileri
« : Şubat 16, 2008, 01:11:59 ÖÖ »

Spectrumda, aküde ascii kodu tutulan bir karakteri default çıkış kanalı olan ekrana "rst 10h" ile gönderebiliyoruz. Bunlardan başka ekrana basılacak textlerle ilgili olarak PAPER, INK, OVER, BRIGHT, FLASH, INVERSE, TAB ve AT komutlarını da kullanabiliyoruz.
Ancak yaptığım denemelerde "AT satır, sütun" komutunu kullanırken istediğim  "satır" da ekrana yazıyı basamıyorum.
Gerçekten böyle bir sorun mu var, yoksa ben mi beceriksizim?
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #1 : Şubat 16, 2008, 02:42:33 ÖÖ »

22 (desimal) numaralı karakter kodundan bahsediyorsan kullanabilmen lazım.

stream'e 22,11,15,.... yazdığın zaman, y11, x15 numaralı alana cursoru getirir.

bu arada y, 21'i geçemez.

tabii screen output'u da seçmen gerek,

Kod:
LD A,2
 CALL 5633     ;önce kanalı açmak gerek ($1601)
 LD a,22
 RST 16
 LD a,10 ;y
 RST 16
 LD a,20 ;x
 RST 16
 LD a,65 ;A harfi basarım ancak ben :)
 RST 16

edit: code tag'i nolmuş sapıtmış...
edit2:
bu arada PRINT USR kullanarak başlarsan stream Screen oluyor, yani $1601'den ekran seçmek zorunda kalmayabilirsin. RANDONIZE USR input kanalını seçer. LPRINT USR ile başlarsan printer kanalı default seçili kalır. Size coding yapıyorsan 5 byte kazanırsın.
« Son Düzenleme: Şubat 16, 2008, 03:45:43 ÖÖ Gönderen: Arda » Logged

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


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #2 : Şubat 16, 2008, 03:47:05 ÖÖ »

bu da spectrum rom disassembly.

http://www.wearmouth.demon.co.uk/zx82.htm#L1601

Logged

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


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #3 : Aralık 29, 2008, 11:22:05 ÖÖ »

dünden beri forumdaki sinclair yazılarını okuyorum en alttan üstte doğru epey bilgi edindim hemde eğlenceli. Son olarak geldiğim yerde bir örnek vermişin. spin de ve basin de denedim ikisindede en başa org 40000 yazdım yoksa çalışmadı ama çalıştığı zamanda bir an A harfi gözükyor sonra reset oluyor. Böyle reset olmak zorunda mı ?


 LD A,2
 CALL 5633     ;önce kanalı açmak gerek ($1601)
 LD a,22
 RST 16
 LD a,10    ;y
 RST 16
 LD a,20    ;x
 RST 16
 LD a,65    ;A harfi basarım ancak ben
 RST 16

RET'i ekliyorsun sonuna umarım?

evet print kanalı ekrana ayarlı olduğu için input kanalına geri dönmek lazım çıkmadan önce.

Spectrumda alt satırda input girdiğimiz kanal başka bir stream, üst kısma kullandığımız kanal başka.

son olarak kod şu olacak:

Kod:

 org 40000     ;assemble edilecek adres 40000

 LD A,2
 CALL 5633     ;önce kanalı açmak gerek ($1601)
 LD a,22
 RST 16
 LD a,10 ;y
 RST 16
 LD a,20 ;x
 RST 16
 LD a,65 ;A harfi basarım ancak ben :)
 RST 16

 RET            ;geri dön
« Son Düzenleme: Aralık 29, 2008, 12:11:24 ÖS Gönderen: Arda » Logged

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



Üyelik Bilgileri
« Yanıtla #4 : Aralık 30, 2008, 09:51:04 ÖÖ »

Açıklamalı cevabın için teşekkürler Arda "ret" yazınca oldu.
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
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: