Console Ioctl Incompatiblities in UNIX/386

Rick Richardson rick at pcrat.uucp
Mon Jul 30 23:01:32 AEST 1990


		------------------------------------------
		Console Ioctl Incompatiblities in UNIX/386
				    or
		ABI Really Stands for "Almost Batted In"
		------------------------------------------

			    Rick Richardson
			first public issue 07/30/90


The following information is provided for the convenience of
programmers contending with the loose definition of an ABI
w.r.t UNIX/386 Release 3.2 and the console display. Corrections
and additions gratefully accepted by rick at pcrat.pcr.com.

Legend:
	A	AT&T SVR3.2
	E	ESIX SVR3.2 C
	I	INTERACTIVE SVR3.2 2.0.2
	S	SCO SVR3.2.0
	V4	Generic SVR4
	?	Unknown
	NI	Not Implemented

Note:	If there needs to be multiple columns for SVR4, I think
	I'll scream, turn in my AT&T Universal Card and my
	INTERACTIVE Yo-Yo, and start wearing Blue underwear.

Note:	As you will see, it is CLEAR that SVR4 must invent yet another
	upper byte code to implement a consistent set of MODESWITCH
	modes across all UNIX variants.  Whether this is done or
	not I can only wish.  So there should be a new set of SW_*
	modes, a set of O_SW_* modes, and a set of OO_SW_* modes.


MODESWITCH							(a.k.a SW_*)
				A	E	I	S	V4
	Upper ioctl byte	'x'	'x'	'x'	'S'	?
	Lower ioctl byte	*********** See Table ************

	ADAPTER	FORMAT	COLORS	A	E	I	S	V4
	-------	------	------	--	--	--	--	--
	EGA	80x25	2	7	7	7	7	?
	EGA	80x43	2	10	10	10	112	?
	EGA	80x43	16	11	11	11	113	?
	EGA	640x350	2	17	17	17	17	?
	EGA	640x350	16	18	18	18	18	?
	EGA	80x25	2	21	21	21	21	?
	EGA	80x25	16	22	22	22	22	?

	VGA	80x25	2	27	27	25	25	?
	VGA	80x25	16	26	26	24	24	?
	VGA	640x480	2	28	28	26	26	?
	VGA	640x480	16	29	29	27	27	?
	VGA	320x200	256	30	30	28	28	?
	VGA+	800x600	16	31	NI	NI	NI	?
	VGA+	640x400	256	32	NI	NI	NI	?

	VGA	640x350	2	NI	NI	31	NI	?
	VGA	640x350	16	NI	NI	32	NI	?
	VGA	132x25	2	NI	NI	33	NI	?
	VGA	132x25	16	NI	NI	34	NI	?
	VGA	132x43	2	NI	NI	35	NI	?
	VGA	132x43	16	NI	NI	36	NI	?

	ATT	640x400	16	24	24	34	NI	?
	HGC	720x348	2	NI	NI	NI	224	?

	Note:	I checked ISC 2.2, and found no additional modes,
		not even an 800x600 super VGA mode like AT&T.  Sigh.

	Note:	A,E,I provide the 'S' ioctl under name O_MODESWITCH
		and O_SW* for modes 0-23. A and E allow mode 24 this
		way except that the meaning is different than with S.
		I allows modes 24-32 and 34 this way, but S only has
		equivalent modes 24-28.

	Opinion: A one hour teleconference between A, I, and S could
		have unified the mode numbering scheme.  And S could
		have aliased the 'x' ioctl to 'S'.
			
KDMAPDISP
				A	E	I	S	V4
	Upper ioctl byte	'K'	'K'	'K'	'K'	?
	Lower ioctl byte	2	2	2	2	?

	A	Proper operation verified
	E	Proper operation verified
	I	Proper operation verified
	S	Causes kernel panic (type E) on 3.2.0.
	V4	?

	Note:	I hope V4 doesn't choose the S behavior :-)

MAPCONS
				A	E	I	S	V4
	Upper ioctl byte	'm'	'm'	'm'	'm'	?
	Lower ioctl byte	0	0	0	0	?

	A	?
	E	?
	I	Returns new pointer each time called (grows process).
		First call maps in a portion of display only; amount
		mapped is *timing dependent*.  Output on rest of screen
		silently disappears (no core dump).
		Second call works successfully, but allocates additional
		virtual memory.
	S	Proper operation verified.
		Multiple calls return same virtual memory address (OK).
		Undocumented feature: amount of memory mapped depends upon
		current display mode; use only after final display mode
		has been set.
	V4	?

	Note:	This call seems to be obsoleted by the more general
		KDMAPDISP, except it is the only one that works on S.

VT_SETMODE
				A	E	I	S	V4
	Upper ioctl byte	'v'	'v'	'v'	'v'	?
	Lower ioctl byte	2	2	2	2	?

	A	Proper operation verified.
	E	Proper operation verified.
	I	Proper operation verified.
	S	Proper operation verified.
	V4	?

VT_GETMODE
				A	E	I	S	V4
	Upper ioctl byte	'v'	'v'	'v'	'v'	?
	Lower ioctl byte	3	3	3	3	?

	A	Proper operation verified.
	E	Proper operation verified.
	I	Proper operation verified.
	S	Proper operation verified.
	V4	?

VT_RELDISP
				A	E	I	S	V4
	Upper ioctl byte	'v'	'v'	'v'	'v'	?
	Lower ioctl byte	4	4	4	4	?

	A	Proper operation verified.
	E	Proper operation verified.
	I	Proper operation verified.
	S	Proper operation verified.
	V4	?

------------------------------------------------------------

-- 
Rick Richardson | Looking for FAX software for UNIX/386 ??? Ask About: |Mention
PC Research,Inc.| FaxiX - UNIX Facsimile System (tm)                   |FAX# for
uunet!pcrat!rick| FaxJet - HP LJ PCL to FAX (Send WP,Word,Pagemaker...)|Sample
(201) 389-8963  | JetRoff - troff postprocessor for HP LaserJet and FAX|Output



More information about the Comp.unix.i386 mailing list