;;;;;;;;;;;;;;;;;;; -*- Mode: Lisp; Package: Macsyma -*- ;;;;;;;;;;;;;;;;;;; ;;; (c) Copyright 1981 Massachusetts Institute of Technology ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (macsyma-module dover) ;;; to make it easy to queue plot files to the DOVER. (DEFMVAR $DOVARD_VIEWPORT '((MLIST) 1 7 1 7) "[XMIN,XMAX,YMIN,YMAX] in inches on the paper") (DEFUN ($DOVARD_VIEWPORT ASSIGN) (IGNORE VALUE) (IF ($LISTP VALUE) (DO ((L (CDR VALUE) (CDR L)) (J 0 (1+ J))) ((= J 4) (OR (NULL L) (MERROR "DOVARD_VIEWPORT list too long"))) (AND (NULL L) (MERROR "DOVARD_VIEWPORT list too short")) (OR (NUMBERP (CAR L)) (MERROR "DOVARD_VIEWPORT list element non-numeric: ~M" (CAR L)))) (MERROR "DOVARD_VIEWPORT must be a list"))) (defmfun $dovard_file (&optional (filename "dsk:.temp.;* .plot.") (output "* PRESS")) (setq filename ($filename_merge filename (status uname))) (IF (NOT (PROBEF FILENAME)) (MERROR "File for input ~M does not exist" FILENAME)) (setq output ($filename_merge output filename)) (let ((dovard-command-filename (TO-MACSYMA-NAMESTRING (mergef "* DOVARD" filename))) (dovard-output-filename OUTPUT) (STREAM)) (UNWIND-PROTECT (PROGN (SETQ STREAM (OPEN (MERGEF "* _DOVARD" DOVARD-COMMAND-FILENAME) 'OUT)) (MFORMAT STREAM "DSK:MACSYM;.PLOT PRESS~%~A~%~A~%1~%~S,~S,~S,~S~%~%" DOVARD-OUTPUT-FILENAME FILENAME (NTH 1 $DOVARD_VIEWPORT) (NTH 2 $DOVARD_VIEWPORT) (NTH 3 $DOVARD_VIEWPORT) (NTH 4 $DOVARD_VIEWPORT) ) (RENAMEF STREAM DOVARD-COMMAND-FILENAME)) (IF STREAM (CLOSE STREAM))) (MTELL "~%Calling DOVARD program, reply Y to its question.~%") (IF (PROBEF DOVARD-OUTPUT-FILENAME) (DELETEF DOVARD-OUTPUT-FILENAME)) (CALL-JOB "DOVARD" (CONCAT "@" DOVARD-COMMAND-FILENAME)) (IF (NOT (PROBEF DOVARD-OUTPUT-FILENAME)) (MERROR "Output file ~M not created" DOVARD-OUTPUT-FILENAME) `((MLIST) ,FILENAME ,DOVARD-OUTPUT-FILENAME)))) (DEFMFUN $DOVER_FILE (&OPTIONAL (FILENAME "")) (SETQ FILENAME ($FILENAME_MERGE FILENAME "DSK:.TEMP.;* PRESS" (STATUS UNAME))) (IF (NOT (PROBEF FILENAME)) (MERROR "File for input ~M does not exist" FILENAME)) (CALL-JOB "DOVER" FILENAME) FILENAME) (DEFUN CALL-JOB (JOB JCL) (VALRET (CONCAT ": At DDT LEVEL:" JOB " " JCL "î:JOB " (STATUS JNAME) "î:CONTINUE ")))