DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦2f69ca6a8⟧ TextFile

    Length: 2244 (0x8c4)
    Types: TextFile
    Notes: UNIX file
    Names: »kbtab.h«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦2d53db1df⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »sys/z8001/rec/kbtab.h« 

TextFile

/* (-lgl
 * 	The information contained herein is a trade secret of Mark Williams
 * 	Company, and  is confidential information.  It is provided  under a
 * 	license agreement,  and may be  copied or disclosed  only under the
 * 	terms of  that agreement.  Any  reproduction or disclosure  of this
 * 	material without the express written authorization of Mark Williams
 * 	Company or persuant to the license agreement is unlawful.
 * 
 * 	COHERENT Version 0.7.3
 * 	Copyright (c) 1982, 1983, 1984.
 * 	An unpublished work by Mark Williams Company, Chicago.
 * 	All rights reserved.
 -lgl) */
/* 
 * Commodore 900 Keyboard driver.
 * This header file is used only by the
 * driver and defines the interface between
 * the keyboard driver and the table for
 * the particular keyboard.  This method enables
 * different keyboards to be supported by the same
 * source code.
 */

/*
 * Flags in the keyboard table.
 * KLOCK is needed only by keyboard in which the
 * keys don't look (i.e. send an up and down transition for
 * the shifting action).
 */
#define	KDUP	0x01		/* Duplicate key (used for `00') */
#define	KCAP	0x02		/* Use upper entry in CAPS LOCK mode */
#define	KP	0x04		/* This key is affected by keypad mode flag */
#define	KLOCK	0x08		/* Locking shift (done in software) */
#define	KINV	0x10		/* Disabled key */
#define	KC	0x20		/* Control key allowed */
#define	KSHIFT	0x40		/* A shift key (e.g. cntrl, ALT, SHIFT */
#define	KNL	0x80		/* Num lock - use upper entry */

/* Bits in k_control when KSHIFT is in effect */
#define	SS1	0x01		/* Shift key #1 (left) */
#define	SS2	0x02		/* Shift key #2 (right) */
#define	SNL	0x04		/* Num lock key */
#define	SCL	0x08		/* Caps lock key */
#define	SCT	0x10		/* Control key */
#define	SAL	0x20		/* ALT (or meta) key */

/* Character codes that are used from ascii */
#define	CESC	0033
#define	CDEL	0177
#define	ct(c)	((c)&~0140)

/* Extended character codes */
#include <kbchar.h>

/*
 * This structure is indexed by scan code.
 * It contains all information needed by the
 * keyboard driver state machine (see kbtab.h
 * for definitions).
 */
typedef	struct	KEY		{
	unsigned	char	k_flag;
	unsigned	char	k_lower;
	unsigned	char	k_upper;
	unsigned	char	k_control;
}	KEY;

extern	KEY	ktab[];