emarti software - Murat Özdemir
Bana 1 ve 0'ları sevdiren C64 için...
24 Ağustos 2016 Çarşamba
25 Temmuz 2016 Pazartesi
30 Kasım 2014 Pazar
c64çe Nothing else matters!
Yeni sid çalışmamdır. Her türlü eleştiriye açığım. 3 kanal ses olunca bu kadar oluyor...
http://csdb.dk/release/index.php?id=135025
http://csdb.dk/release/index.php?id=135025
8 Kasım 2014 Cumartesi
CBM Prg Studio 3.2.0 (Better support for Turkish language)
CBM Prg Studio'nun 3.2.0 sürümü Türkçe dil desteğini alacak şekilde düzeltildi. Örneğin SEI komutunu küçük harf olarak yazdığınızda sei olmalı ama bu op kodu tanımıyordu. seı olarak yazılırsa derleme başarılıydı. Neyse ki sorun uzun mail trafiği sayesinde çözüldü. Artık i-ı kargaşası bitti.
Programın Option menüsünden çıkan pencereden General sekmesine gelip "Use Current Culture" yazılı checkboxa ait çentiği kaldırın, boş bırakın. Bu sayede Türkçe desteği için sıkıntı çekmeyeceksiniz.
Programın Option menüsünden çıkan pencereden General sekmesine gelip "Use Current Culture" yazılı checkboxa ait çentiği kaldırın, boş bırakın. Bu sayede Türkçe desteği için sıkıntı çekmeyeceksiniz.
27 Eylül 2014 Cumartesi
Try SID File on C64 (SID Dosyaları ile uğraşmak)
My SID Archives and prg players
10. yıl marşı
http://csdb.dk/release/?id=133245
Ceddin Deden
http://csdb.dk/release/?id=133246
Eski Ordu Marşı
http://csdb.dk/release/?id=133247
Mehter Marşı
http://csdb.dk/release/?id=133248
Hücum Marşı
http://csdb.dk/release/?id=133249
Yelkenler Biçilecek
http://csdb.dk/release/?id=133250
Tümüne Ulaşmak için
http://csdb.dk/scener/?id=26786
14 Eylül 2014 Pazar
My First One File Demo at CSDb
C64 üzerinde yaptığım demolardan birini CSDb'de yayınladım. Kaynak kodlarını inceleyerek blogta öğrendiklerinizin bir kısmını bulabilirsiniz.
http://csdb.dk/release/index.php?id=132995 adresinden ilgili demonun d64 image dosyasını indirerek çalıştırabilirsiniz.
11 Eylül 2014 Perşembe
IRQ interrupt raster? ....
IRQ interrupt & raster?
Teknik ayrıntısı aslında kısaca şöyle anlatılabilir. C64'ü açtığınızda 'READY.' altında cursor yanıp söner zavallım. Zavallı yanıp söne dursun, arkaplanda her bilgisayar gibi sizin farkında olmadığınız bir sürü iş yapıla durur :). Saman altından su yürütülür. Siz de saman altından su yürütmek istediğiniz de bir anlık bir kesinti yaratıp bu anda şu programı çalıştır sonra hemen çık, nerede kaldıysan oradan devam et demelisiniz. Bunu yaparken zamanlama bazen çok önemlidir.
Nasıl yani? Evet, herşeyde olduğu gibi burada da zamanlama çok önemli olabiliyor.
Benim bildiğim en küçük zamanlama birimi cycle.
Cycle Nedir?
Benim bildiğim tanım şu şekilde (ilk öğrendiğimde kandırmadılar ise), CRT monitör yada eski TVlerde bir elektron tüm ekranı gezer, bizim anlamamız için pixel pixel yol alır. Göz bunu farketmez. Hatta anlamak için bu tip monitör yada TV'lere yandan bak falan derlerdi. Titreşim olurdu az çok yinede anlamazdık. Bizim bu elektron 8 piksel yol aldığında 1 cycle zaman geçer teoride, hala teoride sanırım.
Elektronun C64 yazılabilir ekranında en sol üst köşesindeki pikselden, en sağ üst köşesindeki piksele kadar kaç cycle geçer hesap edelim. 40 kolon var 1 satırda. Her karakter 8x8 matrixten oluşmuş, yani her karakter 8 piksel genişliğinde. 40x8=320 piksel. Bunu da 8'e bölersek 40 cycle eder. 20 adet NOP komutu ardarda çalıştığında geçen süre kadar. Aslında bu hesapların şimdi çok bir önemi yok.
Aşağıdaki program $D012 deki raster $00 olana kadar programın kalanını çalıştırmaz. Olduğunda ise en üst satıra birşeyler yazar ve bunu hep sabit tutar. Diyelim ki program dökümünüzü LIST ettiniz, listeniz aşağı aka dursun hala üst satır sabit kalır. $D019 kullanımı ve basic'e dön ($EA31) açıklamalarına kullanımına dikkat ediniz.
; 10 SYS49152
*=$801
BYTE $0B, $08, $0A, $00, $9E, $34, $39, $31, $35, $32, $00, $00, $00
*=$C000
jsr $e544 ; ekranı sil
lda #$0d ; cursora satır atlatır
jsr $ffd2
sei
lda #$7f ; CIA kontrol registerlerini ayarla
sta $dc0d
lda #$00
sta $dc0e
lda #$01
sta $d01a ; IRQ çalış (önleme)
ldx #$00 ; rasteri $00'a ayarla
stx $d012
lda #$<kes ; IRQ interrupt vektörünü ayarla
sta $0314
lda #$>kes
sta $0315
cli
rts
kes lda #$00 ; raster 0 olana kadar bekle
X cmp $d012
bne X
ldx #$00 ; üst satır yazdır
l1 lda toptxt,x
clc
adc #$80
sta $0400,x
inx
cpx #$28
bne l1
lsr $d019 ; VIC kesinti bayrağı registeri
jmp $ea31 ; basic'e dön
toptxt BYTE $20,$03,$36,$34,$20,$15,$13,$05,$12,$20,$20,$20,$20,$20
BYTE $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$30,$39,$2F,$31
BYTE $31,$2F,$31,$34,$20,$20,$30,$39,$3A,$32,$35,$20
Kaydol:
Kayıtlar (Atom)