Mục lục:

Đèn LED người dùng Flash mã Z80-mbc2 Z80: 3 bước
Đèn LED người dùng Flash mã Z80-mbc2 Z80: 3 bước

Video: Đèn LED người dùng Flash mã Z80-mbc2 Z80: 3 bước

Video: Đèn LED người dùng Flash mã Z80-mbc2 Z80: 3 bước
Video: Cách Bật Đèn Flas Khi Có Cuộc Gọi Đến Trên IPHONE ~ 2024, Tháng mười một
Anonim
Đèn LED người dùng Flash mã Z80-mbc2 Z80
Đèn LED người dùng Flash mã Z80-mbc2 Z80

Đây là một chương trình LED người dùng mẫu được viết bằng trình hợp dịch Z80 cho máy tính z80-mbc2.

Tôi đã làm bài kiểm tra và ôn tập này cho tôi, đây là chương trình Z80 đầu tiên của tôi trong hơn 35 năm.

Thưởng thức

Quân nhu

Máy tính Z80-mbc2

Một bản sao của Z80ASM từ SLR Systems Rel. 1.32, có thể tải xuống từ nhiều kho lưu trữ cp / m

Một trình chỉnh sửa, tôi đã sử dụng ZDE16, vì nó đã có trên hình ảnh khởi động CP / M cho z80-mbc2

Bước 1: Cài đặt Z80asm trên Z80-mbc2 của bạn

Cài đặt Z80asm trên Z80-mbc2 của bạn
Cài đặt Z80asm trên Z80-mbc2 của bạn

Tôi giả sử một số quen thuộc với các công cụ bạn có cho Z80-MBC2 của mình, cụ thể là bất kỳ phiên bản cpmtools nào bạn sử dụng. Dưới đây là các bước nếu sử dụng các phiên bản dòng lệnh:

  1. Lấy các tệp z80asm.com và z80asm.doc (tùy chọn) trong một thư mục ở một nơi nào đó trên PC chủ của bạn
  2. Đặt thẻ SD của bạn vào cùng một PC, tôi giả sử rằng nó đang hiển thị dưới dạng ổ đĩa E: bên dưới.
  3. Tôi đặt trình hợp dịch trên đĩa CP / M A của mình, cho cp / m 2.2 sẽ là hình ảnh đĩa DS0N00. DSK
  4. Lệnh: cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.com 0: sẽ sao chép tệp z80asm.com vào hình ảnh
  5. Lệnh cpmcp -f z80mbc2-d0 e: DS0N00. DSK z80asm.doc 0: sẽ sao chép tài liệu vào đĩa (tùy chọn)

Khi bạn khởi động cp / m 2.2 trên z80-mbc, bây giờ bạn sẽ có z80asm.com và z80asm.doc (tùy chọn) trên ổ A

Bước 2: Sao chép mã nguồn cho bạn Z80-mbc2

Kết nối với z80-mbc bằng chương trình đầu cuối của bạn

Tôi khuyên bạn nên sử dụng một đĩa không được công nhận để lưu mã nguồn, ví dụ: f: để chọn loại ổ đĩa này:

NS:

sau một vài giây, bạn sẽ thấy dấu nhắc F:.

bây giờ sử dụng chương trình zde16 trên ổ A để chỉnh sửa tệp trống:

a: zde16 myled.z80

Thao tác này sẽ tạo một tệp có tên myled.z80 trên đĩa F:, lưu ý:.z80 được yêu cầu trong tên để z80asm hoạt động.

Bây giờ sao chép và dán mã bên dưới, tùy thuộc vào tốc độ thiết bị đầu cuối của bạn, v.v. bạn có thể phải sao chép và dán thành các phần nhỏ. Hoặc gõ nó vào! lấy lại cảm giác của năm 1980.

;

; Kiểm tra đèn LED người dùng và Phím người dùng; BDOS bằng 05 giờ; cp / m Điểm nhập BDOS USRLED bằng 0; mã opcode cho điều khiển đèn LED của người dùng USRKEY bằng 80 giờ; mã chọn cho điều khiển chuyển đổi người dùng DPORT bằng 0; cổng DATA i / o CPORT bằng 1; đầu ra cổng lệnh; org 0100h; ld (estack), sp; giữ thông tin hiện có để trả về cp / m ld sp, stack; ld hl, msg; hello message call _puts lp: ld a, 1; turn on = 1 call led call delay; delay and wait for (các) phím jr nz, kết thúc; khác 0 nghĩa là phím / công tắc được nhấn xor a; a = 0 cuộc gọi dẫn đến trì hoãn cuộc gọi; trì hoãn hoặc chờ phím / chuyển đổi jr z, lp; nếu 0, không có phím / chuyển đổi, hãy tiếp tục; kết thúc: xor a; phím hoặc công tắc được nhấn, vậy là đã gọi xong led ld hl, tạm biệt; nói tạm biệt cuộc gọi _puts; display msg HL = ld sp, (estack); original stack ret; trở về cp / m; led: push af; lưu giá trị led 0 hoặc 1 ld a, USRLED out (CPORT), a; optcode send pop af out (DPORT), a; dữ liệu được gửi ret;; Vòng lặp trễ mà phím kiểm tra được nhấn trên thiết bị đầu cuối hoặc độ trễ của phím người dùng: ld bc, 00e00h; khoảng 1/2 giây CPU 8mhz, vòng lặp công việc đoán thuần túy2: dec bc; đếm vòng lặp đẩy bc; lưu regs khi gọi BDOS push de ld c, 6; BDOS raw i / o kiểm tra nếu phím được nhấn ld e, 0ffh gọi BDOS pop de; lấy lại các giá trị của chúng tôi từ stack pop bc hoặc a; kiểm tra xem phím được nhấn trên terminal ret nz hay không; có quay lại (cũng giữ cờ nz được đặt) ld a, USRKEY; Bây giờ hãy kiểm tra phím người dùng ra (CPORT), a; cổng lệnh trong a, (DPORT); phím đọc và a, 1; chỉ quan tâm đến bit 0 ret nz; quay lại nếu phím người dùng được nhấn ld a, b; hoặc là bc = 0 hoặc c jr nz, loop2; không đếm xong, quay lại xor a; đặt cờ z thành 0 ret; trả về không có phím nào được nhấn, kết thúc thời gian trễ; _puts: push bc; lưu regs của chúng tôi sẵn sàng cho các lệnh gọi bdos push de nxt: ld a, (hl); get char hoặc a; kiểm tra xem nó có phải là 0 không, kết thúc msg jr z, đã xong; vâng vậy là xong ld e, a; thiết lập lệnh gọi đến BDOS để in lệnh char ld c, 2 push hl; lưu lệnh gọi con trỏ văn bản BDOS; in nó pop hl inc hl; next char jr nxt; tiếp tục thực hiện: pop de; khôi phục xong regs pop bc ret; và quay lại; msg db 'Kiểm tra đèn LED của người dùng, phím bất kỳ để thoát' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 stack: dw 0

Lưu tệp bằng ESC x. Xem hướng dẫn sử dụng ZDE16 để biết thêm thông tin, nó hơi giống wordstar cho hầu hết các chỉnh sửa, ngoại trừ các tùy chọn Ctrl-K là khác nhau.

Bước 3: Biên dịch và chạy chương trình

Sau khi bạn có mã nguồn của mình trên máy.

Kiểu:

F>

F> a: z80asm myled / a Z80ASM Bản quyền (C) 1983-86 của SLR Systems Rel. 1.32 MYLED / A Kết thúc tệp Đã phát hiện 1 0 lỗi. 406 byte tuyệt đối. 16 Biểu tượng được phát hiện.

Thao tác này sẽ tìm kiếm tệp myled.z80 và tạo tệp nhị phân (.com), đó là viết tắt của tùy chọn / a.

Xem tệp z80asm.doc để biết thêm thông tin.

Để chạy chương trình, gõ:

F> myled

Kiểm tra đèn LED của người dùng, phím bất kỳ để thoát khỏi Exit F>

Nhấn nút người dùng hoặc một phím trên thiết bị đầu cuối để thoát.

Xong.

Đề xuất: