Home | History | Annotate | Line # | Download | only in dev
grfabs_fal.h revision 1.6
      1  1.6  tsutsui /*	$NetBSD: grfabs_fal.h,v 1.6 2023/01/06 10:28:28 tsutsui Exp $	*/
      2  1.1      leo 
      3  1.1      leo /*
      4  1.1      leo  * Copyright (c) 1995 Thomas Gerner.
      5  1.1      leo  * All rights reserved.
      6  1.1      leo  *
      7  1.1      leo  * Redistribution and use in source and binary forms, with or without
      8  1.1      leo  * modification, are permitted provided that the following conditions
      9  1.1      leo  * are met:
     10  1.1      leo  * 1. Redistributions of source code must retain the above copyright
     11  1.1      leo  *    notice, this list of conditions and the following disclaimer.
     12  1.1      leo  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1      leo  *    notice, this list of conditions and the following disclaimer in the
     14  1.1      leo  *    documentation and/or other materials provided with the distribution.
     15  1.1      leo  *
     16  1.1      leo  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     17  1.1      leo  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     18  1.1      leo  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     19  1.1      leo  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     20  1.1      leo  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     21  1.1      leo  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     22  1.1      leo  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     23  1.1      leo  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     24  1.1      leo  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     25  1.1      leo  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     26  1.1      leo  */
     27  1.1      leo 
     28  1.1      leo #ifndef _GRFABS_FAL_H
     29  1.1      leo #define _GRFABS_FAL_H
     30  1.1      leo /*
     31  1.1      leo  * Struct to hold the values for the different video modes
     32  1.1      leo  */
     33  1.1      leo struct videl {
     34  1.2      leo     u_short video_mode;		/* video mode			    */
     35  1.1      leo     u_char  vd_syncmode;	/* Syncronisation		    */
     36  1.1      leo     u_short vd_line_wide;	/* Falcon line word distance        */
     37  1.1      leo     u_short vd_vert_wrap;	/* Falcon line length		    */
     38  1.1      leo     u_char  vd_st_res;		/* ST resolution		    */
     39  1.1      leo     u_short vd_fal_res;		/* Falcon resolution		    */
     40  1.1      leo     u_short vd_h_hold_tim;	/* Falcon horizontal hold timer     */
     41  1.6  tsutsui     u_short vd_h_bord_beg;	/* Falcon horizontal border begin   */
     42  1.1      leo     u_short vd_h_bord_end;	/* Falcon horizontal border end     */
     43  1.1      leo     u_short vd_h_dis_beg;	/* Falcon horizontal display begin  */
     44  1.1      leo     u_short vd_h_dis_end;	/* Falcon horizontal display end    */
     45  1.1      leo     u_short vd_h_ss;		/* Falcon horizontal SS             */
     46  1.1      leo     u_short vd_h_fs;		/* Falcon horizontal FS		    */
     47  1.1      leo     u_short vd_h_hh;		/* Falcon horizontal HH		    */
     48  1.1      leo     u_short vd_v_freq_tim;	/* Falcon vertical frequency timer  */
     49  1.1      leo     u_short vd_v_bord_beg;	/* Falcon vertical border begin     */
     50  1.1      leo     u_short vd_v_bord_end;	/* Falcon vertical border end       */
     51  1.1      leo     u_short vd_v_dis_beg;	/* Falcon vertical display begin    */
     52  1.1      leo     u_short vd_v_dis_end;	/* Falcon vertical display end      */
     53  1.1      leo     u_short vd_v_ss;		/* Falcon vertical SS               */
     54  1.1      leo     u_short vd_fal_ctrl;	/* Falcon video control		    */
     55  1.1      leo     u_short vd_fal_mode;	/* Falcon video mode	            */
     56  1.1      leo };
     57  1.1      leo 
     58  1.3      leo 
     59  1.3      leo /*
     60  1.3      leo  * Colormap related macro's
     61  1.3      leo  */
     62  1.3      leo #define CM_L2FAL(v) \
     63  1.3      leo     (((0x003f0000 & (v)) << 10) | ((0x00003f00 & (v)) << 10) |\
     64  1.3      leo       (0x0000003f & (v)) << 2)
     65  1.3      leo #define CM_FAL2L(v) \
     66  1.3      leo     (((((0xfc000000 & (v)) >> 10) * 0xff / 0x3f) & 0x00ff0000) |\
     67  1.3      leo      ((((0x00fc0000 & (v)) >> 10) * 0xff / 0x3f) & 0x0000ff00) |\
     68  1.3      leo        ((0x000000fc & (v)) >>  2) * 0xff / 0x3f)
     69  1.3      leo #define CM_L2ST(v) \
     70  1.3      leo     (((0x000e0000 & (v)) >> 9) | ((0x00000e00 & (v)) >> 5) |\
     71  1.3      leo       (0x0000000e & (v)) >> 1)
     72  1.3      leo #define CM_ST2L(v) \
     73  1.3      leo     (((((0x00000700 & (v)) * 0xff / 0x7) << 8) & 0x00ff0000) |\
     74  1.3      leo      ((((0x00000070 & (v)) * 0xff / 0x7) << 4) & 0x0000ff00) |\
     75  1.3      leo         (0x00000007 & (v)) * 0xff / 0x7)
     76  1.3      leo 
     77  1.4      dsl void falcon_probe_video(MODES *);
     78  1.1      leo #endif /*  _GRFABS_FAL_H */
     79