SimpleOS

LXR

Navigation



Site hébergé par : enix

The LXR Cross Referencer for SOS

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Article:1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 6.5 ] [ 7 ] [ 7.5 ] [ 8 ] [ 9 ] [ 9.5 ]

Diff markup

Differences between /drivers/x86_videomem.h (Article 5) and /drivers/x86_videomem.h (Article 7.5)


001 /* Copyright (C) 2004  David Decotigny            001 /* Copyright (C) 2004  David Decotigny
002    Copyright (C) 1999  Free Software Foundatio << 
003                                                   002 
004    This program is free software; you can redi    003    This program is free software; you can redistribute it and/or
005    modify it under the terms of the GNU Genera    004    modify it under the terms of the GNU General Public License
006    as published by the Free Software Foundatio    005    as published by the Free Software Foundation; either version 2
007    of the License, or (at your option) any lat    006    of the License, or (at your option) any later version.
008                                                   007    
009    This program is distributed in the hope tha    008    This program is distributed in the hope that it will be useful,
010    but WITHOUT ANY WARRANTY; without even the     009    but WITHOUT ANY WARRANTY; without even the implied warranty of
011    MERCHANTABILITY or FITNESS FOR A PARTICULAR    010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
012    GNU General Public License for more details    011    GNU General Public License for more details.
013                                                   012    
014    You should have received a copy of the GNU     013    You should have received a copy of the GNU General Public License
015    along with this program; if not, write to t    014    along with this program; if not, write to the Free Software
016    Foundation, Inc., 59 Temple Place - Suite 3    015    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
017    USA.                                           016    USA. 
018 */                                                017 */
019 #ifndef _SOS_X86_VIDEOMEM_H_                      018 #ifndef _SOS_X86_VIDEOMEM_H_
020 #define _SOS_X86_VIDEOMEM_H_                      019 #define _SOS_X86_VIDEOMEM_H_
021                                                   020 
022 /**                                               021 /**
023  * @file x86_videomem.h                           022  * @file x86_videomem.h
024  *                                                023  *
025  * On x86 PC platforms, the text mode screen m    024  * On x86 PC platforms, the text mode screen memory (and CGA/EGA/VGA
026  * too) is mapped into physical memory. This f    025  * too) is mapped into physical memory. This file handles access to
027  * this screen, supposed to be set in text-mod    026  * this screen, supposed to be set in text-mode, through this memory
028  * area. All the functions below print the cha    027  * area. All the functions below print the characters directly to the
029  * memory, without interpreting the escaped ch    028  * memory, without interpreting the escaped characters (such as \n,
030  * \r...)                                         029  * \r...)
031  */                                               030  */
032                                                   031 
033 #include <sos/errno.h>                            032 #include <sos/errno.h>
034                                                   033 
035 /**                                               034 /**
036  * x86 video attributes                           035  * x86 video attributes
037  * See http://webster.cs.ucr.edu/AoA/DOS/ch23/    036  * See http://webster.cs.ucr.edu/AoA/DOS/ch23/CH23-1.html
038  */                                               037  */
039 /* Normal and Dark/Light foreground */            038 /* Normal and Dark/Light foreground */
040 #define SOS_X86_VIDEO_FG_BLACK     0              039 #define SOS_X86_VIDEO_FG_BLACK     0
041 #define SOS_X86_VIDEO_FG_DKGRAY    8              040 #define SOS_X86_VIDEO_FG_DKGRAY    8
042 #define SOS_X86_VIDEO_FG_BLUE      1              041 #define SOS_X86_VIDEO_FG_BLUE      1
043 #define SOS_X86_VIDEO_FG_LTBLUE    9              042 #define SOS_X86_VIDEO_FG_LTBLUE    9
044 #define SOS_X86_VIDEO_FG_GREEN     2              043 #define SOS_X86_VIDEO_FG_GREEN     2
045 #define SOS_X86_VIDEO_FG_LTGREEN   10             044 #define SOS_X86_VIDEO_FG_LTGREEN   10
046 #define SOS_X86_VIDEO_FG_CYAN      3              045 #define SOS_X86_VIDEO_FG_CYAN      3
047 #define SOS_X86_VIDEO_FG_LTCYAN    11             046 #define SOS_X86_VIDEO_FG_LTCYAN    11
048 #define SOS_X86_VIDEO_FG_RED       4              047 #define SOS_X86_VIDEO_FG_RED       4
049 #define SOS_X86_VIDEO_FG_LTRED     12             048 #define SOS_X86_VIDEO_FG_LTRED     12
050 #define SOS_X86_VIDEO_FG_MAGENTA   5              049 #define SOS_X86_VIDEO_FG_MAGENTA   5
051 #define SOS_X86_VIDEO_FG_LTMAGENTA 13             050 #define SOS_X86_VIDEO_FG_LTMAGENTA 13
052 #define SOS_X86_VIDEO_FG_BROWN     6              051 #define SOS_X86_VIDEO_FG_BROWN     6
053 #define SOS_X86_VIDEO_FG_YELLOW    14             052 #define SOS_X86_VIDEO_FG_YELLOW    14
054 #define SOS_X86_VIDEO_FG_LTGRAY    7              053 #define SOS_X86_VIDEO_FG_LTGRAY    7
055 #define SOS_X86_VIDEO_FG_WHITE     15             054 #define SOS_X86_VIDEO_FG_WHITE     15
056 /* Background */                                  055 /* Background */
057 #define SOS_X86_VIDEO_BG_BLACK     (0 << 4)       056 #define SOS_X86_VIDEO_BG_BLACK     (0 << 4)
058 #define SOS_X86_VIDEO_BG_BLUE      (1 << 4)       057 #define SOS_X86_VIDEO_BG_BLUE      (1 << 4)
059 #define SOS_X86_VIDEO_BG_GREEN     (2 << 4)       058 #define SOS_X86_VIDEO_BG_GREEN     (2 << 4)
060 #define SOS_X86_VIDEO_BG_CYAN      (3 << 4)       059 #define SOS_X86_VIDEO_BG_CYAN      (3 << 4)
061 #define SOS_X86_VIDEO_BG_RED       (4 << 4)       060 #define SOS_X86_VIDEO_BG_RED       (4 << 4)
062 #define SOS_X86_VIDEO_BG_MAGENTA   (5 << 4)       061 #define SOS_X86_VIDEO_BG_MAGENTA   (5 << 4)
063 #define SOS_X86_VIDEO_BG_BROWN     (6 << 4)       062 #define SOS_X86_VIDEO_BG_BROWN     (6 << 4)
064 #define SOS_X86_VIDEO_BG_LTGRAY    (7 << 4)       063 #define SOS_X86_VIDEO_BG_LTGRAY    (7 << 4)
065 /* Blinking */                                    064 /* Blinking */
066 #define SOS_X86_VIDEO_FG_BLINKING  (1 << 7)       065 #define SOS_X86_VIDEO_FG_BLINKING  (1 << 7)
067                                                   066 
068                                                   067 
069 /** Setup the video RAM mapping and clear the     068 /** Setup the video RAM mapping and clear the screen */
070 sos_ret_t sos_x86_videomem_setup(void);           069 sos_ret_t sos_x86_videomem_setup(void);
071                                                   070 
072 /** Clears the screen and set the background c    071 /** Clears the screen and set the background color as given by
073     attribute */                                  072     attribute */
074 sos_ret_t sos_x86_videomem_cls(unsigned char a    073 sos_ret_t sos_x86_videomem_cls(unsigned char attribute);
075                                                   074 
076 /** Print the string on the scren with the giv    075 /** Print the string on the scren with the given attribute. Does not
077     handle scrolling */                           076     handle scrolling */
078 sos_ret_t sos_x86_videomem_putstring(unsigned     077 sos_ret_t sos_x86_videomem_putstring(unsigned char row, unsigned char col,
079                                      unsigned     078                                      unsigned char attribute,
080                                      const cha    079                                      const char *str);
081                                                   080 
082 /** Print the character on the scren with the     081 /** Print the character on the scren with the given attribute. Does not
083     handle scrolling */                           082     handle scrolling */
084 sos_ret_t sos_x86_videomem_putchar(unsigned ch    083 sos_ret_t sos_x86_videomem_putchar(unsigned char row, unsigned char col,
085                                    unsigned ch    084                                    unsigned char attribute,
086                                    unsigned ch    085                                    unsigned char c);
087                                                   086 
088 /**                                               087 /**
089  * Print the formatted string. Very restricted    088  * Print the formatted string. Very restricted version of printf(3):
090  * 1/ can print max 255 chars, 2/ supports onl    089  * 1/ can print max 255 chars, 2/ supports only %d/%i, %c, %s, %x
091  * without any support for flag charachters (e    090  * without any support for flag charachters (eg %08x).
092  */                                               091  */
093 sos_ret_t sos_x86_videomem_printf(unsigned cha    092 sos_ret_t sos_x86_videomem_printf(unsigned char row, unsigned char col,
094                                   unsigned cha    093                                   unsigned char attribute,
095                                   const char *    094                                   const char *format, /* args */...)
096      __attribute__ ((format (printf, 4, 5)));     095      __attribute__ ((format (printf, 4, 5)));
097                                                   096 
098 #endif /* _SOS_X86_VIDEOMEM_H_ */                 097 #endif /* _SOS_X86_VIDEOMEM_H_ */
                                                      

source navigation ] diff markup ] identifier search ] general search ]