summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/packages/molvideo.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/packages/molvideo.c')
-rw-r--r--qemu/roms/openbios/packages/molvideo.c124
1 files changed, 0 insertions, 124 deletions
diff --git a/qemu/roms/openbios/packages/molvideo.c b/qemu/roms/openbios/packages/molvideo.c
deleted file mode 100644
index 787c4dc08..000000000
--- a/qemu/roms/openbios/packages/molvideo.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Creation Date: <2002/10/23 20:26:40 samuel>
- * Time-stamp: <2004/01/07 19:39:15 samuel>
- *
- * <molvideo.c>
- *
- * Mac-on-Linux display node
- *
- * Copyright (C) 2002, 2003, 2004 Samuel Rydh (samuel@ibrium.se)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libc/diskio.h"
-#include "libopenbios/ofmem.h"
-#include "drivers/drivers.h"
-#include "packages/video.h"
-#include "libopenbios/video.h"
-#include "drivers/vga.h"
-
-
-/************************************************************************/
-/* OF methods */
-/************************************************************************/
-
-DECLARE_NODE( video, 0, 0, "Tdisplay" );
-
-/* ( r g b index -- ) */
-static void
-molvideo_color_bang( void )
-{
- int index = POP();
- int b = POP();
- int g = POP();
- int r = POP();
- unsigned long col = ((r << 16) & 0xff0000) | ((g << 8) & 0x00ff00) | (b & 0xff);
- /* printk("color!: %08lx %08lx %08lx %08lx\n", r, g, b, index ); */
-
- if( VIDEO_DICT_VALUE(video.depth) == 8 ) {
- OSI_SetColor( index, col );
- OSI_RefreshPalette();
- }
-}
-
-/* ( -- ) - really should be reworked as draw-logo */
-static void
-molvideo_startup_splash( void )
-{
- int fd, s, i, y, x, dx, dy;
- int width, height;
- char *pp, *p;
- char buf[64];
-
- /* only draw logo in 24-bit mode (for now) */
- if( VIDEO_DICT_VALUE(video.depth) < 15 )
- return;
-
- for( i=0; i<2; i++ ) {
- if( !BootHGetStrResInd("bootlogo", buf, sizeof(buf), 0, i) )
- return;
- *(!i ? &width : &height) = atol(buf);
- }
-
- if( (s=width * height * 3) > 0x20000 )
- return;
-
- if( (fd=open_io("pseudo:,bootlogo")) >= 0 ) {
- p = malloc( s );
- if( read_io(fd, p, s) != s )
- printk("bootlogo size error\n");
- close_io( fd );
-
- dx = (VIDEO_DICT_VALUE(video.w) - width)/2;
- dy = (VIDEO_DICT_VALUE(video.h) - height)/3;
-
- pp = (char*)VIDEO_DICT_VALUE(video.mvirt) + dy * VIDEO_DICT_VALUE(video.rb) + dx * (VIDEO_DICT_VALUE(video.depth) >= 24 ? 4 : 2);
-
- for( y=0 ; y<height; y++, pp += VIDEO_DICT_VALUE(video.rb) ) {
- if( VIDEO_DICT_VALUE(video.depth) >= 24 ) {
- unsigned long *d = (unsigned long*)pp;
- for( x=0; x<width; x++, p+=3, d++ )
- *d = ((int)p[0] << 16) | ((int)p[1] << 8) | p[2];
- } else if( VIDEO_DICT_VALUE(video.depth) == 15 ) {
- unsigned short *d = (unsigned short*)pp;
- for( x=0; x<width; x++, p+=3, d++ ) {
- int col = ((int)p[0] << 16) | ((int)p[1] << 8) | p[2];
- *d = ((col>>9) & 0x7c00) | ((col>>6) & 0x03e0) | ((col>>3) & 0x1f);
- }
- }
- }
- free( p );
- }
-
- /* No bootlogo support yet on other platforms */
- return;
-}
-
-
-NODE_METHODS( video ) = {
- {"mol-startup-splash", molvideo_startup_splash },
-};
-
-
-/************************************************************************/
-/* init */
-/************************************************************************/
-
-void
-molvideo_init(void)
-{
- xt_t color_bang;
-
- REGISTER_NODE( video );
-
- /* Bind the MOL graphic routines to the mol-color! defer */
- color_bang = bind_noname_func(molvideo_color_bang);
- PUSH(color_bang);
- feval(" to mol-color!");
-}