Obsah:

Z80-mbc2 Z80 Code Flash Uživatelská LED: 3 kroky
Z80-mbc2 Z80 Code Flash Uživatelská LED: 3 kroky

Video: Z80-mbc2 Z80 Code Flash Uživatelská LED: 3 kroky

Video: Z80-mbc2 Z80 Code Flash Uživatelská LED: 3 kroky
Video: Z80-MBC2 Flashing LED Clock 2024, Listopad
Anonim
Z80-mbc2 Uživatelská LED s kódem Flash Z80
Z80-mbc2 Uživatelská LED s kódem Flash Z80

Toto je příklad uživatelského programu LED napsaného v assembleru Z80 pro počítač z80-mbc2.

Udělal jsem toto testovací a revizní cvičení pro mě, toto je můj první program Z80 více než 35 let.

Užívat si

Zásoby

Počítač Z80-mbc2

Kopie Z80ASM od SLR Systems Rel. 1.32, lze stáhnout z mnoha archivů cp/m

Jako editor jsem použil ZDE16, protože to už bylo na bootovacím obrázku CP/M pro z80-mbc2

Krok 1: Nainstalujte Z80asm na svůj Z80-mbc2

Nainstalujte si na svůj Z80-mbc2 Z80asm
Nainstalujte si na svůj Z80-mbc2 Z80asm

Předpokládám určitou obeznámenost s nástroji, které máte pro svůj Z80-MBC2, konkrétně jakoukoli verzi cpmtools, kterou používáte. Pokud používáte verze příkazového řádku, postupujte takto:

  1. Získejte soubory z80asm.com a z80asm.doc (volitelně) v adresáři na nějakém místě na hostitelském počítači
  2. Vložte kartu SD do stejného počítače, předpokládám níže, že se zobrazuje jako jednotka E: níže.
  3. Dal jsem assembler na můj CP/M disk A, pro cp/m 2,2, který by byl diskovým obrazem DS0N00. DSK
  4. Příkaz: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: zkopíruje soubor z80asm.com do obrázku
  5. Příkaz cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: zkopíruje dokumentaci na disk (volitelně)

Když na svém z80-mbc spustíte cp/m 2.2, měli byste nyní na jednotce A mít z80asm.com a z80asm.doc (volitelně)

Krok 2: Zkopírujte si na sebe zdrojový kód Z80-mbc2

Připojte se k z80-mbc pomocí terminálového programu

Doporučuji použít neobydlený disk k uložení zdrojového kódu, například f: k výběru tohoto typu jednotky:

F:

po několika sekundách se zobrazí výzva F:.

nyní pomocí programu zde16 na jednotce A upravte prázdný soubor:

a: zde16 myled.z80

Tím na disku F:

Nyní zkopírujte a vložte níže uvedený kód, v závislosti na rychlosti vašeho terminálu atd. Budete možná muset zkopírovat a vložit do malých sekcí. Nebo to napište! vraťte se také do 80. let.

;

; Otestujte uživatelskou LED a uživatelský klíč; BDOS equ 05h; cp/m Vstupní bod BDOS USRLED equ 0; opcode pro User LED control USRKEY equ 80h; opcode for User Switch control DPORT equ 0; DATA port i/o CPORT equ 1; Command port output; org 0100h; ld (estack), sp; zachovat stávající informace pro návrat do cp/m ld sp, stack; ld hl, msg; Hello message call _puts lp: ld a, 1; turn = 1 call led delay call; delay and wait for key (s) jr nz, finish; non zero means key/switchPress xor a; a = 0 zpoždění hovoru vedeného LED; zpoždění nebo čekání na klíč/přepínač jr z, lp; pokud nula, žádný klíč/přepínač, jděte znovu; finish: xor a; key or switch wasPress, so done led led ld, bye; say bye call _puts; display msg HL = ld sp, (estack); original stack ret; return to cp/m; led: push af; uložit hodnotu LED 0 nebo 1 ld a, USRLED out (CPORT), a; optcode sent pop af out (DPORT), a; data sent ret;; Zpožděná smyčka, která kontroluje stisknutí klávesy na terminálu nebo zpoždění uživatelského klíče: ld bc, 00e00h; přibližně 1/2s 8mhz CPU, čistá hádací pracovní smyčka2: dec bc; počítání smyčky push bc; uložení pravidel při volání BDOS push de ld c, 6; BDOS raw i/o zkontrolujte, zda je stisknuto tlačítko ld e, 0ffh volání BDOS pop de; získejte naše hodnoty zpět ze zásobníku pop bc nebo a; zkontrolujte, zda je stisknuto tlačítko na terminálu ret nz; yes return (také udržuje nz příznak nastaven) ld a, USRKEY; Nyní zkontrolujte uživatelský klíč (CPORT), a; příkazový port v, (DPORT); přečtěte klíč a a, 1; zajímá vás pouze bit 0 ret nz; vrátit se, pokud stisknete uživatelské tlačítko ld a, b; nebo je bc = 0 nebo c jr nz, loop2; nedokončené počítání, jděte znovu x nebo a; nastavte příznak z na 0 ret; návrat není stisknut žádný klíč, konec zpoždění; _puts: push bc; uložte naše regs připravené pro volání bdos push de nxt: ld a, (hl); get char or a; test if it's 0, end of msg jr z, done; yes so done ld e, a; nastavit volání BDOS k vytištění znaku l c, 2 push hl; uložit volání ukazatele textu BDOS; vytisknout pop hl inc hl; další znak jr nxt; pokračovat v práci: pop de; dokončeno obnovení regs pop bc ret; a vrátit se; msg db 'User LED test, any key to exit' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256-2 stack: dw 0

Uložte soubor pomocí ESC x. Další informace najdete v uživatelské příručce ZDE16, pro většinu úprav je to trochu jako wordstar, kromě toho, že možnosti Ctrl-K jsou různé.

Krok 3: Zkompilujte a spusťte program

Jakmile budete mít na počítači svůj zdrojový kód.

Typ:

F>

F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86 od SLR Systems Rel. 1,32 MYLED/A Konec souboru Pass 1 0 Zjištěny chyby. 406 absolutních bytů. Zjištěno 16 symbolů.

Tím se vyhledá soubor myled.z80 a vytvoří se binární (.com) soubor, což znamená možnost /a.

Další informace naleznete v souboru z80asm.doc.

Chcete -li spustit program, zadejte:

F> myled

Uživatelský test LED, libovolný klíč pro ukončení Ukončit F>

Ukončete stisknutím uživatelského tlačítka nebo klávesy na terminálu.

Hotovo.

Doporučuje: