home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / e / e051 / 3.ddi / MAC / COMMAND.COM next >
Encoding:
Text File  |  1983-03-08  |  17.3 KB  |  369 lines

  1. ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷.)
  2.   (setq *recording* nil)
  3.   (setq *max-record-index* 31.)
  4.   (putvector *record-array* 0. nil))
  5.  
  6. ; *max-record-index* holds the maximum legal index for record-array
  7. ; so it and the following must be changed at the same time
  8.  
  9. (defun begin-record (pdata-matched* *p-name*
  10.           *variable-memory* *ce-variable-memory* *max-index*
  11.           *next-index* *size-result-array* *rest* *build-trace* *last*
  12.           *ptrace* *wtrace* *in-rhs* *recording* *accept-file* *trace-file* 
  13.           *write-file* *record-index* *max-record-index* *old-wm*
  14.           *record* *filters* *break-flag* *strategy* *remaining-cycles*
  15.       *wm-filter* *rhs-bound-vars* *rhs-bound-ce-vars* *ppline* 
  16.       *ce-count* *brkpts* *class-list* *buckets* *action-type*))
  17.  
  18. (declare$ !    FILE: sys$user:[gdw.opsl]createops.com;2
  19. $ !    LastEditDate = Tue Dec  4 00:04:37 1984    GDW
  20. $ ! 
  21. $ !  CREATEOPS.COM: This file will compile the common lisp ops source 
  22. $ !  (ops.lsp), then load the compiled code with several utilities and
  23. $ !  create a suspended image (OPS.SUS). When this image is resumed, using
  24. $ !  the command  LISP /RESUME=OPS.SUS , you will be in ops.
  25. $ !
  26. $ !  required files:
  27. $ !     OPS.LSP -- the 'common' common lisp ops source
  28. $ !    OPSENV.LSP --     several utilities, including key bindings for
  29. $ !            SPAWN/ATTACH to a dcl process, and ATTACH to 
  30. $ !                  an EMACS process named EMACS$<term> where <term>
  31. $ !            is the users terminal (line) name. The function (??)
  32. $ !            gives some aid on this. I suggest using LISP2 mode.
  33. $ !            ALSO includes Lisp functions to define (daytime) 
  34. $ !            which returns the time and date as a string.
  35. $ !
  36. $ !    source: sys$user:[gdw.opsl]bops.com;1
  37. $ !    EditDate = Mon Jul 16 18:27:26 1984    GDW
  38. $ ! 
  39. $ lisp/compile ops.lsp
  40. $ !
  41. $ !    source: sys$user:[gdw.opsl]sops.com;1
  42. $ !    EditDate = Wed Jul 18 18:48:43 1984    GDW
  43. $ ! 
  44. $ lisp 
  45. ()
  46. (load "ops.fas")
  47. (load 'opsenv)
  48.  
  49. (block saveit
  50.     (setq *ops-date* (daytime))
  51.     (suspend "ops")
  52.     (setq *top-level-prompt* "CLops: ")
  53.     (setq *EMACS-PROCESS-NAME* (CONCATENATE 'STRING "EMACS$" 
  54.                    (SYSTEM:REMOVE #\: (TERM))))
  55.     (setq *emacs-lisp-file* "SYS$LOGIN:LEDIT.TMP")
  56.     (terpri)
  57.     (princ "Welcome to Common Lisp Ops 0.9")
  58.     (terpri)
  59.     (princ "   Image Created ")
  60.     (princ *ops-date*)
  61.     (terpri)
  62.     (princ 
  63.     " ^C = Ops Break. ^Z = Lisp throw to previous command level. (??) help ")
  64.     (vms-keyboard-bindings))
  65. ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷;
  66. ;
  67. ;    VPS2 -- Interpreter for OPS5
  68. ;
  69. ;    Copyright (C) 1979, 1980, 1981
  70. ;    Charles L. Forgy,  Pittsburgh, Pennsylvania
  71. ;
  72. ;
  73. ;  Re-ported to vax/vms lisp GDW
  74. ;
  75. ;  Spice Lisp mods by Dario Giuse for Common Lisp on a Perq.
  76. ;
  77. ;  vax/vms common lisp mods by George Wood 
  78. ;
  79. ;  uses some common lisp mods by Jim Kowalski
  80. ; fix ppelm: curpos problem
  81. ; clops127.cl: vax/vms common lisp ops5 interpreter with 127 condition ele.
  82. ;
  83. ; Users of this interpreter are requested to contact
  84. ;
  85. ;    Charles Forgy
  86. ;    Computer Science Department
  87. ;    Carnegie-Mellon University
  88. ;    Pittsburgh, PA  15213
  89. ; or
  90. ;    Forgy@CMUA
  91. ; so that they can be added to the mailing list for OPS5.  The mailing list
  92. ; is needed when new versions of the interpreter or manual are released.
  93. ;
  94. ;  REPORT BUGS IN THIS VERSION TO:
  95. ;    George Wood
  96. ;    Computer Science Department
  97. ;    Carnegie-Mellon University
  98. ;    Pittsburgh, PA  15213
  99. ; arpanet : George.Wood@CMU-CS-A
  100.  
  101.  
  102. ;[ Add this entry to the front of the file ]
  103.  
  104. ; 7/6/84 George Wood
  105. ;  - Re-ported to vax/vms lisp
  106. ;  - UNINTERN for WRITE, REMOVE conditionalized using SHARPSIGN-MINUS VMS
  107. ;       compiler reacts badly to it.
  108. ;  - VMS-KEYBOARD-BINDINGS BLOCK INCLUDED IN SHARPSIGN-PLUS VMS CONDITIONAL
  109. ;  - started cleaning up old comments
  110. ;
  111. ; 6/22/84 Dario Giuse
  112. ;  - Replacing printline with format
  113. ;
  114. ; 6/21/84 Dario Giuse
  115. ;  - Replaced the system::macro business with a honest-to-god (defmacro).
  116. ;  - Rewrote getvector and putvector in sensible Common Lisp.
  117. ;
  118. ; 6/20/84 Dario Giuse
  119. ;  - Completely rewrote ops-acceptline. This is now working properly in Spice
  120. ;    Lisp, and since it only uses Common Lisp I believe it will work in any
  121. ;    Common Lisp installation. This version does not do any peek-char; it just
  122. ;    reads the whole line and works from there.
  123. ;  - Removed the now obsolete function span-char.
  124. ;
  125. ; 6/19/84 Dario Giuse
  126. ;  - Uncommented do-write
  127. ;  - Changed t to *standard-output* in several places.
  128. ;  - Added a force-output to ops-write, since lines without a Newline are not
  129. ;    printed by default in Spice Lisp (and many other Common Lisp
  130. ;    implementations). This should probably be done only for 
  131. ;    *standard-output*, not for all files.
  132. ;
  133. ; 6/8/84 Jcp
  134. ; Changed (setq *refracts* (delete (cons a b) *refracts*)) to
  135. ;         (setq *refracts* (spdelete (cons a b) *refracts*))
  136. ;
  137. ;         Also defined a new function called spdelete to delete things
  138. ;         from *refracts* properly. This fixes a bug where going back
  139. ;         and then forwards didn't fire the same rules.
  140. ;
  141. ;changes made by gdw
  142. ; Tue Jul 17 22:59:52 1984:
  143. ;     calls to fast-symeval replaced by calls to symbol-value 
  144. ;;;
  145. ; changed macro to system::macro to access buried fn OBSOLETE 
  146. ; put stuff to unexport & unintern the fns write & remove from 
  147. ;    user: package in clopxtra.cl
  148. ;; ADDED SETBREAK, DEFINE-KEYBOARD-AST FOR ^D --> OPS BREAK CHAR feb 8 84
  149. ; To make problems easy to find, I have marked comments with:
  150. ; ??? = possible problems
  151. ; @@@ = changes (kluges ? working modifications)
  152. ; ### commented out lines -- temporary hacks?
  153. ;
  154. ;; VERSION WITH 127 CONDITION ELEMENTS, NOT 64 -- Jan 13, 1984
  155. ;
  156. ;@@@ dec 8 83: added comma to list of skipped char in acceptline
  157. ;
  158. ; KNOWN & SUSPECTED PROBLEMS:
  159. ; see note-write below: This should be redone using packages, when
  160. ;    implemented.
  161. ; DECLARE's should be replaced with PROCLAIM's
  162. ; ACCEPTLINE doesn't work right in x0.4-0, due to peek-char bug in
  163. ;    that version. local kluges either redefine peek-char with
  164. ;    read-char & unread char or use XSEL's redefined acceptline, or both.
  165. ; possible problems with openfile/write: 
  166. ;    lisp sometimes doesn't think its a char output stream
  167. ; problems with remove (doesn't select top-level-remove, recognize *)
  168. ;    NOTE; this happens when execution is broken while in the rhs
  169. ;    of an ops rule -- to correct, (setq *in-rhs* nil)
  170. ;
  171. ; problem with (pm) ?    (not clear)
  172. ;
  173. ; CHANGES, MOST RECENT FIRST
  174. ; replaced dtpr with consp. (defun didn't work: 13 below)
  175. ; re-defined tyi @@@ (kowalski's didn't work)
  176. ; replaced "(times " with "(* "        ))
  177. ; replaced "(greaterp " with (> " (all had 2 args)))
  178. ; defined infile as open input:
  179. ; defined outfile as open output:
  180. ; kluged do-tabto and do-rjust, to avoid messing with flatc & nwritn/
  181. ;    \these kluges are terrible, but should have only cosmetic effects
  182. ;    THEY NOW USE (FORMAT ...), WHICH IS BUGGY IN X0.4-0
  183. ; commented out (comment function)
  184. ; changed ==; clisp didn't seem to like the macro def
  185. ; changed "plus" to "+" throughout
  186. ; changed quotient to truncate or round;
  187. ;         in ops-compute this may be inappropriate
  188. ;
  189. ;    @@@    NOTE ON FNS WRITE & REMOVE
  190. ;note-write
  191. ;since write is a clisp instinsic, I have changed it to write-ops
  192. ;until the package feature of common lisp is implemented in declisp--
  193. ;at that point this kluge may be removed. Ditto for remove/remove-ops-
  194. ;--In this version, I have uninterned the common lisp intrinsic write
  195. ;and remove in the separate file clopxtra.cl, to be loaded uncompiled
  196. ;after clops127.fas is loaded
  197. ;
  198. ;
  199. ;  Table of changes made by kowalski to bring ops up under common lisp
  200. ;  (SOME ARE MODIFIED. GDW)
  201. ;  1) Changed "def" to "defun" throughout. (4/11/83)
  202. ;  2) Changed "difference" to "-" throughout (2 places). (4/12/83)
  203. ;  3) Changed the "defun x macro" forms (of which there were 5)
  204. ;     to the macro form of common lisp. (4/20/83)
  205. ;  4) Added macro def of "putprop" (4/21/83)
  206. ;  5) changed "setsyntax" to appropriate form of "set-macro-character"
  207. ;  6) converted fexprs to regular defuns by changing the name of
  208. ;     each fexpr to "ops-.....", deleting the "fexpr", and adding
  209. ;     a macro for each with the name of the original fexpr.  5/23/83
  210. ;  7) Replaced all "]" (superparentheses) with appropriate number of
  211. ;     regular ones. (5/23/83)
  212. ;  8) Made changes to the individual functions containing the Franz
  213. ;     "concat" form (instead of writing a macro). (5 places) (6/26/83)
  214. ;  9) Inverted the arguments of the two uses of "catch" so that tag
  215. ;     is the first argument as required in CLisp. (6/26/83)
  216. ;     I'm really unsure about whether symbolic tags must be quoted in
  217. ;     catch forms.
  218. ; 10) Changed (member x y ) forms to (member x y :test #'equal) forms
  219. ;     and (memq ..) forms to (member ...). (6/26/83)
  220. ; 11) Changed the getchar form and index parameter since the first position
  221. ;     of a string is 0 in CommonLisp and 1 in Franz.
  222. ; 12) Added defmacro for ncons.
  223. ; @@@ X 13) Added auxiliary function defining function dtpr  as consp.
  224. ; 14) Added auxiliary function defining function fix as floor.
  225. ; 15) Added auxiliary function defining function tyipeek as peek-char
  226. ; 16) Added auxiliary function defining = as equal.
  227.  
  228. ;;; Definitions
  229.  
  230. ;@@@ added -- bound but not referenced
  231. (proclaim '(special erm *break-character*))
  232.  
  233. (proclaim
  234.  '(special *matrix* *feature-count* *pcount* *vars* *cur-vars*
  235.        *curcond* *subnum* *last-node* *last-branch* *first-node*
  236.        *sendtocall* *flag-part* *alpha-flag-part* *data-part*
  237.        *alpha-data-part* *ce-vars* *virtual-cnt* *real-cnt*
  238.        *current-token* *record-array* *result-array* 
  239.        *max-cs* *total-cs* *limit-cs* *cr-temp* *side*
  240.        *conflict-set* *halt-flag* *phase* *critical*
  241.        *cycle-count* *total-token* *max-token* *refracts* 
  242.        *limit-token* *total-wm* *current-wm* *max-wm*
  243.        *action-count* *wmpart-list* *wm* *data-matched* *p-name*
  244.        *variable-memory* *ce-variable-memory* *max-index*
  245.        *next-index* *size-result-array* *rest* *build-trace* *last*
  246.        *ptrace* *wtrace* *in-rhs* *recording* *accept-file* *trace-file* 
  247.        *write-file* *record-index* *max-record-index* *old-wm*
  248.        *record* *filters* *break-flag* *strategy* *remaining-cycles*
  249.        *wm-filter* *rhs-bound-vars* *rhs-bound-ce-vars* *ppline* 
  250.        *ce-count* *brkpts* *class-list* *buckets* *action-type*))
  251.  
  252.  
  253.  
  254. (proclaim '(special *c1* *c2* *c3* *c4* *c5* *c6* *c7* *c8* *c9*
  255.        *c10* *c11* *c12* *c13* *c14* *c15* *c16* *c17* *c18* *c19*
  256.        *c20* *c21* *c22* *c23* *c24* *c25* *c26* *c27* *c28* *c29*
  257.        *c30* *c31* *c32* *c33* *c34* *c35* *c36* *c37* *c38* *c39*
  258.        *c40* *c41* *c42* *c43* *c44* *c45* *c46* *c47* *c48* *c49*
  259.        *c50* *c51* *c52* *c53* *c54* *c55* *c56* *c57* *c58* *c59*
  260.        *c60* *c61* *c62* *c63* *c64* *c65* *c66* *c67* *c68* *c69*
  261.        *c70* *c71* *c72* *c73* *c74* *c75* *c76* *c77* *c78* *c79*
  262.        *c80* *c81* *c82* *c83* *c84* *c85* *c86* *c87* *c88* *c89*
  263.        *c90* *c91* *c92* *c93* *c94* *c95* *c96* *c97* *c98* *c99*
  264.        *c100* *c101* *c102* *c103* *c104* *c105* *c106* *c107* *c108* 
  265.        *c109* *c110* *c111* *c112* *c113* *c114* *c115* *c116* *c117* 
  266.        *c118* *c119* *c120* *c121* *c122* *c123* *c124* *c125* *c126* 
  267.        *c127* ))
  268.  
  269. #|
  270. (proclaim '(localf ce-gelm gelm peek-sublex sublex
  271.            eval-nodelist sendto and-left and-right not-left not-right
  272.            top-levels-eq add-token real-add-token remove-old
  273.            remove-old-num remove-old-no-num removecs insertcs dsort
  274.            best-of best-of* conflict-set-compare =alg))
  275. |#
  276.  
  277.  
  278.  
  279. ;;; Dario Giuse - July 2, 1984
  280. ;;; Two little unpleasant things. These are Common Lisp primitives, and we
  281. ;;; need to redefine them here.
  282. ;;;
  283.  
  284. ; UNINTERN    COMMENTED OUT OF VAX LISP VERSION, SINCE COMPILER CAN'T
  285. ; HANDLE IT
  286.  
  287. #-vms (unexport 'remove (find-package 'lisp))
  288. #-vms (unintern 'remove (find-package 'user))
  289. #+vms (shadow 'remove (find-package 'user))
  290.  
  291. ;;; gdw changed name from 'remove' since DECLISP uses that fname.
  292. (defmacro remove (&body z)
  293.   `(ops-remove ',z))
  294.  
  295. #-vms (unexport 'write (find-package 'lisp))
  296. #-vms (unintern 'write (find-package 'user))
  297. #+vms (shadow 'write (find-package 'user))
  298.  
  299. (defmacro write (&body z)
  300.   `(ops-write ',z))
  301.  
  302.  
  303.  
  304. ;;; ------------------------------------------------------------
  305.  
  306.  
  307. ;;; Auxiliary macros added by JGK to convert the fexprs.
  308. ;;; Dario Giuse - converted to use regular Common Lisp defmacros.
  309.  
  310. (defmacro literal (&body z)
  311.   `(ops-literal ',z))
  312.  
  313. (defmacro literalize (&body z)
  314.   `(ops-literalize ',z))
  315.  
  316. (defmacro vector-attribute (&body l)
  317.   `(ops-vector-attribute ',l))
  318.  
  319. (defmacro p (&body z) 
  320.   `(ops-p ',z))
  321.  
  322. (defmacro wm (&body a) 
  323.   `(ops-wm ',a))
  324.  
  325. (defmacro make (&body z)
  326.   `(ops-make ',z))
  327.  
  328. (defmacro modify (&body z)
  329.   `(ops-modify ',z))
  330.  
  331. (defmacro bind (&body z)
  332.   `(ops-bind ',z))
  333.  
  334. (defmacro cbind (&body z)
  335.   `(ops-cbind ',z))
  336.  
  337. (defmacro call (&body z)
  338.   `(ops-call ',z))
  339.  
  340. (defmacro build (&body z)
  341.   `(ops-build ',z))
  342.  
  343. (defmacro openfile (&body z)
  344.   `(ops-openfile ',z))
  345.  
  346. (defmacro closefile (&body z)
  347.   `(ops-closefile ',z))
  348.  
  349. (defmacro default (&body z)
  350.   `(ops-default ',z))
  351.  
  352. (defmacro accept (&body z)
  353.   `(ops-accept ',z))
  354.  
  355. (defmacro acceptline (&body z)
  356.   `(ops-acceptline ',z))
  357.  
  358. (defmacro substr (&body l)
  359.   `(ops-substr ',l))
  360.  
  361. (defmacro compute (&body z)
  362.   `(ops-compute ',z))
  363.  
  364. (defmacro arith (&body z)
  365.   `(ops-arith ',z))
  366.  
  367. (defmacro litval (&