SDCC kullanarak C Programlama

Slides:



Advertisements
Benzer bir sunumlar
Paralel Programlamaya Giriş
Advertisements

Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Donanım ve Yazılım Tacettin İnandı Halk Sağlığı. DONANIM VE YAZILIM KAVRAMLARI Bilgisayar, yazılım (software) ve donanım (hardware) olmak üzere iki bölümden.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
SUNU HAZIRLAMA PROGRAMI: powerpoint
Dosya Yönetimi Dosya, Klasör ve Sürücüler HÜSEYİN ALİOSMANOĞLU.
Arduino nedir ? Atmega 328P Microcontroller USB ile bilgisayara bağlanır. Basit bir kullanımı olup kullanıcı dostudur. C++ tabanlı Arduino yazılımı ile.
BM-308 Paralel Programlamaya Giriş Bahar 2016 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)
LUCA Bilgisayarlı muhasebe programı
Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
Hazırlayan : İhsan ÇETİN - Erzincan 2015 Kelime İşlemci Programı.
O R T L G İ M A A Ve Problem çözme.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
EQUIZSHOW.
Grafik ve Animasyon-II FLASH CS5 Öğr.Gör. Onur BULUT.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Kendi İşletim Sisteminizi Oluşturun. Neden Kendimiz Linux Dağıtım Oluşturuyoruz? ● Şirketin standart Linux ihtiyacı olabilir. ● Linux'u fazla bilmeyen.
Bölüm 2 C Dilinin Temelleri
LYS’ye bir ay kala… Sorular ve Cevaplar
APP INVENTOR Emre ANLAR.
BİLGİSAYAR PROGRAMLAMA DERSİ
İnternet Nedir Bilgisayar Ağları Ağ Çeşitleri
C Programlama Dili Çağdaş Hakan Aladağ.
Algoritma ve Programlamaya Giriş
Altera ile proje hazırlama
Proje Oluşturma ve Yönetimi Bilişim Teknolojileri Öğretmeni
Proje Oluşturma ve Yönetimi
İmg 7 -içgörü.
Mikroişlemciler Temel I/O Arayüzleri.
E-posta Forum Sohbet Sesli Görüntülü Konferans
DHCP SERVER (dynamic host configuration protocol)
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Mikroişlemciler Temel I/O Arayüzleri.
BİLGİSAYAR AĞLARI.
E-BÜTÇE TENKİS OLUŞTURMA
RESİM VE RESİM DÜZENLEME İŞLEMLERİ
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
Klavye Kullanımı.
Öğretim Görevlisi Emel ALTINTAŞ
Kapasite Birimleri Depolama Birimleri
Veritabanından Raporlama Yapmak
Ofis Yazılımları – Veritabanı Programları
E-posta Forum Sohbet Sesli Görüntülü Konferans
Dosya, Klasör ve Sürücüler
GÖRSEL PROGRAMLAMA DİLİ:
BİLİMSEL ARAŞTIRMA TEKNİKLERİ VE ETİĞİ Latex Editörü ve Kullanımı-2
Bilgisayarlara komut verme Remzi ÖZ
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
3.hafta METODLAR.
Bilgisayar Programlamasına ve Veri Analizine Giriş
Gmail Hesabı Nasıl Alınır?
SDCC kullanarak Amstrad CPC için yapılmıştır
Bilgisayar Yazılımları
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Temel Kavramlar Bilgisayar Çalışma Mantığı
Resim Convert Etmek ve CPC Ekranında Göstermek!
Bilgisayarım Simgesinin Kullanımı Dosyaların Yönetimi
Bilgisayar Bilimi Koşullu Durumlar.
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
SEVGİ Müşteri: Çok fazla teknik bilgim yok.
Yazar 1a, Yazar 2a, Yazar 3b and Yazar 4a
Wiki Eğitim – Artık Hayal Değil
Etkinlik ayrıntılarınızı buraya yazın
Sunum transkripti:

SDCC kullanarak C Programlama CPC ile C Programlama SDCC kullanarak C Programlama

İhtiyacımız olanlar SDCC -http://sdcc.sourceforge.net/ SDCC Windows, Mac ve Linux üzerinde çalışır  Intel 8051, Maxim 80DS390, Zilog Z80, Z180, Motorola 68HC08 Rabbit 2000 işlemciler için kod üretir Yazdığımız kodlar direkt CPC üzerinde çalışmaz biraz değişiklik yapmamız gerekir. Maalesef assembly rutinleri hala lazım

Hello World Uygulaması SDCC yazdığımız C kodlarını çalıştırırken Z80 için 0 adresinden başlatır fakat CPC üzerinde uygulama yaparken başlangıç adresimizin 100 olması lazım. Bunun için crt0_cpc.s isimli assembly rutinimizi notepad ile yazmamız gerekir. Artık 0x0100 adresinden başlayacağını uygulamamızın belirttik. Şimdi rutinimimizi sdasz80 -o crt0_cpc.s komutu ile compile edelim Bize rel çıktısı verecektir. Bu kodu C kodumuzu yazarken kullanacağız

SDCC Amstrad CPC’yi bilmiyor! SDCC CPC’yi tanımaz. Nasıl ekrana karakter çizeceğini ve boyayacağını bilmez. Standart C kütüphanelerindeki printf pek işe yaramaz. Bunun için yine assembly ile C’ye bunu yapmasını sağlayacak kodu yazmamız gerekir. Sonra aynı metotu tekrar tekrar yazmaya gerek kalmadan kullanabiliriz. putchar_cpc.s Dosyası yapıp ilgili kodu yazıyoruz. Ardından aynı şekilde sdasz80 -o putchar_cpc.s Komutu ile compile ediyoruz bu kodda kısaca  0xBB5A adresine çağrı yapıp ekranı boyamasını istiyoruz.

Artık C Kodumuzu yazabiliriz  #include <stdio.h> main() { printf("Hello world"); while(1) {}; }

Kodumuzu compile edelim Compile ederken mutlaka 2 rel dosyamız ve c kodumuz aynı klasörde olsun. En kolayı bunlar için bir batch dosyası hazırlamak. sdcc -mz80 --code-loc 0x0138 --data-loc 0 --no-std-crt0 crt0_cpc.rel putchar_cpc.rel sdcc01.c hex2bin sdcc01.ihx Kodları ile kodumuzu bin dosyasına çeviriyoruz. Hex2bin ayrı bir exe dosyasıdır elinizin altında bu da olması gerekir.

Bin dosyamız var peki şimdi? Artık uygulamamızı DSK haline getirmemiz gerekiyor. Bunun için hepimizin yakından bildiği CPCDiskXP programı bir kurtarıcı. Aynı zamanda komut isteminden çeşitli parametrelerle çalışıyor. CPCDiskXP -File sdcc01.bin -AddAmsdosHeader 100 -AddToNewDsk sdcc01.dsk Artık bir dsk dosyamız var yani CPC disketi! Emülatörde çalıştırabilir veya diskete çekebilirsiniz veya GOTEK CPC’ye atabilirsiniz.

İşte Hello World Uygulamamız!

Kaynaklar: http://www.cpcmania.com/