Annotation of cci/d/pits/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  "0123456789abcdefghijklmnopqrstuvwxyz\
                     20: ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                     21: 
                     22: extern long log_first, log_last;
                     23: extern char port_on[];
                     24: extern long viocb[];
                     25: /*     
                     26:        Routine to exercise VIOC :
                     27:        (1) print a heading message to all terminals on VIOC
                     28:        (If receive Unsolicited interrupt from VIOC, dump silos)
                     29: */
                     30: v_ex(vno)
                     31: long vno;
                     32: {      long register pno, error;
                     33: 
                     34:        error = 0;
                     35:        NL;writes("\n4. Send/Receive Test ");NL; 
                     36:        for(pno=log_first; pno<=log_last; pno++) {
                     37:                v_autol(pno,OFF,AUTOLP);  /* Make sure no auto loop      */
                     38:                                          /* when we do not want it      */
                     39:                NL;writes("Port number ");writeh(pno-1);  
                     40:                switch (port_on[pno-1]) {
                     41:                case 0: {
                     42:                          writes("\tNOT TESTED, port is not on-line");NL;
                     43:                          break;
                     44:                        }
                     45:                case 1: {
                     46:                          pstr(pno,HEAD);
                     47:                          pstr(pno,PORT);
                     48:                          if (pno>10) { 
                     49:                                       pchar(pno,pno-11+'A');
                     50:                                     }
                     51:                          else pchar(pno,pno-1+'0'); 
                     52:                          pchar(pno,'\n');
                     53:                          writes("\tSet AUTO-LOOPBACK");NL;
                     54:                          v_autol(pno,ON,AUTOLP);
                     55:                          writes("\t\tSending message to port");NL;
                     56:                          if (pstr(pno,TST_STR))  {
                     57:                             DELAY(0x100000);/* wait for VIOC to receive LB */
                     58:                             writes("\t\tChecking LOOPBACK message");NL;
                     59:                             if (chk_port(pno)) error++;
                     60:                             }
                     61:                          else error++;
                     62:                          break;                
                     63:                        }
                     64:                case 2: {
                     65:                          writes("\tNOT TESTED, port did not initialize.");NL;
                     66:                          break;
                     67:                        }
                     68:                default:{
                     69:                          writes("\tNOT TESTED, unknown port status.");NL;
                     70:                        }
                     71:                }
                     72:        }
                     73: /*     writes("\n5. Misc Commands Test:\n\n");
                     74:        writes("\n\tRPARALX Command Test: ");
                     75:        if (!v_reqpar(pno)) writes("\n\t *** RPARLAX  Failed ***");     */
                     76:        writes("\nDone with "); writed(error); writes(" errors\n");
                     77: }
                     78: chk_port(pno)
                     79: long pno;
                     80: {
                     81:        register long strlen, ix, error;
                     82:        char *cptr, *tst_str, rd_str[100];
                     83:        char get1c(), ce, ca;
                     84: 
                     85:        tst_str = cptr = TST_STR;
                     86:        for(strlen=0; cptr[strlen] != NULL; strlen++);          /* Get length */
                     87:        error = 0;
                     88:        for(ix=0; ix<strlen; ix++) {
                     89:                rd_str[ix] = get1c(pno);        /* read them back */
                     90:                if (rd_str[ix]==(char)0xff) {
                     91:                /*      writes("\n    Port no: "); writeh(pno-1); NL;   */
                     92:                        writes("\t*** Can't find loop-back message ***\n");
                     93:                        error++;
                     94:                        break;
                     95:                        }
                     96:                ca = ((long)rd_str[ix] & 0x7f);         /* 7 bit ASCII */       
                     97:                ce = ((long)tst_str[ix] & 0x7f);
                     98:                if (ce != ca) {
                     99:                /*      writes("\n    Port no: "); writeh(pno-1); NL;   */
                    100:                        writes("\t*** Loop-back & sent message are");
                    101:                        writes(" not matched ***\n");
                    102:                        error++;
                    103:                        break;
                    104:                        }
                    105:                }
                    106: out:
                    107:        pstr(pno,"\n\rdone\n\r");
                    108:        return(error);
                    109: }

unix.superglobalmegacorp.com

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