Mercurial > ecos
view packages/services/gfx/mw/current/src/drivers/asmbios.s @ 3292:7f8e529b4d82 default tip
Fix FREESCALE_EDMA_NBYTES_MLOFFYES_MLOFF() so it works with negative offsets.
| author | vae |
|---|---|
| date | Wed, 29 Apr 2015 23:31:48 +0000 |
| parents | e0c0827131d1 |
| children |
line wrap: on
line source
; 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
