OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [mw/] [src/] [drivers/] [asmbios.s] - Rev 1772

Go to most recent revision | Compare with Previous | Blame | View Log

; Copyright (c) 1999 Greg Haerr <greg@censoft.com>
;
; int10 bios video function access
; int16 bios keyboard access
;
; assembly language routines for MSDOS Microsoft C v5.10
;
; assemble with masm -Mx -D__MEDIUM__
;
 
 
MSC = 1
;__MEDIUM__ = 1
	include asm.h
	.header
 
	.cseg
 
;
; es:bp = int10(int ax,int bx)
;	Call video bios using interrupt 10h
;
	.cproc	int10
	push	bp
	mov	bp,sp
	push	es
	push	ds
	push	si
	push	di
 
	mov	ax,arg1[bp]	; get first arg
	mov	bx,arg1+2[bp]	; get second arg
	int	10h
	mov	dx,es		; return es:bp
	mov	ax,bp
 
	pop	di
	pop	si
	pop	ds
	pop	es
	pop	bp
	ret
	.cendp	int10
 
;
; int kbpoll(void) - poll keyboard for char ready
;
	.cproc	kbpoll
	mov	ah,01h			; read, no remove
	int	16h
	jz	$9			; no chars ready
	mov	ax,1			; chars ready
	ret
$9:	xor	ax,ax			; no chars ready
	ret
	.cendp	kbpoll
;
; int kbread(void) - wait and read a kbd char when ready
;
	.cproc	kbread
	mov	ah,00h			; read and remove
	int	16h			; return ax
	ret
	.cendp	kbread
;
; int kbflags(void) - return kbd shift status
;
	.cproc	kbflags
	mov	ah,02h			; get shift status
	int	16h
	mov	ah,0			; low bits only for now...
	ret
	.cendp	kbflags
 
	.cend
	end
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.