For December, 2022

is there any legal c64 download site

Comments Off on is there any legal c64 download site

There are a number of websites that offer legal downloads of Commodore 64 software, including games, utilities, and other applications. However, it is important to note that the availability of C64 software for download may vary depending on the copyright holder and the specific terms of use for the software.

One website that offers a large selection of legal Commodore 64 downloads is the Internet Archive. The Internet Archive is a non-profit organization that works to preserve and provide access to historical and cultural works, including a wide variety of computer software. The Internet Archive’s collection of C64 software can be accessed through the Internet Archive’s website at:

Other websites that offer legal C64 downloads include: This website offers a variety of C64 games and other software that have been made available for free download by their copyright holders.

CSDb: The Commodore 64 Scene Database (CSDb) is a community-driven website that includes a large collection of C64 software, including games, demos, and utilities. Some of the software available for download on CSDb may be freeware or shareware, while others may be available for purchase.

The Homebrew C64 Software List: This website is maintained by the Commodore 64 Homebrew Scene and includes a list of C64 software that has been released by independent developers or hobbyists.

It is always important to respect the copyright holders of software and only download or use software that you have obtained legally.

How to get an Original C64 Rom

Comments Off on How to get an Original C64 Rom

It is generally not legal to download ROMs or disk images of software for systems like the Commodore 64 unless you own the original physical copies of the software and are creating copies for your own personal use. If you own physical copies of C64 software and want to create ROMs or disk images for use with an emulator, you can do so using specialized software and hardware. Here are the general steps for creating a C64 ROM:

  1. Obtain a device called a “ROM dumper” that is capable of reading the ROMs from your C64 cartridges. These devices are available from some electronics retailers or online.
  2. Connect the ROM dumper to your computer and follow the instructions provided to create a copy of the ROM from the cartridge.
  3. Use a C64 emulator or other software to open the ROM file and run the software.

It is important to note that distributing ROMs or disk images of copyrighted software without permission is illegal in most countries, even if you own the original copies of the software.

RS-232 for nerds

Comments Off on RS-232 for nerds

RS232 is a serial communication standard. This standard specifies signal levels, error correction methods, and other details. RS232 is a standard developed in the 1960s and is still used in many devices.

The RS232 standard allows electronic devices to communicate with each other. This standard enables one device (for example, a computer) to send and receive data from another device (for example, a printer). RS232 performs this operation using the serial communication method.

RS232 is used in many different devices. For example, RS232 is used for a computer to send data to a printer. This standard is also used for a keyboard to send data to a computer. Today, more advanced serial communication standards are used instead of RS232.

RS-232, a protocol dating back to the 60s, is difficult for the unfamiliar to understand and use. Although it was thought to be sufficient in the years it was released, it has been updated several times over time. In its original state, synchronized data communication was made between the transmitter and receiver without any error checking. At that time data sizes were small enough to be measured in a few kilobytes or even bytes, so rates of 600 baud were quite sufficient. Of course, in those years, it was not foreseen how the future computers, printers, test equipment, post devices and other devices would develop, and the standard was shaped only then to the extent that they would do their job. (Electronic Industries Association – EIA)

Over the years, as the size of the data transferred due to technological advances has increased, higher speeds have begun to be needed. This has started to cause the data to be sent by being compressed even more. As the data transfer rate increased, data corruption started to occur due to physical conditions and the danger of sending incorrect information to the receiver emerged.

As a result, solutions such as adding the parity bit and controlling the flow with handshake were used. However, this protocol is too slow for data transfer nowadays and it is no longer its main task. However, it is possible to find this port on many devices. Even on modern devices, we can do basic console operations and debugging directly from this port. Sometimes this can be the only method in some industrial devices that do not have an IP address, or even an ethernet port, without a screen, without a keyboard, and almost like a closed box. This type of connection is also used for debugging with Arduino.

Voltage levels are important

The RS-232 standard defined voltage levels for data transmission and control signal lines corresponding to the logical one and logical zero levels as follows. Valid signals are in the range of +3 to +15 volts or -3 to -15 volts relative to the “Common Ground” (GND) pin; As a result, the range from −3 to +3 volts is not a valid RS-232 level.

±5 V, ±10 V, ±12 V and ±15 V are commonly used voltage levels. The signals between the two ends should be balanced with each other and in these ranges according to the GND pin. The two ends should be as close to each other as possible. If the distance is long, the GND voltages may be different. This becomes even more critical if the devices at the two ends are fed from different power sources. This can be solved by keeping the GND voltages as close to each other as possible. Good grounding is a good solution to this.

In the above example, it belongs to the file received via RS-232 from a Siemens CNC machine. The header, which is the first line of the file, contains some information. The first of the two examples above were taken as PC Format and the other as Punched Tape. It seems more understandable for people with punched tape.

The first line of the file is the filename, the second line is the location from which it was taken. In addition, the end of the file is determined with 25(HEX) characters. This file contains only one MPF program.

When I import the whole folder as WPD, all programs and paths are seen. These 3 programs are arranged in the same file as a continuation of the previous one.

If we restore this WPD file, it will be reinstalled on the machine with the correct directory structure.

This picture theoretically shows the shape of the signal when the letter J is sent over the RS232 interface. The real state is more in the form of curves. In the figure, the bit stream at the 0V and 5V logic levels is sent from the out pin of the microcontroller. Boosted to ±12 volts with an inverter like the MAX232. -12V corresponds to logic 1 and +12V to logic 0. Output voltages can be between ± 5V and ± 25 V. High voltage is more useful in long distance transmissions.

The period of 1 bit in this figure is 1/frequency. For 9600 bps, it is seen as 1/9600, i.e. 104,166 microseconds.

In serial communication, information is sent sequentially. RS-232 sends 8 bits of data and 1 bit of parity bit and 1 byte of information. There is no signal to indicate where the bits begin and end. Receiver and sender parties must work at the same speed. What is meant by speed here is the value known as baud rate. ex

RS-232 sabrımızı sınıyor.

Comments Off on RS-232 sabrımızı sınıyor.

RS232, bir seri haberleşme standartıdır. Bu standart, sinyal düzeyleri, hata düzeltme yöntemleri ve diğer ayrıntıları belirler. RS232, 1960’larda geliştirilmiş bir standarttır ve halen birçok cihazda kullanılmaktadır.

RS232 standartı, elektronik eşyaların birbirleriyle iletişim kurmasını sağlar. Bu standart, bir cihazın (örneğin bir bilgisayarın) diğer bir cihaza (örneğin bir yazıcının) veri göndermesini ve almasını sağlar. RS232, seri haberleşme yöntemini kullanarak bu işlemi gerçekleştirir.

RS232, birçok farklı cihazda kullanılır. Örneğin, bir bilgisayarın bir yazıcıya veri göndermesi için RS232 kullanılır. Ayrıca, bir klavyenin bir bilgisayara veri göndermesi için de bu standart kullanılır. Günümüzde ise, RS232 yerine daha gelişmiş seri haberleşme standartları kullanılmaktadır.

60’larden kalma bir protokol olan RS-232’in anlaşılması ve kullanılması aşina olmayanlar için zordur. Çıktığı yıllarda yeterli olduğu düşünülse de zamanla birkaç kez güncelleme geçirmiştir. Orijinal halinde herhangi bir hata kontrolü yapılmaksızın verici ve alıcı arasında senkronize veri iletişimi yapılıyordu. O zamanki veri boyutları birkaç kilobyte hatta byte’lar ile ölçülecek kadar küçük olduğundan 600 baud gibi hızlar oldukça yeterliydi. Elbette o yıllarda gelecekteki bilgisayarların, yazıcıların, test ekipmanlarının, post cihazları ve diğer cihazların ne şekilde gelişeceği öngörülememiş ve standart sadece o zaman kendi işlerini görecekleri kadarıyla şekillenmiştir. ( Electronic Industries Association – EIA)

Yıllar içince teknolojik ilerlemelere bağlı olarak aktarılan veri boyutları arttıkça daha yüksek hızlara ihtiyaç duyulmaya başlamıştır. Bu da verilerin daha da sıkıştırılarak gönderilmesine neden olmaya başlamıştır. Veri aktarım hızı yükseldikçe fiziksel şartlar nedeniyle veride bozulmalar meydana gelmeye başlamış ve alıcıya hatalı bilgi gitme tehlikesi ortaya çıkmıştır. Bunun sonucunda çözüm olarak, parite biti eklenmesi, handshake ile akış kontrolü yapılması gibi yollara gidilmiştir. Bunlara rağmen bu protokol günümüzde veri aktarımı için çok yavaştır ve ana görevi artık bu değildir. Yine de birçok cihazın üzerinde bu portu bulmak mümkün. Hatta modern cihazlarda bile temel konsol işlemlerini ve hata ayıklama işlerini doğrudan bu port üzerinden yapabiliyoruz. IP adresi belli olmayan, hatta ethernet portu olmayan, ekransız, klavyesiz, neredeyse kapalı kutu gibi duran bazı endüstriyel cihazlarda bazen bu tek yöntem olabiliyor. Arduino ile hata ayıklama için de bu tür bir bağlantı kullanılmaktadır.

Voltaj seviyeleri önemlidir

RS-232 standardı, veri iletimi ve kontrol sinyali hatları için mantıksal bir ve mantıksal sıfır seviyelerine karşılık gelen voltaj seviyelerini şu şekilde tanımlamıştır. Geçerli sinyaller “Ortak Zemin” (GND) pinine göre +3 ila +15 volt aralığında veya -3 ila -15 volt aralığındadır; Sonuç olarak, −3 ila +3 volt arasındaki aralık geçerli bir RS-232 seviyesi değildir.

±5 V, ±10 V, ±12 V ve ±15 V sık kullanılan voltaj seviyeleridir. İki uç arasındaki sinyaller GND pinine göre bu aralıklarda ve birbirleriyle dengeli olmalıdır. İki uç birbirine mümkün olduğunca yakın olmalıdır. Eğer mesafe uzunsa GND gerilimleri farklı olabilir. İki uçtaki cihazlar farklı güç kaynaklarında besleniyorsa bu durum daha da kritik hale gelir. Mümkün olduğunca GND gerilimlerinin birbirine yakın olması ile bu çözülebilir. İyi topraklama yapmak buna iyi bir çözümdür.


Yukarıdaki örnekte bir Siemens CNC makinesinden RS-232 ile alınan dosyaya aittir. Dosyanın ilk satırı olan başlıkta bazı bilgiler bulunur. Yukarıdaki iki örnekten birincisi PC Format, diğeri Punched Tape olarak alındı. Punched tape olan insan için daha anlaşılır görülüyor.

Dosyanın ilk satırı dosya adı, ikinci satırı alındığı konumu belirtiyor. Ayrıca dosya sonu da 25(HEX) karakteri ile belirleniyor. Bu dosya tek MPF programı içeriyor.

WPD olarak tüm klasörü aldığımda da tüm program ve yolları görülüyor. Bu 3 program aynı dosyanın içinde bir öncekinin devamı şeklinde sıralanmış haldedir.

Bu WPD dosyasını geri yüklersek, makineye doğru dizin yapısı ile tekrar yüklenir.

Bu resimde J harfinin RS232 ara birimi üzerinden gönderilişi sırasındaki sinyal şeklini teorik olarak gösteriyor. Gerçek hali ise daha çok eğriler şeklinde oluyor. Şekilde 0V ve 5V lojik seviyelerindeki bit akışı mikroişlemcinin out pininden gönderilmiş . MAX232 gibi bir çevirici ile ± 12 volta yükseltilmiş. -12V lojik 1 ve +12V lojik 0 olarak tekabül eder. Çıkış gerilimleri ± 5V ile ± 25 V arasında olabilir. Uzun mesafeli iletimlerde yüksek gerilim daha kullanışlıdır.

Bu şeklin içindeki 1 bitin periyodu 1/frekans . 9600 bps için 1/9600 yani 104,166 mikrosaniye olarak görülüyor.

Seri haberleşmede bilgiler sıralı olarak gönderilir. RS-232 8 bit data ve 1 bit parite biti ile 1 Byte bilgiyi göndermiş olur. Bitlerin nerede başlayıp bittiğini gösterecek bir sinyal yoktur. Alıcı ile gönderici tarafların aynı hız ile çalışması gerekir. Burada hızdan kast edilen baud rate olarak bilinen değerdir. Örneğin 9600 bps , saniyede 9600 bit hız anlamındadır.

Data bitleri 5,6,7,8,9 olarak ayarlanabilir. Start bitinden sonra sırayla gelirler. Genelde 7 veya 8 bit olarak kullanılır ve lsb önce sönderilir (bkz :least significant bit). 7 veya 8 seçmekteki ilk neden şu olabilir: alfabedeki ASCII karakterlerin hepsi (ve kontrol karakterleri de tabi ki) ilk 7 bit ile kodlanabilir. 8. bit ise grafik semboller veya çalıştırılabilir ikili kodlar (binary , RAW) için kullanılır. Sadece yazı göndermek için 7 bit uzunluk kullanabilirsiniz bu 1 bit, akış hızının bir miktar artmasına yardımcı olur.

Baud rate ile sinyal frekansı arasındaki ilişkiyi açıklamak gerekirse, baud rate kısaca saniyede aktarılan bit sayısıdır. Bu her bir bitin periyodunu tanımlamak için kullanılır. 2400 bps için frekans 2400 Hz. ve bit periyodu 1/2400 saniye olacaktır. Bu bilgi alıcı cihazın gelen bitleri çözmesi için gereklidir.

Bu protokol bir saat (Clock : dijital elektronikte kullanılan senkronizasyon sinyali) olmadan asenkron olarak tüm bilgiyi aktarabilir. Aktarımın başında, takip eden bitlerin bir data baytını getireceğini belirten bir Start biti alıcıya gönderilir. Idle (Boş) durumunda bekleyen RS232 hattı düşük (-12V) durumundan yüksek (+12) durumuna geçer ve 1 bit periyodunca böyle kalır. Alıcı için bunun anlamı data taramasının ilk yükselen kenarını aldığı ve bilginin gelmeye başlayacağıdır.

Bu bitle birlikte alıcı her bitin ortasında kendi clock sinyalini üretir. Başlangıç biti bir kere bulunduktan sonra, alıcı her bitin uzunluğunu (period) hesaplar. Bunu baud rate değerini kullanarak yapar. Bu neden alıcı ile göndericinin Baud rate, stop, data, parite ayarlarını aynı yapmamız gerektiğini açıklıyor. Yoksa hiç birşey alamayız, ya da garip karakterler aktarılır.

Parite (Eşlik, Parity) tüm data bitlerinin kaç tanesinin 1 olduğundan üretilir. Parite ayarı Çift (Odd) ise ve 1 olan bitlerin sayısı çift ise parite biti 1 olur. Tek (Even) ayarı kullanılırsa, 1 olan bitlerin toplam adedi tek ise parite biti 1 olur. Amacı iletişimde aksaklık olup olmadığını kontrol etmektir. Parity error diye bilinen hataların çoğu sinyal kesintisi olduğuna veya voltaj seviyesi uyumsuzluğuna işaret eder.

Bu şekilde hata kontrolü yapmanın bir eksikliği vardır. 2 bit birden yanlış aktarılırsa doğruymuş gibi sonuç verir ve hatalı aktarım yapılmış olur. Çünkü herhangi bir çift sayılı bit toplamı aynı sonucu verir. Kısa kablo kullanılan sistemlerde (5-10 M) bu bir soruna neden olmaz ve belki hiçbir parite hatası ortaya çıkmaz.

Uzun bir kablo üzerinden aktarım yapılan sistemlerde veya gürültülü ortamlarda RS232 ile haberleşme yapmadan önce ve sonra bir çevrim testi yapmak ve ortamın uygunluğunu test etmek daha iyi olacaktır. (CRC: Cyclic redundancy check)

Stop biti, bir sonraki karaktere geçmeden önce ara verilmesi için kullanılır. Byte bittikten sonra gönderilir. Uzunluğu 1, 1.5 veya 2 olabilir. Yüksek hızlarda stop ile start bitinin arasındaki boşluk çok kısa olabilir. Örneğin 1/115200 = 8.26 mikro saniye olur. Yükselen kenarın ve düşen kenarların uzunluklarının toplamı ise 6 mikro saniye kadardır. Böylece stop bitinin algılanabilmesi için sadece 2.26 mikro saniyelik bir zaman aralığı kalır ki kritik bir değer olduğundan veri iletişiminde sorunlar ortaya çıkabilir. Stop bitini 2 kullanarak bunu 16.5 milisaniyeye çıkarabiliriz. Böylece 10 mikro saniyeden biraz daha fazla zaman kalır. Bu alıcının gelen ascii karakterlerini daha iyi ayırmasına yardımcı olur. Ayrıca yüksek hızlarda haberleşme yapıldığında hat kapasitesi, kare dalga şeklinin bükülmesine neden olur. Bu sanki tellere paralel kondansatör bağlanmış gibi etki göstermektedir. Osiloskopta kare dalga yerine CR deşarj eğrisine benzer bir şekil görülür. Hızın yavaşlatılması, dolayısı ile periyodun uzatılması daha fazla kapasitif yüklemeye izin verir yani aktarımı kolaylaştırır. Alıcı ve göndericinin donanımsal özellikleri de buna etki eder. Bazı durumlarda MAX232 entegresinin kapasite değerlerini azaltmak (örnek: 0.1 nF ) daha kararlı haberleşmeye imkân tanır.

Baud rate9600
Data bitleri8
Stop biti1
Flow Control (Akış Kontrolü)None

Tipik aktarım değerleri tabloda görülüyor.

Handshake sinyali: Data akışının durdurulması içim kullanılan metoda verilen addır. Eğer alıcı meşgul veya dolu ise ve daha fazla bit alamıyorsa hattın diğer ucuna akışı durdurması için bilgi verir. Yoksa bilgi kaybı olacaktır. Temelde Hardware ve Software olarak iki türlü handshake metodu kullanılır. Bu metotlar birlikte de kullanılabilir.

  • DTR – Data Terminal Ready.
  • DSR – Data Set Ready.
  • RTS – Request To send.
  • CTS – Clear To Send.

Bu sinyaller hardware handshake ile kullanılır. Bunlar TX ve RX sinyalleri ile aynı voltaj seviyelerinde olmalı ve RS232 çipi tarafında üretilmelidir. Bu protokol modem çalışma mantığı üzerine kurulmuştur. (DCE) Telefon çaldığında, telefon hattına bağlı olan modem otomatik olarak data akışını kabul eder.

PC modeme bilgi göndermek için RTS’yi kullanır. Modem data almak için CTS’yi kullanır. İkisi de 1 olduğunda modeme doğru akış yapılabilir. Modem CTS’yi 0 yaptığında PC gönderimi durdurur ve beklemeye başlar.

Modem PC ye bilgi göndermek isterse DSR yi 1 yapar. PC DTR yi 1 yaparak izin verir.

Software handshake sadece 3 kablo ile haberleşebilir. Hardware handshake için kullanılan uçlar birbirine köprülenmiştir. XON ve XOFF adı verile özel ASCII karakterleri ile gönderici cihaza durdurma sinyali XOFF iletilir. Alıcı ara belleğini (Buffer) boşalttığında tekrar aktarıma devam etmesi için XON sinyalini göndericiye iletir.

Genel olarak XON=H17 XOFF=H19 olarak kullanılır. (Hexadecimal)

Blue Taste Theme created by Jabox