commodore.gen.tr

Commodore => Commodore Yazılım => Konuyu başlatan: ilkerficicilar üzerinde Temmuz 25, 2014, 16:31:52 ÖS



Konu Başlığı: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Temmuz 25, 2014, 16:31:52 ÖS
Kendi işletim sistemini kendin yaz furyası zamanlarında ben de Commodore'u daha rahat kullanabilmek için bir şeyler yapmış, adını DOS ve GEOS'tan esinlenerek GOS koymuştum.

DOS ve CP/M gibi komutlar diskten yüklenip çalıştırılıyor. BASIC yorumlayıcı, eğer girilen komutu tanımıyorsa syntax error vermek yerine "COM.komutadı" şeklindeki kodu diskte arayıp $C000'a yükleyip çalıştırıyordu. Grafik ekran kullanımı kolaylığı ve mouse desteği vb. de sağladığından Graphical Operating System demekte sakınca görmemişim.

Diskten okuma hızı sorun olmasın diye bir de disk-cache yapmıştım. Kütüphaneden epey kitap taşıdığımı hatırlıyorum, modified LRU vb. hangi algoritmayı seçeyim diye epeyi deneme yanılma yapmıştım... Hem directory hem de sık kullanılan bloklar bellekte tutuluyordu. Sonra, cache'te olmayanları diskte bakınırken blokları tek tek yüklemek yerine bir track'i olduğu gibi yüklemenin toplamda daha hızlı olduğunu fark ettim. Bir track-buffer yapınca pratikte iki farklı cache'i olmuş oldu.

GOS, standart olarak mouse destekliyor. Basit animasyonlar göstermek için bir komutu var. BASIC içinden başka BASIC programını yükleyip çalıştırabiliyor. Bir BASIC programının değişkenlerini saklayıp aktarabiliyor. CLS, LOCATE, SCREEN vb. gibi standart eklentiler var ve sinüs karekök gibi bazı fonksiyonları çok daha hızlı işliyor. Bir ek bellek yöneticisi de yazmıştım, cache'e yarasın diye, ama onu bunda mı yoksa LUnix'te mi kullandım emin değilim şu an. En son sanırım diskten daha da hızlı okuma için veri sıkıştırma, Huffman encoding kullanmakla meşguldüm GOS'ta. Sonra ne olduysa terk etmişim. Sanırım Linux'a geçtiğim tarihlere denk geliyor.

İşte bu GOS çalışma diskimi daha yeni .D64 olarak aktardım. İçinde borsa senetleri ile ilgili dosyalar vb. var. Borsa takibinde kullanmışım :) Onları ayıklayıp .d64'ü öyle paylaşayım diyorum.

Directory'den bir örnek şöyle:

dir
0 "calisma-1       " 0f 2a
109  "gos9510141937"    prg
4    "com.status"       prg
1    "com.mem"          prg
5    "com.scrch"        prg
1    "com.execute"      prg
1    "com.dummy"        prg
1    "com.trace"        prg
1    "com.swap"         prg
1    "com.putclr"       prg
1    "com.makehi"       prg
2    "com.makelow"      prg
2    "com.block"        prg
1    "com.fill"         prg
1    "com.reclr"        prg
4    "com.show"         prg
4    "com.picput"       prg
3    "com.movie"        prg
2    "com.style"        prg
1    "com.exec"         prg
1    "com.baspack"      prg
6    "ptc.baspack"      prg
1    "com.dump"         prg
1    "com.type"         prg
1    "com.cllearn"      prg
4    "com.clvar"        prg
4    "com.cltrain"      prg
3    "com.clcall"       prg
3    "com.clput"        prg
3    "com.cltake"       prg
1    "com.volume"       prg
1    "com.wave"         prg
1    "com.envelope"     prg
1    "com.oscillate"    prg
1    "com.setsid"       prg
1    "com.tune"         prg
1    "com.play"         prg
1    "com.filter"       prg
1    "com.italic"       prg
1    "com.pack"         prg
1    "com.key"          prg
1    "com.renum"        prg
1    "com.del"          prg
1    "com.cat"          prg
2    "com.shlscr"       prg
3    "com.fractal"      prg
3    "com.brott"        prg
1    "com.count"        prg
1    "com.scrcount"     prg
1    "com.dsp"          prg
1    "com.hear"         prg
1    "com.patch"        prg
1    "com.mkhi"         prg
1    "com.scrollup"     prg
1    "com.discard"      prg
2    "com.comptable"    prg
1    "&fasthead"        usr
2    "sys.config"       prg
9    "fnt.turcbig"      prg
9    "fnt.turcsmall"    prg
9    "fnt.capital80"    prg
9    "fnt.small80"      prg
6    "mv0.cube-1"       prg
25   "mv0.surface1"     prg
22   "mv0.lissajous"    prg
10   "mv0.cube&pyram."  prg
10   "mv0.cube&pyram"   prg
19   "gsb.edit-16"      prg
15   "gsb.menu-15"      prg
11   "gsb.disker"       prg
1    "gsb.testline"     prg
2    "gsb.datarate"     prg
19   "gsb.edit"         prg
6    "gsb.dersprog"     prg
1    "gsb.iterate"      prg
1    "gsb.numofite"     prg
3    "gsb.mandelrnd"    prg
4    "gsb.ratetest"     prg
4    "gsb.ratetest2"    prg
5    "gsb.hashfunc1"    prg
24   "gsb.borsa2"       prg
2    "gsb.dynmap-1"     prg
2    "gsb.test"         prg
15   "gsb.menu"         prg
5    "gsb.parallel"     prg
4    "gsb.diskspeed"    prg
7    "gsb.numgraph"     prg
5    "dspeed"           prg
6    "dspeed2"          prg
24   "borsa"            prg
4    "eklink"           prg
1    "cmkb"             prg
5    "hashfunc2"        prg
7    "undelete"         prg
1    "mnu.root"         prg

break
ready.


Dosya adından anlaşıldığı üzere bu 14 Ekim 1995 saat 19:37 versiyonu!

Buradaki, COM'lar 49152'ye yüklenen kısa komut dosyaları, GSB'ler GOS BASIC, MV0'lar movie file versiyon 0, FNT'ler font vb. dosyaları.

Diskteki ve RAM'daki çoğu komutun ne işe yaradığını, parametrelerini vs. anımsamıyorum. Umarım bir kenara yazmışımdır ve bu tatilde bulabilirim.

Kodları dokümante etmek ve kolay erişilir bir yere koymak şart şart... Fark ettim ki 19 yıl sonra kod anımsamaya çalışmak, bisiklete binmeye pek benzemiyor.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: joker_ üzerinde Temmuz 25, 2014, 16:38:43 ÖS
@ilkerficicilar;
Yok artık diyorum,abi cidden çok çok iyi çalışmalar,paylaşım için teşekkürler. :)

Zamanında demo,intro vs çalışmalarında oldumu?


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: xeon83 üzerinde Temmuz 25, 2014, 16:41:03 ÖS
çok ilginçmiş hocam, elinize sağlık. D64 ü nerede ?


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Temmuz 25, 2014, 17:15:45 ÖS
Notlarımı bulur bulmaz tarayıp http://cbm.ficicilar.name.tr/ (http://cbm.ficicilar.name.tr/) 'ye .D64'ü ile birlikte yüklemiş olurum olasılıkla şu 9 gün içinde.



Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: xeon83 üzerinde Temmuz 25, 2014, 17:19:57 ÖS
Tamamdır teşekkürler disket komutları falan güzel olur deneyeceğim..


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Temmuz 25, 2014, 17:25:30 ÖS
@joker Demo yeteneğim hiç yok doğrusu. O özel apayrı bir beceri.

@xeon83 Teşekkürler. Aktif kullanmıştım GOS'u uzun bir süre.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Temmuz 29, 2014, 22:39:54 ÖS
GOS-95 C64 İşletim Sistemi Eklentisi Komutları - Kısım 1:

http://cbm.ficicilar.name.tr/commodore/gos-95-c64-operating-system-commands-part-1 (http://cbm.ficicilar.name.tr/commodore/gos-95-c64-operating-system-commands-part-1)

GOS'un çalıştırılabilir bir disketi (.d64):  http://cbm.ficicilar.name.tr/dosya/gos95.zip (http://cbm.ficicilar.name.tr/dosya/gos95.zip)

(load"*",8 ile ilk dosyayı yükleyip run komutu ile çalıştırmak yeterli)

Yukarıdaki doküman İngilizce bu arada. Örnek programlardan bir demeti de sonra siteye eklemeyi planlıyorum. Sadece komut açıklamalarının Türkçesi ise aşağıda.:

GOS komutları - kısım 1:

komut: dir
parametreler: -
türü: dahili
ne: Aktif disk no'daki directory'yi gösterir.

komut: cat
parametreler: -
türü: disk
ne: Aktif disk no'daki directory'yi gösterir.

komut: status
parametreler: -
türü: disk
ne: Önbellek, bellek, fastID ve fastopen durumunu gösterir.

komut: mem
parametreler: -
türü: disk
ne: BASIC programı hakkında genel bellek durumu.

komut: drive
parametreler: <disk no>
türü: dahili
ne: Aktif disk no'yu belirler. Disk no, 8 ile 11 arasındadır.

komut: path
parametreler: <path>
türü: dahili
ne: Harici komutlar için klasör yolunu belirler.

komut: drvset
parametreler: <on|off>,<on|off>
türü: dahili
ne: Sırasıyla fastID ve fastopen işlevlerini açar veya kapatır.

komut: dump
parametreler: -
türü: disk
ne: Aktif BASIC değişkenlerinin içeriklerini listeler.

komut: scrollup
parametreler: -
türü: disk
ne: Ekranı bir satır yukarı kaydırır.

komut: volume
parametreler: <0-15>
türü: disk
ne: Ses yüksekliğini ayarlar. Aldığı değer 0-15 arasındadır.

komut: type
parametreler: <dosya adı>,<disk no>
türü: disk
ne: Bir metin dosyasının içeriğini gösterir.

komut: baspack
parametreler: -
türü: disk
ne: Bellekteki BASIC dosyalarını sıkıştırarak daha az yer kaplamasını sağlar.

komut: italic
parametreler: -
türü: disk
ne: Ekran yazı tipini yatık biçime çevirir.

komut: movie
parametreler: <mv0'sız dosya adı>,<disk no>
türü: disk
ne: mv0. tipi animasyon dosyalarını gösterir.

komut: cls
parametreler: [<ekran no>]
türü: dahili
ne: Ekranı siler. Eğer bir ekran no verilmişse ilgili o ekranı, verilmemişse default 0. ekranı siler.

komut: screen
parametreler: <ekran no>
türü: dahili
ne: Verilen ekran no'ya geçer. 8 grafik ekran, 0 ve 1 yazı ekranları

komut: pass
parametreler: <ekran no>
türü: dahili
ne: Yazıların yazılacağı aktif ekrana geçer.
örnek: pass1:cls:print"hello world":screen1:rem Bu teknik ekranı önce hazırlar sonra gösterir.

komut: swap
parametreler: -
türü: disk
ne: screen 0 ve screen 1 arasında gidip gelir. Aynı anda hem ekranı hem aktif alanı değiştirir.

komut: flip
parametreler: -
türü: disk
ne: screen 0 ve screen 1 arasında ekranı değiştirmeden sadece aktif ekranı değiştirir.

komut: color
parametreler: <çerçeve ve ekran rengi>,<yazı rengi>,<grafik ekran renkleri>
türü: dahili
ne: Renkleri belirler. Grafik ekran renkleri = arkaplan*16+noktarengi şeklindedir.

komut: picput
parametreler: <dosya adı>,<disk no>
türü: disk
ne: Grafik ekranı kaydeder.

komut: show
parametreler: <dosya adı>,<disk no>
türü: disk
ne: Grafik ekranı yükleyip gösterir.

komut: hear
parametreler: -
türü: disk
ne: Joystick 2 portundaki ADC digitizerdan alınan dijital sesi SID çıkışına verir. Çıkmak için CRTL-J veya Josystick ateş tuşuna basılır.

komut: dsp
parametreler: <adet>,<hız>
türü: disk
ne: Joystick 2 portundaki ADC digitizerdan alınan dijital ses dalgalarını ekranda gösterir.

komut: mkhi
parametreler: -
türü: disk
ne: Normal karakterli yazı ekranını Hires grafik ekranına çizerek aktarır.

komut: makehi
parametreler: -
türü: disk
ne: Normal karakterli yazı ekranını Hires grafik ekranına aktarır.

komut: makelow
parametreler: -
türü: disk
ne: Grafik ekranını, font tanımlarıı değiştirerek karakter ekranına aktarır.

komut: key
parametreler: [<tanım>,<0-15>]
türü: disk
ne: Fonksiyon tuşlarını tanımlar ve mevcut tanımları gösterir. Toplam 16 tuş kombinasyonu tanımlanır.

komut: del
parametreler: <satır nolar>
türü: disk
ne: BASIC programdaki verilen satır noları siler.
örnek: del130-180

komut: renum
parametreler: <ilk satır no>,<artım>
türü: disk
ne: BASIC programının numaralarını yeniden düzenler.

komut: erase
parametreler: -
türü: dahili
ne: Önbellek içeriğini temizler.

komut: reset
parametreler: -
türü: dahili
ne: Açılış ayarlarına geri getirir. Belleği silmez.

komut: cset
parametreler: <0|1>
türü: dahili
ne: Karakter setini değiştirir. 0=Büyük harfler, 1=Küçük harfler.

komut: block
parametreler: <C|M|T><X1>,<Y1>,<X2>,<Y2>,<X3>,<Y3>
türü: disk
ne: Yazı ekranında X1,Y1,X2,Y2 ile tanımlı bloğu X3,Y3'e kopyalar (C), haraket ettirir (M) veya taşır (T)

komut: fill
parametreler: <S><X1>,<Y1>,<X2>,<Y2>,<Char>
türü: disk
ne: Yazı ekranında X1,Y1,X2,Y2 arasını <Char> karakteri ile doldurur.

komut: dot
parametreler: <X1>,<Y1>,<0|1>
türü: disk
ne: Grafik ekranına bir nokta basar veya siler.

komut: locate
parametreler: <X1>,<Y1>
türü: dahili
ne: İmleci yazı ekranında verilen koordinata getirir.

***

Daha temize çekilecekler arasında GOS'un jump-table'ı, geçici alanları, ayrıntılı bellek yerleşimleri, yapay zeka ve ses kayıt vb. ile ilgili komutları, gizli komutları ve performans bilgileri var. Hatta sırada PC mouse'un RS232 dokümanları, yayınlanmamış LUnix komutları, terlik isimli 56K terminal programı, xmodem'li load komutu, amatör telsizcilik kodları vs. vs. bekliyor... Bakalım, onların dokümantasyonunu da 2033 yılına kadar tamamlamayı planlıyorum.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: xeon83 üzerinde Temmuz 29, 2014, 22:47:16 ÖS
format, copy, erase gibi şeyler yokmu ? (dosya-disk için)


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Temmuz 29, 2014, 22:51:40 ÖS
Basit olanlar için @ komutları var. Tam disk kopya da olacaktı ama doğrusu gözümden kaçmış. Bu diskete koymadığım komutlar var daha.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: atlantis üzerinde Temmuz 31, 2014, 11:39:15 ÖÖ
Güzelmiş. Devam ettirseydiniz keşke.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: Simon (Özay Turay) üzerinde Ağustos 13, 2014, 01:41:25 ÖÖ
GOS-95 CiA'de de yayınlanmış. :)

http://awesome.commodore.me/gos-95/ (http://awesome.commodore.me/gos-95/)


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Ağustos 13, 2014, 09:07:53 ÖÖ
:) Oooo

Eh, ne diyelim. Geç olsun da güç olmasın... Bileydim güzel bir açılış ekranı yapardım gerçi. Bu hali sadece kendime anımsatmada bulunması içindi.


Bu arada, dün akşam apps.twitter.com'da OAuth için bir app. tanıtıp key ve tokenlerini cbm.ficicilar'daki yeni yazı girme scriptinin içinde kullandım. Böylece ne zaman yeni bir yazı eklesem, otomatik olarak yazı başlığı ve linkini tweetleyecek: https://twitter.com/projectcbm (https://twitter.com/projectcbm)

Bu sistem commodore.gen.tr'de de kullanılabilir sanki.



Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: joker_ üzerinde Ağustos 13, 2014, 09:54:11 ÖÖ
@ilkerficicilar,
Müthiş bir çalışma olmuş, en kısa zamanda denemeyi düşünüyorum. Bak gel beni dinle, demo patlat bir tane. :D


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: hekimoglu78 üzerinde Ağustos 13, 2014, 10:13:34 ÖÖ
işte elinden tutulmayan bir Türk bill gates örneği... :)
çok başarılı üstad...


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: emarti üzerinde Ağustos 13, 2014, 23:53:08 ÖS
Güzel bir proje


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: LW3D üzerinde Ağustos 14, 2014, 14:01:16 ÖS
Şaka maka, bunu denemem gerek... DIR yazarak Commodore64'de directory almak istiyorum :)

Harikasınız...Eski yaptıklarınızı karıştırsanız, ortaya daha kim bilir neler çıkar...


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Haziran 19, 2016, 11:02:21 ÖÖ
Klasörler arasında minik kağıtlara yazılı halde birkaç komutun daha parametrelerini buldum. Tek tek kodlara bakıp baştan keşfetmeye üşenmiştim. İyi oldu... Şu dökümantasyon işini ciddiye alsam iyi olacak :)

Birkaçını yazıyorum:

Grafik ekrana Mandelbrott fractal'i çizen süs komut:
BROTT sol sınır, sağ sınır, üst sınır, tekrar, renk sayısı

Grafik ekrana Julia set fractal'i çizen süs komut:
FRACTAL sol sınır, sağ sınır, üst sınır, tekrar, renk sayısı

Resim dosyayı gösteren komut:
SHOW "dosya adı",driveno

Bundan sonrakiler yapay sinir ağı komutları. Bir ara meraklıydım. Bunlarla pattern recognition vb. yaptırabilir, ya da geçenlerde konuşulan tic-tac-toe oyununu kendi kendine öğrenmesini sağlayabiliriz:

CLVAR ilk katman nöron sayısı, çıktı katmanı nöron sayısı, model #, öğrenme oranı

CLLEARN model #, model dizisi ("01010000101111" vs. gibi)

CLTRAIN alıştırma sayısı

CLCALL anımsanacak dizi

Ve öğrendiklerini kaydedip geri yüklemek için:

CLPUT "dosya adı"

CLTAKE "dosya adı"

Sanıyorum, Commodore Dergisi'ndeki Yapay Sinir Ağı yazısından etkilenmiş, Yapay Zeka ile ilgili güzel örneklerin bulunduğu bir kitaptan yararlanarak yazmıştım.

Bunları kullanan örnek programları bulunca eklerim, denemesi eğlenceliydi.


Edit: CL = Competitive Learning.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: WildLord üzerinde Haziran 19, 2016, 12:33:54 ÖS
Vice'da şimdi kullanmaya başladım. Üstad, muhteşem bir iş yapmışsınız, ellerinize sağlık. Komutlar ne kadar kolaylaştırıyor C64 kullanmayı :)


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Haziran 19, 2016, 14:45:38 ÖS
Teşekkürler.

Mesela, BROTT0,1,1,40,2 komutu aşağıdaki çıktıyı verdi. Vice'ta Alt+W tuşuyla Warp hızına geçmekte yarar var gerçi. Makine diline rağmen algoritma yavaş.
İşi bitip de kare şeklindeki cursor belirince, ne yazıldığını görmeksizin SCREEN0 yazıp return'e basınca yazı ekranına geçiyor. STOP+RESTORE tuşlarına ve ardından rastgele başka bir tuşa basıp da durdurmak mümkün.

Değişik parametrelere göre ayrıntısı vb. değişiyor fraktalin.


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: Levent (Lvnt) üzerinde Haziran 20, 2016, 01:26:38 ÖÖ
Bu arada, dün akşam apps.twitter.com'da OAuth için bir app. tanıtıp key ve tokenlerini cbm.ficicilar'daki yeni yazı girme scriptinin içinde kullandım. Böylece ne zaman yeni bir yazı eklesem, otomatik olarak yazı başlığı ve linkini tweetleyecek: http://twitter.com/CBMprojects (http://twitter.com/CBMprojects)

Bu sistem commodore.gen.tr'de de kullanılabilir sanki.

Takip edeyim dedim ama @cbmprojects twitter accountu suspend olmuş,

Cgtr'sini de isterük ;)


Konu Başlığı: Ynt: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Gönderen: ilkerficicilar üzerinde Haziran 20, 2016, 03:45:36 ÖÖ
Sahi... Alternatifini açmıştım: https://twitter.com/projectcbm