git @ Cat's Eye Technologies BefOS / master src / kernel / display.s
master

Tree @master (Download .tar.gz)

display.s @masterraw · history · blame

;--- CONSTANTS -----------------------------------------------;

;--- DATA ----------------------------------------------------;

SEGMENT	.data

;--- CODE ----------------------------------------------------;

SEGMENT	.text


		;;--------------------------------------------;
		;; Show an 8-bit unsigned value onscreen, as
		;; an integer in hexadecimal.
		;; ah: attributes -> GARBAGE
		;; al: * -> GARBAGE
		;; bl: number to display -> GARBAGE
		;; di: location on screen -> INCREMENTED
		;; cl: * -> GARBAGE
DisplayByte:	mov	al, bl
		mov	cl, 4
		shr	al, cl
		call	NybbleToHex
		mov	[es:di], ax
		inc	di
		inc	di

		mov	al, bl
		call	NybbleToHex
		mov	[es:di], ax
		inc	di
		inc	di

		ret


		;;--------------------------------------------;
		;; Show a 16-bit unsigned value onscreen, as
		;; an integer in hexadecimal.
		;; ah: attributes -> GARBAGE
		;; al: * -> GARBAGE
		;; bx: number to display -> GARBAGE
		;; di: location on screen -> INCREMENTED
		;; cl: * -> GARBAGE
		;; dx: * -> GARBAGE
DisplayShort:	mov	dx, bx
		mov	bl, bh
		call	DisplayByte
		mov	bx, dx
		jmp	DisplayByte


DebugIt:	mov	es, [vbase]
		xor	di, di
		mov	word [es:di], 00301h
		jmp	DebugIt


		;;--------------------------------------------;
		;; Draw a solid bar on the screen.
		;; ah: attributes -> GARBAGE
		;; al: character -> GARBAGE
		;; di: location on screen -> INCREMENTED
		;; cx: length of bar -> GARBAGE
DrawBar:	mov	[es:di], ax
		inc	di
		inc	di
		dec	cx
		jnz	DrawBar
		ret

;--- END -----------------------------------------------------;