⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6551acia.asm

📁 6502bios,关于6502的sbc,有lcd,time,irq,模块
💻 ASM
字号:
; 6551 ACIA support
; Chris Ward, 15/1/2000

_ACIA	;remember start address for code

; ACIA registers
	ORG ACIA
ATXD	.ds 1		;transmit data register (write)
ARXD	EQU ATXD		;receive data register (read)
ARES	.ds 1		;programmed reset (write)
ASTS	EQU ARES		;status register (read)
ACMD	.ds 1		;command register (r/w)
ACTL	.ds 1		;control register (r/w)

	ORG _ACIA
; *** AINIT: ACIA initialisation
; X,Y preserved
AINIT	STA ARES		;reset
	LDA #$09		;set options
	STA ACMD
	LDA #$1E		;8-N-1, 9600 baud
	STA ACTL
	LDA #0
	STA SERRXF	;clear 'byte received' flag
	RTS

; *** TXBYTE: Transmit byte
; input: A = byte to transmit
; A,X,Y preserved
TXBYTE	PHA
TXBYT1	LDA ASTS
	AND #$10		;trasmit register empty?
	BEQ TXBYT1	;no, try again
	PLA
	STA ATXD		;send byte
	RTS

; *** RXBYTE: Waits until a byte has been received, and returns it
;     (the byte is actually received by the interrupt handler)
; output: A = received byte
; X,Y preserved
RXBYTE	LDA SERRXF	;check received byte flag
	BEQ RXBYTE	;wait...
	DEC SERRXF	;reset flag
	LDA SERRX		;get byte
	RTS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -