Სარჩევი:

Z80-mbc2 Z80 კოდი Flash მომხმარებლის LED: 3 ნაბიჯი
Z80-mbc2 Z80 კოდი Flash მომხმარებლის LED: 3 ნაბიჯი

ვიდეო: Z80-mbc2 Z80 კოდი Flash მომხმარებლის LED: 3 ნაბიჯი

ვიდეო: Z80-mbc2 Z80 კოდი Flash მომხმარებლის LED: 3 ნაბიჯი
ვიდეო: Internet Technologies - Computer Science for Business Leaders 2016 2024, დეკემბერი
Anonim
Z80-mbc2 Z80 კოდი Flash მომხმარებლის LED
Z80-mbc2 Z80 კოდი Flash მომხმარებლის LED

ეს არის მომხმარებლის LED პროგრამის მაგალითი, რომელიც დაწერილია Z80 ასამბლერში z80-mbc2 კომპიუტერისთვის.

მე გავაკეთე ეს სატესტო და გადახედვის სავარჯიშო ჩემთვის, ეს არის ჩემი პირველი Z80 პროგრამა 35 წელზე მეტი ხნის განმავლობაში.

მიირთვით

მარაგები

Z80-mbc2 კომპიუტერი

Z80ASM ასლი SLR Systems Rel. 1.32, შეგიძლიათ ჩამოტვირთოთ მრავალი cp/m არქივიდან

რედაქტორი, მე გამოვიყენე ZDE16, რადგან ის უკვე იყო CP/M ჩატვირთვის სურათზე z80-mbc2

ნაბიჯი 1: დააინსტალირეთ Z80asm თქვენს Z80-mbc2

დააინსტალირეთ Z80asm თქვენს Z80-mbc2
დააინსტალირეთ Z80asm თქვენს Z80-mbc2

ვივარაუდებ, რომ ვიცნობდი იმ ინსტრუმენტებს, რომლებიც გაქვთ თქვენი Z80-MBC2– ისთვის, კერძოდ cpmtools– ის ნებისმიერ ვერსიაზე, რომელსაც იყენებთ. აქ მოცემულია ნაბიჯები, თუ იყენებთ ბრძანების ხაზის ვერსიებს:

  1. მიიღეთ ფაილები z80asm.com და z80asm.doc (სურვილისამებრ) დირექტორია თქვენს კომპიუტერში
  2. განათავსეთ თქვენი SD ბარათი იმავე კომპიუტერში, მე ვვარაუდობ, რომ ქვემოთ ნაჩვენებია როგორც დისკი E: ქვემოთ.
  3. მე დავამონტაჟე ასამბლერი ჩემს CP/M დისკზე, cp/m 2.2, რომელიც იქნება დისკის სურათი DS0N00. DSK
  4. ბრძანება: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: დააკოპირებს z80asm.com ფაილს სურათზე
  5. ბრძანება cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: დააკოპირებს დოკუმენტაციას დისკზე (სურვილისამებრ)

როდესაც ჩატვირთავთ cp/m 2.2 თქვენს z80-mbc– ზე, ახლა უნდა გქონდეთ z80asm.com და z80asm.doc (სურვილისამებრ) დისკზე A

ნაბიჯი 2: დააკოპირეთ წყაროს კოდი თქვენთვის Z80-mbc2

დაუკავშირდით z80-mbc– ს თქვენი ტერმინალის პროგრამის გამოყენებით

მე გირჩევთ გამოიყენოთ არაპოპულარული დისკი წყაროს კოდის შესანახად, მაგალითად f: ამ ტიპის დისკის ასარჩევად:

F:

რამდენიმე წამის შემდეგ ნახავთ F: მოთხოვნას.

ახლა გამოიყენეთ zde16 პროგრამა დისკზე A ცარიელი ფაილის შესაცვლელად:

a: zde16 myled.z80

ეს შექმნის ფაილს სახელად myled.z80 დისკზე F:, შენიშვნა:.z80 საჭიროა სახელით z80asm მუშაობისთვის.

ახლა დააკოპირეთ და ჩასვით კოდი ქვემოთ, თქვენი ტერმინალის სიჩქარის მიხედვით და ა.შ. შეიძლება დაგჭირდეთ კოპირება და ჩასმა მცირე ნაწილებად. ან ჩაწერეთ! დააბრუნე 1980 -იანი წლების განცდაც.

;

; შეამოწმეთ მომხმარებლის LED და მომხმარებლის გასაღები; BDOS equ 05h; cp/m BDOS შესვლის წერტილი USRLED 0 org 0100 სთ; ld (estack), sp; შეინახეთ არსებული ინფორმაცია cp/m ld sp, stack- ზე დასაბრუნებლად; ld hl, msg; გამარჯობა შეტყობინების ზარი _ აყენებს lp: ld a, 1; ჩართეთ = 1 ზარის led ზარის შეფერხება; დააყოვნეთ და დაელოდეთ გასაღებს (ებ) ს jr nz, დასრულება; არა ნული ნიშნავს კლავიშს/გადამრთველს დაჭერით xor a; a = 0 ზარის ხელმძღვანელობით ზარის შეფერხება; გადადება ან დაელოდეთ გასაღებს/გადამრთველს jr z, lp; თუ ნულოვანია, გასაღები/გადამრთველი არ არის, ისევ წადით; დასრულება: xor a; გასაღები ან გადამრთველი იყო დაჭერილი, ასე გაკეთდა ზარი led ld hl, bye; say bye call _puts; ჩვენება msg HL = ld sp, (estack); ორიგინალური დასტის ret; დაბრუნება cp/m; led: ბიძგი af; შეინახეთ led მნიშვნელობა 0 ან 1 ld a, USRLED out (CPORT), a; optcode sent sent pop out out (DPORT), a; data გაგზავნილი ret;; გადაიდო მარყუჟი, რომელიც ამოწმებს ღილაკს ტერმინალზე ან მომხმარებლის გასაღების შეფერხებაზე: ld bc, 00e00h; დაახლოებით 1/2s 8mhz CPU, სუფთა გამოცნობა სამუშაო მარყუჟი 6; BDOS ნედლეული i/o შეამოწმეთ თუ გასაღები დაჭერილია ld e, 0ffh დარეკეთ BDOS pop de; მიიღეთ ჩვენი ღირებულებები უკან stack pop bc ან a; შეამოწმეთ თუ გასაღები დაჭერილია ტერმინალში ret nz; დიახ დაბრუნება (ასევე ინახავს nz დროშის კომპლექტს) ld a, USRKEY; ახლა შეამოწმეთ მომხმარებლის გასაღები (CPORT), a; ბრძანების პორტი a, (DPORT); წაკითხვის გასაღები და a, 1; დაინტერესებულია მხოლოდ bit 0 ret nz; დაბრუნება თუ userkey დააჭერს ld a, b; ან არის bc = 0 ან c jr nz, loop2; დათვლა არ დასრულებულა, კვლავ წადი xor a; დააყენე z დროშა 0 ret; არ დააბრუნო გასაღები დაჭერილი, შეფერხების დასასრული; _puts: push bc; შეინახეთ ჩვენი regs მზად bdos ზარებისთვის push de nxt: ld a, (hl); მიიღეთ char ან a; შეამოწმეთ თუ არის 0, ბოლოს jr z დასრულებულია; დიახ ასე გაკეთდა ld e, a; დააყენეთ ზარი BDOS- ზე char ld c, 2 push hl; შეინახეთ ტექსტის მაჩვენებელი დარეკეთ BDOS- ში; დაბეჭდეთ pop hl inc hl; შემდეგი char jr nxt; გააგრძელეთ: pop de; დასრულდა regs pop bc ret; და დაბრუნება; 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

შეინახეთ ფაილი ESC x– ის გამოყენებით. იხილეთ ZDE16 გამოყენების სახელმძღვანელო დამატებითი ინფორმაციისთვის, ეს არის ცოტათი wordstar რედაქტირებისთვის, გარდა Ctrl-K ვარიანტებისა.

ნაბიჯი 3: შეადგინეთ და გაუშვით პროგრამა

მას შემდეგ რაც თქვენ გაქვთ თქვენი კოდის აპარატი.

ტიპი:

F>

F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86 by SLR Systems Rel. 1.32 MYLED/A ფაილის დასასრული 1 0 შეცდომა გამოვლენილია. 406 აბსოლუტური ბაიტი. აღმოჩენილია 16 სიმბოლო.

ეს მოძებნის ფაილს myled.z80 და გამოიმუშავებს ორობითი (.com) ფაილს, ეს არის ის, რაც ნიშნავს /a.

დამატებითი ინფორმაციისთვის იხილეთ z80asm.doc ფაილი.

პროგრამის გასაშვებად ჩაწერეთ:

F> მილედირებული

მომხმარებლის LED ტესტი, ნებისმიერი გასაღები გასასვლელიდან F>

დააჭირეთ ან მომხმარებლის ღილაკს ან ტერმინალის გასაღებს გასასვლელად.

Შესრულებულია.

გირჩევთ: