A. Processing of kon.cfg 

void ReadConfig(void)

Contents of the kon.cfg are processed the functional ReadConfig () by. 
The ReadConfig () searching the corresponding chart of entry name and initialization function, it calls the initialization function which corresponds concerning entry one one which it reads. 
Being something which arranges the structure below it does the corresponding chart. 

	static struct capability {
		const char *name;	    Entry name 
  		void (*func)(const char*);  Initialization function 
		int initialized;	    If initialization ends, 1 	
		const char *def_value;	    Default value. If NULL necessary entry 
	};

Processing function receives the character string of entry value and does initialization processing. 

When the kon.cfg is read through, if you inspect and are set whether or not default value is set concerning the entry which does not call initialization function initialization function is called at that default value. 

void DefineCap(const char *name, initializer *func, const char *def_value)

New entry is added to the initialization table. 
Because just the VGA driver needs PELS entry, using this function, it has added necessary entry. 

void DelCap(const char* name)

Initialization function of the entry name name in the corresponding chart is deleted. You use the case of reforomat. 

B. Interface of video driver 

The operation for the video driver is done through all structure vInfo. 

struct videoInfo {
	bool	has_hard_scroll;	You can use the hard scroll, whether or not 
	void	(*init)(void),		Initialization 
		(*text_mode)(void),	You change to text mode 
		(*graph_mode)(void),	You change to graphic mode 
		(*wput)(u_char *code, u_char fc, u_char bc),
				        Chinese character output 
		(*sput)(u_char *code, u_char fc, u_char bc),
				        ANK output 
		(*set_cursor_address)(struct cursorInfo *c, u_int x, u_int y),
					(The X and the Y) it sets the address of cursor C 
		(*set_address)(u_int i),
					It sets address of the writings next to the I letter eye 
		(*cursor)(bool),	Cursor on/off 
		(*clear_all)(void),	Picture clearing 
		(*screen_saver)(bool),	The screen saver (to save with the TRUE, with the FALSE return) 

		/* If you cannot use the hard scroll, below the NULL */
		(*set_start_address)(),	Indication start address setting 
		(*hard_scroll_up)(int lines),   Hard scroll rise 
		(*hard_scroll_down)(int lines); Hard scroll down 
} vInfo;

void ConfigDisplay(const char *config)

The initialization functional ConfigDisplay of video driver entry (), video driver setting function is selected with the initial line the entry value character string config as a key. 
Video driver setting function sets the value in order to use that driver in the dInfo and the vInfo. 
In addition, in case of the VGA and the VGAFM driver obtaining register value from the config character string, you remember in variable inside the driver. 

