Annotation of cci/d/ioex/v_ex.c, revision 1.1.1.1

1.1       root        1: 
                      2: #include "vioc.h"
                      3: #include "conf.h"
                      4: #include "const.h"
                      5: #include "pte.h"
                      6: 
                      7: #define  ON            0x80
                      8: #define  OFF           0
                      9: #define         LOOPBK         0
                     10: #define         ECHO           1
                     11: 
                     12: #define  MAXPORT       16
                     13: #define  MAXRLEN       50
                     14: #define  MAXSLEN       256
                     15: #define  HEAD          "\n\r\t** VIOC test **\n"
                     16: #define  PORT          "\rlogical port no "
                     17: #define  NL            writec('\n')
                     18: 
                     19: #define  TST_STR       "1234567890abcdefghigklmnopq"
                     20: 
                     21: extern long log_p0, log_pn;
                     22: extern char port_on[];
                     23: 
                     24: 
                     25: /*     Routine to exercise VIOC :
                     26:        (1) print a heading message to all terminals on VIOC
                     27:        (If receive Unsolicited interrupt from VIOC, dump silos)
                     28: */
                     29: v_ex()
                     30: {      long register pno, error;
                     31:        char no;
                     32: 
                     33:        writes("\n\t** VIOC test **\n");
                     34:        writes("start testing...\n");
                     35:        for(pno=log_p0; pno<=log_pn; pno++) {
                     36:                if (port_on[pno-1]) {
                     37:                        pstr(pno,HEAD);         /* Print heading to port */
                     38:                        pstr(pno,PORT);
                     39:                        if (pno>9) { pchar(pno,'1');
                     40:                                     pchar(pno,pno-10+'0');
                     41:                                   }
                     42:                                else pchar(pno,pno+'0'); 
                     43:                        pchar(pno,'\n');
                     44: 
                     45:                        v_autol(pno,ON,AUTOLP); /* Set auto loop back */
                     46:                        pstr(pno,TST_STR);      /* sent test string to port */
                     47:                        }
                     48:                }
                     49:        error = 0;
                     50:        for(pno=log_p0; pno<=log_pn; pno++) {
                     51:                if (port_on[pno-1])  {
                     52:                        if (chk_port(pno)) error++;
                     53:                        v_autol(pno,OFF,AUTOLP);  /* Disable auto loop back */
                     54:                        }
                     55:                }
                     56:        writes("\nDone with "); writeh(error); writes(" errors\n");
                     57: }
                     58: 
                     59: 
                     60: chk_port(pno)
                     61: long pno;
                     62: {
                     63:        register long strlen, ix, error;
                     64:        char *cptr, *tst_str, rd_str[100], port;
                     65:        char get1c(), ce, ca;
                     66: 
                     67:        writes("\nchecking port "); writed(pno);
                     68:        tst_str = cptr = TST_STR;
                     69:        for(strlen=0; cptr[strlen] != NULL; strlen++);          /* Get length */
                     70:        error = 0;
                     71:        port = '0';
                     72:        for(ix=0; ix<strlen; ix++) {
                     73:                rd_str[ix] = get1c(pno);        /* read them back */
                     74:                if (rd_str[ix]==(char)0xff) {
                     75:                        writes("\nbuffer ");
                     76:                        writec((char)port+pno); writes(" empty");
                     77:                        error++;
                     78:                        break;
                     79:                        }
                     80:                ca = ((long)rd_str[ix] & 0x7f);         /* 7 bit ASCII */       
                     81:                ce = ((long)tst_str[ix] & 0x7f);
                     82:                if (ce != ca) {
                     83:                        writes("\n** P");writed(pno);
                     84:                        writes("  expected : "); writeh(ce); 
                     85:                        writes("   *** actual : "); writeh(ca);
                     86:                        error++;
                     87:                        break;
                     88:                        }
                     89:                }
                     90: out:
                     91:        pstr(pno,"\n\rdone\n\r");
                     92:        return(error);
                     93: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.