IMD 1.17: 19/01/2010 20:39:24 sc 2 of 2   sc bond distribution Ó:PUniFLEX Backup° -® ýÿÿÿOÿÿÿ€   À àðÿ @`€ Àà! #@%`'€) +À-à/1 3@5`7€9 ;Àÿï?A C@E`G€I KÀMàOQ S@U`W€Y [À]àÿÿÿaðÿc@ÿogðÿi kðÿmàoq s@u`w€y {ðÿÿÿÿÿ� ƒ@…ðÿ‡€‰ ‹À�à� ‘ ÿO •` —€ ™  ›À �à Ÿ ¡ £@ ¥` ÿ� ©  «ðÿ­à ÿ ± ³ðÿÿo ÿ� ÿÿÿÿÏ ½à ¿ Á Ã@ Å` Ç€ É  ËÀ Íà Ï ÿÿÿÓðÿÿo ÿ� Ù  ÛÀ Ýà ßá ã@å`çðÿé ëÀíàïñ ó@õ`÷€ùðÿûÀýàÿ!Aa� ¡ Á á!Aa�¡Ááÿ/#A%a'�)¡+Á-á/ÿbrI½  rJ/ 7cursesextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿs" _tstptstp.c"  !$'*-0369<?BEHKNQTWZ]`bdfhjlnprtvxz|~€‚„†ˆŠŒŽ�’”–˜šœž ¢¤¦¨ª¬®°²´¶¸º¼¾ÀÂÄÆÈÊÌÎÐÒÔÖØÚÜÞàâäæèêìîðòôöøúüþ  ^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^~^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^?‚‚‚ ‚‚‚‚‚ ‚$‚(‚,‚0‚4‚8‚<‚@‚D‚H‚L‚P‚T‚X‚\‚`‚d‚h‚l‚p‚t‚x‚|‚€‚„‚ˆ‚Œ‚�‚”‚˜‚œ‚ ‚¤‚¨‚¬‚°‚´‚¸‚¼‚À‚ĂȂ̂ЂԂ؂܂à‚ä‚è‚ì‚ð‚ô‚ø‚ü‚‚‚‚ ‚‚‚‚‚ ‚$‚(‚,‚0‚4‚8‚<‚@‚D‚H‚L‚P‚T‚X‚\‚`‚d‚h‚l‚p‚t‚x‚|‚€‚„‚ˆ‚Œ‚�‚”‚˜‚œ‚ ‚¤‚¨‚¬‚°‚´‚¸‚¼‚À‚ĂȂ̂ЂÔ‚؂܂à‚ä‚è‚ì‚ð‚ô‚ø‚ü‚ __unctrlunctrl.c-#addch.cIaddstr.cI§box.cð clear.cü÷clrtobot.có`clrtoeol.cSHcr_put.c›Ucr_tty.cð curses.c'ø9delch.c,1þdeleteln.c-/delwin.c.1.endwin.c/_úerase.c1Y?getch.c3˜égetstr.c6�©initscr.c7*ºinsch.c:äŸinsertln.c<ƒÁlongname.c>D³move.c>÷–mvprintw.c?�mmvscanw.c@úhmvwin.cBbnewwin.cCvJoverlay.cHÀÁoverwrite.cJ�öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö  œprintw.cL\refresh.cMy2scanw.c\«[scroll.c^Kstandout.c_Qttouchwin.c`Åïtstp.ca´]unctrl.cb|ÿÿüΆyb__unctrla´_tstp`Å _touchwin_Q _wstandend_Q _wstandout^_scroll\«__sscans\«_wscanw\«_scanwMy _wrefreshMy__winL __sprintwL_wprintwL_printwJ� _overwriteHÀ_overlayCv_subwinCv_newwinBb_mvwin@ú _mvwscanw@ú_mvscanw?� _mvwprintw?� _mvprintw>÷_wmove>D _longname<ƒ _winsertln:ä_winsch7*_initscr6�_wgetstr3˜_wgetch1Y_werase/__endwin.1_delwin-/ _wdeleteln,1_wdelch'ø_PC'ø_VS'ø_VE'ø_VB'ø_US'ø_UP'ø_UE'ø_UC'ø_TI'ø_TE'ø_TA'ø_SR'ø_SO'ø_SF'ø_SE'ø_NL'ø_ND'ø_MA'ø_LL'ø_IP'ø_IM'ø_IC'ø_HO'ø_EI'ø_ED'ø_DO'ø_DM'ø_DL'ø_DC'ø_CR'ø_CM'ø_CL'ø_CE'ø_CD'ø_BT'ø_BC'ø_AL'ø__pfast'ø_normtty'ø _UPPERCASE'ø_NONL'ø_XN'ø_UL'ø_OS'ø_NC'ø_MS'ø_MI'ø_IN'ø_HZ'ø_GT'ø_EO'ø_DB'ø_DA'ø_CA'ø_BS'ø_AM'ø__tty'ø_curscr'ø_stdscr'ø __res_flg'ø_COLS'ø_LINES'ø__tty_ch'ø _Def_term'ø_ttytype'ø__endwin'ø_My_term'ø __rawmode'ø__echoitð_getcapð_zapð_settermð _gettmodeð_ospeed›_tabcol›_plod›_plodput›_fgoto› __putchar›_mvcurS _wclrtoeoló _wclrtobotü_wclearð_boxI_waddstr_waddchÿÿúu  !$'*-0369<?BEHKNQTWZ]`bdfhjlnprtvxz|~€‚„†ˆŠŒŽ�’”–˜šœž ¢¤¦¨ª¬®°²´¶¸º¼¾ÀÂÄÆÈÊÌÎÐÒÔÖØÚÜÞàâäæèêìîðòô�» ‚ž tc1.cextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿc"/* * $Header: tc1.c,v 1.1 84/05/08 13:17:56 terryl Exp $ * * $Log: tc1.c,v $ * Revision 1.1 84/05/08 13:17:56 terryl * Initial revision * */ #ifndef lint static char sccsid[] = "@(#)tc1.c 4.1 (Berkeley) 6/27/83"; #endif /* * tc1 [term] * dummy program to test termlib. * gets entry, counts it, and prints it. */ #include char buf[1024]; /*char *getenv();*/ main(argc, argv) char **argv; { char *p; int rc; #ifdef notdef if (argc < 2) p = getenv("TERM"); else p = argv[1]; rc = tgetent(buf,p); #endif rc = tgetent(buf,"pegasus"); printf("tgetent returns %d, len=%d, text=\n'%s'\n",rc,strlen(buf),buf); } P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^~^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^?‚‚‚ ‚‚‚‚‚ ‚$‚(‚,‚0‚4‚8‚<‚@‚DLº Mž*tc2.cextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿc" Õ¢ëÇ ëÇ ëºRº°óRèçëÇ ëÇ ë*º RºÎóRèÐëÇ ë Ç ëºRºîóRè¹ëÇ ë Ç ë*º RºôRè¢ëÇ ë Ç ëº!Rº(ôRè‹ëÇ ë Ç ë*º!RºJôRètëÇ ë Ç ëº!RºlôRè]ëÇ ë Ç ë*ºRºŽôRèFëÇ ë Ç ëºRº®ôRè/ëÇ ë Ç ë*º RºÌôRèë¡ Õ¢ëÇ ëÇ ëºRºÖôRèûêÇ ëÇ ë ºRºîôRèäêÇ ëÇ ë2ºRº õRèÍêÇ ëÇ ë3º RºõRè¶ê¡¨Õ¢ëÇ ëÇ ë,ºRº&õRè™êÇ ëÇ ë,ºRº*õRè‚êÇ ë5ºRº.õRèqêÇ ë7ºRº0õRè`êÇ ë9ºRº2õRèOêÇ ë;ºRº4õRè>ꡨբëÇ ëÇ ë ºRº6õRè!ê¡ Õ¢ëÇ ë(ºRºJõRè êÇ ëÇ  /* * $Header: tc2.c,v 1.1 84/05/08 13:18:23 terryl Exp $ * * $Log: tc2.c,v $ * Revision 1.1 84/05/08 13:18:23 terryl * Initial revision * */ #ifndef lint static char sccsid[] = "@(#)tc2.c 4.1 (Berkeley) 6/27/83"; #endif /* * tc2 [term] * Dummy program to test out termlib. * Commands are "tcc\n" where t is type (s for string, f for flag, * or n for number) and cc is the name of the capability. */ #include char buf[1024]; char /**getenv(),*/ *tgetstr(); main(argc, argv) char **argv; { char *p, *q; int rc; char b[3], c; char area[200]; #ifdef notdef if (argc < 2) p = getenv("TERM"); else p = argv[1]; rc = tgetent(buf,p); #endif rc = tgetent(buf,"pegasus"); for (;;) { c = getchar(); if (c < 0) exit(0); b[0] = getchar(); if (b[0] < ' ') exit(0); b[1] = getchar(); b[2] = 0; getchar(); switch(c) { case 'f': printf("%s: %d\n",b,tgetflag(b)); break; case 'n': printf("%s: %d\n",b,tgetnum(b)); break; case 's': q = area; printf("%s: %s\n",b,tgetstr(b,&q)); break; default: exit(0); } } } l‚p‚t‚x‚|‚€‚„‚ˆ‚Œ‚�‚”‚˜‚œ‚ ‚¤‚¨‚¬‚°‚´‚¸‚¼‚À‚ĂȂ̂ЂԂ؂܂à‚ä‚è‚ì‚ð‚ô‚ø‚ü‚‚‚‚ ‚‚‚‚‚ ‚$‚(‚,‚0‚4‚8‚<‚@‚Df¹ gœ #tc3.cextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿc"#ifndef lint static char sccsid[] = "@(#)tc3.c 4.1 (Berkeley) 6/27/83"; #endif /* * tc3 [term] * Dummy program to test out termlib. * Input two numbers and it prints out the tgoto string generated. */ #include char buf[1024]; char *getenv(), *tgetstr(); char *rdchar(); char *tgoto(); char *CM; char cmbuff[30]; char *x; char *UP; char *tgout; main(argc, argv) char **argv; { char *p; int rc; int row, col; if (argc < 2) p = getenv("TERM"); else p = argv[1]; rc = tgetent(buf,p); x = cmbuff; UP = tgetstr("up", &x); printf("UP = %x = ", UP); pr(UP); printf("\n"); if (UP && *UP==0) UP = 0; CM = tgetstr("cm", &x); printf("CM = "); pr(CM); printf("\n"); for (;;) { if (scanf("%d %d", &row, &col) < 2) exit(0); tgout = tgoto(CM, row, col); pr(tgout); printf("\n"); } } pr(p) register char *p; { for (; *p; p++) printf("%s", rdchar(*p)); } /* * rdchar: returns a readable representation of an ASCII char, using ^ notation. */ #include char *rdchar(c) char c; { static char ret[4]; register char *p; /* * Due to a bug in isprint, this prints spaces as ^`, but this is OK * because we want something to show up on the screen. */ ret[0] = ((c&0377) > 0177) ? '\'' : ' '; c &= 0177; ret[1] = isprint(c) ? ' ' : '^'; ret[2] = isprint(c) ? c : c^0100; ret[3] = 0; for (p=ret; *p==' '; p++) ; return (p); } ‚ü‚‚‚‚ ‚‚‚‚‚ ‚$‚(‚,‚0‚4‚8‚<‚@‚D"â¾ "ãd 1termcap.cextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿc"©u¸ÀPè}‹å©@u1©u¸ÂPèj‹å©@u3ÀöD t°ˆDO°Pÿvÿvè%‹åè]ÃöD @töD u$3ÀPèè ýèPèýP¸?Pè¹ü‹år$€L €d ï€LèÏ�$ÿÞè×ÿvÿvè3ÿ‹åèÜèÈø]ÃU‹ìè$ür@�þ‡s ÿvè6[ë13ÀPèÌüPè¢è¿üè¯P¸?Pè\ü‹år€Lè‰ÿvèÀÿ‹åè‘è}]ÃUƒì‹ì3À‰F‰F‰FˆF ŒÙ‹VŒÀŽØ¸=Í!ŽÙr%‰F3ÀPè�‹å…Àx‹D‰F ‹^¹ºÐ#¸?Í!sèIþëo�…Àtö‰F‹N‰NãÇFëÇF‹^ºÐ#V¹¸?Í!rÌP…ÀuþF ÿv è?[…Ày[ë*ŒØŽÀX‹^‰FS»Ð#^Sèõý‹å‹\^…Àx€~ u뙋^¸>Í!‹F‰D‹�f]ÃU‹ì°$ÿpèüúrè�þ‡r ŠEa$<u€Maè€]ÃU‹ìöDt*�þ‡söDN tè °è=�   /* * $Header: termcap.c,v 1.2 85/02/28 21:56:29 toddb Exp $ * * $Log: termcap.c,v $ * Revision 1.2 85/02/28 21:56:29 toddb * Added in the magnolia window stuff. Also added a fix to avoid walking off * then end of a line that has no trailing ':'. * * Revision 1.1 84/05/08 13:20:07 terryl * Initial revision * */ #ifndef lint static char sccsid[] = "@(#)termcap.c 4.1 (Berkeley) 6/27/83"; #endif #define BUFSIZ 1024 #define MAXHOP 32 /* max number of tc= indirections */ #define E_TERMCAP "/etc/termcap" #include #ifdef MAGNOLIA #include #include #include #include #endif /* * termcap - routines for dealing with the terminal capability data base * * BUG: Should use a "last" pointer in tbuf, so that searching * for capabilities alphabetically would not be a n**2/2 * process when large numbers of capabilities are given. * Note: If we add a last pointer now we will screw up the * tc capability. We really should compile termcap. * * Essentially all the work here is scanning and decoding escapes * in string capabilities. We don't use stdio because the editor * doesn't, and because living w/o it is not hard. */ static char *tbuf; static int hopcount; /* detect infinite loops in termcap, init 0 */ char *tskip(); char *tgetstr(); char *tdecode(); char *getenv(); /* * Get an entry for terminal name in buffer bp, * from the termcap file. Parse is very rudimentary; * we just notice escaped newlines.  */ tgetent(bp, name) char *bp, *name; { register char *cp; register int c; register int i = 0, cnt = 0; char ibuf[BUFSIZ]; char *cp2; int tf; tbuf = bp; tf = 0; #ifndef V6 cp = getenv("TERMCAP"); /* * TERMCAP can have one of two things in it. It can be the * name of a file to use instead of /etc/termcap. In this * case it better start with a "/". Or it can be an entry to * use so we don't have to read the file. In this case it * has to already have the newlines crunched out. */ if (cp && *cp) { if (*cp!='/') { cp2 = getenv("TERM"); if (cp2==(char *) 0 || strcmp(name,cp2)==0) { strcpy(bp,cp); return(tnchktc()); } else { tf = open(E_TERMCAP, 0); } } else tf = open(cp, 0); } if (tf==0) tf = open(E_TERMCAP, 0); #else tf = open(E_TERMCAP, 0); #endif if (tf < 0) return (-1); for (;;) { cp = bp; for (;;) { if (i == cnt) { cnt = read(tf, ibuf, BUFSIZ); if (cnt <= 0) { close(tf); return (0); } i = 0; } c = ibuf[i++]; if (c == '\n') { if (cp > bp && cp[-1] == '\\'){ cp--; continue; } break; } if (cp >= bp+BUFSIZ) { write(2,"Termcap entry too long\n", 23); break; } else *cp++ = c; } *cp = 0; /* * The real work for the match. */ if (tnamatch(name)) { close(tf); return(tnchktc()); } } } /* * tnchktc: check the last entry, see if it's tc=xxx. If so, * recursively find xxx and append that entry (minus the names) * to take the place of the tc=xxx entry. This allows termcap * entries to say "like an HP2621 but doesn't turn on the labels". * Note that this works because of the left to right scan. */ tnchktc() { register char *p, *q; char tcname[16]; /* name of similar terminal */ char tcbuf[BUFSIZ]; char *holdtbuf = tbuf; int l; p = tbuf + strlen(tbuf) - 2; /* before the last colon */ while (*--p != ':') if (p MAXHOP) { write(2, "Infinite tc= loop\n", 18); return (0); } if (tgetent(tcbuf, tcname) != 1) return(0); for (q=tcbuf; *q != ':'; q++) ; l = p - holdtbuf + strlen(q); if (l > BUFSIZ) { write(2, "Termcap entry too long\n", 23); q[BUFSIZ - (p-tbuf)] = 0; } strcpy(p, q+1); tbuf = holdtbuf; return(1); } /* * Tnamatch deals with name matching. The first field of the æ ‹T €dBÏŠDBîèËDTöDN t,°¸ÿpŠT32öÑâƒÂúæ ëìëŠàìû†Ä@‰DTu€L:€€Lð¼ÿpöD @u€d Ïèè`êŠ\ €ã€ûu€d ûèúó¸Pè$ô[öDat€L ë© u°A DCPèó[© €uèÂñëöèÎÃûW¿¬èK_Ãè1œ€d÷‹DA%° DHè'�r€|át‹=° úî€|áuºðT-îùÃUƒì‹ì°ÿpÆF€dïè´ûŠDa$ < u€LI@‹DH%?ÏöDN t ƒ|Tu €öD:€t€L#D9…ÀtK€L©<tèb%Ãø©u©€t%ÿ%ü÷÷t€dïëÑèêüëÌ©@tÇèõöDatè—õ�dHÿ¿%ÿ¿ë±öDtöDtþNtégÿ€d:ùœèÞ��f]ÃöDtm©tF€d:þöDuöDat4Š\<€ãB€ûBtg€daïëöD<€ucŠ\� €døöÃtKƒ|TtEP°èTXë<©t€LN€d9û©u2Pèáí€   termcap * entry is a sequence of names separated by |'s, so we compare * against each such name. The normal : terminator after the last * name (before the first field) stops us. */ tnamatch(np) char *np; { register char *Np, *Bp; Bp = tbuf; if (*Bp == '#') return(0); for (;;) { for (Np = np; *Np && *Bp == *Np; Bp++, Np++) continue; if (*Np == 0 && (*Bp == '|' || *Bp == ':' || *Bp == 0)) return (1); while (*Bp && *Bp != ':' && *Bp != '|') Bp++; if (*Bp == 0 || *Bp == ':') return (0); Bp++; } } /* * Skip to the next field. Notice that this is very dumb, not * knowing about \: escapes or any such. If necessary, :'s can be put * into the termcap file in octal. */ static char * tskip(bp) register char *bp; { while (*bp && *bp != ':') bp++; if (*bp == ':') bp++; return (bp); } /* * Return the (numeric) option id. * Numeric options look like * li#80 * i.e. the option string is separated from the numeric value by * a # character. If the option is not found we return -1. * Note that we handle octal numbers beginning with 0. */ tgetnum(id) char *id; { register int i, base; register char *bp = tbuf; for (;;) { bp = tskip(bp); if (*bp == 0) return (-1); if (*bp++ != id[0] || *bp == 0 || *bp++ != id[1]) continue; if (*bp == '@') return(-1); if (*bp != '#') continue; bp++; #ifdef magnolia if (!isdigit(*bp)) return (windsize(id)); #endif base = 10; if (*bp == '0') base = 8; i = 0; while (isdigit(*bp)) i *= base, i += *bp++ - '0'; return (i); } } #ifdef magnolia /* #define old 1 /* leave in until window device driver gets modded */ #ifdef old extern char *ttyname(); /* temporary til driver gets modded */ #else old #include #endif old /* * If this is a Magnolia, then constructs like ":li=#:" are legal and don't * necessarily return zero. Instead this routine looks at which id was * specified and figures out from the size of the Magnolia window what * value to return. At least for now, only li and co make any sense. */ windsize(id) char *id; { register int which = 0, i = 0, retval = 0, ttyn; struct WINDOW *wind; #ifndef old struct sgwindb wb; #endif old char *tty; if (strcmp("li", id) == 0) which = 1; else if (strcmp("co", id) != 0) return(0); #ifdef old tty = ttyname(1); if (strncmp(tty, "/dev/wind", 9) != 0 && strncmp(tty, "/dev/ttyw", 9) != 0) { write(2, "Not Magnolia window\n", 20); return(0); } ttyn = atoi(tty + 9); wind = (struct WINDOW *)openobj(WINDNAME + ttyn); #else old if (ioctl(2, WIOCGETP, &wb) < 0) { write(2, "Not Magnolia window\n", 20); return(0); } wind = (struct WINDOW *)openobj(WINDNAME + wb.mdev); #endif old if (wind == (struct WINDOW *)0) { write(2, "openobj failed\n", 20); return(0); } for (i=0; wind->linew < 1 || wind->lineh < 1 || wind->linew > 1000 || wind->lineh > 1000 || i < 100; i++) ; if (which == 0) { /* want number of columns */ retval = wind->linew; } else { /* must want number of lines */ retval = wind->lineh; } closeobj(wind); return(retval); } #endif /* * Handle a flag option. * Flag options are given "naked", i.e. followed by a : or the end * of the buffer. Return 1 if we find the option, or 0 if it is * not given. */ tgetflag(id) char *id; { register char *bp = tbuf; for (;;) { bp = tskip(bp); if (!*bp) return (0); if (*bp++ == id[0] && *bp != 0 && *bp++ == id[1]) { if (!*bp || *bp == ':') return (1); else if (*bp == '@')  return(0); } } } /* * Get a string valued option. * These are given as * cl=^Z * Much decoding is done on the strings, and the strings are * placed in area, which is a ref parameter which is updated. * No checking on area overflow. */ char * tgetstr(id, area) char *id, **area; { register char *bp = tbuf; for (;;) { bp = tskip(bp); if (!*bp) return (0); if (*bp++ != id[0] || *bp == 0 || *bp++ != id[1]) continue; if (*bp == '@') return(0); if (*bp != '=') continue; b^H…À£^y¡b^ƒ>Zt ÿ6^è¥(‹åè¬ éSÿ¡^@;b£^uÇ^ƒ>Zt ÿ6^è|(‹åèƒ é*ÿ¸’9P見å趃>~t ÿ6~èí‹åǨéÿƒ>Zt Ǥüÿéõþ¡~=pIuÇ–¸pIP轋åéÛþƒ>Zt ǤûÿéËþ¡^‹6\‹\0;Øu¸ÿÿë¡^‹6\‰D0Vèå ‹åÿ6„è… ‹åÿ”é˜þƒ>~t Ǥúÿéˆþè]èéþƒ>”t(¡~=”IuÇ–¸”IPè@‹å¡¤…ÀyéWþÿ–éPþƒ>~t Ǥúÿé@þÇFé8þƒ>~u ÿvèä‹åé&þ‹6~ŠD0äV‰Fèó‹å…Àyé þ‹Fë¡\ P¸Pè?‹åéõýÇFéíý=tó=tÛéàýƒ>~u ÿv茋åéÎýÿvÿ6~èM ‹å‹6~Š0ä‹ÞƒÃ S3ÛSÿ6ŠPÿ‹åé£ý BÃûÂ⿟¾u»PÑ'Éÿ¾.;„×u  p++; return (tdecode(bp, area)); } } /* * Tdecode does the grung work to decode the * string capability escapes. */ static char * tdecode(str, area) register char *str; char **area; { register char *cp; register int c; register char *dp; int i; cp = *area; while ((c = *str++) && c != ':') { switch (c) { case '^': c = *str++ & 037; break; case '\\': dp = "E\033^^\\\\::n\nr\rt\tb\bf\f"; c = *str++; nextc: if (*dp++ == c) { c = *dp++; break; } dp++; if (*dp) goto nextc; if (isdigit(c)) { c -= '0', i = 2; do c <<= 3, c |= *str++ - '0'; while (--i && isdigit(*str)); } break; } *cp++ = c; } *cp++ = 0; str = *area; *area = cp; return (str); } gister char *bp; { while (*bp && *bp != ':') bp++; if (*bp == ':') bp++; return (bp); } /* * Return the (numeric) option id. * Numeric options look like * li#80 * i.e. the option string is separated from the numeric value by * a # character. If the option is not found w +¿ ,˜termcap.rextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿr"жïn NVûäHî àûè|z#ît-Bûø.¼%N¹*@ gxgr /gZ.¼-N¹-@ûüt´®ûüg.®ûü/. N¹X�J€f.�/.N¹X�a`t.‚/<2N¹X�-@ûø`t.‚HUN¹X�-@ûøJ®ûøft.‚/<?N¹X�-@ûøJ®ûølpÿ`²*nº†f..¼Hnü/.ûøN¹P�*J…n.®ûøN¹p`~|$R†Aîü0(H‚HÂ. ‡ f»îo -\ÿÿfS�`*`,$.‚»Âmt.‚/<Lt/N¹P�`Ç`ÿvB.® a|J€g.®ûøN¹a``ÿRLî àûèN^NuNVûÜHî0ûà-yûì.¹N¹Ð¹€ÿÿÿþ*@`$»ùlt.‚/<dt/N¹P�p`% :fÔR� tf -cgp`â$ V‚.‚HnÿðN¹X�Iîÿð`RŒg :fôBR¹ ¹ ot.‚/<wt/N¹P�p`ŽAîÿð.ˆHnûðaý¨X� €gp`pIîûð`RŒ :fø.ŒN¹$ ”®ûìЂ-@ûè ®ûèo*t.‚/<Št/N¹P�$ ”¹D‚‚B4($ R‚.‚HUN¹X�#îûìpLî0ûàN^NuNVÿôHî0ÿø(y #fp`T*n`NqRŒR�g´gðJf |g :gJfp`&`RŒg :g |fîJg :fp`RŒ`¬Lî0ÿøN^NuNVÿøHî ÿü*n`R�g :fô :fR� Lî ÿüN^NuNVÿðHî Àÿô*y.�a¼*@Jfpÿ`v n´f Jg´(g`X @fpÿ`R #fHR�| 0f|~`.†/N¹X�.H‚H‚0Þ‚H‚ |0 H‚HÂfÌ ``ÿ~Lî ÀÿôN^NuNVÿøHî ÿü*y.�aÿ*@fp`0 n´f$Jg ´(fg :fp` @fp``ÀLî ÿüN^NuNVÿøHî ÿü*y.�aþÄ*@fp`8 n´f Jg´(g` @fp` =fR�.® HUaX�``¸Lî ÿüN^NuNVÿèHî8€ÿì*n n (P`¨ `ŒH‚H‚.`Ž&|¢H‚HÂ.H‚H¾‚f H‚HÂ.`jR‹fæ |0xH‚HÂg:‡0t-Bÿüç‡H‚H‚0Ž‚S®ÿügH‚ |0 H‚HÂfÒ` €^gÿn €\gÿvÇH‚HÂ.g ‡:fÿHB n *P n Œ Lî8€ÿìN^Nu@(#)termcap.c 4.1 (Berkeley) 6/27/83TERMCAPTERM/etc/termcap/etc/termcapTermcap entry too long Bad termcap entry Infinite tc= loop Termcap entry too long E^^\\::n r t bf Á�$€_getenv<�B€_getenv\€_strcmpn€_strcpy‚�ˆ€_openœ€_open²�¸€_openæ€_readø€_closeF�P€_writer€_close”ÁœÁ¢€_strlen¨Á¸ÁÄ�΀_write€_strcpy Á*Á6�@€_writez€_strlenš�¤€_write®ÁÈ€_strcpyÒÁîÁ–Áè€lmul€ __chcodes4ÁŽÁ�>€ __chcodesx€ __chcodes _tgetentˆ _tnchktcâ _tnamatchŠ _tgetnum( _tgetflag‚ _tgetstrtermcap.ctty = ttyname(1); if (strncmp(tty, "/dev/wind", 9) != 0 && strncmp(tty, "/dev/ttyw", 9) != 0) { write(2, "Not Magnolia window\n", 20); return(0); } ttyn = atoi(tty + 9); wind = (struct WINDOW *)D 0ä‹^;Ø}‹6’Š„K0ä‹vŠ0ÿ;ØtÿFÿFëÔ‹F3Û£’‰�…Àt‹v ŠD 0ä%‰Œt‹FHë‹F£Ž‹FÿF‹v Š\ 0ÿ;Ã}‹vÿF‹>’Š…Kˆë܃Ä]ÃUƒìr;&wévé‹ì¡Œ…À‰F~3‹F  ‹ð‹Žó‚<t&‹FÿF‹N ƒÁ ‹ñð‹F  ‹øûŠˆëÇ�‹v ŠD 0ä‹^;Ã~ÿF‹Æ ‹ðóÆ.ëࡌ£ŽƒÄ]ÃU‹ìǨ¸´?P¸Pè” ‹å¸TAP3ÀPèˆ ‹åÿv3ÀPè} ‹å¸NP3ÀP¸P¸Pÿ‹åÿ]ÃUƒìr;&wé¯è‹ì¸NP¸P¸*P¸Pÿ ‹åƒ~uǦë?‹vŠD0äÑà‹ðÿ´Š53ÀP¸*P¸Pÿ‹å‹vŠD0äÑà‹ðÿ´ª53ÀPèô ‹åǦƒÄ]ÃUƒì r;&wé6è‹ì3À£¤‰F ‹vƒ|tŠD 0ä%€uVè*‹å¡¤…ÀyƒÄ ]Ã>Z  À ž2 tgoto.cextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿc"/* * $Header: tgoto.c,v 1.1 84/05/08 13:20:35 terryl Exp $ * * $Log: tgoto.c,v $ * Revision 1.1 84/05/08 13:20:35 terryl * Initial revision * */ #ifndef lint static char sccsid[] = "@(#)tgoto.c 4.1 (Berkeley) 6/27/83"; #endif /* Copyright (c) 1979 Regents of the University of California */ #define CTRL(c) ('c' & 037) #define MAXRETURNSIZE 64 extern char *UP; extern char *BC; /* * Routine to perform cursor addressing. * CM is a string containing printf type escapes to allow * cursor addressing. We start out ready to print the destination * line, and switch each time we print row or column. * The following escapes are defined for substituting row/column: * * %d as in printf * %2 like %2d * %3 like %3d * %. gives %c hacking special case characters * %+x like %c but adding x first * * The codes below affect the state but don't use up a value. * * %>xy if value > x add y * %r reverses row/column * %i increments row/column (for one origin indexing) * %% gives % * %B BCD (2 decimal digits encoded in one byte) * %D Delta Data (backwards bcd) * * all other characters are ``self-inserting''. */ char * tgoto(CM, destcol, destline) char *CM; int destcol, destline; { static char result[MAXRETURNSIZE]; static char added[10]; char *cp = CM; register char *dp = result; register int c; int oncol = 0; register int which = destline; if (cp == 0) { toohard: /* * ``We don't do that under BOZO's big top'' */ return ("OOPS"); } added[0] = 0; while (c = *cp++) { if (c != '%') { *dp++ = c; continue; } switch (c = *cp++) { #ifdef CM_N case 'n': destcol ^= 0140; destline ^= 0140; goto setwhich; #endif case 'd': if (which < 10) goto one; if (which < 100) goto two; /* fall into... */ case '3': *dp++ = (which / 100) | '0'; which %= 100; /* fall into... */ case '2': two: *dp++ = which / 10 | '0'; one: *dp++ = which % 10 | '0'; swap: oncol = 1 - oncol; setwhich: which = oncol ? destcol : destline; continue; #ifdef CM_GT case '>': if (which > *cp++) which += *cp++; else cp++; continue; #endif case '+': which += *cp++; /* fall into... */ case '.': casedot: /* * This code is worth scratching your head at for a * while. The idea is that various weird things can * happen to nulls, EOT's, tabs, and newlines by the * tty driver, arpanet, and so on, so we don't send * them if we can help it. * * Tab is taken out to get Ann Arbors to work, otherwise * when they go to column 9 we increment which is wrong * because bcd isn't continuous. We should take out * the rest too, or run the thing through more than * once until it doesn't make any of these, but that * would make termlib (and hence pdp-11 ex) bigger, * and also somewhat slower. This requires all * programs which use termlib to stty tabs so they * don't get expanded. They should do this anyway * because some terminals use ^I for other things, * like nondestructive space. */ if (which == 0 || which == CTRL(d) || /* which == '\t' || */ which == '\n') { if (oncol || UP) /* Assumption: backspace works */ /* * Loop needed because newline happens * to be the successor of tab. */ do { strcat(added, oncol ? (BC ? BC : "\b") : UP); which++; } while (which == '\n'); } *dp++ = which; goto swap; case 'r': oncol = 1; goto setwhich; case 'i': destcol++; destline++; which++; continue; case S»S£¤è"‹å‹F…ÀxPèš‹å¸ÍP3ÀPP¸Pÿ‹åÿ6&ÿ6$3ÀP¸Pÿ‹å¡¤ƒÄ]ÃUƒì r;&wé«×‹ìÇFÿvÿvÿvèe‹å…Ày ¸ÿÿ»ÿÿƒÄ ]ÃÿvèK‹å…ÀéžÇF‹F;�}ã‹F‹vðŠ0ÿ‹vŠŒf0í;ËuMÿF‹vðŠ0ä…Àu‹F+F‹^^“ƒÄ ]ËF@;�‰Fu¸ÿvèæ‹å…À~ÇF른ÿÿ»ÿÿƒÄ ]ËF…Àt3Û…ÀyKF^ÇFéuÿƒFƒVÿFégÿ¸ÿÿ»ÿÿƒÄ ]ÃUƒìr;&wéÀÖ‹ìÇF‹F‹b;Ø~X»z÷ëÒ » SPèš‹å‹FÑàÑà‹ð‹F»z÷ëÒSPÿ´¨ ÿ´¦ ÿ6Žèñ‹å‹F»z÷ëÒ 3ÛSPè\‹åÿFë�ÇF‹F‹d;Ø~X»:÷ëº » SPè2‹å‹FÑàÑà‹ð‹F»:÷ëºSPÿ´¼ ÿ´º ÿ6Ž艋å‹F»:÷  '%': *dp++ = c; continue; #ifdef CM_B case 'B': which = (which/10 << 4) + which%10; continue; #endif #ifdef CM_D case 'D': which = which - 2 * (which%16); continue; #endif default: goto toohard; } } strcpy(dp, added); return (result); } a) char *id, **area; { register char *bp = tbuf; for (;;) { bp = tskip(bp); if (!*bp) return (0); if (*bp++ != id[0] || *bp == 0 || *bp++ != id[1]) continue; if (*bp == '@') return(0); if (*bp != '=') continue; bôÁõ˜/tgoto.rextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿr"ž*JÖNVÿèHî Àÿì-nÿü*|t-Bÿø,.J®ÿüf <#`fB9@`2 ‡%gÇ`ð nÿü-HÿüH‚HÂ. `– ®` ®``l † mD †dm&td.‚/N¹X�€0Àtd.‚/N¹X�,t .‚/N¹X�€0Àt .‚/N¹X�€0Àt”®ÿø-Bÿø$.ÿøg . ` .,`ÿH nÿü-HÿüH‚H¼‚o-HÿüH‚HÂÜ‚`R®ÿü`ÿ nÿü-HÿüH‚HÂÜ‚J†g †g † fL$.ÿøfJ¹g>$.ÿøgJ¹g y` |(` y.ˆ/<@N¹X�R† † gÂÆ`ÿDt-Bÿø`ÿDR® R®R†`þ’Ç`þŒt .‚/N¹X�".‚/N¹X�é€Ò€,`þft.‚/N¹X�ЀD€Ð†,`þL`þ8 €ngþd €dgþl €3gþr €2gþŽ €>gþÐ €+gþî €.gþô €rgÿP €igÿP €%gÿT €BgÿP €Dgÿl`‚ nÿü-HÿüH‚HÂ.fý¾.¼@HUN¹X� <Lî ÀÿìN^Nu@(#)tgoto.c 4.1 (Berkeley) 6/27/83OOPSÁ(�2Á†€ldivœ€lmod¬€ldiv€lmodD€_UPR€_BCZ€_BCb�j€_UPrÁx€_strcat´€lmod€ldivÚ€lmod€Áˆ€_strcpy�Á _tgototgoto.c (2 decimalH I� tputs.cextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿc"/* * $Header: tputs.c,v 1.1 84/05/08 13:20:50 terryl Exp $ * * $Log: tputs.c,v $ * Revision 1.1 84/05/08 13:20:50 terryl * Initial revision * */ #ifndef lint static char sccsid[] = "@(#)tputs.c 4.1 (Berkeley) 6/27/83"; #endif /* Copyright (c) 1979 Regents of the University of California */ #include #ifndef PEGASUS #include /* * The following array gives the number of tens of milliseconds per * character for each speed as returned by gtty. Thus since 300 * baud returns a 7, there are 33.3 milliseconds per char at 300 baud. */ static short tmspc10[] = { 0, 2000, 1333, 909, 743, 666, 500, 333, 166, 83, 55, 41, 20, 10, 5 }; short ospeed; char PC; #endif PEGASUS /* * Put the character string cp out, with padding. * The number of affected lines is affcnt, and the routine * used to output one character is outc. */ tputs(cp, affcnt, outc) register char *cp; int affcnt; int (*outc)(); { register int i = 0; register int mspc10; if (cp == 0) return; /* * Convert the number representing the delay. */ if (isdigit(*cp)) { do i = i * 10 + *cp++ - '0'; while (isdigit(*cp)); } i *= 10; if (*cp == '.') { cp++; if (isdigit(*cp)) i += *cp - '0'; /* * Only one digit to the right of the decimal point. */ while (isdigit(*cp)) cp++; } /* * If the delay is followed by a `*', then * multiply by the affected lines count. */ if (*cp == '*') cp++, i *= affcnt; /* * The guts of the string. */ while (*cp) (*outc)(*cp++); /* * ‹^;Øé¡ÿF‹vðŠˆF0ä= uŠF0ä= tÆF ÿN‹F ‰F@‹vŠ^ˆœšJ=€‰F ˆ^|² 0ä=~0ÿv ¸šJP‹vÿtè~ ‹å;F ‰Ft3ÀƒÄ]Ã>–Kt&¸ÿÿƒÄ]Ã�FPÿv ÿvè‹å‹F;F t3ÀƒÄ]ÃÇF éRÿƒ~ tX 0ä=~0ÿv ¸šJP‹vÿtè ‹å;F ‰Ft3ÀƒÄ]Ã>–Kt&¸ÿÿƒÄ]Ã�FPÿv ÿvè·‹å‹F;F t3ÀƒÄ]ËFƒÄ]ËFƒÄ]ÃǘK¸ÿÿƒÄ]ÃU;ò:ú:;=‹ðƒþsÑæ.ÿ¤(=ëØUƒì‹ìÿvè?÷‹å…À‰Fu ¸ÿÿ»ÿÿƒÄ]ËvŠD0ä…Àt 3À3ÛƒÄ]à0ä=~5ÿvÿvÿv‹vÿtèp‹å‰F‰^ƒ>–Kué¼Ç˜K¸ÿÿ»ÿÿƒÄ]ËF‰F‹Fé…‹F‹^‰F‰^ë,‹v‹D!F‹\#^‰F‰^ë‹v‹DF‹\^‰F‰^‹  If no delay needed, or output speed is * not comprehensible, then don't try to delay. */ #ifndef PEGASUS if (i == 0) return; if (ospeed <= 0 || ospeed >= (sizeof tmspc10 / sizeof tmspc10[0])) #endif PEGASUS return; #ifndef PEGASUS /* * Round up by a half a character frame, * and then do the delay. * Too bad there are no user program accessible programmed delays. * Transmitting pad characters slows many * terminals down and also loads the system. */ mspc10 = tmspc10[ospeed]; i += mspc10 / 2; for (i /= mspc10; i > 0; i--) (*outc)(PC); #endif PEGASUS } e cp++; continue; #endif case '+': which += *cp++; /* fall into... */ case '.': casedot: /* * This code is worth scratching your head at for a * while. The idea is that various weird things can * happen to nulls, EOT's, tabs, and newlines by the * tty driver, arpanet, and so on, so we don't send * them if we can help it. * * Tab is taken out to get Ann Arbors to work, otherwise * w´Ãµ˜tputs.rextralibs Æ"Û-® Ê€þ é×Ê”þ Êœ-®-® ȰºZdÊØþ Ȱ Êðþ C®ÿÿÿr"ê$PNVÿðHî Àÿô*n~ f`ÊH‚ |0 H‚HÂg0H‚H å€Ð‡Ð€Ô€‚0.H‚ |0 H‚HÂfÐ å€Ð‡Ð€. .fDR�H‚ |0 H‚HÂgH‚H‚0Þ‚`R�H‚ |0 H‚HÂfæ *fR�.® /N¹X�.`H‚HÂ.‚ nN�fîLî ÀÿôN^Nu@(#)tputs.c 4.1 (Berkeley) 6/27/83€ __chcodesN€ __chcodesx€ __chcodes¢€ __chcodesÄ€lmul _tputstputs.cacter for each speed as returned by gtty. Thus since 300 * baud returns aþ #z3Ë$þ ÍHeèÿÿÿµhšÚ ÿÿÿµµµ U0'µÃµ˜extralibs/tputs.rextralibstputs.rtputs.rÍì‹å‰F@u3ÀƒÄ]øP3ÀP3ÛSÿvè!õ‹å‚~ t¸€ë¸‰Fé¡‚~ t¸ë3À‹^ ØSÿvèì‹å‰F@u3ÀƒÄ]Â~ t¸€ë¸‰Fëf‚~ t¸ë¸‹^ Ø�Ë�˸¤PSÿvè7ì‹å‰F@u3ÀƒÄ]Â~ t¸€ë¸‰Fë3ÀƒÄ]Ã=wt¬=ruéiÿ=auéÿëâ‹F»*÷ë‹ð‚¼ÛMt�N‹F ‹v‰Dë‹vÇD‹F‹vˆD ‹D‰3À‰D‰D‹FˆD‹ÆƒÄ]ÃUƒì‹ì‹vŠD0ä%t V¸ÿÿPèÔ‹å‹vŠD0ä% uƒ| t ÿt ÿtè4 ‹å3À‹v‰D‰D ÆDŠD 0äPèjõ‹åƒÄ]ÃUƒì‹ìÿvè‹åƒ~u3ÀƒÄ]ËvŠD0ä%ûÿˆD0ä ˆD‹F‰‰D¡ÔM‰D 3ÀƒÄ]ÃUƒì6‹ì3ÀÇFÿÿÇF ‹v:Š0ÿƒû-‰F ‰F‰F‰Fu ¸ÿF:‰F ‹v:Š0ä‰F@‹ðŠ„žK0ä%tJƒ~0uÇF0‹v:ÿF:Š0ä%‰F‹v:Š0ä@‹øŠ…žK0ä%t‹F» ÷ëÿF:Š0ÿ�ãÉFëÑ‹v:Š0ä=.u7ÿF:ÇF‹v:Š0ä@‹øŠ…žK0ä%t‹F» ÷ëÿF:Š0ÿ�ãÉFëÑ‹v:Š0ä=lu ¸ÿF:‰FÇF‹v:Š0äé°ƒ~t‹v>‹ƒ‹ð‹\‹ ‰N‰^ ë‹v>‹ƒ‹ð‹3É…ÛyI‰N ‰^‹F …ÀyB÷V ÷^ƒ^ ÿÇFë1ƒ~t‹v>‹ƒ‹ð‹\‹ ‰N‰^ ë‹v>‹ƒ‹ð‹3À‰F ‰^ÇF ‹FH‹ð‰F‹F ‹^3ɺ ‰vèƒÂ0ƒÑ‹vˆR"‹F ‹^3ɺ èè‰F ‰^‹F Fu¾ƒ~u ‹FH‹ðÆB"-‰F�F"‹^ظ +F‰F ‰^éÖƒ~t‹v>‹ƒ‹ð‹\‹ ‰N‰^ ë‹v>‹ƒ‹ð‹3À‰F ‰^ÇF‹FH‹ð‹^ ‹N3Û�á‹ùŠ�ºMˆZ"¹‹^ ‹VÑûÑÚâú‰^ �ãÿ‰F‰V‰^ ‹F Fu¾�F"‹^ظ+F‰F ‰^éGƒ~t‹v>‹ƒ‹ð‹\‹ ‰N‰^ ë‹v>‹ƒ‹ð‹3À‰F ‰^ÇF ‹FH‹ð‹^ ‹N3Û�áƒÁ0ƒÓˆJ"¹‹^ ‹VÑûÑÚâú‰^ �ãÿ‰F‰V‰^ ‹F Fu¾�F"‹^ظ +F‰F ‰^鸃~ÿuÇFÈ‹v>‹ƒ‹ð‹…Û‰^u¸ÊM‰FÇF ‹F ‹^;Øé‚‹vðŠ0ä…ÀtuÿF ëá�F"ÇF ‹v>‹ƒ‹‰FˆN"ëVÇFëOÇFëHÇFëA3ÀƒÄ6]ÃfAMe:Mg3McMsÑLoBLx³KuKdÃJ¾ .;„OMu.ÿ¤QMƒîyï뿃~u鲋F…Àt;F }‹F ‰F‹F )FÇFƒ~ t?‹F H…À‰F x‹FÿF‹v<ð‹~ÿFŠˆëÞ‹FH…À‰FxQ‹FÿF‹v<ð‹Fˆëã‹FH…À‰Fx‹FÿF‹v<ð‹Fˆëã‹F H…À‰F x‹FÿF‹v<ð‹~ÿFŠˆëÞ‹F‹v@‰‹F:@ƒÄ6]Ã~ÿuÇFƒ~|¸ë‹F‰F @ƒ~t3Ûë3ÛC�N"Q�NQ�NQSP‹v>ÿ4è’ ‹å‹v>ƒ�^"‹N…ɉF ‰N‰^y÷^ƒ~uƒ~ t ƒ~|3Àë3À@‰Fƒ~ tÿN3À‰Fƒ~tÿFƒ~t!‹F@‹^Ë^…Û‰Fx^ƒ~t1ÿFë,‹FF‹F…Ày÷Øë‹F=c‰F~ÿF�~ç~ÿFƒ~ u)‹F;F~!‹F)F‹FH…À‰Fx‹v<ÿF<‹FˆÿFëåƒ~t ‹v<ÿF<Æ-ƒ~uéâ‹F…Àyd‹v<‹Æ‰F@Æ0‹ð‰F<@Æ.‰F<‹FH…À‰Fyé�‹F@…À‰Fy ‹v<ÿF<Æ0ëÜ‹F H…À‰F x‹v<ÿF<‹~ÿFŠˆë¿‹v<ÿF<Æ0ë´‹FÿN…Àx(‹F H…À‰F x‹v<ÿF<‹~ÿFŠˆë  Ù‹v<ÿF<Æ0ë΃~t ‹v<ÿF<Æ.‹FH…À‰Fyé‹F H…À‰F x‹v<ÿF<‹~ÿFŠˆëÕ‹v<ÿF<Æ0ëÊ‹F H…À‰F x‹v<ÿF<‹~ÿFŠˆë ‹v<ÿF<Æ0‹v<ÿF<Æ.‹FH…À‰Fx(‹F H…À‰F x‹v<ÿF<‹~ÿFŠˆëØ‹v<ÿF<Æ0ëÍ‹v<‹Æ‰F@ÆE‹^…Û‰FÎMu ‹^ £ÌM‰ÎMë%¡ÎMÑàÑà‹ÌMØ‹F ;É^u¡ÎM3ÛF ^£ÎM‹F ƒÄ]Ã3ÀƒÄ]ÃUƒì‹ì‹F3ÛSPÿv ‰F‰^è‹åƒÄ]ÃUƒì‹ì‹F‹^3É3Ò赸ÿÿƒÄ]ËF‹^ƒÃ‹NƒÑƒëƒÙ‰F ‹Á3ɺèp‰^ÑãÑã‹N Ë‹ÒM3Ò^оÐM‹‰F‰N‰V‰ÒM‰v‹F…Àuéð‹ð‹\ÑãÑãØ‹N;ȉ^s‹v ‰‹F‰D‹Æ‹v‰3ÀƒÄ]ËF;Fu)‹ð‹‹~ ‰‹D3Û‹NÈ‹VÓ‰M‹Ç‹v‰3ÀƒÄ]ËF ;Fs¡ÒM3Û+F^£ÒM¸ÿÿƒÄ]ËF ;FuU‹v‹…Àt‹^;Øv¡ÒM3Û+F^£ÒM¸ÿÿƒÄ]Ëv‹D3ÛF^‰D‹…Àt‹^;Øu ‹GD‹‰3ÀƒÄ]ËF‹^‹ð‹ ‰F‰N‰^ éÿ‹F ‹v‰3Û‹ð‰‹F‰D‹ÃƒÄ]ÃUƒì‹ì ÖM„Àt0äÆÖM‰FƒÄ]øPèB‹åƒÄ]ÃUƒì‹ì ÖM„Àt0äÆÖM‰FƒÄ]øPè‹åƒÄ]ÃUƒì‹ìƒ~ u ¸ P¸Pèú‹åÿv¸Pèî‹å‹FƒÄ]ÃUƒì‹ì ÖM0ä…Àt¸ÿÿƒÄ]ËF¢ÖMƒÄ]ÃUƒì‹ì¸ P赋å…Àu3Ûë3ÛC‹ÃƒÄ]ÃUƒì‹ì‹v ÿF Š0ä…À‰Ft)‹´LK…Û‰´Lx‹6°Lÿ°Lˆ0äëÔ¸°LPÿvèâ‹åëÆ¡´LH…À£´Lx‹6°Lÿ°L° ˆ0äë ¸°LP¸ P踋åƒÄ]ÃUƒì‹ìÇF‹v ÿF Š0ä…À‰Ft(‹v‹\K‰\…Ûx ‹ÿˆ0äë ÿvÿvèt‹å‰FëÇ‹FƒÄ]ÃUƒì‹ì‹v ‚<t(‹~‚=t ‹ÆÿF ÿFŠ0ÿ‹ðŠ 0í+ˉNt׋ÁƒÄ]Ëv ‚<t¸ÿÿƒÄ]Ëv‚<t¸ƒÄ]Ã3ÀƒÄ]ÃUƒì‹ìƒ~t5‹v ‚<t-‹~‚=t%‹ÆÿF ÿFŠ0ÿ‹ðŠ 0í+ˉNt‹ÁƒÄ]ÃÿNëŃ~u ‹v ‚<t¸ÿÿƒÄ]Ëv‚<t¸ƒÄ]Ã3ÀƒÄ]ÃP3ÁXPx+Áu3À;ÚtwHë ÿ…ÀXÃU‹ìŠfŠF‹VÍ!´]ÃUƒì‹ì‹vŠD0ä%t3ÀƒÄ]Ëvƒ| tŠD0ä%u ÿt ÿtè³û‹å‹F ‹v‰DŠD0ä ˆD3À‰D ‰D‰DƒÄ]ÃUƒì‹ì‹v ŠD0ä%0t¸ÿÿƒÄ]Ëv ƒ| uŠD0ä%uVèËå…Àt¸ÿÿƒÄ]Ëv ŠD0ä%tÇFë)‹v ŠD0ä%t¸ÿÿƒÄ]Ëv ŠD0ä ˆD‹D ‰F‹v ŠD 0äÿvÿtPèß‹å…À‰Fy‹v ŠD0ä ˆDƒ~u‹v ŠD0ä ˆD‹F…À~ ‹v ‰D‹D‰‹v ŠD0ä%0t¸ÿÿƒÄ]Ëv ‹DH‰D…Àx ‹ÿ‹øŠ0ÿë ÿv èÿþ‹å‹Ø‹ÃƒÄ]ÃUƒì ‹ì‹F‹vŠ\0ÿ�ã0‰Ft¸ÿÿƒÄ ]Ëvƒ| ujŠD0ä%u`ƒ~ÿu3ÀƒÄ ]Ãÿvè¡‹å…Àt¸ÿÿƒÄ ]ËvŠD0ä ˆD‹D ‰DH‰D…Àx‹ÿ‹^‹øˆ0ÿë ÿvÿvèvÿ‹å‹Ø‹ÃƒÄ ]ËvŠD0ä%t8ƒ~ÿu3ÀƒÄ ]ËF‹vŠ\ 0ÿÇF ÿv �NQSˆFèÒà‹åÇFÿÿ‰F郋vŠD0ä%t¸ÿÿƒÄ ]ËvŠD0ä ˆDƒ~ÿt2ƒ|~,‹DH‰D…Àx‹ÿ‹^‹øˆ0ÿë ÿvÿvèÔþ‹å‹ØÇFÿÿ‹v‹+D‰F tŠD 0äÿv ÿtPèNà‹å‰FëÇFƒ~ÿu‹vŠD0ä ˆDë‹F;F t‹vŠD0ä ˆD‹v‹D ‰D‹D‰‹F=ÿÿt ‹\K‰\…Ûx ‹ÿˆ0äë ÿvÿvèCþ‹å‹vŠD0ä%0t¸ÿÿƒÄ ]Ã~ÿu3ÀƒÄ ]ËFƒÄ ]ÃUƒì‹ì‹vƒ| tŠD0ä%u3ÀƒÄ]Ãÿ6ÔMè*÷‹å‹v‰‰D…ÀuǘK ¸ÿÿƒÄ]áÔM‹v‰D ŠD0ä%óÿˆD3À‰D‰DƒÄ]ÃUƒì‹ì‰N Êu3À3Û隉F Ãu3É3Ò錋N‹F‹ð…öy÷Ð÷Ûÿÿy 3À3É3Òëo�3ñ‰v3ö…Éy÷Ñ÷ÚƒÙÿu…Òx¿ ÑãÑÐÑÖ;òr+òCOuð3É‹Öë!¿ÑãÑÐÑÖ;ñr u;Âr+ÂñCOuè‹Î‹Ð3À÷F€t÷Ð÷Ûÿÿ÷F€t÷Ñ÷ÚƒÙÿƒÄ]ÃUƒì(‹ìÇFÇF ‹v,‹D…Ày�N€%ÿu‹ø |u |u ÷F€uèÓÿNëñ‹F …Àtx¾vèèðÿN ë×è}ÿF ëÏ‹F…ÀxA=ÿ7±Óà‰F‹F‹^‹N‹V ŠÖŠñŠÍŠëŠßŠøŠÄ¿ÑèÑÛÑÙÑÚOuõ% Fë ¸ðë3À3Û3É3Ò‹v4÷F€t €‰D‰\‰L‰¸‹v2‰‹FƒÄ(]þ@3À‹^‹N‹V‹~ ÑçÑÒÑÑÑÓÑÐ= r- GNuê‰^‰N‰V‰~ ËF Ñà‰F ‹FÑЉF‹FÑЉF‹FÑЉFËØ3ÉÑàÑÑÑàÑÑÃÑÑàÑÑÃ3É¿‹C‰KèÜÿ‹[ÃщCOOyèËF‹^‹N‹V ÑèÑÛÑÙÑÚNuõ‰F‰^‰N‰V Ã~,t ‹F,ÇF,ÃÿV0‰FÿN.u�NÃ÷Ft¸ÿÿÃÿÿLattice C 2.100QInvalid stack size $Invalid I/O redirection $Insufficient memory $*** STACK OVERFLOW *** $  GPIB.COMÀ³ÃÄ¿ÂĿ¿¿¿³ ÃÄÄÄÀÄÄÄÚÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ  ¨­¼² SELECT (use right/left arrow keys): ENTER (directly from the keyboard): 0123456789ABCDEF . ............................... ??????? AAAAAQAAEOOOOOOOOMMAIIIIIIAAAAAAAAAAAAAAAAAAAAAAAiiiiiiaaaaaaaaaaaaaaaaaaaaAAA Invalid character for option ring Invalid character for current field Invalid data in current field Cannot rename a board    Cannot (dis)connect a board Unfinished task in progress INTERNAL ERROR: Unrecognized code No handler file present Unable to open file Unable to locate data structures File I/O error: READ/WRITE/SEEK Wrong revision level Too many boards in file Too many devices in file GHn”ºà,RxžÄê6IBM PCIBM PC-XT/portableIBM PC-ATIBM PCjrAT&T PCCompaq PCTI ProfessionalIBM PC compatiblep -2>2š23b3ˆ3µ34Bad data on input line. Changes saved. To activate changes, reboot your system with the handler file %s in the root directory of your boot drive. Handler file unchanged. *** Press any key to continue ***Unrecognized machine -- IBM PC compatible assumed. Press any key to continue...*** Press any key to return *** NONENONE NOTYPEFile: %s Scanning file for data...Instruments$Boar$Devireading. CAPACITY: %d Board(s) %d Device(s)ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÚÄÄÄÄÄÄÄÄÄ¿ÔÍÍÍÍÍÍÍÍ;ßßßßßßßßßßßßßßßßßßßThis address is used to compute theunique I/O addresses which identifythe board or device on the GPIB.* Adding 20H to the primary address forms the Listen Address (LA).* Adding 40H to the primary address forms the Talk Address (TA).EXAMPLE: Selecting a primary addressof 10H yields the following:10H + 20H = 30H (Listen address)10H + 40H = 50H (Talk address)Valid listen addresses -- 20H to 3EHValid talk addresses ---- 40H to 5EH+¾+â+ +' +K +l +�+¯+Ô-ñ-+3+XÿSelecting a secondary address causesextended addressing to be used bythe handler when addressing theboard or device.EXTENDED ADDRESSING means that theboard or device must receive bothits primary address and secondaryaddress in sequence before becomingaddressed for I/O.Selecting "NONE" will disable theuse of extended addressing by thehandler.Valid secondary addresses range from60H to 7EH.+Ò+÷++9 +J +m +� +±+Õ+è+ +,+5+ZÿThis setting is an approximation ofthe amount of time that may elapsebefore completion of an I/O functionor occurrence of a specified event.The timeouts are as follows:TNONE disabled T100ms 100 msecT10us 10 usec T300ms 300 msecT30us 30 usec T1s 1 secT100us 100 usec T3s 3 secT300us 300 usec T10s 10 secT1ms 1 msec T30s 30 secT3ms 3 msec T100s 100 secT10ms 10 msec T300s 300 secT30ms 30 msec T1000s 1000 sec+À+ä++, +P +m +m +’+·+Û+ÿ+#+G+k+�+m < <³ <³<³<³<³<³<³<³<³<ÁÿSome devices are programmed to havean I/O operation terminate followingthe transmission of a selected byte,such as the ASCII linefeed (0AH) orsemicolon (';') character.This byte, called the EOS byte, maybe any 8-bit value from 00H to FFH.NOTE: The handler software does NOTautomatically append the EOS byte tothe end of data strings (the user'sprogram must explicitly do this).The designation of the EOS byte hereis only for the purpose of informingthe handler of its value so that I/Otermination is handled correctly.+\+€+¥+Ê +î + +- +Q +u +š +¾ +à +!+*!+O!ÿTerminate a Read on EOS- a yesresponse will cause the interfaceboard to terminate a data transferwhenever it receives the EOS byte.Set EOI with EOS on Writeboard to send the GPIB END messagewhenever it sends the EOS byte.Type of compare on EOS- A 7-bitcompare will ignore the value ofthe most significant bit. An 8-bitcompare uses the entire byte. Thisfield is only meaningful if a yesresponse is entered for at leastone of the two fields above.+*-Ò!Eê!-ò!-"-7" +* -Z" Gê! -ò! -t" -—"+*-·"DÎ"-Ø"-ù"-#-?#-a#-‚#ÿA GPIB interface may signal the endof a data transfer by sending theGPIB uniline message END. This isaccomplished by asserting the EOIline along with the transmissionof the last byte.A yes response in this field willcause the interface board to set EOIwith the last byte of every datawrite to the GPIB.+$$+H$+j$+Œ$ +®$ +Ï$ +á$ +%+(%+I%ÿThis software package may be usedwith either of two boards:* Nat  ional Instruments GPIB-PC2A* National Instruments GPIB-PC2You must specify the correct boardmodel here so that the handler willuse the appropriate hardwareaddressing scheme.+ž%+À%+Û% +ü% +& +?&+c&+€&ÿThe System Controller (SC) in a GPIBsystem is the device which maintainsultimate control over the bus.There should be at most one devicedesignated SC in any GPIB system.In general, the GPIB-PC card shouldbe designated the System Controllerby responding yes to this field. Insome situations, however, such as ina network of computers linked by theGPIB, an interface board should bedesignated NOT System Controller. Insuch cases you should respond no tothis field.+Ê&+ï&+' +3' +V' +x' +œ'+À'+ä'+ (+.(+Q(+v(+š(ÿThe LLO message is used by the GPIBController-in-Charge to "lock out"devices on the bus from returning tolocal control while being programmedremotely via the GPIB.Any devices accessed with high-levelfunction calls will automatically beplaced in the Remote State (REMS) bythe handler software. A yes responseto this field will further cause thedevices to be placed in the Remotewith Lockout State (RWLS).+)+$)+G)+l) +‘) +¨) +Í) +ò)+*+<*+a*+„*ÿThe base I/O address for board GPIB0is initially configured to match theas-shipped address setting on theinterface board itself. If you havechanged the address setting on theboard from the original factorydefault, enter the new address herethat corresponds to the new setting.The interface board may be assignedany one of the legal I/O channel orport addresses for the GPIB-PC modelselected (PC2A or PC2).+î*+++8++Z+ +~+ +¡+ +Á+ +å++ ,+.,+R,+w,ÿThe interface board may use any DMAchannel provided that channel is notbeing used by another device.Selecting "NONE" will disable DMAcapability and cause programmed I/Oto be used for all data transfers.+Þ,+-+'- +E- +g- +‹-ÿThis field must be set to the samevalue as the interrupt level jumpersetting on the GPIB-PC board itself.Any valid interrupt level may beselected, provided that level doesnot conflict with other equipment.In most cases, this jumper settingreflects the actual interrupt levelselected. The jumper setting on theTI Professional, however, has thefollowing correspondence.Jumper Setting --- 2 3 4 5 6 7: : : : : :Interrupt Level -- 0 1 2 4 5 6+Ø-+û-+. +D. +e. +ˆ. +«.+Î.+ò.+/+8/+R/>v/+‡/ÿThe use of three-state drivers onthe GPIB-PC allows you the option ofselecting a high-speed data settlingtime for faster GPIB transfers.Some devices, however, are unable touse the high-speed timing. If yoursystem uses such devices, you shouldprobably select the low-speed timingby responding no to this field.+0+(0+M0+r0 +’0 +·0 +Ú0 +ÿ0+$1ÿUnder normal operation, the handlersoftware will automatically conducta serial poll of the devices on theGPIB whenever the Service Requestline (SRQ) is asserted.If this feature is incompatible withsome devices in your system, you maydisable Auto Serial Polling with ayes response to this field.Normally, this feature will notconflict with devices that conformto the IEEE-488 specification.+€1+¤1+È1+ì1 +2 +&2 +K2 +p2+“2+¯2+Ï2+ò2ÿ Primary GPIB Address Secondary GPIB Address Timeout Setting  EOS (End-of-String) Byte EOS (End-of-String) Modes EOI (End-or-Identify) Signal GPIB-PC Model System Controller Local Lockout (LLO) Message Base I/O Address Setting DMA Channel Interrupt Jumper Setting High-speed vs. Low-speed Timing Automatic Serial Polling u3›3Á3ç3 4 4 434Y44¥4Ë4ñ45=5c5~f´r! # # #\%”&¦( *�,®-¬/D13HELP: Device MapTERMS AND EXPLANATIONS:* An interface board is associated witheach Device Map. This board, named atthe top of the screen, is called the"currently active board".* One interface board is associatedwith each device you use. This boardis called the "access board" for thatdevice. By default, 16 devices areconnected to access board GPIB0.* The field preceding each device namein the map shows the access boardnumber for that device (e.g. "0" forboard GPIB0). This field is empty ifthe device has been discon  nected.FUNCTIONS:Renamethe selected device. Type in the new name in response to theprompt at the bottom of the screen.(Dis)connectthe selected device toor from the currently active board.Editor examine the characteristicsof the selected board or device.Exitthe program. If you made anychanges, you will be asked if theyshould be saved to the disk.NOTE: The TI Professional uses up/down arrow keys for PgUp/PgDn. Ê5Û5ó56A6 f6 €6 ¤6 É6ï6737Z7|7¡7Æ7+è7+ó72ú7+8+88 +\8 8i8 +€8 +¤8 0©8+È8+é80î8+ 9+.9+K9+p9ÿHELP: CharacteristicsEXPLANATIONS:* There are two types of input fields:(1) Option Rings - indicated by ' '.Use the right/left arrow keysto select new values.(2) Direct Input - indicated by thepresence of a cursor. Use thekeyboard to enter new values.* The range of valid input values for a selected field appears to the rightof that field. (H = Hexadecimal) * You are not allowed to exit a fieldwhile it contains invalid data.* Use the up/down cursor arrow keysto select a different field.* Use the PgUp/PgDn keys to displaya different board or device.Explain Field.Display an expandedexplanation of the current field.Reset Value.Reset the current fieldto the value it contained when itwas last selected.Return to Map.Return to the DeviceMap for the currently active board.^:t:‚:©:# Î: ì: ; &;D;b;Š;°;Ö;ü;+<-@<+]<-�< +è7 +ž< :­<+Á<+ã<8ð<+=+*=+==:L=+a=ÿNational Instruments GPIB-PC Software Configuration Utility, Rev C.0.Copyright (c) 1984 National Instruments, Inc. All rights reserved.ò@>†>òòò(Ë(º(ʳª¬ ­ ­ !­ #­ %®'µ(» ¼ º ¸µ´³¶¹¼ 1» /¹-¶+³,²/²ÿNational Instrumentsòò˺Ê9Ë9º9Êž?;`3ÿDevice Map for Board * Use cursor control keys to select a device or board.* Use function keys below to select desired action.* Use PgUp/PgDn to display maps for other boards.F1: Help F4: Rename F5: (Dis)connect F8: Edit F9: Exitö? ’ ݳ ž @C@w@òò(Ë(º(Ê©@ÿ(Ñ(³(³(³(³(³(³ (³ (³ (³ (³ (³(³(³(³(³(³(³(³(³(³B(ÁÿBoard CharacteristicsBoard:F1: Help F2: Explain Field F6: Reset Value F9: Return to MapB(ÅäAúABÿDevice CharacteristicsDevice:Access:B(ÅvB�B•BBÿ~`ÿÿÿTNONET10usT30usT100usT300usT1msT3msT10msT30msT100msT300msT1sT3sT10sT30sT100sT300sT1000søBþBC CCCC"C(C.C5C' 1 to 3; NONE disables 2 to 7 yes or no PC2A or PC2 7 or 8 bit (ASCII or Binary) Type in new name, then press RETURN Type 'y' or 'n', then press RETURN øø ábábá¸ÀÈÐáá"áBáb 000H to 3F8H (increments of 8) 02E1H to 62E1H (increments of 2000H) 1, 2, or 7  Primary GPIB Address Secondary GPIB Address Timeout setting EOS byte Terminate Read on EOS Set EOI with EOS on Write Type of compare on EOS Set EOI w/last byte of Write GPIB-PC Model Board is System Controller Local Lockout on all devices Disable Auto Serial Polling High-speed timing Interrupt jumper setting Base I/O Address DMA channel öEÈB¸Cˆ FÐBÞCˆ$FØBbCD„5FàB*D ?F�CœD€ VF�CœD€ qF¢CèD€ ‰F�CœD€§F²CÂD€ ¶F�CœD€ ÒF�CœD€ðF�CœD€ G�CœD€ GðBvD„ :GZEzE LGèBPD„ÿÿöEÈB¸Cˆ FÐBÞCˆ$FØBbCD„5FàB*D ?F�CœD€ VF�CœD€ qF¢CèD€ ‰F�CœD€ÿÿDevice name: bIE@Save changes? „I4Econ:CON:prn:PRN:lst:LST  :lpt:LPT:lpt1:LPT1:aux:AUX:com:COM:com1:COM1:rdr:RDR:pun:PUN:nul:NUL:null:NULL:rwaCan't open stdin file Can't open stdout file ((((( H„„„„„„„„„„������‚‚‚‚‚‚ ((((( H„„„„„„„„„„������‚‚‚‚‚‚ 0123456789ABCDEFMZ&D ÿÿC€Q + ú¸¹ŽØ¸CŽÐ¼€û´0Í! Àu¸£Œ\€>|'&¡,£n ÀtüÄ>l3À¹ÿò®u ®uùG�çþÿ‰>p¾€&Š 2íã$F&Š€>}<t<=tA< t< uIÞ3Éëu�¿ë�¿:2äItF&Š< t< t ˆGþÄ€ü tëåÆëͺ‡é;3ÛIt.F&Š< t&< t",0|(< $Ûr ‹ÓÛrÛrÚr2äØr ëÏ Ût‰ B늺réø¡p‹ BÑëÛ�ûw»‰ BØr'&‹ŒÐ+Ð÷Âðu ÑâÑâÑâÑâë�ºðÿr;Ðwº¡é¯ú‰‹ãŒØŽÐŒûQƒÃ±ÓëŒÐã`£d&‹+ØvϱÓËÃ%�ãðÿ‰f£hè{' Àu´Z3ÀP‹ìÄ>l‹>pƒï|&ÿ5ëöŽ\‰&lŒn‹Ú‹ÊƒÃ�ãþÿ+ã‹ü6ÆcGã6Æ G&Š6ˆFGâö6Ɖ&‹ÄPè¬'€>|¸LÍ!‹åË´ Í!€>|¸LÍ!3ÀPË¡-‹àº·´ Í!€>|¸LÍ!Ë€>| ‹ì‹F´LÍ!¡-‹àËU‹ì¸@Pèz‹å3ÀPè7‹å]ÃUƒìr;&wé¦ÿ‹ìƒ~u¡0» ÷ëX@@P¸VPèÛ‹åƒÄ]ÃUƒìtr;&wésÿ‹ì‹Fx£Rÿ6Rè¯ÿ‹å¸êPÿ6Rè~ ‹å…ÀtJ�F£æèF‰F…Àt"�FPèÑ‹å…Àt‹FÿN…Àt �FPèµ ‹åëëƒ>Tt­ÿ6Tèd‹åÇT뜃Ät]ÃUƒìr;&wéóþ‹ì�FP¸1TPè4‹å…ÀuÇFë¸VP¸*TPè‹å…Àu¸\Pè« ‹åƒÄ]ËFƒÄ]ÃUƒìr;&wé£þ‹ì¡è�^S‰FèÁ‹å…Àt‹F;F u‹F‹v‰¡æƒÄ]ËF£è3ÀƒÄ]ÃUƒìr;&wéZþ‹ì3À�^S‰F‰Fèv‹å‹FëX¸ÎPÿ6æèÜ‹å…À‰FyZ¸iPè ‹åƒÄ]øƒÄ]ÃÇP3ÀƒÄ]ÃÇP3ÀƒÄ]ÃTþ+Tø-Të!TãATÁ¾.;„u.ÿ¤ƒîyï릱‹FÓà‹ðŠ„ÑˆF0äéŠF0ä�^ S»1TSPèJ‹å…Àté ¸�P舋åƒÄ]Ã�F P¸1TPèÚþ‹å…ÀtéèÇF éà�F Pèñ‹å…ÀtéÐ3ÀƒÄ]ÃÇFéÁŠF0ä�^S»1TSPèç‹å…Àu¸�Pè(‹åƒÄ]ËF‰F 铊F0ä»VS»ATSP蹋å…À‰F uy¸�Pè÷‹åƒÄ]áæŠ^0ÿ�N Q¹"TQS‰F è‹‹å…Àu¸�PèÌ‹åƒÄ]ËF ‰Fë8SýHÕDÕFÕA§BŸMˆnlND¾ .;„0u.ÿ¤2ƒîyï¸VP¸TPèÞý‹å…Àu¸”Pèm‹åƒÄ]ø Pÿv�FP辋布Ä]ÃUƒìr;&wéUü‹ìÿv ÿv è˜ý‹å…À‰Ft鳃>Rt¸¥Pè‚‹å3ÀƒÄ]ËFëc¸ºPèm‹åël¸ÊPèb‹åëa¸ÞPèW‹åëV¸ðPèL‹åëK¸ZPè¨‹å¸ Pè8‹åë7¸'Pè-‹åë,S!H DF÷AìNá¾.;„,u.ÿ¤.ƒîyï¸êPÿ6RèÇ‹å ê0ä…Àté?ÿ3ÀƒÄ]ËFƒÄ]ÃUƒìr;&wétû‹ì¸VP¸TPèµü‹å…Àt‹v ǸƒÄ]Ãÿv ¸1TPè–ü‹å…Àt¸ƒÄ]øVP¸(TPè}ü‹åÇF¸VP¸ATPèkü‹å…Àt'¸jPÿ6æèy ‹å‰F…Àt FëÖ¸7Pèá‹åƒÄ]øVP¸)TPè3ü‹å‹F‹v ‰¸ƒÄ]ÃUƒìr;&wéÄú‹ìÇF ÇF è#¡æ‹6èŠ0ÿ‰FéF‹vÇ"Tèd…À‰F xéI¸HPès‹åƒÄ]ÃÇF ¡è@‹ðŠ0ÿ�Ë ƒûx£èu ÇF ÿè‹6èŠ0äP芋å…Àt8‹6èÿèŠ0äÿv P謋å…À‰Fx‹F ÷n F‰F ëĸ^Pè‹åƒÄ]ËvÇ1TéË6èŠ0  äPè6‹å…ÀtS‹vÇAT‹6èŠ0äPè‹å…Àt2‹6èŠ0ä=A‰F|=Z Š0ä ˆ‹vÿF‹>èÿ芈뼋vÆë^‹6èŠ0ä T‹~‰‚<tIÿèëC9¥8¥7¥6¥5¥4¥3¥2¥1¥0�"_¾(.;œyu.ÿ¤{ƒîyïé=ÿ‹F ‹v‰D¸ƒÄ]ÃUƒì r;&wé'ù‹ìÿè¡æ‰F‹6èŠ0ä="‰Fuéa…Àu¸ÿÿƒÄ ]ÃÇF‹6èŠ0ä=\té#‹Æ@‹ðŠ0ÿ£èéý¸ÿÿƒÄ ]ÃÇF ÿèéÇF ÿèéÇFÿèé÷ÇF ÿèéëÇFÿèƒ~}0‹6èŠ0ä»SPèô‹å…À‰Fx±‹^Óã؉^ëÿFÿèëʃ~t飋6èŠDÿ0ä‰Fé”ÇFƒ~}0‹6èŠ0ä»SPè¡‹å…À‰Fx±‹^Óã؉^ëÿFÿèëʃ~uS‹6èÿèŠ0ä‰FëBXc xc tW bK r? n3 + ¾.;œ u.ÿ¤ ƒîyïé{ÿ‹6èÿèŠ0ä‰F‹vÿF‹FˆéŒþ‹vÆÿè‹Æ+æƒÄ ]ÃUƒìr;&wéƒ÷‹ì‹6èŠ0ä»lSPè‹å…ÀxÿèëäƒÄ]ÃUƒìr;&wéQ÷‹ìÇF‹v ‚<tÿF Š0ä;F u‹FƒÄ]ÃÿFë߸ÿÿƒÄ]ÃUƒìr;&wé÷‹ì¸oPÿvè¦ÿ‹å…Ày3Ûë3ÛC‹ÃƒÄ]ÃUƒìr;&wéãö‹ì‹F= ~ =~3À@ë3ÀƒÄ]ÃUƒìr;&wé¹ö‹ìƒ~.tÿvè¹ÿ‹å…Àt ÿvè~ÿ‹å…Àt3Àë3À@ƒÄ]ÃUƒìr;&wé~ö‹ìÇF‹F‹^;Ø~.‹ðŠœx0ÿŠN 0í;Ù‰Nt Š„x0ä ;Èu‹FƒÄ]ÃÿFëȸÿÿƒÄ]ÃU‹ìèw]ÃUƒìr;&wé ö‹ìƒ>Rtƒ>Pt ÿv¸‰PèX ‹åƒÄ]ÃUƒìr;&wéðõ‹ìÇF‹F=}*» ÷ëX@@Pÿv èù‹å…Àt‹F£0¸ƒÄ]ÃÿFëθ�Pèš‹åƒÄ]ÃUƒìr;&wéšõ‹ì¡0» ÷ë‹ðÇ„XÿÿƒÄ]ÃUƒì r;&wétõ‹ì¡R‹03ÉQÿv‰F‰^èŽ ‹å…À‰Fy¸«Pè6‹åƒÄ ]áPÿv‰Fè·õ‹å‹F‹^‹Nÿv£P‰R‰0èp ‹åƒÄ ]ÃUƒìr;&wéõ‹ì‹6èÆ¡TÇTÿv»‰S‰Fè:‹å‹F£T3ÀƒÄ]ÃUƒìr;&wéÊô‹ì‹F‰F£èÿv èb ‹å= ‰Ft!@u3ÀƒÄ]ËFc‹^;ÃvÙÿF‹FˆëÏ‹vƃ~ t ÿv¸‰P薋布Ä]ÃUƒìr;&wé_ô‹ì�v¸ PVÿv‰v èœ ‹å‹v ƒ|tPÿtè1 ‹å‹v ‰D…Àu¸. Pèÿ‹åƒÄ]ñ‹v ‹Óà‹ðŠ„Ñ0ä=Su‹v ÿtÿtÿtèL ‹å‹v ‹D‰D±‹v ‹Óà‹ðŠ„Ò0äHu^¸¼‰F¸( ‹^;Øw+ƒ?u ‹v ‹D‰‹‰G¡0¹ ÷é‹ð‹„X‰GëƒFë˸( ‹^;Ør‹v ÿtè£ ‹å¸B Pèpþ‹åƒÄ]á0» ÷ë‹ð‹„X…Ày@±‹v ‹Óà‹ðŠ„Ò0ä=t*±‹v ‹Óà‹ð¸‚Pÿ´Îèj‹å…Àu¸j Pèþ‹åƒÄ]ñ‹v ‹Óà‹ðŠœÒ0ÿƒû‰Fu‹„Ô‹v ÿtÿt‰FÿV‹å‰Fë1±‹v ‹Óà‹ð‹„Ô‰F¡0» ÷ë‹ð‹~ ÿuÿuÿ´XÿV‹å‰F±‹v ‹Óà‹ð¸‚Pÿ´ÎèÜ‹å…Àtr‹F…Ày¸† Pè‰ý‹åƒÄ]ÃÇF‹F=}» ÷ë‹ð‹„X…ÀxÿFëäƒ~u¸• PèTý‹åƒÄ]ËF» ÷ë‹ð‹^‰œXX@@P‹v ÿtèi‹å‹F£0±‹v ‹Óà‹ðŠœÐ0ÿŠ„Ò0ä‰^ 鉋F%ué�¸¼‰F¸( ‹^;Øré}ƒ?t1¡0¹ ÷é‹ð‹G;„Xu‹‹v ‰DDZ‹GÓà‹ðŠ„Ð0ä‰F ƒFë·ÇF ‹F%€t ‹vÇë+‹v ÇDë!‹F%€t�f ÷ÿë=tì=tÇ=uéeÿƒ~ t‹v ÿtÿv ÿvè‹å‹v ƒ|tÿtèq ‹åƒÄ]ÃUƒìr;&wéGñ‹ìÿv ¸² PèY‹åÇF€‹F…Àt2‹^ #Øt&¸jPÿvè‹å…À‰FxÑàÑà‹ðÿ´j¸½ Pè ‹åÑnëǸÁ Pè‹å‹F %€tX¸ŒPÿ6*AèÉ‹å…À‰Fyÿ6*A¸Ä Pèé‹åë‹FÑàÑà‹ðÿ´Œ¸Î PèÑ‹åƒ>*Au ÿ6,A¸Ø P轋å¸Þ Pè´‹åë‹F %t ÿ6*A¸à Pè�‹å‹F %€tƒ>*At)‹F %t ÿ6,A¸ô Pèy‹å‹F %t ÿ6,AÿvèS‹å‹F %t‹vŠ0ä%ÿP¸ÿ PèI‹åƒÄ]ÃUƒìr;&wéð‹ì‹F…Àx =£Në ¸ Pèåú‹åƒÄ]ÃUƒìr;&wéåï‹ì¡Néý¸+ Pèô‹åƒÄ]ø: Pèæ‹åÇF‹F‹^;Ãv!‹v óŠ0ä%ÿPèä‹åP¸C P軋åÿFëÕ¸Þ Pè­‹åéÂÇF‹F‹^;Øré°ÇF‹F=s5‹^Ø‹F;É^v‹v óŠ0ä%ÿP¸F Pèf‹åë ¸L Pè[‹åÿFëøQ PèM‹åÇF‹F=s0‹^Ø‹F;É^v‹v óŠ0ä%ÿPè>‹åP¸Z Pè‹åÿFëÈ¸Þ Pè‹åƒFé[ÿ=uéNÿ=uéÿ=uéëþƒÄ]ÃUƒìr;&wé´î‹ìÿvèº÷‹å…Àuƒ~ u‹F븃Ä]ÃUƒìr;&wé„î‹ì‹vƒ<tÿ4ÿv蛋å…ÀuƒFëä‹v‹DƒÄ]ÃUƒìr;&wéLî‹ìÇF‹v ƒ<tÿ4ÿvè^‹å…Àt‹FƒÄ]ÃF ÿFëÙ¸ÿÿƒÄ]ÃUƒìr;&wéî‹ìÇF‹v ƒ<t‹D;Fu‹FƒÄ]ÃÿFƒF ë߸ÿÿƒÄ]ÃUƒìr;&wéÈí‹ì‹v ‚<t ‹ÆÿF ‹v ÿF Š0ÿ‹ðŠ 0í;Ëtß3ÀƒÄ]Ëv Š0ä…Àt3Ûë3ÛC‹ÃƒÄ]ÃUƒìr;&wéví‹ìÿvÿv�FPèé‹åÿvP�FPè‹åƒÄ]ÃUƒìr;&wéDí‹ì3Àƒ~‰Fu‹F ‰F‹F;F ~‹F+F ‹^;Ã~ ÿFƇ^ 0ëé‹F^ ÿv Pÿv èR‹å‹FF Pÿvèu‹å‹ðÆ„^ ¸^ ƒÄ]ÃUƒìr;&wéÓì‹ìƒ>Puÿvÿvÿv ÿv ÿvÿvè‹åƒÄ]ÃUƒì r;&wéŸì‹ì�F‰F‹vŠ„Àué0äéê¸ Pè"‹å‹vŠ0äPè‹åéäÇF‹F@‹ðŠ0ÿƒû0‰F|Š0ä=9‹F» ÷ëŠ0ÿÃ-0‰FëÏ‹vŠ0äë{‹vŠ0äPèÆ‹åé•‹vƒFÿ4è ‹åé„ÇF ë ÇFëÇF‹FƒF‹ðÿvÿvÿ4èaþ‹åPèÙ‹åëS‹FƒF‹ðŠ0äPèn‹åë>c'xoýdöså¾.;„<u.ÿ¤>ƒîyïénÿ=%ué'ÿ= uéÿé ÿÿFéìþƒÄ ]ÃUƒìr;&wéoë‹ìÇFƒ~ u‹F%€t÷^‹v ÿF Æ-ÿF‹F;Fs3Àë‹F1Ò÷vÿvPÿv è¯ÿ‹å‹v ð‰F‹F1Ò÷v‹úŠ…xˆ‹FF@ƒÄ]ÃUƒìr;&wéøê‹ì‹v‚<tÿFŠ0äP膋åëéƒÄ]ÃUƒìr;&wéËê‹ì‹v ÿF ‹~ ÿF Šˆ„ÀuìƒÄ]ÃUƒìr;&wé¡ê‹ì‹FÿN…Àt‹v ÿF ‹~ ÿF ŠˆëäƒÄ]ÃUƒìr;&wéoê‹ì‹F;F|‹FƒÄ]ÃU‹ì¸P�FPÿ6TèЋå]ÃUƒìr;&wé8ê‹ì‹v ƒ<‰vuƒÄ]ÃÇF‹FÿF=}‹vƒFÿ4¸‰PèXý‹å‹vƒ<uÛƒÄ]øm PèBý‹å¸êPÿ6Rè õ‹å ê0ä =nu®ƒÄ]ÃUƒìr;&wéÀé‹ì¸Î?‰F‹vƒ<t'ÿvÿ4èÑû‹å…Àt‹vÿtèRÿ‹å¸ƒÄ]ÃFëѸs Pèlô‹åƒÄ]ÃUƒìr;&wélé‹ìÿv ÿvÿvè$ ‹åƒÄ]ÃUƒìr;&wéHé‹ì‹6ì@Š0ä…Àt ¸ê@;ðséƒ~ t鲸ª@£ì@¸ê@‹ì@;ØréëèR‹6ì@ˆ0äës‹6ì@Š0äP¸î@PèHü‹åëv¸ª@‹ì@;Øvk¸ñ@Pè2ü‹åƒ.ì@ë[‹6ì@Æ ¸õ@Pèü‹åÿì@阸ÿÿƒÄ]ø÷@Pèü‹å¸©@£ì@ë+KC 3 ,¾.;„\u.ÿ¤^ƒîyïévÿÿì@éTÿ¾ª@¸PVÿv ‰6ì@è‹å…Àu‹6ì@ƸÿÿƒÄ]Ãÿì@¸ê@‹ì@;Øs¸PSÿv èå‹å…Àtÿì@ëÞ‹6ì@Ƹª@£ì@‹6ì@ÿì@Š0äƒÄ]ÃUƒìr;  &wéûç‹ìÿvè‡ ‹åƒÄ]ÃUƒìr;&wéÝç‹ìÿvèã ‹åƒÄ]ÃUƒìr;&wé¿ç‹ìÿvÿv蔋åƒÄ]ÃUƒìr;&wéžç‹ìÿvè‹ ‹åƒÄ]ÃUƒìr;&wé€ç‹ì¸¶Pÿvè‹åƒÄ]ÃU‹ì‹V¸=Í!r‹Ø¸Dº"AÍ!r¸>Í!r¡&A…ÀyèÒ]ðëR°ëN°ëJ°ëF°ëB°ë>°ë:°ë6°ë2° ë.° ë*° ë&° ë"° ë°ë°ë°ë°ë°ë °ë°ë°øU‹ìü‹È�v6­‹ÐŒØŽØ6­‘¾(A‹^‹>"A >$Au¸èKëÿ"A]ðùëðùë¾°ùë¹°ùë´°ù믰ù몰 ù륰!ùë °ùë›°ùë–°ùë‘°"ù댰#ùë‡Ç*A£,A¸ÿÿÃUƒì‹ì‹F…Àx;JE}»*÷ë‹ðŠ„LE0ä%€u ÇC 3ÀƒÄ]ËF»*÷ëLEƒÄ]ÃUƒì ‹ìÇF‹F‹JE;Ø~»*÷ë‹ðŠ„LE0ä…ÀtÿFëß‹F;JEuÇC¸ÿÿƒÄ ]ËF»*÷ëLE‹ð¡&D%€‹^3ÉF%€‰v t¸ë3À €‹v ˆ‹F%ë`‹v Š0ä @ˆëc‹F%t¸ë3À ‹v Š0ÿ ؈ëD‹F%t¸ë3À `‹v Š0ÿ ؈ë%‹v ÆÇC¸ÿÿƒÄ ]Ã=tÈ=t¤=t‘ëÛ‹vŠ0ä…Àu‹v ÆD‹FƒÄ ]ÃÇF‹F=}7» ÷ë.A@Pÿvè3‹å…Àu‹F» ÷ë‹ðŠ„.A‹~ ˆE‹FƒÄ ]ÃÿFëÁ‹v ÆD 0ä=é�‹F%tÿv襋å‹F%t¸ë‹F%Pÿvèö‹å‹v ‰Dƒ>Ct7‹F%t3ÀPÿv輋å‹v ‰Dƒ>CuéèÇC‹v ƸÿÿƒÄ ]ËF%=t鯋v ÿt賋åÇC‹v ƸÿÿƒÄ ]ËF ÿvP‰FèQ‹å…ÀtÇC‹v ƸÿÿƒÄ ]ËF%tÿvè}‹åÿvèé ‹å…Àt(‹F%t ÿvèñ ‹å…Àt;ÇC‹v ƸÿÿƒÄ ]ËF%=uÿvè¸ ‹å‹v ÆÇC¸ÿÿƒÄ ]ËvÇDÇD#ÇD!‹FƒÄ ]ÃUƒì‹ì‹F %€ ‹^ �ãÿSPÿv è6ý‹åƒÄ]ÃUƒì‹ì‹F…ÀyÇC¸ÿÿƒÄ]ÃÿvèÌü‹å…À‰Fu¸ÿÿƒÄ]ËvŠD0äéÈ‹F=é†=€~¸€ë‹F»BS¢B見åÇFÇF B0ä‹^;Ã~F‹FÿF‹ðŠ„BˆF0ä= u ÿF‹vóÆ ë#ŠF0ä=uÇFë‹FÿF‹vðŠFˆ뮸 Pè‹å‹FƒÄ]øi.»‘.‰F‰^ë ¸¥.»¹.‰F‰^‹vŠ0ä%t-ÇF‹F;F}‹FÿF‹^؉^ÿV‹vˆëà‹FƒÄ]ÃÇF‹F;F|éÖÿVˆF0ä鵸 PÿV‹å¸ PÿV‹å‹F‰F@‹vvÆ ‰FƒÄ]Ã~tº¸PÿV‹å¸ PÿV‹å¸PÿV‹åë�¸ PÿV‹å¸ PÿV‹å3ÀƒÄ]ËFÿF‹vðŠFˆ0ä= }¸^PÿV‹åŠF0ä@PÿV‹åéSÿŠF0äPÿV‹åéEÿ=  ð ð¾ .;„• u.ÿ¤— ƒîyï뛋FƒÄ]Ã3ÀƒÄ]à0ä=~#ÿvÿv‹vÿtè± ‹å‰Fƒ>Ct&¸ÿÿƒÄ]Ãÿvè6 ‹å‹F�^SÿvP‰FèV ‹å‹vŠ0ä%t‹FƒÄ]Ã3À‰F‰F ‹F‹^;Ø~UÿF‹vðŠˆF0äë8‹F+FH3Û…ÀyK¹QSPÿvèð‹å‹F ƒÄ]Ãë¿‹F ÿF ‹vðŠFˆë­= t¨=t¾ëâƒ~ u ƒ~té+ÿ‹F ƒÄ]øÿÿƒÄ]ÃÊ ñà �à ‹ðƒþsÑæ.ÿ¤¯!ëÞUƒì‹ì‹F…ÀyÇC¸ÿÿƒÄ]Ãÿvè·ù‹å…À‰Fu¸ÿÿƒÄ]ËvŠD0äé@¸‘.‰Fë¸Í.‰F븹.‰FÇF‹F‹^;Ø~6ÿF‹vðŠˆF0ä= u‹vŠ0ä%u ¸ PÿV‹åŠF0äPÿV‹åëÀ‹FƒÄ]ËvŠ0ä%t¸P3ÀP3ÛSÿvèÑ‹å 0ä=~4‹vŠ0ä%tfÿvÿvÿtè ‹å‰Fƒ>Ct¸ÿÿƒÄ]ËFƒÄ]ËF‹vŠ0ÿ�ã‰FtÿvèR ‹å�FPÿvÿvè� ‹å‹FƒÄ]øBPè2 ‹åÆF3À‰F‰F ‰F ‹F‹^;Øé¡ÿF‹vðŠˆF0ä= uŠF0ä= tÆF ÿN‹F ‰F@‹vŠ^ˆœB=€‰F ˆ^|² 0ä=~0ÿv ¸BP‹vÿtè9 ‹å;F ‰Ft3ÀƒÄ]Ã>Ct&¸ÿÿƒÄ]Ã�FPÿv ÿvèØ‹å‹F;F t3ÀƒÄ]ÃÇF éRÿƒ~ tX 0ä=~0ÿv ¸BP‹vÿtèÓ ‹å;F ‰Ft3ÀƒÄ]Ã>Ct&¸ÿÿƒÄ]Ã�FPÿv ÿvèr‹å‹F;F t3ÀƒÄ]ËFƒÄ]ËFƒÄ]ÃÇC¸ÿÿƒÄ]Ãi""""&$‹ðƒþsÑæ.ÿ¤<$ëØUƒì‹ìÿvè?÷‹å…À‰Fu ¸ÿÿ»ÿÿƒÄ]ËvŠD0ä…Àt 3À3ÛƒÄ]à0ä=~5ÿvÿvÿv‹vÿtè+ ‹å‰F‰^ƒ>Cué¼ÇC¸ÿÿ»ÿÿƒÄ]ËF‰F‹Fé…‹F‹^‰F‰^ë,‹v‹D!F‹\#^‰F‰^ë‹v‹DF‹\^‰F‰^‹F…Àx‹^‹v‹L‹TèÝ~ÇC¸ÿÿ»ÿÿƒÄ]ËF‹^‹v‰D#‰\!ë(ÇC¸ÿÿ»ÿÿƒÄ]Ã=t›=ué|ÿ=uéfÿëØƒ~ur‹F Ftj‹vŠ0ä%u^‹F-‹^ƒÛ‰F ‰^ ‹F …Àx33ÀPÿv ÿv ÿvèŸþ‹å Ãt¸P�FPÿvèéø‹å…Àu ƒn ƒ^ ëÆ‹F ‹^ ƒÓ“ƒÄ]ËF‹^ƒÄ]ÃUƒì‹ìÿv è�õ‹å…À‰Fu¸ÿÿƒÄ]Ã3À‹vŠ\0ÿ…Û‰Fu2 0ä=~ÿtèG‹åƒ>CtÇFÿÿë‹FP‰FèÄ‹å‰F‹vÆ‹FƒÄ]ÃUƒì(‹ì 0ä=~ÿv,èz‹åƒ>Ct¸ÿÿƒÄ(]Ã3ÀƒÄ(]Ãÿv,�FP裋å…ÀtÇC¸ÿÿƒÄ(]Ã�FPèÜ‹å…ÀtÇC¸ÿÿƒÄ(]Ã3ÀƒÄ(]ÃUƒì‹ìÿvè†ÿ‹åƒÄ]ÃUƒìN‹ì 0ä=~ÿvTÿvRè;‹åƒÄN]ÃÿvR�FPè0‹å…Àt¸ÿÿƒÄN]ÃÿvT�F(Pè‹å…Àt¸ÿÿƒÄN]Ã�F(P�FPèa‹åƒÄN]ÃUƒì‹ìÇF‹F=}»÷ë(DPè  ‹åÿFëåÇFƒ~} ÿvèxþ‹åÿFëíÿv ÿvèÉ‹åƒÄ]ÃUƒì‹ìƒ~ u3ÀƒÄ]ÃF ÿv èê ‹å…À‰Fu3ÀƒÄ]Ëv‹F ‰‹Æ‰F@@ƒÄ]ÃUƒì‹ì‹F ÷fP‰Fè¬ÿ‹å…À‰Fu3ÀƒÄ]Ã3ÀPÿvÿvè¡ ‹å‹FƒÄ]ÃUƒì‹ì‹FHH‹ðÿ4P‰F‰vè¸ ‹åƒÄ]ÃUƒì ‹ì‹F‹^‹h‹fè¾~i 0ä=}3ÀƒÄ ]ËF‹^ƒÓ‰^ �ãðÿ‰F3À Øt3ÀƒÄ ]ù‹F ‹^ÑøÑÛâúS‰^èq‹å…Àt3ÀƒÄ ]ËF ‹^�ãðÿfh¡‹bËNb)f‹^h‰FƒÄ ]ÃUƒì‹ì‹F 3ÛSPèKÿ‹å‰F…ÀtƒÄ]øÿÿƒÄ]ÃUƒì ‹ì 0ä=}¡b+^3Û…ÀyKfhëZ¡ C‹"CƒÓ‰^�ãðÿ‰F3À Øt¸ÿÿƒÄ ]ù‹F‹^ÑøÑÛâúS‰^èa‹å…Àt¸ÿÿƒÄ ]ËF‹^�ãðÿ£h‰f¡^£b3ÀƒÄ ]ÃUƒì ‹ìÇ¢Bƒ>¢B }n‹vŠ0ä@‹øŠ…$C0ä%tÿFëæ‹vŠ0ä…ÀtI¡¢Bÿ¢BÑà‹ð‹F‰„¤B‹vŠ0ä…À‰Ft@‹øŠ…$C0ä%uÿFëß‹vŠÿFƈF0ä…Àu�ë 0ä=|é¸(DP¸äBP¸Pè‹åŠ:0ÿƒû>‰Ft¸6DP¸æBP¸:Pèó‹å‰Fë¸6DP¸èBP¸;PèÝ‹å‰F¸DDP¸èBP¸êBPèÉ‹å…À‰F u ¸PèØ‹åƒ~uÿv ¸ëBPè\ ‹å¸Pè­ü‹åÿ6HEèù‹åPÿvè´‹å‹vŠD0ä%÷ÿˆDƒ~ugÿv ¸CPè! ‹å¸Pèrü‹åëPÆ1D°³ÆLDÆLEÀÇxE± Ç¢EºR¢?D¢0Dˆ EˆvEˆMDˆ>Dè‹å%€t  >D0ä ¢>D¸¤BPÿ6¢Bè׋å3ÀPè ü‹åƒÄ ]ÃUƒì‹ì C„Àt0äÆC‰FƒÄ]øPèy‹åƒÄ]ÃUƒì‹ì C„Àt0äÆC‰FƒÄ]øPèO‹åƒÄ]ÃUƒì‹ìƒ~ u ¸ P¸Pè1‹åÿv¸Pè%‹å‹FƒÄ]ÃUƒì‹ì C0ä…Àt¸ÿÿƒÄ]ËF¢CƒÄ]ÃUƒì‹ì¸ Pèì‹å…Àu3Ûë3  ÛC‹ÃƒÄ]ÃU‹ì‹V´Í!2ä]ÃU‹ì‹V´Í!2ä]ÃU‹ì‹V´Í!2ä]ÃU‹ì‹V´Í!2ä]ÃU‹ìŒØŽÀ‹~‹v¸)Í!¬„Àu G&Š< t3À]øÿÿ]ÃU‹ì‹V‹N´'Í!‹^‰2ä]ÃU‹ì‹V‹N´(Í!‹^‰2ä]ÃU‹ì‹V´Í!2ä]ÃU‹ì‹~‹v¹ ƒÇFó¤‹V´Í!2ä]ÃU‹ìÇC‹`+\‰j‹V‹`ŒØ+ÈÊrÚSÄZ´JÍ![r ‰j3À]ãC¸ÿÿ]ÃU‹ìÇCŒÛ+\¡j+ÃF©ðu!‹j^rÄZS´JÍ![r ‰j3À]ãC¸ÿÿ]ÃU‹ìÇC‹V‹N´<Í!s£C]ÃU‹ìÇC‹V‹F´=Í!s£C]ÃU‹ìÇC‹^´>Í!s£C]ÃU‹ìÇC‹^‹N‹V´?Í!s£C3À]ÃU‹ìÇC‹^‹N‹V´@Í!s£C3À]ÃU‹ìÇC‹F ´B‹^‹N‹VÍ!s£C‹Ø‹Â]ÃU‹ìÇC‹V´AÍ!s£C]ÃU‹ìÇC‹V‹F´C‹NÍ!s£C‹Á]ÃU‹ì‹^¸DÍ!‹Â]ÃU‹ìÇC‹V‹~´VÍ!s£C]Ã3À]ÃU‹ìÿvÿvèºÓ‹å]ÃUƒì‹ì¸Pèk‹åƒÄ]ÃUƒì‹ì¸PèW‹åƒÄ]ÃU‹ìÿv¸PèC‹å‹F]ÃUƒì‹ì¸Pè/‹åƒÄ]ÃU‹ìÿv¸Pè‹å‹F]ÃU‹ìÿv¸Pè‹å‹F]ÃU‹ìŠfŠF‹VÍ!´]ÃUƒì‹ì¸(D‰F¸@E‹^;ØsŠG0ä…ÀtƒFëç‹F=@Eu3ÀƒÄ]Ãÿvÿv ÿv è‹åƒÄ]ÃUƒì‹ì‹vŠD„Àt0ä%t V¸ÿÿPè5 ‹å‹vŠD 0äPè‘ö‹å¡”H‹vŠ\0ÿ‰F‰v ëÇFëÇF€ÿF ë ƒûbtñƒûatå‹v ŠD0ä=+t3Ûë3ÛC‹vŠ0äˆ^ éê‹F ‰F‚~ t¸ë¸‹^ Ø�˸¤PSÿvèì‹å‰F@u3ÀƒÄ]øP3ÀP3ÛSÿvèTô‹å‚~ t¸€ë¸‰Fé¡‚~ t¸ë3À‹^ ØSÿvè²ë‹å‰F@u3ÀƒÄ]Â~ t¸€ë¸‰Fëf‚~ t¸ë¸‹^ Ø�Ë�˸¤PSÿvèjë‹å‰F@u3ÀƒÄ]Â~ t¸€ë¸‰Fë3ÀƒÄ]Ã=wt¬=ruéiÿ=auéÿëâ‹F»*÷ë‹ð‚¼MEt�N‹F ‹v‰Dë‹vÇD‹F‹vˆD ‹D‰3À‰D‰D‹FˆD‹ÆƒÄ]ÃUƒì‹ì‹vŠD0ä%t V¸ÿÿPèk‹å‹vŠD0ä% uƒ| t ÿt ÿtè¡‹å3À‹v‰D‰D ÆDŠD 0äPè�ô‹åƒÄ]ÃUƒì‹ìÿv赋åƒ~u3ÀƒÄ]ËvŠD0ä%ûÿˆD0ä ˆD‹F‰‰D¡HE‰D 3ÀƒÄ]ÃU‹ì‹~‹N‹Füóª]ÃU‹ì‹V´ Í!]ÃUƒì‹ì¡@E‹BE…Û£DE‰FEu¸ÿÿƒÄ]Ë6DE3À‰¡FE‰D3ÀƒÄ]ÃUƒì‹ì3ÀPè‹åƒÄ]ÃUƒì‹ì‹F …Ày¸ÿÿƒÄ]ÃÇ@EÇBEÇF3ÀP»Sèôõ‹å…À‰Fu¸ÿÿƒÄ]ËF‹^£@E‰BE‹F H‰F …Àt3ÀP»SèÁõ‹å…Àt ‹FBEëÜèCÿ3ÀƒÄ]ÃUƒì‹ì¡FEÑàÑà3Û“ƒÄ]ÃUƒì‹ì‹F 3ÛSP‰F‰^è‹åƒÄ]ÃUƒì‹ì‹F‹^3É3Òè83ÀƒÄ]ËF‹^ƒÓ-ƒÛ‰F‹Ã‹^3ɺèâ¾DE‹ ‰F‰N‰^ ‰vƒ~tn‹v‹D3Û‰F‹Ã‰^‹^‹N‹V èÚ|A;Áu;Úu ‹‹v‰ë‹v‹D3Û+F ^‰DÑàÑàF¡FE3Û+F ^‹^£FE‹ÃƒÄ]ËF‹ð‹‰F‰^댹‹F‹^ ÑãÑÐâúPSèŸô‹å‰F …Àt@ƒ>BEu ‹^ £@E‰BEë%¡BEÑàÑà‹@EØ‹F ;É^u¡BE3ÛF ^£BE‹F ƒÄ]Ã3ÀƒÄ]ÃUƒì‹ì‹F3ÛSPÿv ‰F‰^è‹åƒÄ]ÃUƒì‹ì‹F‹^3É3Òèñ¸ÿÿƒÄ]ËF‹^ƒÃ‹NƒÑƒëƒÙ‰F ‹Á3ɺ蚉^ÑãÑã‹N Ë‹FE3Ò^оDE‹‰F‰N‰V‰FE‰v‹F…Àuéð‹ð‹\ÑãÑãØ‹N;ȉ^s‹v ‰‹F‰D‹Æ‹v‰3ÀƒÄ]ËF;Fu)‹ð‹‹~ ‰‹D3Û‹NÈ‹VÓ‰M‹Ç‹v‰3ÀƒÄ]ËF ;Fs¡FE3Û+F^£FE¸ÿÿƒÄ]ËF ;FuU‹v‹…Àt‹^;Øv¡FE3Û+F^£FE¸ÿÿƒÄ]Ëv‹D3ÛF^‰D‹…Àt‹^;Øu ‹GD‹‰3ÀƒÄ]ËF‹^‹ð‹ ‰F‰N‰^ éÿ‹F ‹v‰3Û‹ð‰‹F‰D‹ÃƒÄ]ÃUƒì‹ì‹v ÿF Š0ä…À‰Ft)‹:DK…Û‰:Dx‹66Dÿ6Dˆ0äëÔ¸6DPÿvèЋåëÆ¡:DH…À£:Dx‹66Dÿ6D° ˆ0äë ¸6DP¸ P見åƒÄ]ÃUƒì‹ìÇF‹v ÿF Š0ä…À‰Ft(‹v‹\K‰\…Ûx ‹ÿˆ0äë ÿvÿvèb‹å‰FëÇ‹FƒÄ]ÃUƒì‹ì‹v ‚<t(‹~‚=t ‹ÆÿF ÿFŠ0ÿ‹ðŠ 0í+ˉNt׋ÁƒÄ]Ëv ‚<t¸ÿÿƒÄ]Ëv‚<t¸ƒÄ]Ã3ÀƒÄ]ÃUƒì‹ìƒ~t5‹v ‚<t-‹~‚=t%‹ÆÿF ÿFŠ0ÿ‹ðŠ 0í+ˉNt‹ÁƒÄ]ÃÿNëŃ~u ‹v ‚<t¸ÿÿƒÄ]Ëv‚<t¸ƒÄ]Ã3ÀƒÄ]ÃP3ÁXPx+Áu3À;ÚtwHë ÿ…ÀXÃUƒì‹ì‹vŠD0ä%t3ÀƒÄ]Ëvƒ| tŠD0ä%u ÿt ÿtè‰ü‹å‹F ‹v‰DŠD0ä ˆD3À‰D ‰D‰DƒÄ]ÃUƒì‹ì‹v ŠD0ä%0t¸ÿÿƒÄ]Ëv ƒ| uŠD0ä%uVèËå…Àt¸ÿÿƒÄ]Ëv ŠD0ä%tÇFë)‹v ŠD0ä%t¸ÿÿƒÄ]Ëv ŠD0ä ˆD‹D ‰F‹v ŠD 0äÿvÿtPè£æ‹å…À‰Fy‹v ŠD0ä ˆDƒ~u‹v ŠD0ä ˆD‹F…À~ ‹v ‰D‹D‰‹v ŠD0ä%0t¸ÿÿƒÄ]Ëv ‹DH‰D…Àx ‹ÿ‹øŠ0ÿë ÿv èÿþ‹å‹Ø‹ÃƒÄ]ÃUƒì ‹ì‹F‹vŠ\0ÿ�ã0‰Ft¸ÿÿƒÄ ]Ëvƒ| ujŠD0ä%u`ƒ~ÿu3ÀƒÄ ]Ãÿvè¡‹å…Àt¸ÿÿƒÄ ]ËvŠD0ä ˆD‹D ‰DH‰D…Àx‹ÿ‹^‹øˆ0ÿë ÿvÿvèvÿ‹å‹Ø‹ÃƒÄ ]ËvŠD0ä%t8ƒ~ÿu3ÀƒÄ ]ËF‹vŠ\ 0ÿÇF ÿv �NQSˆFènè‹åÇFÿÿ‰F郋vŠD0ä%t¸ÿÿƒÄ ]ËvŠD0ä ˆDƒ~ÿt2ƒ|~,‹DH‰D…Àx‹ÿ‹^‹øˆ0ÿë ÿvÿvèÔþ‹å‹ØÇFÿÿ‹v‹+D‰F tŠD 0äÿv ÿtPèêç‹å‰FëÇFƒ~ÿu‹vŠD0ä ˆDë‹F;F t‹vŠD0ä ˆD‹v‹D ‰D‹D‰‹F=ÿÿt ‹\K‰\…Ûx ‹ÿˆ0äë ÿvÿvèCþ‹å‹vŠD0ä%0t¸ÿÿƒÄ ]Ã~ÿu3ÀƒÄ ]ËFƒÄ ]ÃUƒì‹ì‹vƒ| tŠD0ä%u3ÀƒÄ]Ãÿ6HEèø‹å‹v‰‰D…ÀuÇC ¸ÿÿƒÄ]áHE‹v‰D ŠD0ä%óÿˆD3À‰D‰DƒÄ]ÃUƒì‹ì‰N Êu3À3Û隉F Ãu3É3Ò錋N‹F‹ð…öy÷Ð÷Ûÿÿy 3À3É3Òëo�3ñ‰v3ö…Éy÷Ñ÷ÚƒÙÿu…Òx¿ ÑãÑÐÑÖ;òr+òCOuð3É‹Öë!¿ÑãÑÐÑÖ;ñr u;Âr+ÂñCOuè‹Î‹Ð3À÷F€t÷Ð÷Ûÿÿ÷F€t÷Ñ÷ÚƒÙÿƒÄ]ÃÿÿLattice C 2.10 HInvalid stack size $Invalid I/O redirection $Insufficient memory $*** STACK OVERFLOW *** $ibcmdaibwrtaibrdaibstopibcmdibwrtibrdibwrtfibrdfibwaitwibrppibdiagibonlibrscibsicibsreibrsvibpadibsadibistibdmaibeosibtmoibeotibgtsibcac$ibpokeprintibfindsethelpeqbufferibxtrcibtrgibclriblocibpctibppcibbnaibrspÐSv×SlÞAXäÄëSqñSg÷ASüFbF] MM B{AŠnÈ%nÌ+Ð1nÔ7NÜ=NäCNèI  nìOnðUNô[NøanügnmnsF€ uN|SÔ ‚D–‰D �H4’nÌ ”nÌ –Nß�A�¤ ª°Ø¶¼NàÂD…È B€ÿ0EDVREARGESACECICEABOENOLEADRENEBEDMAEBTOEOIPECAPEFSOEOWNEBUSESTBESRQ6;@EJOTY^c h m r w |�†ÿÿdcasdtaslacstacsatncicremlokcmplrqssrqiendtimoerrbit0bit1bit2bit3bit4bit5bit6bit7bit8bit9bit10bit11bit12bit13bit14bit15ÔÙÞãèì ð@ô€øý @€"', 1@6€;@EKQW ]@c€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNational InstrumentsInterface Bus Interactive Control Program (IBIC) Rev C.0Copyright (C) 1984 National Instruments, Inc.All rights reserved.Type 'help' for help.Use IBFIND to initially open a board or device.Use SET to select an already opened board or device.23H�¯2Ä2Ú  %s: '*' expectedBad function. Enter 'help' for help abortTrailing garbage command file error enter number: enter byte count: enter filename: enter board/device name: enter help topic keyword: enter string: Invalid mask bitNon-terminated stringNumber syntax !*()+-><0123456789ABCDEF%s Device not open -- try IBFINDCannot open fileCannot alloc bufferToo many outstanding asynchronous callsUse IBFIND to open a deviceInvalid deviceToo many boards/devices open[%4x] ( %s ) error: %derror: %s (%d) previous value: %d count: %d Poll: 0x%x bad format (must be 0,1 or 2)buffer: (off) buffer: %c%2x %c >>> Invalid help topicFor information on these topics, enter the keyword shown:Keyword Topic Keyword Topic------- ------------------------- + ------- ---------------------------------DEVICE GPIB-PC device functions | I/O Data Input/Output functionsBOARD GPIB-PC board functions | CONTROL Controller functionsSTATUS Status word (IBSTA) codes | POLL Serial & Parallel Poll functionsERROR Error (IBERR) codes | RECONF Handler reconfiguration functionsAUX IBIC Auxiliary functions | OTHER Other GPIB-PC functionsFor argument and syntax rules of these GPIB-PC and Auxiliary functions,enter the function name: GPIB-PC Functions Auxiliary Functions---------------------------------------------- -------------------ibbna ibeos ibonl ibrdf ibsic ibwrt set n*ibcac ibeot ibpad ibrpp ibsre ibwrta ! n* !ibclr ibfind ibpct ibrsc ibstop ibwrtf - printibcmd ibgts ibppc ibrsp ibtmo + eibcmda ibist ibrd ibrsv ibtrg $ qibdma ibloc ibrda ibsad ibwait† ‡ † Á  R œ ß . ~ † Ä † % t à W£ë3† DATA I/O FUNCTIONS (functions that send/receive device-dependent messages) Synchronous I/O (call returns after I/O completes):ibrd v Read v data bytes and display on screenibwrt string Write data bytes from string Asynchronous I/O (call returns after I/O begins):ibrda v Read v data bytes and display on screenibwrta string Write data bytes from stringibwait (cmpl timo) Wait for I/O completion or timeoutibstop Abort I/O Synchronous File I/O:ibrdf flname Read data bytes into a fileibwrtf flname Write data bytes from a fileDo you need the syntax rules for string, v, and flname? (y/n) Syntax Rules for I/O Function Arguments:string Replace with a list of ASCII characters, hex or octal bytes, or special symbols, enclosed in double quotes. An octal byte is preceded by a backslash. A hex byte is preceded by backslash x. The two special symbols are \n for newline and \r for return. "\xD "\15 and "\r" are equivalent strings. Example: ibwrt "f2r3t0x" OR ibwrta "   \xFF0\r\n"v Replace with a hex, octal, or decimal integer. Hex numbers must be preceded by zero and x (e.g., 0xD). Octal numbers must be preceded by zero only (e.g., 015). Other numbers are assumed to be decimal. Example: ibrd 20 OR ibrda 500flname Replace with the DOS pathname for the file Example: ibrdf estscope.set OR ibwrtf b:printer.buf† Šº† þ† @~† ±† ò0cœ† ¼† î † † S† ’† Îeªõ=† {ÅZ† ­æ GPIB CONTROLLER FUNCTIONS System Controller Functions:ibsic Send Interface Clear for 200 microsecondsibsre [v] Set Remote Enable if v is non-zero; else clear the signalibrsc [v] Request System Control if v is non-zero; else release control Controller-in-Charge Functions:ibcac [v] Become Active Controller: Take control synchronously if v is non-zero; otherwise, take control asynchronouslyibclr Send the Selected Device Clear command to the device.ibcmd string Send commands synchronously from stringibcmda string Send commands asynchronously from stringibgts [v] Go to Standby: Shadow handshake and holdoff on END if v is non-zero; else do not shadow handshake and do not holdoff.ibloc Send the Go To Local command to the device.ibpct Pass control to the device.ibtrg Send the Group Execute Trigger command to the device.Do you need syntax rules for [v] and string? (y/n) is preceded by a backlash. A hex byte is preceded by \r for return. "\xD "\15 and "\r" are equivalent strings.[v] This is an optional argument and if omitted, the value is 1. Replace with a hex, octal, or decimal integer. Hex numbers† ~† ²† è!j† ·† ï<|Áø0{Å+† p† Τªè† 1|ÅZ DEVICE FUNCTIONSThese functions operate on the selected GPIB device identified in the IBICprompt rather than on a GPIB-PC interface board.ibbna Change access board | ibrda Read data asynchibclr Clear internal functions | ibrdf Read data to fileibeos Change/disable EOS mode | ibrsp Return Serial Poll responseibeot Enable/disable END message | ibsad Change/disable Sec Addressibfind Open device | ibstop Abort asynchronous I/Oibloc Go to Local | ibtmo Change/disable time limitibonl Place device on/offline | ibtrg Trigger selected deviceibpad Change Primary Address | ibwait Wait for selected eventibpct Pass Control | ibwrt Write dataibppc Parallel Poll Configure | ibwrta Write data asynchronouslyibrd Read data | ibwrtf Write data from fileFor argument and syntax rules of any function, ask for help, e.g., help ibrd† † 8ƒ† † ´ø=ŒÚ$q¼E’† Ú BOARD FUNCTIONSThese low level functions operate on the selected GPIB0 or GPIB1 interfaceboard identified in the IBIC prompt, rather than on a GPIB device.ibcac Become Active Controller | ibrd Read dataibcmd Send commands | ibrda Read data asynchibcmda Send commands asynch | ibrdf Read data to fileibdma Enable/disable DMA | ibrpp Conduct Parallel Pollibeos Change/disable EOS mode | ibrsc Request/release System Ctlibeot Enable/disable END | ibsad Change/disable Sec Addressibfind Open board | ibsic Send IFCibgts Go to Standby | ibsre Set/clear Remote Enableibist Set/clear ist flag | ibstop Abort asynchronous I/Oibloc Go to Local | ibtmo Change time limitibonl Place board on/offline | ibwait Wait for eventibpad Change Primary Address | ibwrt Write dataibppc Parallel Poll Configure | ibwrta Write data asynch | ibwrtf Write data from file† R †  Ê † !K!�!Ö! "o"¾"û"G#’#Ø#$Z$ $† Ú IBIC AUXILIARY FUNCTIONSset bdname Select active device or board. Replace bdname with symbolic name of new device or board, e.g. set dev2.help [option] Display help information; if an option is omitted, a menu of options appears.- Turn OFF display of   status, error, count, and data+ Turn ON display of status, error, count, and datan* function Execute function n times. Replace function with correct function syntax.n* ! Execute previous function n times$ flname Execute indirect file. Replace filename with DOS pathname of a file that contains IBIC function to be executed.print string Print string on display. Replace string with a list of ASCII characters, octal or hex bytes, or special symbols, enclosed in quotes. An octal byte is preceded by back- slash (e.g., \15); a hex byte by backslash and x (\xD). The two special symbols are \n for newline and \r for return. For example, print "Turn the meter on now."e Exit IBICq Exit IBIC† %† L%’%Ù% &K&�&Ô&'A'u'Â' (T( (ê(4)|)Ã)ß) RECONFIGURATION FUNCTIONS (functions that change software parameters in the handler)ibbna bname Change the device's address board to bname (GPIB0 or GPIB1).ibdma [v] Enable DMA if v is non-zero; else, enable programmed I/O.ibeos v Change or disable EOS mode. The bit pattern of v= 0 0 0 C B A 0 0 E7 E6 E5 E4 E3 E2 E1 E0, where E7-E0 is the EOS character; A = 1/0 to terminate/not terminate read when EOS is detected; B = 1/0 to send/not send END when EOS is written;  C = 1/0 to use all 8/lower 7 EOS bits (byte/ASCII character).ibeot [v] If v is non-zero/zero, do/do not send END with last data byte.ibpad v Change primary GPIB address. Low 5 bits of v is new address.ibsad v Change or disable secondary GPIB address. To enable, set v to valid secondary address (MSA). To disable, set v to zero.ibtmo v Change time limit as follows (times approximate): v= timeout= v= timeout= v= timeout= v= timeout= 0 no limit 5 1 msec 10 300 msec 15 100 sec 1 10 usec 6 3 msec 11 1 sec 16 300 sec 2 30 usec 7 10 msec 12 3 sec 17 1000 sec 3 100 usec 8 30 msec 13 10 sec 4 300 usec 9 100 msec 14 30 sec† **_*† ¦*ñ*9+z+·+á+-,m,¹,-R-œ-è-(.p.·.þ.F/}/ SERIAL POLL FUNCTIONSibrsp Display status response from the device. If a stored response is unavailable, poll the device to obtain its current status.ibrsv v Change the boards status response to v; assert SRQ if hex 40 bit is set. PARALLEL POLL FUNCTIONSibrpp Conduct a poll and display response.ibppc v Configure device or board for polling; v is valid Parallel Poll Enable or Disable (PPE or PPD) command.ibist [v] Set boards individual status bit if v is non-zero; otherwise, clear the bit.Syntax rules for v and [ ]:[ ] Argument is optional and if omitted, a value of one is used.† ä/† 0b0®0ù0† 1† E1x1Á1ü1H2† e2† {ÅZ�2 MISCELLANEOUS FUNCTIONSibfind bdname Open the device or board and pass unit descriptor to IBIC.ibonl [v] Place device or board online (enabled) if v is non-zero; otherwise, place offline (disabled).ibstop Abort asynchronous I/O operation.ibwait mask Wait for event or condition specified in mask. Bit assignments and mnemonics of mask are the same as the status word IBSTA (see STATUS help).Syntax rules for v, [ ] , and mask:mask Replace with hex, octal, or decimal integer (same rules as v) or with list of mask bit mnemonics enclosed in parentheses. For example, these are equivalent: ibwait 0x4900 and ibwait (timo rqs cmpl)† ü2† *3s3º3í34Z4¢4† Õ4† {ÅZ�2ù4E5�5À5 STATUS WORD (IBSTA) CODESMnemonic Bit  Hex Type Fnct Description Position Value dev/board-------- -------- ----- --------- ------------------------------------- ERR 15 8000 db GPIB error TIMO 14 4000 db Time limit exceeded END 13 2000 db GPIB-PC detected END or EOS SRQI 12 1000 b SRQ on RQS 11 800 d Device requesting service CMPL 8 100 db I/O completed LOK 7 8   0 b GPIB-PC is in Lockout State REM 6 40 b GPIB-PC is in Remote State CIC 5 20 b GPIB-PC is Controller-in-Charge ATN 4 10 b Attention is asserted TACS 3 8 b GPIB-PC is Talker LACS 2 4 b GPIB-PC is Listener DTAS 1 2 b GPIB-PC is in Device Trigger State DCAS 0 1 b GPIB-PC is in Device Clear State† .6† ^6˜6½6† 7:7t7¶7ã7#8W8™8Ú8 9\9”9Î9: ERROR (IBERR) CODESMnemonic Decimal Explanation Value-------- ------- ----------------------------------------------------- EDVR 0 DOS error (IBCNT or Count has error code) ECIC 1 Function requires GPIB-PC to be Controller-in-Charge ENOL 2 No Listeners detected on write function EADR 3 GPIB-PC not addressed correctly EARG 4 Invalid argument to function call ESAC 5 GPIB-PC not System Controller as required EABO 6 I/O operation aborted ENEB 7 Non-existent GPIB-PC board EOIP 10 I/O started before previous operation completed ECAP 11 No capability for operation EFSO 12 File system error (IBCNT or Count has error code) EBUS 14 Command error during device call ESTB 15 Serial Poll status byte lost ESRQ 16 SRQ stuck in on position† Š:† ´:æ:ø:† D;„;Ï; B>menudeviceboardstatuserrori/oibrdibwrtibrdaibwrtaibrdfibwrtfcontrolibsicibsreibrscibcacibclribcmdibcmdaibgtsiblocibpctibtrgreconfibbnaibdmaibeosibeotibpadibsadibtmopollibrspibrsvibrppibppcibistotheribfindibonlibstopibwaitauxset!-+$n*n* !printeqhelpž>Z£>( ª>ê$°>^:·>r>½>*Á>*Æ>*Ì>*Ò>*Ù>*ß>*æ>Æî>Æô>Æú>Æ?Æ?Æ ?Æ?Æ?Æ?Æ%?Æ+?Æ1?´/8?´/>?´/D?´/J?´/P?´/V?´/\?´/b?Ì2g?Ì2m?Ì2s?Ì2y?Ì2?Ì2…?6‹?6’?6˜?6Ÿ?6¦?ü)ª?ü)®?ü)°?ü)²?ü)´?ü)¶?ü)¹?ü)¾?ü)Ä?ü)Æ?ü)È?ü)ê@%c  \ (c) Copyright 1984, National Instrumentscon:CON:prn:PRN:lst:LST:lpt:LPT:lpt1:LPT1:aux:AUX:com:COM:com1:COM1:rdr:RDR:pun:PUN:nul:NUL:null:NULL:rwaCan't open stdin file Can't open stdout file ((((( H„„„„„„„„„„������‚‚‚‚‚‚ ((((( H„„„„„„„„„„������‚‚‚‚‚‚ -#-?#-a#-‚#ÿA GPIB interface may signal the endof a data transfer by sending theGPIB uniline message END. This isaccomplished by asserting the EOIline along with the transmissionof the last byte.A yes response in this field willcause the interface board to set EOIwith the last byte of every datawrite to the GPIB.+$$+H$+j$+Œ$ +®$ +Ï$ +á$ +%+(%+I%ÿThis software package may be usedwith either of two boards:* Nat  print "this is test1 of the ibic $ function" ibfind gpib0 ibfind t7d20 ibclr ibrsp ibwrt "ID?" ibrd 33 print "end of indirect file" }zO Ð'IBCONF EXE QI† D³IBIC EXE Ò\] =&†IBIC$1 lŒ ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööprint "IBIC Example - Using device function calls" print "Access device DVM that is assumed to " print " be configured in handler." ibfind DVM print "Clear the device. User should check for ERR" print "on each IBIC GPIB call to be safe." ibclr print "Write the function, range, and trigger " print "source instructions to the DVM." ibwrt "F3R7T3" print "Trigger the device." ibtrg print "Wait for the DVM to set RQS or for a" print "timeout; if the current timeout limit is" print "too short, use ibtmo to change it." ibwait (TIMO RQS) print "It is assumed here that neither a timeout" print "nor an error occurred, hence ibwait must have" print "returned on RQS. Next serial poll the device." ibrsp print "Now examine the status byte. If the response" print "is 0xC0, the DVM has valid data to send;" print "otherwise, it has a fault condition to report." print "Assuming the data is valid,(the response was 0xC0)," print "read the measurement." ibrd 16 print "To close out a programming sequence," print "reset the device, and call ibonl to " print "place the device offlne." ibclr ibonl 0 print "Return to DOS." exit ‹å…ÀtJ�F£æèF‰F…Àt"�FPèÑ‹å…Àt‹FÿN…Àt �FPèµ ‹åëëƒ>Tt­ÿ6Tèd‹åÇT뜃Ät]ÃUƒìr;&wéóþ‹ì�FP¸1TPè4‹å…ÀuÇFë¸VP¸*TPè‹å…Àu¸\Pè« ‹åƒÄ]ËFƒÄ]ÃUƒìr;&wé£þ‹ì¡è�^S‰FèÁ‹å…Àt‹F;F u‹F‹v‰¡æƒÄ]ËF£è3ÀƒÄ]ÃUƒìr;&wéZþ‹ì3À�^S‰F‰Fèv‹å‹FëX¸ÎPÿ6æèÜ‹å…À‰FyZ¸iPè ‹åƒÄ]øƒÄ]ÃÇP3ÀƒÄ]ÃÇP3Àprint "IBIC Example - Using board function calls" print "Make board GPIB0 the current board." ibfind GPIB0 print "Send the IFC (interface clear) message" print "to all devices. User should check for " print "ERR on each IBIC GPIB call to be safe." ibsic print "Turn on the REN (remote enable) signal." ibsre 1 print "Inhibit front panel control with the LLO" print "(local lockout) command, place the DVM" print "in remote mode by addressing it to" print "listen, send the DCL (device clear)" print "message to clear internal device" print "functions, and address GPIB-PC to talk." ibcmd "\021#\024@" print "Write the function, range, and trigger" print "source instructions to the DVM." ibwrt "F3R7T3" print "Send the GET message to trigger a" print "measurement reading." ibcmd "\010" print "Wait for the DVM to set SRQ or for a" print "timeout; if the current timeout limit is" print "too short, use ibtmo to change it." ibwait (TIMO SRQI) print "It is assumed here that neither a timeout" print "nor an error occurred, hence ibwait must " print "have returned on SRQ. It is also assumed" print "that the DVM is the only device attached" print "to the bus. Next do a serial" print "poll. First unaddress bus devices and" print "send the SPE (serial poll enable) command," print "followed by the DVM's talk address, and" print "the GPIB-PC's listen address." ibcmd "?_\030C " print "Now read the status byte. If it is 0xC0," print "the DVM has valid data t   o send; otherwise" print "it has a fault condition to report." ibrd 1 print "Complete the serial poll by sending the" print "SPD (serial poll disable) message." ibcmd "\031" print "Since the DVM and GPIB-PC are still" print "addressed to talk and listen, the" print "measurement can be read as follows." ibrd 16 print "To close out a programming sequence, send" print "IFC to initialize the bus and disable the" print "hardware and software. " ibsic ibonl 0 print "Return to DOS"  exit åëK¸ZPè¨‹å¸ Pè8‹åë7¸'Pè-‹åë,S!H DF÷AìNá¾.;„,u.ÿ¤.ƒîyï¸êPÿ6RèÇ‹å ê0ä…Àté?ÿ3ÀƒÄ]ËFƒÄ]ÃUƒìr;&wétû‹ì¸VP¸TPèµü‹å…Àt‹v ǸƒÄ]Ãÿv ¸1TPè–ü‹å…Àt¸ƒÄ]øVP¸(TPè}ü‹åÇF¸VP¸ATPèkü‹å…Àt'¸jPÿ6æèy ‹å‰F…Àt FëÖ¸7Pèá‹åƒÄ]øVP¸)TPè3ü‹å‹F‹v ‰¸ƒÄ]ÃUƒìr;&wéÄú‹ìÇF ÇF è#¡æ‹6èŠ0ÿ‰FéF‹vÇ"Tèd…À‰F xéI¸HPès‹åƒÄ]ÃÇF ¡è@‹ðŠ0ÿ�Ë ƒûx£èu ÇF ÿè‹6èŠ0äP芋å…Àt8‹6èÿèŠ0äÿv P謋å…À‰Fx‹F ÷n F‰F ëĸ^Pè‹åƒÄ]ËvÇ1TéË6èŠ0ÿZ ’ ,i� :�Ù IBM BASICA Declarations IBINIT1 ç i� :�ÙÙ IBINIT2 ç IBINIT1 é  :�Ù Lines 1 through 6 MUST be included in your program.õ à "bib.m",IBINIT1Š ³ IBINIT1(IBFIND,IBTRG,IBCLR,IBPCT,IBSIC,IBLOC,IBPPC,IBBNA,IBONL,IBRSC,IBSRE,IBRSV,IBPAD,IBSAD,IBIST,IBDMA,IBEOS,IBTMO,IBEOT,IBRDF,IBWRTF)0 ³ IBINIT2(IBGTS,IBCAC,IBWAIT,IBPOKE,IBWRT,IBWRTA,IBCMD,IBCMDA,IBRD,IBRDA,IBSTOP,IBRPP,IBRSP,IBDIAG,IBXTRC,IBRDI,IBWRTI,IBRDIA,IBWRTIA,IBSTA%,IBERR%,IBCNT%)€� ************** END DECLARATIONS FOR GPIB INTERFACE **********************°d:�Ù CHA41.BAS Version 1.0 8 March 85ón:�Ù Copyright (c) 1984, Tektronix, Inc. All rights reserved.;x:�Ù----------------------------------------------------------------€‚� * 'begin initializations‘ŒBD%ç:DEV%çß–BD$ç"gpib0": ³ IBFIND(BD$,BD%) :�Ùset up GPIB interface board 0$ ³ IBSIC(BD%) :�ÙSend Interface ClearoªDEV$ç"T7D20": ³ IBFIND(DEV$,DEV%) :�Ùset up Tek 7D20 on board 0­´À :�Ùclear screenÕ¾� * begin interaction with operatorÈ‘ Î)"GPIB TALKER" :�Ùprogram titleNÒ‘ "This program talks to one instrument at a time using ";ŒÜ‘ "its GPIB address." "The terminator is EOI by default."¨æ‘:‘ Î) "INSTRUCTIONS"àð‘ "1. finish each entry by pressing the ENTER key."ú‘ "2. at T/C/E ? enter T to Talk to a device"N‘ "  C to Change addresses"†‘ " E to End the program"—‘:‘ "BEGIN:"·"‘ "enter PRIMARY ADDRESS ";Ü,‘ "(0-31, any other # to End):";6… ADPRI% :�ÙGET PRIMARY ADDRESSe@‹ ADPRI% è ï ADPRI%æ Í � :�Ù quit if addr not valid­J³ IBPAD(DEV%,ADPRI%) :�Ù send addr to GPIB cardúT…; "T/C/E ? :",TL$ :�ÙPROMPT OPERATOR FOR OPERATION7^‹ TL$ç"t" ï TL$ç"T" Í |  :�Ù am I to Talk?€h‹ TL$ç"c" ï TL$ç"C" Í  :�Ù am I to Change addresses?Ær‹ TL$ç"e" ï TL$ç"E" Í � :¡ æ :�Ù am I to End the program? |‘ " ";:… "STRING TO SEND:" ,A$ :�ÙTALK ROUTINE. Get commandT†³ IBWRT(DEV%,A$) :‰ T :�Ù write to GPIB device & rtn–�³ IBLOC (DEV%) :�ÙEND. Go to Local.¯š‘:‘:‘ "Go to Local";ñ¤‘ " (last addressed device responds to manual control again)"2®‘ "PROGRAM ENDED":‘ :�Ù program end messagesY¸‘ "type RUN to restart program"~‘ "type SYSTEM to return to DOS"„Ì�T‹~‰‚<tIÿèëC9¥8¥7¥6¥5¥4¥3¥2¥1¥0�"_¾(.;œyu.ÿ¤{ƒîyïé=ÿ‹F ‹v‰D¸ƒÄ]ÃUƒì r;&wé'ù‹ìÿè¡æ‰F‹6èŠ0ä="‰Fuéa…Àu¸ÿÿƒÄ ]ÃÇF‹6èŠ0ä=\té#‹Æ@‹ðŠ0ÿ£èéý¸ÿÿƒÄ ]ÃÇF ÿèéÇF ÿèéÇFÿèé÷ÇF ÿèéëÇFÿèƒ~}0‹6èŠ0ä»SPèô‹å…À‰Fx±‹^Óã؉^ëÿFÿèëʃ~t飋6èŠDÿ0ä‰Fé”ÇFƒ~}0‹6èŠ0ä»SPè¡‹å…À‰Fx±‹^Óã؉^ëÿFÿèëʃ~uS‹6èÿ  ÿZ ’ ,i� :�Ù IBM BASICA Declarations IBINIT1 ç i� :�ÙÙ IBINIT2 ç IBINIT1 é  :�Ù Lines 1 through 6 MUST be included in your program.õ à "bib.m",IBINIT1Š ³ IBINIT1(IBFIND,IBTRG,IBCLR,IBPCT,IBSIC,IBLOC,IBPPC,IBBNA,IBONL,IBRSC,IBSRE,IBRSV,IBPAD,IBSAD,IBIST,IBDMA,IBEOS,IBTMO,IBEOT,IBRDF,IBWRTF)0 ³ IBINIT2(IBGTS,IBCAC,IBWAIT,IBPOKE,IBWRT,IBWRTA,IBCMD,IBCMDA,IBRD,IBRDA,IBSTOP,IBRPP,IBRSP,IBDIAG,IBXTRC,IBRDI,IBWRTI,IBRDIA,IBWRTIA,IBSTA%,IBERR%,IBCNT%)€� ************** END DECLARATIONS FOR GPIB INTERFACE **********************­d:�Ù CHA42.BAS Version 1.0 8 March 85ðn:�Ù Copyright (c) 1984, Tektronix, Inc. All rights reserved.7x:�Ù---------------------------------------------------------------|‚� * 'begin initializationsšŒBD%ç: DEV%ç: RD$çÿ˜(ÿ)è–BD$ç"gpib0": ³ IBFIND(BD$,BD%) :�Ùset up GPIB interface board 0- ³ IBSIC(BD%) :�ÙSend Interface ClearxªDEV$ç"T7D20": ³ IBFIND(DEV$,DEV%) :�Ùset up Tek 7D20 on board 0¶´À :�Ùclear screenÞ¾� * begin interaction with operatorÈ‘ Î)"GPIB TALKER/LISTENER" :�Ùprogram titlecÒ‘ "This program talks and listens to one instrument at a time using ";¤Ü‘ "its GPIB address." " The terminator is EOI by default."Àæ‘:‘ Î) "INSTRUCTIONS"øð‘ "1. finish each entry by pressing the ENTER key."0ú‘ "2. at T/L/C/E ? enter T to Talk to a device"h‘ " L to Listen to a device"ž‘ " C to Change addresses"Ö‘ " E to End the program"ç"‘:‘ "BEGIN:",‘ "enter PRIMARY ADDRESS ";,6‘ "(0-31, any other # to End):";o@… ADPRI% :�ÙGET PRIMARY ADDRESSµJ‹ ADPRI% è ï ADPRI%æ Í Ö :�Ù quit if addr not validýT³ IBPAD(DEV%,ADPRI%) :�Ù send addr to GPIB cardJ^…; "T/L/C/E ? :",TL$  :�ÙPROMPT OPERATOR FOR OPERATION‡h‹ TL$ç"t" ï TL$ç"T" Í � :�Ù am I to Talk?Ær‹ TL$ç"l" ï TL$ç"L" Í ¤ :�Ù am I to Listen?|‹ TL$ç"c" ï TL$ç"C" Í " :�Ù am I to Change addresses?U†‹ TL$ç"e" ï TL$ç"E" Í Ö :¡ æ :�Ù am I to End the program?š�‘ " ";:… "STRING TO SEND:" ,A$ :�ÙTALK ROUTINE. Get commandãš³ IBWRT(DEV%,A$) :‰ ^ :�Ù write to GPIB device & rtn,¤RD$çÿ˜(ÿ) :�ÙLISTEN ROUTINE. Set up RD$x®³ IBRD(DEV%,RD$) :�Ù read GPIB unit DEV% to RD$¸‘ " ";IBCNT%;"char rcvd:"; :�Ù print rcvd message length ÂRD1$çÿ�(RD$,IBCNT%) :�Ù remove trailing blanksTÌ‘ RD1$: ‰ ^ :�Ù print rcvd message & return"–Ö³ IBLOC (DEV%) :�ÙEND. Go to Local.¯à‘:‘:‘ "Go to Local";ñê‘ " (last addressed device responds to manual control again)"2ô‘ "PROGRAM ENDED":‘ :�Ù program end messagesYþ‘ "type RUN to restart program"~‘ "type SYSTEM to return to DOS"„�Æ+æƒÄ ]ÃUƒìr;&wéƒ÷‹ì‹6èŠ0ä»lSPè‹å…ÀxÿèëäƒÄ]ÃUƒìr;&wéQ÷‹ìÇF‹v ‚<tÿF Š0ä;F u‹FƒÄ]ÃÿFë߸ÿÿƒÄ]ÃUƒìr;&wé÷‹ì¸oPÿvè¦ÿ‹å…Ày3Ûë3ÛC‹ÃƒÄ]ÃUƒìr;&wéãö‹ì‹F= ~ =~3À@ë3ÀƒÄ]ÃUƒìr;&wé¹ö‹ìƒ~.tÿvè¹ÿ‹å…Àt ÿvè~ÿ‹å…Àt3Àë3À@ƒÄ]ÃUƒìr;&wé~ö‹ìÇF‹F‹^;Ø~.‹ðŠœx0ÿŠN 0í;Ù‰Nt Š„x0ä ;Èu‹FƒÄ]ÃÿFëȸÿÿƒÄ]ÃU‹ìèw]ÃUƒìr;&wé ö‹ìƒ>Rtƒ>Pt ÿv¸‰PèX ‹åƒÿN :�Ù TPG.BAS Version 1.0 25 January 1985�:�Ù Copyright (C) 1985, Tektronix, Inc. All rights reserved.Ê:�Ù See Section 7 of the GURU manual for documentationc:�Ù----------------------------------------------------------------------Rd ’ ',i� :�Ù initialize for GPIB interfaceon IBINIT1 ç i��x IBINIT2 ç IBINIT1 é «‚ à "bib.m",IBINIT1@Œ ³ IBINIT1(IBFIND,IBTRG,IBCLR,IBPCT,IBSIC,IBLOC,IBPPC,IBBNA,IBONL,IBRSC,IBSRE,IBRSV,IBPAD,IBSAD,IBIST,IBDMA,   IBEOS,IBTMO,IBEOT,IBRDF,IBWRTF)æ– ³ IBINIT2(IBGTS,IBCAC,IBWAIT,IBPOKE,IBWRT,IBWRTA,IBCMD,IBCMDA,IBRD,IBRDA,IBSTOP,IBRPP,IBRSP,IBDIAG,IBXTRC,IBRDI,IBWRTI,IBRDIA,IBWRTIA,IBSTA%,IBERR%,IBCNT%)7 :�Ù-------------------------------------------------------------------------Wª:�Ù definition of variables�´† A$(ç) :�Ùprocedure bufferȾBEEEP%çê :�Ùbeeper flag 0=off=false -1=on=trueòÈELF%ç :�Ùerror log flag!ÒDONE%ç :�Ùprocedure done flagMÜSS%ç :�Ùsingle step flag–æFAIL%ç :�Ùoperator input, numeric or ascii test failureÂðPASSç :�Ùprocedure PASS #÷úP%ç :�Ùindex to procedure buffer)NG%ç :�Ùnumber of GPIB deviceseRE$ç"" :�Ùanticipated response from deviceœRV$ç"" :�Ùactual response from deviceÀ"F$ç"" :�Ùfilenameè,I$ç"" :�Ùinput string6R$ç"" :�Ùrename stringA@DEVICE$ç""  :�Ùlast device accessedjJX%ç :�Ùtemp variable“TY%ç :�Ùtemp variableÅ^:�Ù also see standard definitions in DECL.BASh:�Ù-------------------------------------------------------------------------g|:�Ù-------------------------------------------------------------------------’†À :�Ù main menu display and dispatcherÕ�‘ " TPG.BAS V1.0 - a test procedure generator in BASICÛš‘á¤‘ó®‘ "MAIN MENU:ù¸‘+‘" (1) Create a new procedureYÌ‘" (2) Modify a procedure_Ö‘Žà‘" (3) Execute a procedureÁê‘" (4) Single step a procedureÇô‘üþ‘" (5) List available procedures*‘" (6) Rename a procedureX‘" (7) Delete a procedure^‘ƒ&‘" (8) Utilitiesµ0‘" (9) Quit - return to BASIC»:‘ÁD‘ÙN… "Selection:";SEL% X• SEL% � v,&,ü, ,,j,Ä,2,Àb‰ †el:�Ù-------------------------------------------------------------------------„vÀ:‘"Create a new procedure€‹ A$()ç"" Í ž :�Ùif prodedure in buffer then delete itùŠ‘:…"Have you saved the current procedure (y/n)";I$@”‹ (ÿ�(I$,)èæ"y") î (ÿ�(I$,)èæ"Y") Í Ž :�Ùmake them save it if noFž‘d¨DONE%ç::�Ùinit done flagƒ²P%ç::�Ùreset step pointer¨¼‘ "Please wait - clearing bufferÊÆA$(P%)ç"" :�Ùclear first stepЋ A$(P%é)èæ"" Í A$(P%)ç"":P%çP%é:‰ Ð::�Ùclear rest of bufferÚ‘ "done";äP%ç :�Ùreset step pointerAî‘_ø� >::�Ùdefine resources—‹ DONE% Í Ž::�Ù there was an error in def resources¹ � V::�Ùbuild a command stepæ‹ Ó DONE% Í   :�Ùloop till end command � Þ::�Ùstore procedure *ŽZ4:�Ù-------------------------------------------------------------------------Ž>‘"First, we need to define the system resources”H‘ÀR…"how many devices are on the GPIB";NG%Æ\‘ùf‹ NG%æ Í ‘ "more than 16, not allowed":‰ > p‚ Qç Ì NG%z‘"Device #";Q7„…"What is it's name";N$FŽDEVICE$çN$L˜‘c¢A$(P%)ç"f "éN$é" "”¬� Œ :�Ù test to see if device is installed¶P%çP%é :�Ùupdate pointer for next deviceÊÀƒ QÐÊŽ!Ô:�Ù-------------------------------------------------------------------------UÞÀ :�Ùsave the procedure currently in the buffer›è… "name of procedure - (default=no save) or (d:filename.pro):";F$«ò‹ F$ç"" Í Žíü‹ Ø(,F$,".")ç Í F$çF$é".pro" :�Ùadd extension if none there º F$ ‚ OUTPUT AS # :�Ùopen disk file8 P%ç :�Ùstart from beginning^ · #,A$(P%) :�Ùput it out on disk| $P%çP%é :�Ùupdate pointer¥ .‹ A$(P%)èæ"" Í  :�Ùtest for z endÀ 8» # :�Ùclose the fileÆ BŽ!L:�Ù-------------------------------------------------------------------------B!VÀ:‘"step #";P% :�Ùprint the build menuH!`‘z!j‘"What function do you want this step to do?"€!t‘°!~‘" (P) Print a message to the operatorö!ˆ‘" * (W) Wait for operator input: (y)es (n)o (Q)uit or [enter]ü!’‘'"œ‘" (S) Send a command to a deviceT"¦‘" * (N) Numeric acquisition and test†"°‘" * (A) ASCII string acquisition and testŒ"º‘À"Ä‘" (D) Delay for a given number of secondsÆ"Α #Ø‘" (B) Branch to step #___ conditional or non-conditional4#â‘" (C) Chain to another procedure:#ì‘o#ö‘" (E) End procedure - return to main menu.u#‘³# ‘" * These input commands control the branch condition.¹#‘Ê#‘"function:"$(X%çØ(" pwsnadbcePWSNADBCE",Þ)ê :�Ùdo the request$2‹ X%è Í (&$<‹ X%æ Í X%  çX%êU$F• X% � n,J,Œ,È,®,,^,ê,@a$PP%çP%ég$Zޏ$d:�Ù-------------------------------------------------------------------------è$n° …" What is the message:";M$ :�Ù P commandû$xA$(P%)ç"p "éM$%‚Ž4%Œ…"device";DE$ :�Ù S command^%–‹ DE$ç"" Í DE$çDEVICE$ :¡ DEVICE$çDE$r% …"command:";CO$Ž%ªA$(P%)ç"s "éDE$é" "éCO$©%´� h ::�Ù test command¯%¾Žæ%È:�Ùget a measurement N commandù%Ò…"device:";DE$#&Ü‹ DE$ç"" Í DE$çDEVICE$ :¡ DEVICE$çDE$?&æ…"expected result:";RE$Y&ð…"tolerance (x%)";TL$}&úA$(P%)ç"n "éDE$é" "éRE$é" "éTL$’&� ® :�Ùtest it˜&ŽÏ&:�Ù delay D commandú&"… " enter delay period (seconds):";DL$',A$(P%)ç"d "éDL$'6ŽF'@DONE%çê:A$(P%)ç"e":Ž :�Ù E command}'JA$(P%)ç"w" :�ÙW commandƒ'TŽº'^:�Ùbranch B command÷'h…"branch on input (P)ass=yes (F)ail=no or (A)lways ";TY$(r‹ ÿ•(TY$)èa Í TY$çÿ–(ÿ•(TY$)é )0(|‹ TY$ç"" Í rC(†…" step #";ST$V(�‹ ST$ç"" Í †r(šA$(P%)ç"b "éTY$é" "éST$x(¤Žª(®… "device";DE$ :�Ù A commandÔ(¸‹ DE$ç"" Í DE$çDEVICE$ :¡ DEVICE$çDE$ö(° … "expected response: ";RE$)ÌA$(P%)ç"a "éDE$é" "éRE$,)Ö�  :�Ùtest command2)àŽ^)ê… "procedure name (d:filename.pro):";F$n)ô‹ F$ç"" Í Ž‘)þ‹ Ø(,F$,".")ç Í F$çF$é".pro"¤)A$(P%)ç"c "éF$ª)Žû):�Ù-------------------------------------------------------------------------*&À:‘ "modify a procedure-*0EF%ç::�Ùend flag3*:‘Y*D‘ " (I) Insert a step*N‘ " (D) Delete a step¦*X‘ " (R) Replace a step¬*b‘ä*l‘ " (L) List procedure in internal formê*v‘+€‘ " (S) Save this procedure+Š‘O+”‘ " (Q) Quit - return to main menuU+ž‘i+¨‘ " Selection:"‡+²X%çØ(" idrlsqIDRLSQ",Þ)ê˜+¼‹ X%è Í ²­+Æ‹ X%æ Í X%çX%êÐ+Е X% � î,\,Ž,À,Þ,¶Þ+Ú‹ EF% Í Žè+ä‰ : ,î‘:…" enter step # to insert:";P%,øPTEMP%çP%E,‘:‘"Please wait - preparing to insertO, F$ç""_,¤ F$,A$(P%)k, P%çP%é~,*‹ F$èæ"" Í Œ,4P%çPTEMP%™,>DONE%çê£,H� `©,RŽÎ,\‘:… "enter step # to delete:";P%ù,f‘:‘ "please wait - deleting step #";P% -pA$(P%)çA$(P%é)-zP%çP%é4-„‹ A$(P%)ç"" Í Ž :¡ pZ-Ž‘:… "enter step # to replace:";P%g-˜DONE%çêq-¢� `w-¬Ž„-¶EF%çê:Ž�-ÀP%ç´-Ê‘ " Ä-Ô‘ P%,A$(P%)ö-Þ‹ A$(P%)ç"" ï A$(P%)ç"e" Í Ž :¡ P%çP%é:‰ Ôü-èŽM.ò:�Ù-------------------------------------------------------------------------s.ü:�Ù this is the main execute loopš. I$ç"":SS%ç :�Ùdisable single stepè. À:…"What procedure to execute -(default=no load) or (d:filename.pro):";F$ú. ‹ F$ç"" Í ~ /$ ‹ Ø(,F$,".")ç Í F$çF$é".pro"0/. º F$ ‚ … AS #J/8 P%ç::�Ùreset pointerP/B ‘i/L ‘"loading procedure"y/V … #,A$(P%)…/` P%çP%é®/j ‹ ÿ£() Í ‘"loading complete" :¡ V ·/t » #½/~ ‘ø/ˆ ‹ ELF% Í …"error log file (d:filename.elf):";F$ :¡ ° 0’ ‹ F$ç"" Í ELF%ç00œ ‹ Ø(,F$,".")ç Í F$çF$é".elf"Q0¦ ‹ ELF% Í º F$ ‚ OUTPUT AS #l0° ‘:‘"starting execution‡0º PASSç::�Ù init pass #²0Ä P%ç::�Ùreset pointer to first commandÑ0Î DONE%ç::�Ùdone flag resetó0Ø � 2 ::�Ùexecute current line 1â ‹ P%ç Í PASSçPASSé&1ì P%çP%é::�Ùnext line:1ö ‹ ÿ’(Þ)ç Í  p1 ¿ ,:… " (Q)uit or [enter] to continue";F$:¿ ,ˆ1 ‹ F$ç"q" Í DONE%çê¤1 ‹ DONE% Í » #:Ž :¡ Ø Û1 SS%çê:‰  ::�Ùset single step flag for execution,2( :�Ù-------------------------------------------------------------------------o22 ‘ "pass #";PASS,þŽ,"step#";P%,A$(P%) :�Ùheart of tpg execution½2< ‹ SS% Í … "Single Step pause - [Q]uit or [enter] to execute this step";I$×2F ‹ I$ç"q" Í DONE%çê:Žô2P ‹ A$(P%)ç"" Í DONE%çê:Ž 3Z F$çÿ�(A$(P%),)::�Ùisolate the functionP3d X%çØ(,"fpwsnadebc",F$)::�Ùgive it a numberƒ3n • X% � Œ ,æ , ,h ,® , ,Š ,Æ ,Ú ,¢ ‰3x ŽÚ3‚ :�Ù-------------------------------------------------------------------------4Œ X%çØ(,A$(P%)," ") :�Ù verify device specified is installed84– BDNAME$çÿƒ(A$(P%),,X%ê)R4  ³ IBFIND(BDNAME$,BD%)n4ª ‹ BD%è Í DONE%çê :¡ Žt4´ ‘Ÿ4¾ ‘"ERROR - ";BDNAME$;" is not installed×4È ‘" You need to use IBCONF and reboot to add deviceü4Ò … "press [enter] to continue";I$5Ü Ž5æ ‘"operator message:"&5ð ¿ ,95ú ‘ ÿƒ(A$(P%),)C5 ¿ ,I5 ŽZ5 ‹ BEEEP% Í Å~5" FAIL%ç :�Ùclear condition flagˆ5, ¿ ,»56 …"[y]es [n]o [Q]uit [enter] to continue";I$Å5@ ¿ ,ò5J ‹ ÿ�(I$,)ç"N" ï ÿ�(I$,)ç"n" Í FAIL%çê 6T ‹ I$ç"q" Í DONE%çê6^ Ž)6h :�ÙCommand t   o deviceM6r � Œ ::�Ùopen and verify deviceo6| ‹ DONE% Í Ž::�Ù exit if error¢6† WRT$çÿƒ(A$(P%),X%é) :�Ùfind command in bufferÄ6� ³ IBWRT(BD%,WRT$) :�Ù send itÚ6š ‹ IBSTA%æç Í ¤ 7œ ‘ "GPIB ERROR - device is installed but not on-line!":Å.7ž ‚ QP%ç Ì Ü:ƒ QP%47¤ Ž`7® :�ÙPRINT "Get a measurement and test itl7¸ FAIL%ç�7 � Œ ::�Ùopen and verify device²7Ì ‹ DONE% Í Ž::�Ù exit on errorô7Ö Y%çØ(X%é,A$(P%)," ") :�Ù parse command string for parameters8à REçÿ”(ÿƒ(A$(P%),X%,Y%êX%é)).8ê TLçÿ”(ÿƒ(A$(P%),Y%))[8ô RV$çÿ˜() :�Ùprovide space for responseŒ8þ ³ IBRD(BD%,RV$) :�Ùread response from device¢8 ‹ IBSTA%æç Í  Þ8 ‘ "GPIB ERROR - device is installed but not on-line!":Åö8 ‚ QP%ç Ì Ü:ƒ QP%9 RVçÿ”(RV$) :�Ùturn into a number[9 ‹ RVèæ Í : :�Ùparse it (strip ascii header) if necessary‰9& ‹ ÿ’(RV$)æ Í RV$çÿƒ(RV$,) :¡ RVç:‰ : “90 ‰  º9: ¿ ,:‘ RV:¿ , :�Ùprint resultsç9D ‹ REæç î RVèREê(REëTLë ×#z) Í FAIL%çê:N ‹ REè î RVæREê(REëTLë ×#z) Í FAIL%çê@:X ‹ REæç î RVæREé(REëTLë ×#z) Í FAIL%çêl:b ‹ REè î RVèREé(REëTLë ×#z) Í FAIL%çê…:l ‹ BEEEP% î FAIL% Í ÅÑ:v ‹ FAIL% î ELF% Í · #,þŽ,þ�,ÿ“(PASS),ÿ“(P%),A$(P%),ÿ“(RE),ÿ“(TL),ÿ“(RV)×:€ Žä:Š :�Ùdelayü:” X%çÿ”(ÿƒ(A$(P%),)) ;ž ‚ Q%ç Ì X%6;¨ ‚ DELAY%ç Ì  :ƒ :�Ùdo nothing loop<;² ƒB;¼ ŽO;Æ DONE%çêU;Ð Ž�;Ú ‹ ÿƒ(A$(P%),,)ç"f" î FAIL% Í P%çÿ”(ÿƒ(A$(P%),))ê:ŽÍ;ä ‹ ÿƒ(A$(P%),,)ç"p" î Ó FAIL% Í P%çÿ”(ÿƒ(A$(P%),))ê:Ž<î ‹ ÿƒ(A$(P%),,)ç"a" Í P%çÿ”(ÿƒ(A$(P%),))ê:Ž<ø ŽW< :�Ù-------------------------------------------------------------------------v< :�Ù verify response stringŠ< FAIL%ç:TL$ç" "¬< � Œ ::�Ù verify if device okË<* ‹ DONE% Í Ž :�Ùexit if badý<4 RE$çÿƒ(A$(P%),ÿ’(BDNAME$)é) :�Ùfind argument=> RV$çÿ˜(ÿ) :�Ùmake space9=H ³ IBRD(BD%,RV$) :�Ùread itO=R ‹ IBSTA%æç Í \ ‹=T ‘ "GPIB ERROR - device is installed but not on-line!":Å£=V ‚ QP%ç Ì Ü:ƒ QP%æ=\ RV$çÿ�(RV$,ÿ’(RE$)) :�Ùfind data interested in - length of re$>f ‹ RE$èæRV$ Í FAIL%çê,>p ¿ ,:‘ RE$,RV$:¿ , :�Ùprint resultsE>z ‹ FAIL% î BEEEP% Í Å‰>„ ‹ FAIL% î ELF% Í · #,þŽ,þ�,ÿ“(PASS%),ÿ“(P%),A$(P%),RE$,TL$,RV$�>Ž Ž•>˜ Žª>¢ :�Ùchain command¾>¬ F$çÿƒ(A$(P%),)Ñ>¶ º F$ ‚ … AS #Ú>À P%ç?Ê … #,A$(P%) :�Ùload new procedure?Ô P%çP%é(?Þ ‹ ÿ£() Í » # :¡ Ê 2?è P%çê8?ò މ?ü :�Ù-------------------------------------------------------------------------¬?À:‘ "List available procedures²?‘Î?… "drive (A or B):";DR$å?$‹ DR$ç"" Í DR$ç"b"õ?.DR$çDR$é":"ÿ?8‘ DR$ @Bþ� DR$(@L…"[enter] to continue";I$.@VŽ@`:�Ù-------------------------------------------------------------------------š@jÀ:‘"Rename a procedure @t‘Ð@~…"procedure to rename (d:filename.pro):";F$ó@ˆ‹ Ø(,F$,".")ç Í F$çF$é".pro",A’…"new name for above procedure (d:filename.pro):";R$OAœ‹ Ø(,R$,".")ç Í R$çR$é".pro"_A¦þ„ F$ AS R$eA°޶Aº:�Ù-------------------------------------------------------------------------ÑAÄÀ:‘"Delete a procedure×AΑBØ…"name of procedure to delete (d:filename.pro):";F$Bâ‘8Bì‹ Ø(,F$,".")ç Í F$çF$é".pro"LBö‘"deleting ";F$RB‘kB …" ARE YOU SURE?";I$†B‹ ÿ�(I$,)ç"y" Í þ‡ F$ŒBŽÝB(:�Ù-------------------------------------------------------------------------ðB2À:‘ "UtilitiesúB<EF%çCF‘8CP‘ " (B) Beep ON/OFF currently ";BCZ¿ ,aCd‹ BEEEP% Í ‘"ON" :¡ ‘"OFF"kCn¿ ,qCx‘©C‚‘ " (E) Enable error log currently ";³CŒ¿ ,ÑC–‹ ELF% Í ‘"ON" :¡ ‘ "OFF"ÛC ¿ ,Dª‘ " (D) Display error log1D´‘ " (S) Summarize error log7D¾‘vDÈ‘ " (L) List current procedure file to printer®DÒ‘ " (P) Print error log file to printer´DÜ‘çDæ‘ " (Q) Quit - return to main menuíDð‘Eú‘ " Selection:";"EX%çØ(" bedslpqBEDSLPQ",Þ)ê3E‹ X%è Í HE‹ X%æ Í X%çX%êoE"• X% � 6,J,^,à,Æ, ,žE,‹ EF% Í Ž :¡ 2 :�Ùloop til quitting timeÝE6‹ BEEEP% Í BEEEP%ç :¡ BEEEP%çê :�Ùturn beeper off and onãE@Ž!FJ‹ ELF% Í ELF%ç :¡ ELF%ç :�Ùturn error logging on or off'FTŽKF^À :�Ùdisplay the error log fileuFh…"error log file (d:filename.elf)";F$…Fr‹ F$ç"" Í Ž¨F|‹ Ó Ø(,F$,".") Í F$çF$é".elf"»F†º F$ ‚ … AS #ÍF�‹ ÿ£() Í ¸öFš… #,TI$,DA$,PA$,ST$,FU$,RE$,TL$,RV$8G¤‘ TI$;" ";DA$;" ";PA$;" ";ST$;" ";FU$;" ";RE$;" ";TL$;" ";RV$LG®‹ Ó ÿ£() Í šXG¸‘ "eof"aG» #†GÌ… "press [enter] to continue";I$ŒGÖŽÇGàÀ:… "error log file to summerize (d:filename.elf):";F$×Gê‹ F$ç"" Í ŽùGô‘:… "reference step #";RSTEP% Hþ‹ F$ç"" Í ŽBHCOUNT%ç:TOTALç:MA  Xçê˜vÿ:MINç˜vÿ :�Ùinit valueseH‹ Ø(,F$,".")ç Í F$çF$é".elf"xHº F$ ‚ … AS #ŠH&‹ ÿ£() Í ¨¿H0… #,TI$,DA$,PA$,ST$,FU$,RE$,TL$,RV$ :�Ùget infoìH:‹ RSTEP%ç ï RSTEP%çÿ”(ST$) Í D :¡ lIDCOUNT%çCOUNT%é :�Ùdo stats on file,INTOTALçTOTALéÿ”(RV$)YIX‹ MAXèÿ”(RV$) Í MAXçÿ”(RV$):MAXTIME$çTI$†Ib‹ MINæÿ”(RV$) Í MINçÿ”(RV$):MINTIME$çTI$ªIl‹ Ó ÿ£() Í 0 :�Ùloop til endÌIv‘ "number of samples:";COUNT%áI€‹ COUNT%ç Í ¨ JŠ‘ "average value: ";TOTALìCOUNT%7J”‘ "maximum value:  ";MAX,"at ";MAXTIME$eJž‘ "minimum value: ";MIN,"at ";MINTIME$ŠJ¨… "press [enter] to continue";I$“J²» #™J¼ŽÏJÆ‘:… "Is the printer ready:";I$ :�Ùprint procedureáJЋ I$èæ"y" Í ŽúJÚP%ç:º "lpt1:" AS #%Kä‘ #," "JKî‹ A$(P%)ç"" Í ‘ #,"EOF ":» #:Ž]Kø‘ #,P%,A$(P%)iKP%çP%ésK ‰ îˆKEF%çê:Ž :�ÙquitŽK ÀÃK*… "error log file to print (d:filename.elf):";F$ÓK4‹ F$ç"" Í ŽöK>‹ Ø(,F$,".")ç Í F$çF$é".elf"LH‘:…"Is the printer ready:";I$*LR‹ I$èæ"y" Í Ž>L\º "lpt1:" AS #QLfº F$ ‚ … AS #§Lp‘ #,"