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.trCommodoreCommodore YazılımGOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse
Sayfa: [1] 2   Aşağı git
Yazdır
Gönderen Konu: GOS = C64'te Disk Önbelleği + Disk Komutları + Ek BASIC Kmt. + Mouse  (Okunma Sayısı 18984 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« : 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.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #1 : 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?
Logged
xeon83
Ziyaretçi
« Yanıtla #2 : Temmuz 25, 2014, 16:41:03 ÖS »

çok ilginçmiş hocam, elinize sağlık. D64 ü nerede ?
Logged
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #3 : Temmuz 25, 2014, 17:15:45 ÖS »

Notlarımı bulur bulmaz tarayıp http://cbm.ficicilar.name.tr/ 'ye .D64'ü ile birlikte yüklemiş olurum olasılıkla şu 9 gün içinde.

Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
xeon83
Ziyaretçi
« Yanıtla #4 : Temmuz 25, 2014, 17:19:57 ÖS »

Tamamdır teşekkürler disket komutları falan güzel olur deneyeceğim..
Logged
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #5 : 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.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #6 : 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

GOS'un çalıştırılabilir bir disketi (.d64):  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.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
xeon83
Ziyaretçi
« Yanıtla #7 : Temmuz 29, 2014, 22:47:16 ÖS »

format, copy, erase gibi şeyler yokmu ? (dosya-disk için)
Logged
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #8 : 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.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
atlantis
Uzman
*****
Mesaj Sayısı: 2.118



Üyelik Bilgileri WWW
« Yanıtla #9 : Temmuz 31, 2014, 11:39:15 ÖÖ »

Güzelmiş. Devam ettirseydiniz keşke.
Logged

Truva Linux
http://www.truvalinux.org.tr
http://retromiga.blogspot.com
--------------------------------
Banana ARM Türkiye Destek Sitesi
https://www.bananapi.gen.tr
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.764


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #10 : Ağustos 13, 2014, 01:41:25 ÖÖ »

GOS-95 CiA'de de yayınlanmış.

http://awesome.commodore.me/gos-95/
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #11 : 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

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

« Son Düzenleme: Haziran 20, 2016, 03:46:36 ÖÖ Gönderen: ilkerficicilar » Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #12 : 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. Kahkaha
Logged
hekimoglu78
Üye
****
Mesaj Sayısı: 442



Üyelik Bilgileri
« Yanıtla #13 : Ağustos 13, 2014, 10:13:34 ÖÖ »

işte elinden tutulmayan bir Türk bill gates örneği...
çok başarılı üstad...
Logged

Ne aradığını bilmeyen, ne bulduğunu anlayamaz !
emarti
Uzman
*****
Mesaj Sayısı: 2.626


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #14 : Ağustos 13, 2014, 23:53:08 ÖS »

Güzel bir proje
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
Sayfa: [1] 2   Yukarı git
Yazdır
Gitmek istediğiniz yer: