! Data Structure Definitions for RTL DTK$ facility ! File: DTKDATSTR.REQ Edit: TS1003 ! ! !**************************************************************************** !* * !* COPYRIGHT (c) 1978, 1980, 1982, 1984, 1985, 1986, 1987, 1988 BY * !* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. * !* ALL RIGHTS RESERVED. * !* * !* THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED * !* ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE * !* INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER * !* COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY * !* OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY * !* TRANSFERRED. * !* * !* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE * !* AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT * !* CORPORATION. * !* * !* DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS * !* SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. * !* * !* * !**************************************************************************** ! !++ ! FACILITY: Screen Management ! ! ABSTRACT: ! ! This file contains data structure definitions for DECtalk management ! routines. Voice Control Block are defined here. ! ! ! ! MODIFIED BY: ! ! 1-003 - Add fields for file and network support. TS 7-Mar-1988 ! 1-002 - Reformat for new status queue entries. TS 23-Jun-1986 ! 1-001 - Original. TS 6-Aug-1985 !+ ! Voice Control Block (VCB) ! ------------------------------- ! This data structure resides in HEAP storage. One of these areas ! is allocated whenever a new stream is established for the first time. ! It is deallocated when the stream is deleted. ! It contains the fundemental information associated with a DECtalk. !- MACRO VCB_A_NEXT = 0, 0, 32, 0%, ! Link for chain of vcbs VCB_A_PREV = 4, 0, 32, 0%, ! Back link for chain VCB_W_MODE_SETTINGS = 8, 0, 16, 0%, ! Mode setting for this VCB VCB_V_SQUARE = 8, 0, 1, 0%, ! =1 if square enabled VCB_V_MINUS = 8, 1, 1, 0%, ! =1 if minus enabled VCB_V_ASCII = 8, 2, 1, 0%, ! =1 if asky enabled VCB_V_EUROPE = 8, 3, 1, 0%, ! =1 if european numbers used VCB_V_SPELL = 8, 4, 1, 0%, ! =1 to spell all words VCB_B_MODE_TERMINAL = 10, 0, 8, 0%, ! Terminal mode settings VCB_V_HOST = 10, 0, 1, 0%, ! =1 if sending all chars to host VCB_V_SPEAK = 10, 1, 1, 0%, ! =1 if speaking all chars typed VCB_V_EDITED = 10, 2, 1, 0%, ! =1 if line editting enabled VCB_V_HARD = 10, 3, 1, 0%, ! =1 if local echo as hardcopy VCB_V_SETUP = 10, 4, 1, 0%, ! =1 if speaking setup VCB_V_FILTER = 10, 5, 1, 0%, ! =1 if not sending seq to term VCB_B_MODE_LOGGING = 11, 0, 8, 0%, ! Logging mode settings VCB_V_TEXT = 11, 0, 1, 0%, ! =1 if logging text VCB_V_PHONEME = 11, 1, 1, 0%, ! =1 if logging phonemes VCB_V_RAWHOST = 11, 2, 1, 0%, ! =1 if logging all chars VCB_V_INHOST = 11, 3, 1, 0%, ! =1 if logging text from host VCB_V_OUTHOST = 11, 4, 1, 0%, ! =1 if logging text to host VCB_V_ERROR = 11, 5, 1, 0%, ! =1 if logging errors VCB_V_TRACE = 11, 6, 1, 0%, ! =1 if logging seq symbolically VCB_V_DEBUG = 11, 7, 1, 0%, ! Reserved VCB_B_SPEECH_MODES = 12, 0, 8, 0%, ! Speech mode settings VCB_B_DEVTYPE = 13, 0, 8, 0%, ! Logical device type VCB_W_DEVNAM_LEN = 14, 0, 16, 0%, ! Length of the resultant device ! name string contained in VCB_T_DEVNAM. VCB_T_DEVNAM = 16, 0, 0, 0%, ! A 64-byte area. This buffer contains ! the resultant device name string. Its ! length is contained in VCB_W_DEVNAM_LEN. VCB_R_CHARBUF = 80, 0, 0, 0%, ! Start of 12-byte ! characteristics buffer VCB_L_DEVCHAR = 80, 0, 32, 0%, ! Device characteristics VCB_B_DEVCLASS = 80, 0, 8, 0%, ! Device class, e.g. DC$_TERM VCB_B_PHY_DEV_TYPE = 81, 0, 8, 0%, ! Physical device type, e.g. DT$_VT100 VCB_W_WIDTH = 82, 0, 16, 0%, ! Device width VCB_L_DEVDEPEND = 84, 0, 32, 0%, ! Primary device dependent bits. These ! are the bits of the TT$V_xyz flavor. VCB_B_ROWS = 84, 24, 8, 0%, ! Number of rows on terminal ! (overlaps previous field) VCB_L_DEVDEPEND2 = 88, 0, 32, 0%, ! Secondary device dependent bits. ! These are the bits of the TT2$V_xyz flavor. VCB_W_CHAN = 92, 0, 16, 0%, ! Channel number. 0 means ! no channel as been assigned VCB_B_STRUCT_TYPE = 94, 0, 8, 0%, ! Structure type (VCB) VCB_B_CURR_VOICE = 95, 0, 8, 0%, ! Current speaking voice VCB_L_VID = 96, 0, 32, 0%, ! Voice id VCB_R_EXIT_BLOCK = 100, 0, 0 ,0%, ! Exit block (5 longwords) VCB_L_EXIT_LINK = 100, 0, 32, 0%, ! system forward link to next block VCB_A_EXIT_ADDR = 104, 0, 32, 0%, ! address of our exit handler VCB_B_EXIT_ARGCNT = 108, 0, 8, 0%, ! argument count (=2) VCB_A_EXIT_RSN = 112, 0, 32, 0%, ! arg 1: address to store exit reason VCB_A_EXIT_VCB = 116, 0, 32, 0%, ! arg 2: our VCB address VCB_L_EXIT_REASON = 120, 0, 32, 0%, ! exit reason (address stored as first ! argument in exit block). VCB_A_OUTNAM = 124, 0, 32, 0%, ! Address of buffer containing the output ! filename as specified by the user VCB_W_OUTNAM_LEN = 128, 0, 16, 0%, ! Length of output name string VCB_W_LAST_INDEX = 130, 0, 16, 0%, ! Last index spoken VCB_W_fill1 = 132, 0, 16, 0%, ! spare word VCB_W_FLAGS = 134, 0, 16, 0%, ! Flags VCB_V_WINK = 134, 0, 1, 0%, ! Wink detection enabled VCB_V_STSREAD = 134, 1, 1, 0%, ! 1 means a status was read VCB_V_LOCKED = 134, 2, 1, 0%, ! VCB is locked VCB_V_KEYPAD_ON = 134, 3, 1, 0%, ! keypad is enabled VCB_V_OFFHOOK = 134, 4, 1, 0%, ! phone is offhook VCB_V_AUTOSTOP = 134, 5, 1, 0%, ! use auto-stop mode VCB_V_BUF_ENABLED = 134, 6, 1, 0%, ! output buffering is on VCB_L_CAP_LENGTH = 136, 0, 32, 0%, ! Length of last capability gotten VCB_A_CAP_BUFFER = 140, 0, 32, 0%, ! Address of capability buffer VCB_A_OUTPUT_BUFFER = 144, 0, 32, 0%, ! Address of buffer used to ! buffer up output sequences VCB_W_OUTPUT_BUFSIZ = 148, 0, 16, 0%, ! (Maximum) size of output buffer VCB_W_OUTPUT_BUFLEN = 150, 0, 16, 0%, ! Current length of output buffer ! i.e. number of characters in the ! buffer. 0 means the buffer is empty. VCB_Q_INPUT_DESC = 152, 0, 0, 0%, ! Buffer for holding users input VCB_W_LENGTH = 152, 0, 16, 0%, ! String length VCB_B_DTYPE = 154, 0, 8, 0%, ! String type VCB_B_CLASS = 155, 0, 8, 0%, ! String class VCB_A_POINTER = 156, 0, 32, 0%, ! String pointer VCB_Q_STATUS_QUEUE = 160, 0, 0, 0%, ! Queue for holding STATUS VCB_L_STATUS_FLINK = 160, 0, 32, 0%, ! Forward link VCB_L_STATUS_BLINK = 164, 0, 32, 0%, ! Backward link VCB_Q_HDWR_STS_QUEUE = 168, 0, 0, 0%, ! Queue for holding hardware sts VCB_L_HDWR_STS_FLINK = 168, 0, 32, 0%, ! Forward link VCB_L_HDWR_STS_BLINK = 172, 0, 32, 0%; ! Backward link LITERAL VCB_K_SIZE = 176, ! Total size of VCB in bytes. VCB_K_STRUCT_TYPE = %X'11', ! VCB structure type code VCB$K_LONGEST_SEQUENCE = 255, ! Longest escape sequence STSQUE_K_SIZE = 12, ! Size of STATUS queue entries in bytes TYPEAHEAD_K_SIZE = 8, ! Size of typeahead block in bytes VCB_K_DEF_MODE_SETTINGS = 0, ! Default mode settings ! for VCB_L_MODE_SETTINGS. DTK$S_CHAR_EXIT_BLOCK = 9*4; ! Size in bytes of exit block used by ! DTK$$SET_TERMINAL_CHARACTERISTICS FIELD TYPEAHEAD_FIELDS = SET TYPEAHEAD_COUNT = [0,0,16,0], ! Number of characters in typeahead buf TYPEAHEAD_CHAR = [0,16,8,0] ! First character in typeahead buf TES; FIELD STSQUE_FIELDS = SET STATUS_A_FLINK = [ 0,0,32,0], ! Forward link in status queue STATUS_A_BLINK = [ 4,0,32,0], ! Backward link in status queue STATUS_L_STATUS = [ 8,0,32,0] ! Status returned by DECTALK TES; MACRO $VCB_DECL = BLOCK[VCB_K_SIZE,BYTE] %, $TYPEAHEAD_DECL = BLOCK[TYPEAHEAD_K_SIZE,BYTE] FIELD(TYPEAHEAD_FIELDS) %, $STSQUE_DECL = BLOCK[STSQUE_K_SIZE,BYTE] FIELD(STSQUE_FIELDS) %;