Anda tidak pernah tahu di mana, kapan, dan pada titik apa Anda belajar tentang komputer yang tidak dikenal.Kali ini ternyata lebih mudah.Saya mulai mencari daftar komputer berdasarkan MOS 6502 dan menemukan penyebutan C64Dx (atau C65) berdasarkan 65CE02 - komputer prototipe yang dibuat di Commodore Business Machines pada 1990-1991. Ini adalah versi yang disempurnakan dari Commodore 64, dan itu seharusnya kompatibel dengan komputer lama, sambil tetap menyediakan sejumlah fitur canggih yang dekat dengan Amiga. Jumlah model yang dirilis tidak begitu banyak, tetapi daftar harga yang diumumkan pada saat pembelian C65 sangat mengesankan.Saya juga membaca tentang MEGA65 - komputer yang kompatibel dengan C64 / C65. Itu dia, saya sudah siap untuk berkenalan.Mode video
Chip VIC III yang
baru menyediakan fitur-fitur berikut:- mode teks 40/80 x25
- 320x200x256
- 640 × 200 × 16
- 1280 × 200 × 4
- 320 × 400 × 256
- 640 × 400 × 16
- 1280 × 400 × 4
Mode video yang tersedia kompatibel denganpengontrolVMA II DMA 128K ROM128K RAM, dapat diperluas hingga 1MDua chip suara SIDVersi baru BASIC 10.0Sekarang merupakan emulator.Hi65 tidak berfungsi, hanya tersisa contoh BASIC untuk berkenalan dengan grafik.Saya mengambil satu lagi . Anda juga perlu mengunduh file dan mengganti namanya menjadi c65-system.romJalankan emulator:xc65.exe -8 diskimage.d81
Untuk kenyamanan, saya mulai mencari alat silang:- Assembler 64tass sejak mendukung 65CE02- cc1541 V3.1 - utilitas membuat .d81 gambar dan menambahkan file. Jadi lebih mudah untuk
menggambarkan DirMaster v3.1.5 / Style saat membangun . MustHave.Tujuan pertama adalah menulis program yang menampilkan "Halo, dunia!" Membaca topik di forum menyarankan solusi:*=$0FFE
.byte $00, $10
ldx #$0
cycle lda hworld,x
cmp #0
beq exit
sta $0800,x
; sta $D800,x
inx
jmp cycle
exit rts
hworld .text 'hello world!',0
Ada yang salah? Hanya penyandian berbeda:
Oleh karena itu, teks telah berubah menjadi:hworld .byte 8,5,$0C,$0C,$0F,$20,$17,$0F,$12,$0C,4,$21,0
Selanjutnya, saya menemukan dokumentasi Panduan Referensi Programmer Commodore 64 dan arsip lain yang menemukan banyak barang.Membaca dock c64-programmers_reference_guide-03-programming_graphics.pdf menyarankan gagasan efek tunggal. contohnya lda #$62
sta $D018
Tempatkan memori video pada $ 1800, dan data karakter pada $ 800. Membaca c65manual.txt , saya menemukan informasi tentang warna:$ D100, $ D200, D300 $ - R, G, Bed dan nilai warna (0-15)$ D800- $ DBFFF - atribut teks warna (atau lebih tepatnya, semua warna disimpan di alamat $ 1F800- $ 1FFFF).Beberapa contoh kode, saya mendapat set karakter yang siap pakai dan warna sederhana. Saya hanya ingin menggunakan chip DMAgic untuk mentransfer dua bagian memori.Saya mulai membaca dok .Pengontrol beroperasi dalam 4 mode:COPY - menyalin bagian memoriSWAP - bertukar data untuk bagianFILL - mengisi bagian memori dengan dataMIX - melakukan campuran bermean Minterm pada sumber dan penerima (bunuh saya, saya tidak tahu bagaimana menulis)Dan kemudian saya benar-benar bingung, saya hanya mengerti prinsip kerja. Untuk kenyamanan, tabel DMAT digunakan, menulis data ke register akan melakukan operasi: lda #0 ;the bank (0-15) where the list is
sta $d702
lda #>address ;the high byte of the list address
sta $d701
lda #<address
sta $d700 ;the low byte of the list address
;this also triggers the dma operation,
;and the cpu is suspended
loop: bit $d703 ;check status (in case irq/nmi enabled)
bmi loop ; busy
jmp doplas
; DMA 3, 2000, ASC("+"), 0, DEC("800"), 0 Fill screen with '+'
; DMA 0, 2000, DEC("800"), 0, DEC("8000"), 1 Copy screen to $18000
address:
.byte 0 ;command
.word 80*25; copy size
.word $C000 ; 800+80 ; src adr
.byte 1 ; bank
.word $1800 ; dst adr
.byte 0 ; bank
.word 0 ; modulo n/u
Pada saat yang sama, di dermaga, saya membaca bahwa Anda dapat menggunakan DMA. Saya menulis sebuah program tanpa mengetahui bahasa:
Sekarang tulang punggung siap, saya tahu data yang diperlukan, dan sekarang saatnya untuk menulis kode lebih lanjut. Tapi, hari berikutnya saya menunggu mengecewakan - saya tidak menemukan memori bebas dan tidak mengerti bagaimana operasi memori bekerja. Forum menyarankan bahwa alasannya adalah di emulator kemu dan menyarankan beberapa prosedur. Selain itu, beberapa informasi tidak dapat saya mengerti. Namun, saya berharap bahwa suatu hari nanti saya akan mendapatkan akses ke kehidupan nyata dan mengetahui segala sesuatu yang menarik, dan saya dapat menulis program. Ya, bukankah itu menyenangkan?pouet