mirror of
https://github.com/vivier/EMILE.git
synced 2025-08-09 13:25:29 +00:00
Add vga_is_available() to know if VGA has been activated, give level 2 info to vga_init
This commit is contained in:
26
second/vga.c
26
second/vga.c
@@ -15,8 +15,10 @@
|
|||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "vga.h"
|
#include "vga.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
|
#include "head.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
QDGlobals qd;
|
static QDGlobals qd;
|
||||||
|
|
||||||
#define CHARSET_0 0
|
#define CHARSET_0 0
|
||||||
#define CHARSET_A 1
|
#define CHARSET_A 1
|
||||||
@@ -134,6 +136,8 @@ static unsigned char translation[][256] = {
|
|||||||
|
|
||||||
typedef struct vga_handler {
|
typedef struct vga_handler {
|
||||||
|
|
||||||
|
unsigned int enabled;
|
||||||
|
|
||||||
unsigned char* video;
|
unsigned char* video;
|
||||||
unsigned char* base;
|
unsigned char* base;
|
||||||
unsigned long row_bytes; /* in bytes */
|
unsigned long row_bytes; /* in bytes */
|
||||||
@@ -187,6 +191,8 @@ static unsigned char bits_depth8[2] = {
|
|||||||
|
|
||||||
static vga_handler_t vga =
|
static vga_handler_t vga =
|
||||||
{
|
{
|
||||||
|
.enabled = 0,
|
||||||
|
|
||||||
.video = 0,
|
.video = 0,
|
||||||
.base = 0,
|
.base = 0,
|
||||||
.row_bytes = 0,
|
.row_bytes = 0,
|
||||||
@@ -515,10 +521,13 @@ vga_scroll()
|
|||||||
static void vga_clear();
|
static void vga_clear();
|
||||||
|
|
||||||
int
|
int
|
||||||
vga_init()
|
vga_init(emile_l2_header_t* info)
|
||||||
{
|
{
|
||||||
GDHandle hdl;
|
GDHandle hdl;
|
||||||
volatile PixMapPtr pm;
|
volatile PixMapPtr pm;
|
||||||
|
char* mode;
|
||||||
|
|
||||||
|
mode = read_config_vga(info);
|
||||||
|
|
||||||
InitGraf(&qd.thePort);
|
InitGraf(&qd.thePort);
|
||||||
|
|
||||||
@@ -559,6 +568,11 @@ vga_init()
|
|||||||
vga_cursor(0);
|
vga_cursor(0);
|
||||||
vga_clear();
|
vga_clear();
|
||||||
|
|
||||||
|
if (strcmp(mode, "none") != 0)
|
||||||
|
vga.enabled = 1;
|
||||||
|
|
||||||
|
free(mode);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -607,6 +621,9 @@ vga_put(char c)
|
|||||||
int tmp_x, tmp_y;
|
int tmp_x, tmp_y;
|
||||||
char *end;
|
char *end;
|
||||||
|
|
||||||
|
if (!vga.enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
vga_cursor(0);
|
vga_cursor(0);
|
||||||
|
|
||||||
/* VT100 EMULATION */
|
/* VT100 EMULATION */
|
||||||
@@ -801,3 +818,8 @@ unsigned long vga_get_video()
|
|||||||
{
|
{
|
||||||
return (unsigned long)vga.video;
|
return (unsigned long)vga.video;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int vga_is_available(void)
|
||||||
|
{
|
||||||
|
return vga.enabled;
|
||||||
|
}
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
#ifndef __VGA_H__
|
#ifndef __VGA_H__
|
||||||
#define __VGA_H__
|
#define __VGA_H__
|
||||||
|
|
||||||
extern int vga_init();
|
extern int vga_init(emile_l2_header_t* info);
|
||||||
|
|
||||||
extern void vga_put(char c);
|
extern void vga_put(char c);
|
||||||
extern void vga_print(char *s);
|
extern void vga_print(char *s);
|
||||||
@@ -19,5 +19,6 @@ extern unsigned long vga_get_depth();
|
|||||||
extern unsigned long vga_get_width();
|
extern unsigned long vga_get_width();
|
||||||
extern unsigned long vga_get_height();
|
extern unsigned long vga_get_height();
|
||||||
extern unsigned long vga_get_video();
|
extern unsigned long vga_get_video();
|
||||||
|
extern int vga_is_available(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user