Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

Amstrad CPC haberleri

clock Eylül 4, 2017 18:10 by author Volkan Atasever

1984 yapımı Amstrad CPC 464 ve 1985 yapımı Amstrad CPC 6128 benim için hala çok özel bir yere sahip. tüm dünyada hala bu cihazlar için yazılım, oyun geliştirilmekte ve projeler yapılmakta. evet aslında hiç bir maddi getirisi olmamakla beraber tamamen bir hobi amaçlı olarak yapılan uğraşlardır. sonuç olarak koleksiyonerler veya hobi amaçlı bir sporla ilgilenmek gibi bir durum retro bilgisayar sevdası ve bunlara yazılım ve yeni donanım yaparak güncel hale getirebilmek.

Öncelikle başta Amsrad CPC ve daha sona PCW, MSX ve EP serisi için yazıla grafik arayüzlük multitaskin işletim sistemi SymbOS v3 olarak indirime sunuldu. indirme linki olarak; http://www.symbos.de/download.htm

 Aynı zamanda amstrad cpc için yeni bir grafik kartı geliştirilmiş. videosunu https://www.youtube.com/watch?time_continue=2&v=DFtcGITspwk linkinden izleyebilirsiniz. siparişi http://www.tecnobytes.com.br/ linkinden verebilirsiniz.

SYMBOS sitesinden yeni versiyon özellikleri:

Release 3.0 [30.08.2017]

Network enabled

- Network daemon: The new Network Daemon application enables SymbOS for full TCP/IP based network and internet access includung multiple connections for multiple applications at the same time. Both TCP and UDP protocols within the transportation layer are supported as well as services like DHCP and DNS. The Network Daemon runs as a background service and can be used by any application via its network API.
- Supported network hardware: SymbOS supports the DenYoNet (MSX), the GR8NET (MSX) and the M4Board (CPC) hardware expansions for internet access via ethernet or wifi.
- Local host: A special local host version of the Network Daemon makes it possible to run all network apps even on machines without additional network hardware.
- Tools and games: Standard tools like WGET, NSLOOKUP and NETSTAT have been developed as well as more complex applications like syMIRC and TELNET and even network games (see "new applications on the Symbos website").

Enterprise port

- 4th supported Z80 platform: SymbOS has been fully ported to the Enterprise 64/128 machines as well. After the Amstrad CPC, the MSX and the PCW Joyce it's the fourth supported Z80 platform now.
- FDC and SD card support: SymbOS EP contains a driver for the standard EXDOS WD1772 based floppy disc controller as well as for the "SD adapter premium" by Szergej Butov.
- Standard screen resolutions: SymbOS currently supports CPC-like screen resolutions of 320x200 (4 colours) and 640x200 (2 colours).
- Taskbar with own colours: Due to the capabilities of the Nick video chip the task bar can have its own separated 4 colours.
- EnterMice and BoxSoft mouse support: Beside via keyboard and joystick it is also possible to control the mouse pointer with the BoxSoft interface as well as with the new EnterMice hardware, which allows to connect a proportional PS/2 mouse to the Enterprise.
- 1MB support: SymbOS EP supports up to 1024KB of RAM. As a special feature of the EP version it also handles fragmented memory banks within the 4MB address space.
- Adapted sound apps: SymAmp (by Geco) and Speech (by Gflorez) have been ported to the Enterprise "Dave" music chip; it's not AY compatible but it is able to emulate it in a good way.

MSX 1 support

- MSX1 with V9990: SymbOS MSX is now running on MSX1 machines with an attached Graphics9000 or Powergraph graphic card (V9990), too. Of course enough RAM (128KB) and a mass storage device is required as usual.

Extended Desktop

- Desktop replacement: The extension module, which could already be optionally loaded since SymbOS 1.1 on machines with memory expansions, now includes the "Extended Desktop" which now behaves more or less like the desktop of Windows 98.
- Advanced icon handling: The Extended Desktop supports any amount of 4 and 16 colour desktop icons. Icons can be added (right click an empty area), renamed ("slow" double click an icon) and changed (right click the icon) directly inside the desktop via intuitive dialogues. Icons can be lined up, auto arranged, copied, pasted and deleted directly.
- Nested startmenu entries: There is no real limit for startmenu entries anymore, too. Nested submenus are possible as well as any name and path lengths. Beside inside the "program" menu you can also add new entries and submenus on top of the start menu. The new startmenu editor application is part of the control panel.
- Autostart menu: Beside the existing autostart option (control panel -> system -> autostart) you can also add as many entries as needed to the "Autostart" folder of the startmenu. All these entries will be automatically executed after booting.
- Desktop widgets: Widgets are little applications, which are integrated directly inside the desktop without having own forms. They are working like typical widgets known from existing desktop GUIs and smartphones (clock, weather, CPU meter etc.). They can be freely placed inside the desktop area and usually resized as well.

Operating system (general)

- Help browser: The new help browser allows displaying and browsing through HLP files, which will be included now in many applications. Documents may contain nested chapters, links and different font types. The search function returns a complete result list.
- Micro kernel: Process priorities can be changed during runtime; new slot/subslot switching function available for MSX hardware drivers.
- Browse dialogue: File extensions will be added automatically when typing in filenames without a dot at the end. E.g. if you save a new textfile in Notepad and you don't specify an extension, ".TXT" will be added.
- Keyboard presets: The control panel allows loading and saving of whole keyboard definitions (region and/or machine specific) in special "*.KYB" files.

Desktop Manager

- Colour schemes: For a uniform look of the GUI the user can define a colour scheme, so that all apps appear in the same coloured way.
- Full 16 colour support completed: All remaining GUI elements and form controls have been extended with 16 colour support, either directly of by using the user defined colour scheme.
- Systray icons: The systray area of the taskbar can now been used by applications for adding and removing their own clickable systray-icons.
- Context menus: This new feature introduces context menus, which can appear at any place within an application (e.g. on right-click).
- 16 colour icons: Apps may contain an additional 16 colour version of their icons, which will be used for the desktop links of the "Extended Desktop".

Additional supported hardware

- GR8NET SD card reader: With the network and SD card driver the important parts of one of the most powerful MSX hardware of the last time are supported in SymbOS.
- M4Board SD card reader: The M4 makes it possible: First time, that you can access FAT32 32GB SD cards on the CPC in SymbOS directly in "highspeed mode".
- HxC direct SD card access: SymbOS CPC supports the direct mode of the HxC floppy emulator as well. Using the internal FDC765 as a mass storage interface is slow, but you are still able to access very big files from a FAT32 32GB SD card - for the first time on a CPC.
- Albireo USB mouse: The Albireo interface makes it possible to connect real proportional USB mouses to the CPC - and yes, again for the first time! SymbOS supports up to 3 buttons and the wheel. Gaming mouses may not work due to their enhanced USB protocol.
- Rookie drive USB mouse: Nearly the same interface is available for the MSX: Beside other USB hardware the Rookie drive allows to connect real proportional mouses to the MSX in the same way.
- MultiPlay Amiga mouse: You can connect original Amiga mouses to the CPC with the MultiPlay interface and use them for SymbOS.
- Dobbertin Smart Watch: Beside the SYMBiFACE II RTC SymbOS now also supports the Dobbertin Smart Watch (real time clock) and its new clone. Together with the already mentioned new hardware it's now possible to replace the whole SYMBiFACE II hardware expansion - ops yes, for the first time - after 10 years :)
- SE-ONE radio: Now you can listen to any available FM radio station with SymbOS MSX, using the SE-ONE and the new Radio application.

SymShell 2.0

- TAB autocomplete: just type the first few letters of a filename or directory and SymShell will find the full name after pressing TAB multiple times; this is working for any nested subdirectory as well.
- advanced COPY command: supports filemasks and complex path statements, uses up to 64K copy buffer and is able to copy multiple files into one destination file.
- multiple file handling: for REN, MOVE and TYPE
- new DATE/TIME commands: for reading and setting the actual time and date.
- new ATTRIB command:: for editing all attributes of existing files.
- file attribution flags: New options for all multiple file commands (COPY, REN, MOVE, TYPE, ATTRIB)
- extended HELP command: SymShell includes a new help system based on a central "MAN" file. Type HELP for any details.
- Path function: SymShell apps can use a special path function for merging user-typed pathes with the actual one.
- System path: If not present in the actual folder the system will search for COM files in the system path as well and execute them there if found.

New applications

- UnZip: ZIP/GZ archive uncompressor; the first Unzip implementation for Amstrad CPC, PCW and Enterprise in history thanks to the Gunzip MSX project
- SymTel: Telnet client with ANSI, VT100 and VT52 terminal support
- syMIRC: IRC client with multiple channel support (by EdoZ, using Quigs)
- Wget: HTTP file download utility
- Symple Messenger: proprietary internet messenger (by Trebmint & EdoZ, using Quigs)
- Columns: Puzzle game (by EdoZ, using Quigs)
- Battleship: this classical battle ship implementation is the first SymbOS network game ever (by EdoZ, using Quigs)
- Snake: classic snake implementation; the first realtime multiplayer network game for SymbOS (by EdoZ, using Quigs)
- Picture-Slider: classical puzzle game (by Trebmint, using Quigs); the first Quigs game which has ever been started many years ago
- FM Radio: search for available FM radio stations and listen to them in SymbOS MSX (by EdoZ, using Quigs)
- Performance monitor: system performance measurement (by EdoZ, using Quigs)
- SymBUS: remote control utility (by EdoZ, using Quigs)
- DiMon: simple sector dump utility
- Ahead: batch utility for adding and removing AMSDOS binary fileheaders in multiple files
- Network tools: NsLookup, Netstat
- Desktop widgets: Clock, CPU Meter
- Little demos: Bubble and Flying SymbOS demo animations (by EdoZ, using Quigs)


- New professional SymbOS manual: The new SymbOS manual is designed and written by EdoZ and is available as a full-featured english PDF document. With a lot of pictures and screenshots this documentation makes it really easy to get started with SymbOS and its applications on any supported Z80 platform.
- Upgraded website: The website has been extended with a new application area. Beeing database generated it's now always up-to-date and more detailed. A new area about the supported platforms and supported hardware expansions have been added to the website as well.
- Files renamed: For an improved readability filenames of existing apps as well as of system files have been renamed, the old "app*.exe" and "cmd*.com" schematic isn't used anymore.
- Bug fixing: Bugs have been removed as usual, including some very very old ones (e.g. releasing clusters in the AMSDOS filesystem driver).

C# 7 ile gelen Yeni Özellikler

clock Eylül 4, 2017 17:23 by author Volkan Atasever

§  Out Anahtar Kelimesi

§  Pattern Matching

§  Switch Expression

§  Yerel Fonksiyonlar

§  Tuples

§  Binary Literal

§  Metotların Ref Döndürmesi

§  Throw Expression


Yerel Fonksiyonlar

C# 7 ile birlikte fonksiyon içinde fonksiyon tanımlayabilmemizin önü açıldı. Bu sayede artık yerel fonksiyonlar tanımlayabileceğiz.


public int fonksiyon1(int sayi1,int sayi2)


        int fontsiyon(int sayi)



            return sayi*=sayi;



        return fonksiyon(sayi1)+sayi2;



Binary Literal

Bu özellikle birlikte sayısal ifadeler binary olarak tanımlanabilecek. Aynı zaman da digit ayraçlarıyla büyük sayıları binary veya heksadesimal olarak ayırabileceğiz. Bu daha kolay okuma da sağlayacaktır.

int sayi1 = 2_000_123;

int sayi2 = 0x3EEE_1111;

int sayi3 = 0b0001_1100_1111_0000;

var d = 123_456;

var x = 0xAB_CD_EF;


Metotların Ref Döndürmesi

Metotlara C# programlama dilinde ref değer gönderebiliyorduk. C# 7 ile beraber metotlar ref değeri de döndürebilecek. bu Referans tipi olarak dönmektedir.

public ref int Bul(int sayi, int[] sayilar)
    for (int i = 0; i < sayilar.Length; i++)
        if (sayilar[i] == sayi) 
            return ref sayilar[i]; 
    thrownew IndexOutOfRangeException($"{nameof(sayi)} bulunamadı!");



Out Anahtar Kelimesi

Out anahtar kelimesini kullanarak daha önce metotlara parametre geçirebiliyorduk. Out parametresi birden çok değer döndürmek istediğinizde oldukça popüler bir kullanıma sahiptir. bildiğiniz gibi out parametresi referans tipidir ve bir argüman olarak çalışmaktadır. Fakat out parametreye geçireceğiniz değişkeni daha önce tanımlamanız gerekmektedir.  C# 7 ile birlikte out parameteresi olarak değişkenleri aynı anda tanımlayabiliyoruz.

publicvoid KooridnatCiz(Point p)
    p.GetCoordinates(out int lang, out int long);
    WriteLine($"({lang}, {long})");


Out parametresinde değişken tanımlanın yanında var tipi değiştekde tanımlayabilirsiniz. Değişkenin kullanıdığı zaman sadece sınırlı kapsam içerdiğini dolayısıyla bunları metotun dışında kullanamayacağınızı unutmayın. Değişkeni doğrudan argüman olarak tanımlayabildiğimiz için C# 7 bunlarıda da var değer olarak tanımlamamıza izin verir. Dolayısıyla hangi tip değişken tanımladım diye kontrol yapmanıza gerek kalmaz. bildiğiniz gibi var tipi değişkenler dönüşebilmektedir.


p.KooridnatCiz(out var lang, out var long);


Pattern Matching

is anahtar kelimesi ile Pattern Matching özelliğini kullanabiliriz. Örneğin bir type pattern yaparak çalışma zamanında tipe göre işlem yapabiliriz.

publicvoid deneme(object o)
    if (o isnull) return;     // sabit pattern "null"
    if (!(o isint sayi)) return; // tip pattern "int sayi"
    WriteLine(new string('*', sayi));


Switch Expression

switch-case yapısı daha önceki c# programlama dili versiyonlarında oldukça sınırlıydı. Artık daha kompleks yapılar kurabiliyor ve null kontrolü, sınıf kullanımı gibi özellikleride switch- case yapımızda kullanabiliyoruz.

Örnek 1:



    case Daire c:

        WriteLine($"circle with radius {c.Radius}");


    case Ucgen s when (s.Length == s.Height):

        WriteLine($"{s.Length} x {s.Height} kare");


    case Ucgen r:

        WriteLine($"{r.Length} x {r.Height} üçgen");



        WriteLine("bilinmeyen şekil");



        thrownew ArgumentNullException(nameof(sekil));



Örnek 2:

public static int deneme(IEnumerable<object> values)


    var toplam = 0;

    foreach (var item in values)


        switch (item)


            case int val:

                toplam += val;


            case IEnumerable<object> altListe:

                toplam += deneme(altListe);




    return toplam;



Tuples kullanımı eski bir kullanım olmasına rağmen c# 7 ile yenilenerek gelmiştir. tuple type ve tuple literal bir yenilik olarak karşımıza çıkmaktadır. Tuple tipleri değer tipi değişkenlerdir. System.Tuple isim alanını kullanmaktadır. Birden fazal değer döndürmek için Tuple kullanabilirsiniz. Birden fazla parametre olsa dahi tek nesne olarak işlem görmektedir. Çoklu değer döndürmek için out paramtresi tercih etmeden değer döndürebilirsiniz.

( string, string, string, string) getKisi()


    //Kişi bilgilerini veritabanından veya başka bir kaynaktan okuyabilirsiniz

    string strIsim = "Volkan";

    string strAdres = "Kadıköy";

    string strSehir= "İstanbul";

     return(strIsim, strAdres, strSehir); // tuple literal



//aşağıdaki metotu çağırdınızda çoklu değerleri döndürecektir.

 var kisiBilgi= getKisi();

WriteLine("Kisi bilgi:  {kisiBilgi .Item1} {kisiBilgi .Item2} {kisiBilgi .Item3}");


Yukarıdaki örnekte çoklu değerleri tuple kullanarak kolayca elde edebiliyoruz. Fakat item1,item2 isimleri alakası ve kafa karıştırıcıdır. bu yüzden anlamlı isimler kullanarak aşağıdaki örneği inceleyelim.


(string strIsim, string strAdr, string strSe) getKisi()


    //kodlarınızı buraya yazıyorsunuz



//metotu belirlenmiş ismi ile çağırdığınız zaman değerler aşağıda gözükecektir

var kisiBilgi= getKisi();

WriteLine("kisi bilgi: {kisiBilgi.strIsim} {kisiBilgi.strAdr} {kisiBilgi.strSe} ");


Bunlara ek olarak tüm değerleri Tuple Literal olarakta döndürebilirsiniz.

return (strIsim: strIsim, strAdr: strAdres, strSe: strSehir);

Tuple Hash tablosu veya Dictionary kullanarak kolayca değiştirebileceğiniz ve döndürebileceğiniz bir sisteme sahiptir. Tek durumda birden fazla değeri depoladığınız List yerinede kullanabilirsiniz. .NET üstünde bir Tuple tip tanımlıdır. Bu referans tipi bir değişkendir. C#ile gelen değiştirilebilir değer türü Tuple ise daha performanslıdır.

Bazı zamanlarda tüm tuple paketine ulaşmadan sadece değerlerine ihtiyacınız olabilir. O zaman C# 7 ile gelen Deconstruction özelliğini kullanarak istediğiniz parçayı oradan çekip alabilirsiniz.

( string strIsim,  string strAdr,  string strSe) = getKisi();

Console.WriteLine($"Adres: { strAdr }, Şehir: { strSe }");


Throw Expression

Bir try-catch yapısının herhangi bir yerinde throw kullanabilirsiniz. C# 7 ile istediğiniz bir yerde throw fırlatabilirsiniz.

class Kisi


    public string isim { get; }

    public Kisi(string isim_) => Name = isim_ ?? throw new ArgumentNullException(isim_);

    public string ilkismigetir()


        var parts = isim.Split(" ");

        return (parts.Length > 0) ? parts[0] : throw new InvalidOperationException("isim yok!");


    public string sonismigetir() => throw new NotImplementedException();


Cep Telefonu Şarjı ile Commodore 64 Çalıştırmak

clock Eylül 4, 2017 16:53 by author Volkan Atasever

Açıkcası bu benim yazım değil ve blogumda sadece kendi yazılarıma yer veririm genelde. Fakat iş retro bilgisayarlar olunca harika projeleri paylaşmadan edemiyorum. Commodore.gen.tr forumundan ilkerficicilar cep telefonu adaptörü ile Commodore 64 çalıştırmayı ufak bir kaç işlemle başarmış. hemde orjinal adaptörlerinin dev gibi olduğunu düşünürsek bence harika bir fikir.

Commodore 64 için piyasada adaptör azlığı sorunu malum.

Bu eksikliği, kolay ulaşılabilir parçalarla giderme yolunda ilk deneme şöyle:


. 5V 2A (veya daha amperli) USB şarj adaptörü.
. USB kablosu
. 7 uçlu DIN erkek fiş (C64 güç girişi)

Bendeki adaptör yüksüz ölçümde 5.6V veriyordu. C64'ün çipleri %5 esneme payıyla 5V ile çalışıyor. Ama şanslıyız ki C64'ün içinde bir 7805 regülatör entegresi var. Ona güvenerek devam ediyoruz.

USB kablolar genelde renk kodlu. Siyah renk 4 no'lu uca bağlı ve toprak. 1 no'lu uç ise kırmızı ve +5V taşıyor. Diğer ikisi beyaz ve yeşil veri ucu.

C64'ün güç giriş yuvasının en alt ucu olan 2 no'lu delik toprak. Hemen solundaki ise +5V.

ASCII çizimle:

  o   o
 o     o
  5   o

Yukarıdaki kaba çizimde USB'nin siyah ucunu 0'la işaretlediğim deliğe, kırmızı ucunu da 5 ile işaretlediğim deliğe sokuyoruz.

7 uçlu DIN erkek fişin ise 2 (GND, siyah) ve 4 (+5V, kırmızı) no'lu pinlerine lehimlenecek.

Bu hızlı "olabilirlik" denemesindeyse kürdan saplama pratiği kullanılmıştır.

Fotoğrafları aşağıya ekledim.

Bir bilgi olarak: C64 9-12V olmadan da çalışıyor (SID hariç). C64'ün güç girişine uygun 7'li DIN erkek fiş ise elektronikçilerde kolayca bulunabiliyor.

Yukarıdaki ASCII çizimde verilen güç giriş şemasının en üstündeki iki giriş AC 9V için. Bu giriş içeride DC'ye çevrilip SID'e ve user port'a veriliyor.

9V hattı içeride rektifiye edildiği için kritik değil, ayrı bir adaptörden de giriş alınabilir ya da bir voltaj katlayıcı ile 5V, 10V'a çıkarılıp beslenebilir.

9-12V hattı AC değil DC olarak beslenirse sadece 6526'ların TOD saati çalışmıyor. Bu saat 50HZ'lik bir 'tik'le çalışıyor ve bu 50HZ de şebeke elektriğindeki dalgalanma frekansından temin ediliyor. Kritik değil. Ama 1997 yılında bir 555 entegresiyle bu frekansı üretip doğrudan C64'e vermiştim, şeması http://cbm.ficicilar.name.tr/ 'de bir yerlerde olacak.

Bu arada ben eski PC güç kaynaklarını da C64'te sorunsuz kullanmıştım. Üstelik switching PS olduklarından gayet güvenliler, sadece fazla büyükler.

Kısaca, bu denemeye göre cep telefonlarının o ufacık şarj adaptörleri kullanılarak C64'e ve 1541-II'ye uygun hesaplı bir adaptör geliştirilebilir.

Not: C64'ü açık bıraktım, yarım saattir parmak kadar şarj adaptörüyle sorunsuz 'şarj' oluyor Bence gideri var.




Yeni Şiirlerimden...

clock Temmuz 25, 2017 09:12 by author Volkan Atasever

Kibrit Kutusu isimli yeni şiirlerimden bir alıntı...

işte cenneti yarattık

10 dünya olmuş 1 metre olmuş

umrumda değil

cennetim seninle

bir kibrit kutusunda bile

sonsuza dek seninle

Ağlayan Yaşlı Çocuk Kitabımından...

clock Temmuz 20, 2017 21:11 by author Volkan Atasever

Ayrılış isimli şiirden...

artık intihar edeceğim biliyor musun

giderken demiştin korkak diye haykırıp


intihar bile etmeye korkan ben

seni sevdim ama sen gittin


Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Genel Müdür/S4G 
Bilgisayar Mühendisi

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

Yazılım Kitaplarım


Şiir Kitaplarım

Dergi Yazılarım


Sosyal Ağlarım





Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı. ilk sayı yeni bir internet sitesinden tekrar yayınlanacaktır. Retro camiası tüm dünyada oldukça eğlenceli bir camia. Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir.

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2017

Sign In