cc65 adalah paket lengkap untuk pengembangan lintas 6502 sistem, termasuk assembler kuat makro, kompiler C, linker, pustakawan dan beberapa alat lainnya. cc65 didasarkan pada kompiler C yang pada awalnya diadaptasi untuk Atari 8bit komputer oleh John R. Dunning.
C compiler asli keturunan Kecil C tetapi memiliki beberapa ekstensi, dan beberapa batas asli Kecil C compiler yang hilang. Asli hak cipta memungkinkan redistribusi bebas termasuk sumber, bahkan jika itu tidak akan memenuhi syarat sebagai Open Source Software sesuai dengan Open Source Definition.
Asli Atari compiler tersedia dari http://www.umich.edu/~archive/atari/8bit/Languages/Cc65/. Paket lengkap terdiri dari compiler, assembler, pustakawan, linker, dan perpustakaan C untuk Atari. Ada beberapa paket di internet yang mengaku diadaptasi sebagai crosscompiler untuk DOS atau Unix, tapi tidak bisa mendapatkan mereka bekerja dengan benar.
Karena saya ingin compiler C untuk mesin CBM saya, saya mengambil compiler Atari dan mulai menulis ulang. Sampai hari ini, saya telah ditulis ulang sebagian besar kompiler, semua perpustakaan, sepenuhnya menggantikan assembler, linker dan pustakawan, dan menambahkan antarmuka untuk menyederhanakan penggunaan. Semua perubahan yang telah dilakukan dengan portabilitas dalam pikiran, sehingga port untuk baru 6502 arsitektur harus cukup mudah.
Compiler hampir ISO C kompatibel, sehingga Anda harus mampu menerjemahkan banyak sumber dari sistem lain.
Mungkin ada sistem target keterbatasan tergantung lainnya. Salah satu contoh adalah file I / O, yang tidak diterapkan pada semua platform. Ini ada batasan teknis (seperti dengan hal-hal yang disebutkan di atas) tetapi tidak hanya berarti bahwa tidak ada cukup peduli untuk menulis kode yang sebenarnya.
Compiler hanya salah satu alat yang tersedia dalam paket ini. Assembler suite (assembler, linker, pengarsipan) adalah lingkungan pengembangan yang lengkap untuk dirinya sendiri, yang dapat digunakan untuk menulis program untuk 6502 mesin. Kode C dan kode assembler dapat digunakan bersama-sama dan bisa saling memanggil.
Assembler adalah satu lulus macroassembler dan mampu keluaran kode untuk 6502, yang 65SC02 dan 65SC816. Ini memiliki banyak fitur bagus seperti menyertakan file, perakitan bersyarat, makro, tingkat leksikal bersarang (yaitu, simbol lokal), dan banyak lagi. Assembler menciptakan file objek yang berisi kode relocatable. File-file ini harus dijalankan melalui linker untuk membuat program akhir.
Linker memiliki format output yang fleksibel dan mampu mendukung kode ROMable (beban yang berbeda dan menjalankan alamat data), membelok sistem (segmen dapat berbagi alamat yang sama run), sistem dengan beberapa ROM, segmen terbatas, lebih dari satu segmen BSS dan banyak hal lainnya.
Pengarsipan yang digunakan untuk membuat perpustakaan yang berisi objek file. Ini menyederhanakan manajemen kode. Linker akan mengambil hanya mereka modul dari perpustakaan yang benar-benar diperlukan.
Untuk penggunaan simplifiy, ada juga antarmuka untuk alat-alat yang terdapat dalam paket cc65. Frontend bernama CL65. Ia tahu bagaimana membangun binari dari daftar file C, file assembler, file objek dan perpustakaan. Untuk proyek-proyek kecil, hanya satu permintaan dari utilitas CL65 diperlukan untuk membangun biner dari beberapa file sumber dan perpustakaan
Fitur :.
- Compiler memungkinkan komentar baris tunggal yang dimulai dengan //. Fitur ini dinonaktifkan dalam mode ANSI ketat.
- Compiler memungkinkan parameter yang tidak disebutkan namanya dalam daftar parameter. Compiler tidak akan mengeluarkan peringatan tentang parameter yang tidak terpakai yang tidak memiliki nama. Fitur ini dinonaktifkan dalam mode ANSI ketat.
- Compiler memiliki beberapa kata kunci tambahan yang diperlukan untuk fitur khusus. Dalam modus ANSI ketat, kata kunci tambahan mulai dengan dua garis bawah.
- volatile pengubah tidak berpengaruh.
- tipe data float dan double tidak tersedia.
- compiler tidak mendukung bidang bit .
- fungsi C mungkin tidak kembali struct struct dan mungkin tidak lulus sebagai parameter dengan nilai. Tugas struct mungkin.
- Ada beberapa keterbatasan pada ukuran variabel lokal. Tidak semua operasi yang tersedia jika ukuran variabel lokal melebihi 256 byte.
- Bagian dari perpustakaan C hanya tersedia dengan fastcall memanggil konvensi (lihat di bawah). Ini berarti, bahwa Anda mungkin tidak mencampur pointer ke fungsi-fungsi dengan pointer ke fungsi pengguna tertulis.
Apa yang baru dalam rilis ini:
- Beberapa isu makro dan masalah dengan kode yang salah yang dihasilkan oleh C compiler telah diperbaiki.
- Ini termasuk mengkonversi fungsi untuk membatalkan pointer dan rutin divisi runtime.
- assembler juga memiliki beberapa masalah makro dan masalah dengan keberpihakan yang lebih besar dari 256 byte.
- Ada masalah dengan modus 80 kolom dan Conio bergulir di perpustakaan C128.
- The Atari perpustakaan sekarang memiliki direktori POSIX rutinitas .
- Ada perubahan dokumentasi beberapa, perbaikan, dan perbaikan.
Apa yang baru dalam versi 2.13.0.
- Dukungan untuk bit-bidang telah ditambahkan
- Rilis ini meningkatkan standar kepatuhan, dan peringatan tambahan dipancarkan kode meragukan.
- Perpustakaan disetel untuk kecepatan atau ukuran yang lebih kecil.
- Compiler menghasilkan kode yang lebih cepat dalam banyak kasus, biasanya tanpa banyak peningkatan ukuran kode.
Komentar tidak ditemukan