Isi kandungan:

Z80-mbc2 Z80 Code Flash LED Pengguna: 3 Langkah
Z80-mbc2 Z80 Code Flash LED Pengguna: 3 Langkah

Video: Z80-mbc2 Z80 Code Flash LED Pengguna: 3 Langkah

Video: Z80-mbc2 Z80 Code Flash LED Pengguna: 3 Langkah
Video: Z80-MBC2 Flashing LED Clock 2024, November
Anonim
LED Pengguna Kod Z80-mbc2 Z80 Flash
LED Pengguna Kod Z80-mbc2 Z80 Flash

Ini adalah contoh program LED pengguna yang ditulis dalam assembler Z80 untuk komputer z80-mbc2.

Saya melakukan ini sebagai ujian dan latihan penyemakan bagi saya, ini adalah program Z80 pertama saya selama lebih dari 35 tahun.

Nikmati

Bekalan

Komputer Z80-mbc2

Salinan Z80ASM dari SLR Systems Rel. 1.32, boleh dimuat turun dari banyak arkib cp / m

Seorang editor, saya menggunakan ZDE16, kerana ia sudah ada pada gambar boot CP / M untuk z80-mbc2

Langkah 1: Pasang Z80asm pada Z80-mbc2 anda

Pasang Z80asm pada Z80-mbc2 anda
Pasang Z80asm pada Z80-mbc2 anda

Saya mengandaikan beberapa alat yang anda miliki untuk Z80-MBC2 anda, iaitu versi cpmtools apa sahaja yang anda gunakan. Berikut adalah langkah-langkahnya jika menggunakan versi baris perintah:

  1. Dapatkan fail z80asm.com dan z80asm.doc (pilihan) dalam direktori di beberapa tempat di PC hos anda
  2. Letakkan kad SD anda di PC yang sama, saya anggap di bawahnya ditunjukkan seperti pemacu E: di bawah.
  3. Saya meletakkan assembler pada cakera CP / M saya A, untuk cp / m 2.2 yang akan menjadi gambar cakera DS0N00. DSK
  4. Perintah: cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.com 0: akan menyalin fail z80asm.com ke gambar
  5. Perintah cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.doc 0: akan menyalin dokumentasi ke cakera (pilihan)

Apabila anda boot cp / m 2.2 pada z80-mbc anda, kini anda harus mempunyai z80asm.com dan z80asm.doc (pilihan) pada pemacu A

Langkah 2: Salin Kod Sumber kepada Anda Z80-mbc2

Sambung ke z80-mbc menggunakan program terminal anda

Saya cadangkan anda menggunakan cakera yang tidak dihuni untuk menyimpan kod sumber, misalnya f: untuk memilih jenis pemacu ini:

F:

selepas beberapa saat anda akan melihat arahan F:

sekarang gunakan program zde16 pada pemacu A untuk mengedit fail kosong:

a: zde16 myled.z80

Ini akan membuat fail bernama myled.z80 pada cakera F:, note:.z80 diperlukan dalam nama agar z80asm berfungsi.

Sekarang salin dan tampal kod di bawah, bergantung pada kelajuan terminal anda dan lain-lain, anda mungkin perlu menyalin dan menampal di bahagian kecil. Atau taipkannya! dapatkan semula era 1980-an juga.

;

; Uji LED pengguna dan kunci pengguna; BDOS eku 05h; cp / m BDOS titik masuk USRLED eku 0; opcode untuk kawalan LED Pengguna USRKEY sama 80h; opcode untuk kawalan Suis Pengguna DPORT eku 0; Port DATA i / o CPORT eku 1; Output port perintah; org 0100h; ld (estack), sp; simpan maklumat yang ada untuk kembali ke cp / m ld sp, timbunan; ld hl, msg; hello message call _puts lp: ld a, 1; hidupkan = 1 panggilan diketuai kelewatan panggilan; tunda dan tunggu untuk kunci jr nz, selesai; bukan sifar bermaksud kekunci / suis ditekan xor a; a = 0 penangguhan panggilan dipimpin panggilan; kelewatan atau tunggu kunci / suis jr z, lp; jika sifar, tanpa kunci / suis, pergi lagi; selesai: xor a; kekunci atau suis ditekan, panggilan selesai dilakukan ld hl, bye; say bye call _puts; display msg HL = ld sp, (estack); ret stack semula; kembali ke cp / m; led: push af; save led value 0 atau 1 ld a, USRLED out (CPORT), a; optcode dihantar pop af out (DPORT), a; data dihantar ret;; Gelung kelewatan yang menekan butang ditekan pada terminal atau kelewatan kekunci pengguna: ld bc, 00e00h; aprox 1 / 2s 8mhz CPU, loop kerja tekaan murni2: dec bc; hitung loop push bc; save regs ketika memanggil BDOS push de ld c, 6; BDOS mentah i / o periksa sama ada kekunci ditekan ld e, 0ffh hubungi BDOS pop de; dapatkan nilai kami kembali dari tumpukan pop bc atau a, USRKEY; Sekarang periksa kunci pengguna keluar (CPORT), a; port arahan dalam bc = 0 atau c jr nz, loop2; belum selesai mengira, pergi lagi xor a; tetapkan bendera z ke 0 ret; kembalikan tidak ada kekunci yang ditekan, akhir kelewatan; _puts: push bc; save regs kami siap untuk panggilan bdos push de nxt: ld a, (hl); get char or a; test if it 0, end of msg jr z, selesai; ya begitu ld e, a; sediakan panggilan ke BDOS untuk mencetak char ld c, 2 push hl; save text pointer call BDOS; print it pop hl inc hl; next char jr nxt; teruskan dilakukan: pop de; selesai memulihkan regs pop bc ret; dan kembali; msg db 'Uji LED Pengguna, sebarang kekunci untuk keluar' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0

Simpan fail menggunakan ESC x. Lihat panduan penggunaan ZDE16 untuk maklumat lebih lanjut, agak seperti bintang kata untuk kebanyakan penyuntingan, kecuali pilihan Ctrl-K berbeza.

Langkah 3: Susun dan Jalankan Program

Sebaik sahaja anda mempunyai kod sumber anda di mesin.

Jenis:

F>

F> a: z80asm myled / a Z80ASM Hak Cipta (C) 1983-86 oleh SLR Systems Rel. 1.32 MYLED / Akhir fail Lulus 1 0 Ralat Dikesan. 406 Byte Mutlak. 16 Simbol Dikesan.

Ini akan mencari fail myled.z80 dan menghasilkan fail binari (.com), itulah pilihan / singkatan.

Lihat fail z80asm.doc untuk maklumat lebih lanjut.

Untuk menjalankan program, ketik:

F> myled

Uji LED pengguna, sebarang kunci untuk keluar dari Exit F>

Tekan sama ada butang pengguna atau kekunci di terminal untuk keluar.

Selesai.

Disyorkan: