

                                   JLib

                            Target Information.

     Copyright (C) 1995 Jonathan Paul Griffiths.  All Rights Reserved.



                          Last Updated: 02/10/95


Introduction

This file is intended to detail each of the targets available for Jlib. 
The peculiarities of the target may limit or change the expected behaviour
of any of the library functions.  Any such behaviour should be noted here.

I hope to encourage people to add targets as they wish,  as each added
target makes the library potentially more useful.  So if you see a target here
that isn't fully functional or lacks a lot of functions,  be patient. 
Someone will be adding functionality somewhere.  If you want to contribute a
target,  but only have some of the functions done,  contribute it anyway and
let someone else finish it or contribute to it also.

Each target is listed with its author(s),  a description,  and details about
compiling for it plus other anomalies.
 

NOTE: Compiling for multiple targets:
  If you want to compile for more than one target often on your machine,  It
will get very annoying to have to constantly recompile.  I recommend compiling
each targets library and renaming them to something meaningful.  Remember
to keep the include files seperate also, or you might end up in trouble!
To do this you will have to manually include the header files at compile
time,  or define the target on the command line.  I will try to include more
details on this in a future release.


Targets:

DJGPP_DPMI_COMPLIANT : MODE_13H

Author:      Jonathan Griffiths
Description: DJGPP compiler with IBM mode 13h graphics.  320 x 200 x 256
             screen mode with 1 page.  Seems quite fast even with crappy
             ISA cards (like mine!).  
Details:     Must compile with -lpc on the command line after -lj as this
             Target uses functions from libpc.  Executables will run under
             dos boxes in windows and os/2 (os/2 untested) as well as dos.
             This mode is fully compatable with djgpp V2.  Keyboard support
             is only available under djgpp v2 because interrupts are too
             unreliable under V1.  You should move to V2 as soon as
             possible.
Anomalies:   This was the first target I wrote so it's anomalies are
             *features* of the library.
             V2 fixes most of go32's interrupt bugs,  but it still might
             suffer if your program pages a lot.  Stay tuned for a solution.
Missing:     Joystick routines to satisfy jinput.h
             
        


DJGPP_DPMI_COMPLIANT : GRX_640x480x256

Author:      Jonathan Griffiths
Description: DJGPP compiler with 1 page,  640x480 256 color graphics through
             libgrx.  Runs fairly slow on ISA cards but should be aceptable
             with local bus cards.
Details:     Must compile with -lpc and -lgrx on the command line after -lj.
             Cheats a little to draw to the screen.  I came up with this
             target in a couple of days so it's a little rough.  This isn't
             dpmi compliant becuase libgrx version 1 isn't.If you have a driver
             for your card it might speed up further still.
             Remember that libgrx is subject to a license for commercial use! 
Missing:     Keyboard and joystick support to satisfy jinput.h - these are
             probably not going to arrive as I'm concentrating on grx v2.



DJGPP_DPMI_COMPLIANT : GRX2_320x200x256, GRX2_640x480x256, GRX2_800x600x256

Author:      Jonathan Griffiths
Description: DJGPP compiler with various 256 color graphics modes through
             libgrx V2.  Runs fairly slow on ISA cards but should be aceptable
             with local bus cards.  This is a multiple target - the same 
             target code provides the three different targets.
Details:     Must compile with -lpc and -lgrx20 on the command line after -lj.
             This is a bit of a hack, so it's a little rough,  but it is
             dpmi compliant (ie runs under windows and os/2).If you have a
             driver for your card it will probably run at a good speed. 
             Dont forget to check the copyright etc of the new version!
             I'm expecting to create a new,  vesa based target for dos that
             wont be subject to any licensing conditions.  Until then grx
             makes a good development environment.
Missing:     Keyboard and joystick support to satisfy jinput.h
             



LINUX_SVGALIB : MODE_13H

Author:      Jonathan Griffiths
Description: Linux with svgalib. mode 13h,  looks just like DJGPP 13h but it
             seems to run just a tad faster and is more fun to develop with. 
Details:     Uses svgalib for palette and mode setting but draws to the screen
             itself.  Uses vgamouse package (comes with svgalib) for mouse.
             Must link with -lvga and -lvgagl to compile.  Rather crappy
             looking mouse cursor due to speed interest (+ lack of talent ;) )
             Mike Manly has figured out how to compile it as a shared library. 
             look in source/target/linux13h/makeshar for details.  This
             target uses the rawkeyboard package (came with svgalib) for
             keyboard input.
Missing:     Joystick routines to satisfy jinput.h

       

 
LINUX_GRX2 : GRX2_320x200x256, GRX2_640x480x256, GRX2_800x600x256

Author:      Jonathan Griffiths
Description: Linux  with various 256 color graphics modes through
             libgrx V2.  Runs fairly slow on ISA cards but should be aceptable
             with local bus cards.  This is a multiple target - the same 
             target code provides the three different targets.
Details:     Must compile with -lgrx20 then -lvga on the command line after
             -lj. This is a bit of a hack, so it's a little rough.  Your card
             needs to be supported by svgalib and/or libgrx to use this
             target.  You also have to get hold of grx2 and compile it.  You
             can get grx2 for linux and dos from http://www.delorie.com .
             Dont forget to check the copyright etc of the new version!
             I'm expecting to create a new,  gl based target for linux that
             wont be subject to any licensing conditions.  Until then grx
             makes a good development environment.
Missing:     Joystick support to satisfy jinput.h



X_WINDOWS : X_320x200x256

Author:      Mike Manly
Description: Hopefully generic X based target.  Currently being developed
             under Linux/X.  Has run successfully on a SPARC!
Details:     Please do not ask me (Jon) when this target will be finished - I
             do not have X on my linux box and so can't contribute.
             You will probably have to edit the makefile to compile under
             non-linux based x's.  It should be pretty clear what to do.
             This target is under development - expect bugs until someone
             says not to.
             There seems to be no reason why this target couldn't be
             expanded to provide other resolutions once its up and running.
Anomilies:   X doesn't preallocate colors,  so always load a palette or set
             the colors you will be using,  otherwise all you may see is
             black. The lack of input means that the utes dont work at the
             moment,  and demo10 doesn't either,  but the file I/O stuff does.
             There may be an endian-related problem in the compression code,
             but decompression works very well.
Missing:     screen_fill() and screen_clear() to satisfy jscreen.h
             Keyboard, mouse and joystick routines to satisfy jinput.h
        
