|
|
1.1 ! root 1: -- VTPM: encode NDQ PDU ! 2: ! 3: -- $Header: /f/osi/vt/RCS/send_text.py,v 7.0 89/11/23 22:31:44 mrose Rel $ ! 4: -- ! 5: -- ! 6: -- $Log: send_text.py,v $ ! 7: -- Revision 7.0 89/11/23 22:31:44 mrose ! 8: -- Release 6.0 ! 9: -- ! 10: ! 11: -- ! 12: -- NOTICE ! 13: -- ! 14: -- Acquisition, use, and distribution of this module and related ! 15: -- materials are subject to the restrictions of a license agreement. ! 16: -- Consult the Preface in the User's Manual for the full terms of ! 17: -- this agreement. ! 18: -- ! 19: -- ! 20: ! 21: ! 22: NDQPDU DEFINITIONS ::= ! 23: ! 24: %{ ! 25: #include <stdio.h> ! 26: #include "sector1.h" ! 27: ! 28: #undef PEPYPARM ! 29: #define PEPYPARM int * ! 30: ! 31: #undef PEPYTEST ! 32: ! 33: #ifdef PEPYTEST ! 34: ! 35: char *myname; ! 36: int l; ! 37: TEXT_UPDATE ud; ! 38: ! 39: TEXT_UPDATE *ndq_queue; ! 40: ! 41: main(argc,argv) ! 42: int argc; ! 43: char **argv; ! 44: { ! 45: ! 46: PE pe; ! 47: ! 48: myname = argv[0]; ! 49: ! 50: ud.echo_sw = 1; ! 51: ud.type_sw = 0; ! 52: ud.updates.do_list.do_name = "display"; ! 53: ud.updates.do_list.do_type = 5; ! 54: ud.updates.do_list.do_cmd.text_ud.text_ptr = "pissant"; ! 55: ud.updates.do_list.do_cmd.text_ud.text_count = 7; ! 56: ! 57: build_NDQPDU_NDQpdu(&pe,1,NULL,NULLCP,&ud); ! 58: ! 59: print_NDQPDU_NDQpdu(pe,1,NULLIP,NULLVP,&ud); ! 60: ! 61: if(unbuild_NDQPDU_NDQpdu(pe,1,NULLIP,NULLVP,NULLCP)==NOTOK) ! 62: (void)printf("Can't Unbuild\n");; ! 63: ! 64: exit(0); ! 65: } ! 66: ! 67: #endif ! 68: ! 69: %} ! 70: ! 71: BEGIN ! 72: ! 73: SECTIONS build none none ! 74: ! 75: NDQpdu ::= CHOICE <<1>> ! 76: ! 77: { ! 78: ndqpdu [6] IMPLICIT NDQcontent [[p (PEPYPARM)parm]] ! 79: } ! 80: ! 81: NDQcontent ! 82: %{ int j; %} ::= ! 83: SEQUENCE OF <<j=0; j<1; j++>> VTsdi [[p (PEPYPARM)parm]] ! 84: ! 85: VTsdi ! 86: %{ ! 87: int j,k; ! 88: TEXT_UPDATE *arg = (TEXT_UPDATE *)parm; ! 89: %} ! 90: ::= CHOICE <<arg->echo_sw + 1>> { ! 91: echoNow [0] IMPLICIT SEQUENCE OF <<k=0; k<1; k++>> ObjectUpdate ! 92: [[p (PEPYPARM)parm]], ! 93: ! 94: notEchoNow [1] IMPLICIT SEQUENCE OF <<j=0; j<1; j++>> ObjectUpdate ! 95: [[p (PEPYPARM)parm]] ! 96: } ! 97: ! 98: ObjectUpdate ! 99: %{ ! 100: int j; ! 101: TEXT_UPDATE *arg = (TEXT_UPDATE *)parm; ! 102: %} ::= ! 103: CHOICE <<arg->type_sw + 1>> { ! 104: display [0] IMPLICIT SEQUENCE { ! 105: doName PrintableString ! 106: [[s arg->updates.do_list.do_name]], ! 107: SEQUENCE OF <<j=0; j<1; j++>> ! 108: DOupdate [[p (PEPYPARM)&(arg->updates.do_list)]] ! 109: }, ! 110: control [1] IMPLICIT COupdate [[p (PEPYPARM)&(arg->updates.co_list)]] ! 111: } ! 112: ! 113: ! 114: DOupdate ! 115: %{ ! 116: DO_UPDATE *arg = (DO_UPDATE *)parm; ! 117: %} ! 118: ::= CHOICE <<arg->do_type + 1>> { ! 119: nextXarray [0] IMPLICIT NULL, ! 120: nextYarray [1] IMPLICIT NULL, ! 121: ptr-relative [2] IMPLICIT ExplicitPointer [[p (PEPYPARM)&(arg->do_cmd.ptr_rel)]], ! 122: ptr-absolute [3] IMPLICIT Pointer [[p (PEPYPARM)&(arg->do_cmd.ptr_abs)]], ! 123: text [4] IMPLICIT OCTETSTRING ! 124: [[o arg->do_cmd.text_ud.text_ptr $ arg->do_cmd.text_ud.text_count]], ! 125: ! 126: repeatText [5] IMPLICIT SEQUENCE { ! 127: finishAddress Pointer ! 128: [[p (PEPYPARM)&(arg->do_cmd.rpt_seq.fin_addr)]], ! 129: ! 130: OCTETSTRING ! 131: [[o arg->do_cmd.rpt_seq.text $ arg->do_cmd.rpt_seq.text_count]] ! 132: }, ! 133: ! 134: writeAttr [6] IMPLICIT SEQUENCE { ! 135: AttrId [[p (PEPYPARM)&(arg->do_cmd.wrt_attrib)]], ! 136: AttrExtent [[p (PEPYPARM)&(arg->do_cmd.wrt_attrib)]] ! 137: }, ! 138: ! 139: erase [7] IMPLICIT SEQUENCE { ! 140: startErase Pointer[[p (PEPYPARM)&(arg->do_cmd.erase.start_erase)]], ! 141: endErase Pointer [[p (PEPYPARM)&(arg->do_cmd.erase.end_erase)]], ! 142: eraseAttr BOOLEAN ! 143: [[b arg->do_cmd.erase.erase_attr]] ! 144: }, ! 145: ! 146: previousXarray [8] IMPLICIT NULL, ! 147: previousYarray [9] IMPLICIT NULL ! 148: } ! 149: ! 150: COupdate ! 151: %{ ! 152: CO_UPDATE *arg = (CO_UPDATE *)parm; ! 153: %} ! 154: ::= SEQUENCE { ! 155: coName PrintableString ! 156: [[s arg->co_name]], ! 157: ! 158: objectUpdate CHOICE <<arg->co_type + 1>> { ! 159: characterUpdate [0] IMPLICIT PrintableString ! 160: [[s arg->co_cmd.char_update]], ! 161: ! 162: booleanUpdate [1] IMPLICIT SEQUENCE { ! 163: values [0] IMPLICIT BITSTRING ! 164: [[x arg->co_cmd.bool_update.value $ arg->co_cmd.bool_update.val_count]], ! 165: ! 166: mask [1] IMPLICIT BITSTRING ! 167: [[x arg->co_cmd.bool_update.mask $ arg->co_cmd.bool_update.mask_count]] ! 168: }, ! 169: ! 170: symbolicUpdate [2] IMPLICIT INTEGER ! 171: [[i arg->co_cmd.sym_update]], ! 172: ! 173: integerUpdate [3] IMPLICIT INTEGER ! 174: [[i arg->co_cmd.int_update]], ! 175: ! 176: bitStringUpdate [4] IMPLICIT BITSTRING ! 177: [[x int2strb (arg->co_cmd.bit_update.bitstring, ! 178: arg->co_cmd.bit_update.bitcount) ! 179: $ arg->co_cmd.bit_update.bitcount]] ! 180: } ! 181: } ! 182: ! 183: ExplicitPointer ! 184: %{ ! 185: EX_POINTER *arg = (EX_POINTER *)parm; ! 186: %} ! 187: ::= SEQUENCE { ! 188: x [0] IMPLICIT INTEGER ! 189: [[i arg->x_value]] ! 190: OPTIONAL ! 191: <<arg->x_true>>, ! 192: ! 193: y [1] IMPLICIT INTEGER ! 194: [[i arg->y_value]] ! 195: OPTIONAL ! 196: <<arg->y_true>>, ! 197: ! 198: z [2] IMPLICIT INTEGER ! 199: [[i arg->z_value]] ! 200: OPTIONAL ! 201: <<arg->z_true>> ! 202: } ! 203: ! 204: Pointer ! 205: %{ ! 206: POINTER *arg = (POINTER *)parm; ! 207: %} ! 208: ::= CHOICE <<arg->ptr_type + 1>> { ! 209: current [0] IMPLICIT NULL, ! 210: start [1] IMPLICIT NULL, ! 211: startY [2] IMPLICIT NULL, ! 212: startX [3] IMPLICIT NULL, ! 213: end [4] IMPLICIT NULL, ! 214: endY [5] IMPLICIT NULL, ! 215: endX [6] IMPLICIT NULL, ! 216: coords [7] IMPLICIT ExplicitPointer [[p (PEPYPARM)&(arg->e_ptr)]] ! 217: } ! 218: ! 219: AttrId ! 220: %{ ! 221: ATTRIB *arg = (ATTRIB *)parm; ! 222: %} ! 223: ::= CHOICE <<arg->attr_id + 1>> { ! 224: graphCharRep [0] IMPLICIT INTEGER ! 225: [[i arg->attr_val]], ! 226: ! 227: foreColor [1] IMPLICIT INTEGER ! 228: [[i arg->attr_val]], ! 229: ! 230: backColor [2] IMPLICIT INTEGER ! 231: [[i arg->attr_val]], ! 232: ! 233: emphasis [3] IMPLICIT INTEGER ! 234: [[i arg->attr_val]], ! 235: ! 236: font [4] IMPLICIT INTEGER ! 237: [[i arg->attr_val]] ! 238: } ! 239: ! 240: AttrExtent ! 241: %{ ! 242: ATTRIB *arg = (ATTRIB *)parm; ! 243: %} ! 244: ::= CHOICE <<arg->attr_ext + 1>> { ! 245: global [0] IMPLICIT NULL, ! 246: addrExtent [1] IMPLICIT SEQUENCE { ! 247: beginning Pointer [[p (PEPYPARM)&(arg->beg_p)]], ! 248: ending Pointer [[p (PEPYPARM)&(arg->end_p)]] ! 249: }, ! 250: modalExtent [2] IMPLICIT NULL ! 251: } ! 252: ! 253: END ! 254: ! 255: %{ ! 256: ! 257: #ifdef PEPYTEST ! 258: ! 259: void advise(what,fmt,a,b,c,d,e,f,g,h,i,j) ! 260: char *what, *fmt, *a, *b, *c, *d, *e, *f, *g, *h, *i, *j; ! 261: { ! 262: ! 263: (void) fflush(stdout); ! 264: ! 265: fprintf(stderr,"%s: ",myname); ! 266: fprintf(stderr,fmt,a,b,c,d,e,f,g,h,i,j); ! 267: if(what) ! 268: (void) fputc(' ',stderr),perror(what); ! 269: else ! 270: (void) fputc('\n',stderr); ! 271: (void)fflush(stderr); ! 272: } ! 273: ! 274: testdebug(pe,words) ! 275: PE pe; ! 276: char *words; ! 277: { ! 278: ! 279: printf("%s\n",words); ! 280: } ! 281: ! 282: #endif ! 283: ! 284: %}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.