cursor.asm

来自「一个微型操作系统源码」· 汇编 代码 · 共 161 行

ASM
161
字号
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Project 			:	DSKEDT-FDOS 0.0.7
;; Author 			:	Ottonello, Santiago
;; E-Mail			:	sanotto@yahoo.com
;; Webpage 			:	http://www.visual-opal.de
;; Date	 			:	22.8.2003
;; Caption	 		:	Disk Editor
;; Filename			:	CURSOR.ASM
;; Function			:	Cursor handling Routines
;; Notes			:	Shamelesly stolen fron Peter Norton and
;;				 	Jhon Socha. Thank you Guys...
;;				 	Adapted to FDOS by me...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BEGSR	GOTOXY
	SAVREG	AX,BX
	mov	bh,	0
	mov 	AH,	2	
	INT 10h	
	RSTREG	AX,BX
ENDSR

BEGSR	CURRIG
	SAVREG	AX,BX,CX,DX
	mov	ah,	3
	mov	bh,	0
	int	10H
	mov	ah,2	
	inc	dl
	cmp	dl,	79
	jbe	.OK
	PRTSTR	CRLF
	jmp	.DONE
  .OK:	int	10H
  .DONE:	  		
	RSTREG	AX,BX,CX,DX
ENDSR

BEGSR	CLREOL
	SAVREG	AX,BX,CX,DX
	mov	ah,	3
	xor	bh,	bh	
	int	10H	
	mov	ah,	6
	xor	al,	al
	mov	ch,	dh
	mov	cl,	dl
	mov	dl,	79
	mov	bh,	7
	int	10H
	RSTREG	AX,BX,CX,DX
ENDSR

BEGSR	MOVTHP
	SAVREG	AX,CX,DX
	mov	dh,	[linbse]
	add	dh,	2
	add	dh,	[phacuy]
	mov	dl,	8
	mov	cl,	3
	mov	al,	[phacux]
	mul	cl
	add	dl,	al
	EXSR	GOTOXY
	RSTREG	AX,CX,DX
ENDSR

BEGSR	MOVTAP
	SAVREG	AX,DX
	mov	dh,	[linbse]
	add	dh,	2
	add	dh,	[phacuy]
	mov	dl,	59
	add	dl,	[phacux]
	EXSR	GOTOXY
	RSTREG	AX,DX
ENDSR

BEGSR	SAVRCU
	SAVREG	AX,BX,CX,DX
	mov	ah,	3
	xor	bh,	bh
	int	10H
	mov	[reacuy],	dl
	mov	[reacux],	dl
	RSTREG	AX,BX,CX,DX
ENDSR

BEGSR	RSTRCU
	SAVREG	DX
	mov	dl,	[reacuy]
	mov	dh,	[reacux]
	EXSR	GOTOXY
	RSTREG	DX
ENDSR

BEGSR	WRTPHA
	SAVREG	CX,DX
	EXSR	SAVRCU
	EXSR	MOVTHP
	mov	CX,	4
	mov	dl,	70H
	EXSR	RPTATR
	EXSR	MOVTAP
	mov	CX,	1
	EXSR	RPTATR
	EXSR	RSTRCU
	RSTREG	CX,DX
ENDSR

BEGSR	ERAPHA
	SAVREG	CX,DX
	EXSR	SAVRCU
	EXSR	MOVTHP
	mov	CX,	4
	mov	dl,	7
	EXSR	RPTATR
	EXSR	MOVTAP
	mov	CX,	1
	EXSR	RPTATR
	EXSR	RSTRCU
	RSTREG	CX,DX
ENDSR

BEGSR	PHAUP
	EXSR	ERAPHA
	dec	byte [phacuy]
	jns	.DECOKY
	mov	byte [phacuy],	0
  .DECOKY:	
  	EXSR	WRTPHA
ENDSR

BEGSR	PHADWN
	EXSR	ERAPHA
	inc	byte [phacuy]
	cmp	byte [phacuy],	16
	jb	.INCOKY
	mov	byte [phacuy],	15
  .INCOKY:	
  	EXSR	WRTPHA  	
ENDSR

BEGSR	PHALEF
	EXSR	ERAPHA
	dec	byte [phacux]
	jns	.DECOKY
	mov	byte [phacux],	0
  .DECOKY:	
  	EXSR	WRTPHA	
ENDSR

BEGSR	PHARIG
	EXSR	ERAPHA
	inc	byte [phacux]
	cmp	byte [phacux],	16
	jb	.INCOKY
	mov	byte [phacux],	15
  .INCOKY:	
  	EXSR	WRTPHA  	
ENDSR

⌨️ 快捷键说明

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