亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? async.asm

?? source code for visa card
?? ASM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
;  interrupt driven serial port I/O module.
;  written by David Kessner
;  modified for MASM 5.1 compatibility on 1994-04-11 by Wolfgang Krause
;  modified for better use with season  on 1995-02-02 by MB

.MODEL SMALL

EOI             equ     020h                    ; 8259 end-of-interupt
Ctrl8259_0      equ     020h                    ; 8259 port
Ctrl8259_1      equ     021h                    ; 8259 port (Masks)
BufSize         equ     512                     ; Buffer Size


	_DATA      SEGMENT WORD    PUBLIC  'DATA'

		   assume  cs:DGROUP, ds:DGROUP, ss:DGROUP

	.DATA


; Various things to be set upon AsyncInit()
VectorNum               db      ?               ; Vector Number
EnableIRQ               db      ?               ; Mask to enable 8259 IRQ
DisableIRQ              db      ?               ; Mask to disable 8259 IRQ
VectorSeg               dw      ?               ; Old Vector Segment
VectorOfs               dw      ?               ; Old Vector Offset

; Register Addresses for the 8250 UART
Port                    dw      ?               ; Port Base Address
      RegStart LABEL WORD
THR                     dw      ?               ; Transmitter Holding Register
RDR                     dw      ?               ; Reciever Data Register
BRDL                    dw      ?               ; Baud Rate Divisor, Low byte
BRDH                    dw      ?               ; Baud Rate Divisor, High Byte
IER                     dw      ?               ; Interupt Enable Register
IIR                     dw      ?               ; Interupt Identification Register
LCR                     dw      ?               ; Line Control Register
MCR                     dw      ?               ; Modem Control Register
LSR                     dw      ?               ; Line Status Register
MSR                     dw      ?               ; Modem Status Register

; Buffer Data
RecBuffer               db      BufSize DUP (?) ; Recieve Buffer
RecHead                 dw      ?               ; Buffer Head Pointer
RecTail                 dw      ?               ; Buffer Tail Pointer
TransBuffer             db      BufSize DUP (?) ; Transmit Buffer
TransHead               dw      ?               ; Buffer Head Pointer
TransTail               dw      ?               ; Buffer Tail Pointer

; Register Offsets for the UART
RegOffsets      dw      0, 0, 0, 1, 1, 2, 3, 4, 5, 6

_DATA       ENDS


	_TEXT  SEGMENT WORD PUBLIC 'CODE'

	       assume  cs:_TEXT, ds:DGROUP, ss:DGROUP

	PUBLIC  _AsyncInit,     _AsyncClear,    _AsyncStop
	PUBLIC  _AsyncIn,       _AsyncOut,      _AsyncSet
	PUBLIC  _AsyncHand,     _AsyncStat,     _AsyncInStat
	PUBLIC  _AsyncOutStat


;-----------------------------------------------------------------------------
; AsyncClear                    Empty the recieve buffer
;-----------------------------------------------------------------------------
; void  AsyncClear( void);
;
;
;-----------------------------------------------------------------------------
_AsyncClear PROC NEAR
	cli
	push    ax
	mov     ax, offset RecBuffer
	mov     [RecHead], ax
	mov     [RecTail], ax
	mov     ax, offset TransBuffer
	mov     [TransHead], ax
	mov     [TransTail], ax
	pop     ax
	sti
	ret
_AsyncClear ENDP



;-----------------------------------------------------------------------------
; AsyncInit                     Initalize Serial Port and install ISR
;-----------------------------------------------------------------------------
;       void    AsyncInit( int port)
;
;       Where Port is
;               0  =  COM1
;               1  =  COM2
;               2  =  COM3
;               3  =  COM4
;
;-----------------------------------------------------------------------------
_AsyncInit PROC NEAR
       CommPort equ bp+4

	push    bp
	mov     bp, sp

;---- Set various things according to com port number
	mov     ax, [CommPort]


;----- COM1
	cmp     ax, 0
	jne     _AsyncInit_1
	mov     [Port], 03F8h
	mov     [VectorNum], 0Ch
	mov     [EnableIRQ], 0EFh
	mov     [DisableIRQ], 10h
	jmp     _AsyncInit_Done
_AsyncInit_1:
;----- COM2
	cmp     ax, 1
	jne     _AsyncInit_2
	mov     [Port], 02F8h
	mov     [VectorNum], 0Bh
	mov     [EnableIRQ], 0F7h
	mov     [DisableIRQ], 08h
	jmp     _AsyncInit_Done
_AsyncInit_2:
;----- COM3
	cmp     ax, 2                           ; 2
	jne     _AsyncInit_3
	mov     [Port], 03E8h                   ; 03E8
	mov     [VectorNum], 0Ch                ; 0C
	mov     [EnableIRQ], 0EFh               ; EF
	mov     [DisableIRQ], 10h               ; 10
	jmp     _AsyncInit_Done
_AsyncInit_3:
;----- COM4
	mov     [Port], 02E8h                   ; 02E8
	mov     [VectorNum], 0Bh                ; 0B
	mov     [EnableIRQ], 0F7h               ; F7
	mov     [DisableIRQ], 08h               ; 08
_AsyncInit_Done:

;---- Compute Register locations
	mov     cx, 10
	mov     bx, offset RegOffsets
	push    di
	mov     di, offset RegStart
_AsyncInit_4:
	mov     ax, [bx]
	add     ax, [Port]
	mov     [di], ax
	add     bx, 2
	add     di, 2
	loop    _AsyncInit_4

	pop     di


;----- Initalize Buffer
	call    _AsyncClear

;--- Save and reassign interrupt vector
	push    ds                                      ; Save Old Vector
	mov     al,[VectorNum]
	mov     ah,35h
	int     21h
	mov     [VectorSeg], es
	mov     [VectorOfs], bx

	mov     al, [VectorNum]
	push    cs                                      ; Set New Vector
	pop     ds
	mov     dx, offset AsyncISR
	mov     ah, 25h
	int     21h
	pop     ds

;----- Enable 8259 interrupt (IRQ) line for this async adapter
	in      al, Ctrl8259_1
	and     al, [EnableIRQ]
	out     Ctrl8259_1, al

;----- Enable 8250 Interrupt-on-data-ready
	mov     dx, [LCR]               ; Read Line control register and clear
	in      al, dx                  ; bit 7, the Divisor Latch Address
	and     al, 07Fh
	out     dx, al
	mov     dx, [IER]

	mov al, 0               ; we're gonna test the UART first
	out dx, al
	in al, dx               ; if this isn't 0, there's no UART
	cmp al, 0
	jnz _AsyncInit_222

	mov     al, 3
	out     dx, al

;----- Clear 8250 Status and data registers
_AsyncInit_10:
	mov     dx, [RDR]               ; Clear RDR by reading port
	in      al, dx
	mov     dx, [LSR]               ; Clear LSR
	in      al, dx
	mov     dx, [MSR]               ; Clear MSR
	in      al, dx
	mov     dx, [IIR]               ; Clear IIR
	in      al, dx
	test    al, 1
	jz      _AsyncInit_10

;----- Set Bit 3 of MCR -- Enable interupts
	mov     dx, [MCR]
	in      al, dx
	or      al, 08h
	out     dx, al

;----- Clear Buffer Just in case
	call    _AsyncClear

;----- Return
	xor     ax, ax
_AsyncInit_222:
	pop     bp
	ret
_AsyncInit ENDP



;-----------------------------------------------------------------------------
;  AsyncStop                            Uninstall ISR
;-----------------------------------------------------------------------------
;       void  AsyncStop( void)
;-----------------------------------------------------------------------------
_AsyncStop PROC NEAR

	push    bp
	mov     bp, sp

;----- Mask (disable) 8259 IRQ Interrupt
	in      al, Ctrl8259_1
	or      al, [DisableIRQ]
	out     Ctrl8259_1, al

;----- Disable 8250 interrupt
	mov     dx, [LCR]
	in      al, dx
	and     al, 07Fh
	out     dx, al
	mov     dx, [IER]
	xor     al, al
	out     dx, al

;----- Set bit 3 in MCR to 0
	mov     dx, [MCR]
	in      al, dx
	and     al, 0F7h
	out     dx, al

;----- Interrupts are disables.  Restore saved interrupt vector.
	push    ds
	mov     al, [VectorNum]
	mov     ah, 25h
	mov     dx, [VectorOfs]
	mov     ds, [VectorSeg]
	int     21h
	pop     ds

;----- Return
	pop     bp
	ret
_AsyncStop ENDP



;-----------------------------------------------------------------------------
; AsyncISR                              Async Interrupt Service Routine
;-----------------------------------------------------------------------------
;       To be called only as an interrupt.
;-----------------------------------------------------------------------------
AsyncISR PROC NEAR

	push    ax                              ; Save Registers
	push    bx
	push    ds

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色av一区二区| 欧美疯狂性受xxxxx喷水图片| 亚洲精品一二三区| 制服丝袜在线91| 不卡电影免费在线播放一区| 日本不卡在线视频| 伊人夜夜躁av伊人久久| 国产亚洲欧美色| 欧美日韩日本视频| 99久久婷婷国产精品综合| 精品一区二区精品| 亚洲r级在线视频| 亚洲激情在线播放| 亚洲国产精品成人综合| 日韩免费电影网站| 欧美日韩成人激情| 91福利区一区二区三区| 99在线热播精品免费| 国产精品一区二区在线观看网站| 图片区小说区区亚洲影院| 亚洲日本韩国一区| 亚洲四区在线观看| 中文字幕在线不卡| 中文字幕国产精品一区二区| 久久综合九色综合欧美亚洲| 日韩欧美一级在线播放| 欧美精品xxxxbbbb| 欧美日韩国产另类一区| 91蜜桃视频在线| 99这里只有久久精品视频| 东方欧美亚洲色图在线| 国产高清精品在线| 成人在线视频一区| 粉嫩一区二区三区在线看| 国产精品99久久久久久有的能看| 久久精品国产免费看久久精品| 美女高潮久久久| 久久精品国产**网站演员| 精品在线你懂的| 久久99九九99精品| 男人的j进女人的j一区| 日韩va欧美va亚洲va久久| 日韩电影网1区2区| 青青草97国产精品免费观看无弹窗版| 天天操天天色综合| 日本强好片久久久久久aaa| 日韩精品成人一区二区三区| 久久精品国产一区二区三区免费看| 午夜视频在线观看一区二区 | 91麻豆精品国产| 欧美色中文字幕| 欧美巨大另类极品videosbest| 欧美日韩国产bt| 日韩一区二区高清| 精品盗摄一区二区三区| 日韩一级片网站| 久久综合国产精品| 国产精品女同一区二区三区| 亚洲欧洲99久久| 亚洲综合丝袜美腿| 奇米一区二区三区| 成人午夜伦理影院| 在线观看日韩电影| 日韩一区二区三区四区五区六区| 久久影院视频免费| 一区二区中文字幕在线| 亚洲国产视频直播| 狠狠色伊人亚洲综合成人| 成人影视亚洲图片在线| 91国产免费观看| 欧美xingq一区二区| 国产精品久久毛片a| 亚洲丰满少妇videoshd| 韩国av一区二区三区在线观看| 成人综合婷婷国产精品久久 | 一区二区三区国产豹纹内裤在线| 天堂影院一区二区| 国产成人在线视频网站| 在线免费一区三区| 欧美刺激脚交jootjob| 国产精品三级av| 亚洲成a人片在线不卡一二三区 | 成人av网在线| 欧美日韩成人高清| 国产精品视频一二三区 | 亚洲成人1区2区| 国产成人午夜精品影院观看视频 | 天天综合日日夜夜精品| 国产成人av资源| 欧美性一级生活| 国产亚洲污的网站| 日韩精品每日更新| av动漫一区二区| 日韩亚洲国产中文字幕欧美| 国产精品久久福利| 美脚の诱脚舐め脚责91| 91麻豆精品视频| 亚洲精品一区二区三区香蕉| 一区二区三区加勒比av| 国产成人精品一区二区三区四区| 欧美日韩一区不卡| 日韩一区在线看| 国产乱色国产精品免费视频| 欧美日韩国产另类一区| 亚洲天堂中文字幕| 国产精品888| 日韩一区二区三免费高清| 亚洲精品国产精华液| 国产成人精品在线看| 日韩一级欧美一级| 亚洲成人免费视频| 91丝袜呻吟高潮美腿白嫩在线观看| 久久一夜天堂av一区二区三区| 天天综合色天天| 欧美色电影在线| 亚洲视频综合在线| 成人涩涩免费视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品国产自在久精品国产| 亚洲成人一区二区在线观看| 色香色香欲天天天影视综合网| 国产日韩欧美综合在线| 精品一区二区三区免费视频| 欧美精品日韩综合在线| 亚洲午夜成aⅴ人片| 日本韩国一区二区三区| 亚洲精品一二三| 91麻豆.com| 亚洲乱码国产乱码精品精可以看| 国产成人鲁色资源国产91色综| 久久久久久久精| 国产在线不卡一卡二卡三卡四卡| 日韩免费视频一区| 久久99精品国产麻豆不卡| 欧美成人女星排名| 激情图片小说一区| 久久亚洲精精品中文字幕早川悠里| 美女一区二区久久| 欧美www视频| 国产精品18久久久久久久久| 久久色在线视频| 国产成人夜色高潮福利影视| 国产欧美一区二区在线| proumb性欧美在线观看| 亚洲欧美偷拍另类a∨色屁股| 91麻豆精品在线观看| 亚洲卡通动漫在线| 欧美色视频在线| 丝袜亚洲另类丝袜在线| 精品国产伦一区二区三区观看体验| 久久精品999| 国产日韩亚洲欧美综合| 不卡一区二区在线| 亚洲一区二区偷拍精品| 欧美一区二区免费视频| 国产一区二区在线电影| 国产欧美在线观看一区| 色av综合在线| 日本系列欧美系列| 久久久久青草大香线综合精品| 国产一区 二区| 亚洲人123区| 在线成人av网站| 精品一区二区免费| 最新日韩在线视频| 欧美老肥妇做.爰bbww视频| 老司机午夜精品| 成人欧美一区二区三区在线播放| 日本韩国一区二区三区视频| 免费成人在线观看视频| 国产精品无遮挡| 欧美日韩国产成人在线免费| 狠狠色狠狠色综合系列| 亚洲美女在线国产| 精品久久久久av影院| 不卡av免费在线观看| 日韩精品国产欧美| 国产精品国产自产拍在线| 欧美日韩国产高清一区| 成人午夜免费av| 日韩在线一二三区| 亚洲国产精品传媒在线观看| 欧美日韩国产大片| 成人av电影在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美国产精品劲爆| 日韩一区二区精品葵司在线| av中文一区二区三区| 蜜桃视频在线一区| 亚洲精品福利视频网站| 久久综合九色综合欧美98| 欧美亚洲动漫精品| youjizz久久| 久久99国产精品久久| 亚洲尤物在线视频观看| 国产清纯在线一区二区www| 欧美日韩国产高清一区二区三区 | 色成人在线视频| 国产寡妇亲子伦一区二区| 日韩国产高清在线|