Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site gloria.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!whuxlm!whuxl!houxm!mhuxt!mhuxr!ulysses!allegra!mit-eddie!think!harvard!seismo!rochester!rocksanne!sunybcs!gloria!colonel From: colonel@gloria.UUCP (Col. G. L. Sicherman) Newsgroups: net.sources Subject: clear for vax/vms Message-ID: <820@gloria.UUCP> Date: Mon, 10-Jun-85 14:35:39 EDT Article-I.D.: gloria.820 Posted: Mon Jun 10 14:35:39 1985 Date-Received: Thu, 13-Jun-85 03:12:01 EDT Distribution: net Organization: SUNY-Buffalo Computer Sci. Lines: 73 This program clears the screen under VAX/VMS. I haven't figured out how to suppress the error message that says there are no error messages. ----- /* * clear the screen. (why is there no command for this?) * Col. Sicherman. 10 Jun 1985. */ #define BUFLEN 18 #define SMG$K_ERASE_WHOLE_DISPLAY 474 #include #include #include #include char *outname = "sys$output"; struct dsc$descriptor_s stringp; main() { short int chan; long int s, termtype, event, retlen, termtable, x, y; char databuf[BUFLEN]; stringp.dsc$b_dtype = 1; stringp.dsc$b_class = DSC$K_DTYPE_T; stringp.dsc$a_pointer = outname; stringp.dsc$w_length = strlen(outname); s = sys$assign(&stringp, &chan, 0,0); if (!(1&s)) { fprintf(stderr, "CLEAR: ERROR %ld IN ASSIGNING SYS$OUTPUT\n",s); exit(1); } x = DVI$_DEVTYPE; s = lib$getdvi(&x, &chan, 0, &termtype); if (!(1&s)) { fprintf(stderr,"CLEAR: CANNOT GET DEVICE TYPE\n"); exit(1); } s=smg$init_term_table_by_type(&termtype, &termtable); if (!(1&s)) { fprintf(stderr,"CLEAR: UNKNOWN TERM TYPE\n"); exit(1); } x = SMG$K_ERASE_WHOLE_DISPLAY; y = BUFLEN; s = smg$get_term_data(&termtable, &x, &y, &retlen, databuf, 0); if (!(1&s)) { fprintf(stderr,"CLEAR: CANNOT GET CLEAR SEQUENCE\n"); exit(1); } if (!retlen) { fprintf(stderr,"CLEAR: NO CLEAR SEQUENCE\n"); exit(1); } s = LIB$GET_EF(&event); if (!(1&s)) { fprintf(stderr,"CLEAR: CANNOT GET EVENT FLAG\n"); exit(1); } s = SYS$QIOW(event,chan, IO$_WRITEVBLK,0,0,0,databuf,retlen,0,0,0,0); if (!(1&s)) { fprintf(stderr, "CLEAR: ERROR %ld IN WRITING\n",s); exit(1); } s = LIB$FREE_EF(&event); if (!(1&s)) { fprintf(stderr,"CLEAR: CANNOT FREE EVENT FLAG\n"); exit(1); } exit(0); } -- Col. G. L. Sicherman ...{rocksvax|decvax}!sunybcs!colonel