Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:41

0001 /*
0002  * videoAsm.S  - This file contains code for displaying cursor on the console
0003  *
0004  * Copyright (C) 1998  valette@crf.canon.fr
0005  *
0006  * This code is free software; you can redistribute it and/or
0007  * modify it under the terms of the GNU Library General Public
0008  * License as published by the Free Software Foundation; either
0009  * version 2 of the License, or (at your option) any later version.
0010  *
0011  * This code is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0014  * Library General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU Library General Public
0017  * License along with this library; if not, write to the Free Software
0018  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
0019  */
0020 
0021     .file "videoAsm.s"
0022 
0023 #include <crt.h>
0024 
0025     .text
0026     .align 4
0027         .globl  wr_cursor   /* Move cursor position */
0028 
0029 /*
0030  *      void wr_cursor(newPosition, ioBaseAddr)
0031  */
0032 
0033 wr_cursor:  pushl   %ecx
0034         movl    8(%esp), %ecx       /* Get new cursor position */
0035         movb    $CC_CURSHIGH, %al   /* Cursor high location */
0036         movl    12(%esp), %edx      /* Get IO base address */
0037         outb    (%dx)
0038         incw    %dx         /* Program Data register */
0039         movb    %ch, %al
0040         outb    (%dx)           /* Update high location cursor */
0041         decw    %dx         /* Program Index Register */
0042         movb    $CC_CURSLOW, %al    /* Cursor low location */
0043         outb    (%dx)
0044         incw    %dx         /* Program Data Register */
0045         movb    %cl, %al
0046         outb    (%dx)           /* Update low location cursor */
0047         popl    %ecx
0048         ret