diff --git a/Makefile b/Makefile index cb02262f..54cb8e67 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ SRC = syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \ moon teach ken lmio1 llogo a2deh chsgtv clib sys3 lmio turnip \ mits_s rab stan_k bs cstacy kp dcp2 -pics- victor imlac rjl mb bh \ lars drnil radia gjd maint bolio cent shrdlu vis cbf digest prs jsf \ - decus bsg muds54 hello rrs + decus bsg muds54 hello rrs 2500 DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \ chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \ xfont maxout ucode moon acount alan channa fonts games graphs humor \ diff --git a/build/lisp.tcl b/build/lisp.tcl index 302c54b6..7a1e4b01 100644 --- a/build/lisp.tcl +++ b/build/lisp.tcl @@ -837,6 +837,15 @@ respond "?" "1700\r" expect ":KILL" respond "*" ":link sys1; ts llogo, llogo; ts llogo\r" +# 2500 assembler +respond "*" ":complr\r" +respond "_" "\007" +respond "*" "(load 'ioc)" +respond_load "(maklap)" +respond "_" "2500;zap\r" +respond "_" "\032" +type ":kill\r" + # TEACH;TS XLISP respond "*" ":complr\r" diff --git a/build/timestamps.txt b/build/timestamps.txt index 176071b2..dff632f2 100644 --- a/build/timestamps.txt +++ b/build/timestamps.txt @@ -2,6 +2,7 @@ 11logo/system.327 197204202249.37 11logo/tyi.152 197204202303.30 11logo/zend.67 197204182114.19 +2500/zap.1 197702191722.49 acount/-read-.-this- 197803240506.02 acount/turist.policy 198710200503.52 agb/c.dis 197606210311.16 diff --git a/src/2500/zap.1 b/src/2500/zap.1 new file mode 100644 index 00000000..5e02d97a --- /dev/null +++ b/src/2500/zap.1 @@ -0,0 +1,450 @@ +;ZAP +;SYMBOLS IN ZAP: +; A SYMBOL IN ZAP HAS AS ITS VALUE A PROGRAM& +; THE PROGRAM IS EVALUATED BY RECURSIVE CALLS TO ZAP-EVAL. +; IF THE ARGUMENT TO ZAP-EVAL IS NUMERIC, IT IS RETURNED AS THE VALUE. +; IF NIL, THIS SPECIFIES THE NULL VALUE. +; IF A SYMBOL, ITS VALUE IS RUN AS A PROGRAM AND RETURNED. +; IF A LIST, CAR OF THE LISP IS THE FUNCTION AND THE REST OF THE LIST +; ARGUMENTS, LISP STYLE. UNLESS OTHERWISE NOTED BELOW, ALL FUNCTIONS +; EVALUATE THEIR ARGS (LISP STYLE) AND ACTUALLY DO SOMETHING ONLY +; AFTER THE EVALUATION OF THEIR ARGUMENTS HAS FINISHED. +; IF THE PROGRAM IS STORED AS THE ZAP-MACRO PROPERTY OF THE SYMBOL, IT IS EXPECTED +; TO RETURN A LIST A VALUES TO BE STORED IN SUCCESSIVE MEMORY LOCATIONS. + +(SETQ FILE-LIST-FLAG T) ;CREATE A FILE OF EACH LISTING + +(SETQ SIM-FLAG T) ;FOR USE WITH SIMULATOR + +(SETQ FREQ-FLAG NIL) ;FREQUENCY OF EACH INSRTUCTION PRINTED + +(SETQ ZAP-FLAG NIL) ;FOR ROM LOADER + +(SETQ ERCHECK-FLAG T) ;ENABLE WARNINGS OF SYMBOL OVERLAPS + +(SETQ PO-FLAG T) ;ENABLE LISTING ON PASS 2 + +(DECLARE (EXPR-HASH T)) + +(SSTATUS TERPRI T) + +;(VALRET '/:TCTYP/ WIDTH/ 500000/./ PADCR/=0/ +;:VP/ +;) + +;(SETQ LINEL 1176) ;LISAP DOES LIKE ANY MORE + + + +(SETQ DEFUN T) + +(DEFUN LOGAND (X Y) (BOOLE 1 X Y)) + + + +(DECLARE (SPECIAL ZAP-SYMTAB I-MEM-LOC PO-FLAG ERCHECK-FLAG + TEML TEMLR READER PASS1 SYM-LIST + FILE-LIST-FLAG ZAP-FLAG I-MEM-NAME LAST-SYM LOADER-L CLIST SIM-FLAG FREQ-FLAG + WD CURRENT-WORD ) + (*FEXPR ZAP LC LR) + (MAPEX T) + (FIXSW T)) + + + + + +(DEFUN ZAP FEXPR (NAME) + (PROG (I-MEM-LOC I-MEM-NAME START-ADR + LAST-SYM T-ZAP-1 U-PROG ) + (COND (FILE-LIST-FLAG (UWRITE)(IOC R))) + (SETQ I-MEM-NAME (CAR NAME)) + (SETQ U-PROG (EVAL I-MEM-NAME)) + (SETQ START-ADR (COND ((CADR NAME))(0))) + (SETQ I-MEM-LOC START-ADR) + (SETQ ZAP-SYMTAB NIL) + (SETQ T-ZAP-1 U-PROG) +L1 (COND ((NULL T-ZAP-1) (GO L2))) + (ZAP-PASS1 (CAR T-ZAP-1)) + (SETQ T-ZAP-1 (CDR T-ZAP-1)) + (GO L1) +L2 (SETQ I-MEM-LOC START-ADR) + (SET I-MEM-NAME NIL) + (SETQ T-ZAP-1 U-PROG) +L3 (COND ((NULL T-ZAP-1) (GO L4))) + (ZAP-PASS2 (CAR T-ZAP-1)) + (SETQ T-ZAP-1 (CDR T-ZAP-1)) + (GO L3) +L4 (COND (FILE-LIST-FLAG (APPLY 'UFILE (LIST I-MEM-NAME 'LIST))(IOC T))) + (COND (ZAP-FLAG (ZAPPER START-ADR (EVAL I-MEM-NAME)))) + (COND (SIM-FLAG (FILLARRAY 'IM (EVAL I-MEM-NAME)))) + (COND (FREQ-FLAG (FREQS))) + (PRINT '(ALL DID)) + (BREAK 'FINISH 'T) + (RETURN T))) + + + + +(DEFUN ZAP-PASS1 (WD) + (PROG (CURRENT-WORD) + (SETQ PASS1 T) + (SETQ CURRENT-WORD WD) ;FOR DEBUGGING + (COND ((ATOM WD) + (SETQ LAST-SYM WD) + (SETQ ZAP-SYMTAB + (CONS (CONS WD I-MEM-LOC) + ZAP-SYMTAB))) + ((GET (CAR WD) 'ZAP-MACRO) ;CHECK FOR ZAP-MACRO PROP + (SETQ I-MEM-LOC + (+ (LENGTH (EVAL (GET (CAR WD) 'ZAP-MACRO))) I-MEM-LOC))) + ((EQ (CAR WD) 'START )(OR SIM-FLAG (SETQ I-MEM-LOC (CADR WD)))) + ((EQ (CAR WD) '&) NIL ) + ((EQ (CAR WD) 'ZAP-MACRO ) + (PUTPROP (CADR WD) (CADDR WD) 'ZAP-MACRO) ) + ((EQ (CAR WD) 'CALL) + (ZAP-DEFSYM (CADR WD) + (CADDR WD))) + (T (GO W1)) ) +X (RETURN NIL) +W1 (SETQ I-MEM-LOC (1+ I-MEM-LOC)) + (RETURN NIL))) + + +(DEFUN ZAP-DEFSYM (VAL SYM) + (PROG (TM) + (COND ((SETQ TM (SYM-EVAL SYM)) + (COND ((NOT (EQUAL VAL TM)) + (PRINT (LIST SYM TM 'MULT-DEFINED-SYM )) + (BREAK 'LOOSE 'T)))) + (T (SETQ ZAP-SYMTAB + (CONS (CONS SYM VAL) + ZAP-SYMTAB))) ) + (RETURN NIL))) + +(DEFUN SYM-EVAL (SYM) + (PROG (TM) + (COND ((SETQ TM (GET SYM 'ZAP-SYM)) + (COND ((NULL (GET SYM 'USE))(PUTPROP SYM 1 'USE)) + (T (PUTPROP SYM (1+ (GET SYM 'USE) ) 'USE))) + (RETURN TM))) + (SETQ TM ZAP-SYMTAB) +L (COND ((NULL TM) (RETURN NIL)) + ((EQ (CAAR TM) SYM) + (RETURN (CDAR TM)))) + (SETQ TM (CDR TM)) + (GO L))) + + +;## +(DEFUN ZAP-PASS2 (WD) + (PROG NIL + (SETQ PASS1 NIL) + (COND ((ATOM WD) + (SETQ LAST-SYM WD) + (COND ((NOT (EQUAL + (SYM-EVAL WD) + I-MEM-LOC)) + (PRINT '(MY SYMBOLS ARE DIFFERENT FROM PASS1))(BREAK 'LOOSE2 'T)))) + ((EQ (CAR WD) 'ZAP-MACRO )) + ((EQ (CAR WD) 'CALL )(TYO 11)(PRINT WD)) + ((EQ (CAR WD) 'START )(OR SIM-FLAG (SETQ I-MEM-LOC (CADR WD)))) + ((EQ (CAR WD) '&)(TYO 11)(PRINT WD)) + ((GET (CAR WD) 'ZAP-MACRO) + (LOAD-ZAP-MACRO (EVAL (GET (CAR WD) 'ZAP-MACRO )))) + (T (LOAD-MEM-WITH WD))) +X (RETURN NIL))) + +(DEFUN LOAD-ZAP-MACRO (LL) + (COND ((NULL LL) NIL) + (T (LOAD-MEM-WITH (CAR LL))(LOAD-ZAP-MACRO (CDR LL)) ) )) + +(DEFUN LOAD-MEM-WITH (WD) + (PROG (V) + (SETQ V (WORD-EVAL WD)) + (COND ((< V -177776)(PRINT '(THIS LOOKS TOO SMALL))) + ((> V 177777)(PRINT '(THIS LOOKS TOO BIG))) + ((> V 777777)(PRINT '(THIS REALLY LOOKS TOO BIG))) + ((> V 7777777) (PRINT '(THIS HAS GOTTA BE TOO BIG))) + ((< 0 V)(SETQ V (LOGAND V 177777)))) + (COND (PO-FLAG + (TYO 15) + (TYO 11) + (COND ((= I-MEM-LOC (SYM-EVAL LAST-SYM)) + (PRINC LAST-SYM) + (COND ((< (LENGTH (EXPLODE LAST-SYM)) 8)(TYO 11)))) + ((TYO 11))) + (TYO 11) + (PRINC I-MEM-LOC) + (TYO 11) + (PRINC V) + (TYO 11) + (PRINC WD) + )) + (SET I-MEM-NAME (APPEND (EVAL I-MEM-NAME) (LIST V))) + (SETQ I-MEM-LOC (1+ I-MEM-LOC)) + (RETURN NIL))) + + +(DEFUN WORD-EVAL (WD) + (PROG (COMBINED-VALUE FIELD-VALUE CURRENT-WORD ERCHECK-VALUE) + (SETQ COMBINED-VALUE 0) ;CAUTION& COMBINED-VALUE CAN BE A BIGNUM + (SETQ ERCHECK-VALUE 0) ;IF NO FIELD OVERLAP THIS SHOULD BE SAME + (SETQ CURRENT-WORD WD) ;SO CAN SEE IT WHEN STUFF COMPILED +L (COND ((AND ERCHECK-FLAG + (NULL WD) + (NOT (EQUAL COMBINED-VALUE ERCHECK-VALUE))) + (PRINT (LIST '(BYTE OVERLAP WARNING ONLY) CURRENT-WORD )) + (RETURN COMBINED-VALUE)) + ((OR (EQ (CAR WD) '&) (NULL WD)) (RETURN COMBINED-VALUE)) + ((NUMBERP (CAR WD)) + (SETQ FIELD-VALUE (CAR WD))) + ((ATOM (CAR WD)) + (SETQ FIELD-VALUE (ZAP-SYM-RUN (CAR WD)))) ) + (SETQ COMBINED-VALUE (PLUS COMBINED-VALUE FIELD-VALUE)) + (SETQ ERCHECK-VALUE (BOOLE 7 ERCHECK-VALUE FIELD-VALUE)) + (SETQ WD (CDR WD)) + (GO L) +)) + + +(DEFUN ZAP-SYM-RUN (SYM) + (PROG (TEM) + (COND ( PASS1 (RETURN 0)) + ((NULL (SETQ TEM (SYM-EVAL SYM))) + (PRINT (APPEND '(I AM SORRY BUT I CAN NOT FIND ) (LIST SYM ))) + (RETURN 0)) + (T (RETURN (ZAP-EVAL TEM)))))) + +(DEFUN ZAP-EVAL (EXP) ;EXP A SYMBOL "PROGRAM".RETURNS A NUMBERIC VALUE OR NIL + (COND ((NULL EXP) 0) + ((NUMBERP EXP) EXP) + ((ATOM EXP) (ZAP-SYM-RUN EXP)) + (T (EVAL EXP))) ) + +; FUNCTIONS TO LOAD 2500 MEMORY + + + +(DEFUN JMP (N)(PROG (CLIST) + (ZOUT 320116) + (ZOUT 0) + (ZOUT (+ N 50000)) + (ZOUT (- (+ N 320116))) + (SETQ CLIST (REVERSE CLIST)) +PLOOP (COND ((NULL CLIST)(RETURN 'FINI))) + (COND ((= (CAR CLIST) 177) (TYO 77)) + ((TYO (CAR CLIST)))) + (SETQ CLIST (CDR CLIST)) + (GO PLOOP))) + + +(DEFUN LOAD (TYP ADR L) + (PROG (CLIST CHECK-SUM CNT FONT) +BLOCK (TERPRI) + (SETQ CNT (LENGTH L)) + (SETQ FONT (> ADR 167777)) + (COND ((< CNT 1)(RETURN 'FINI)) + ((> CNT 100)(SETQ CNT 100))) + (COND (FONT (SETQ CNT (* 2 CNT)))) + (ZOUT 320116) ; FLAG + (ZOUT TYP) + (ZOUT ADR) + (ZOUT CNT) + (SETQ CHECK-SUM (+ TYP ADR CNT)) +LOOP (ZOUT (CAR L)) + (SETQ CHECK-SUM (+ CHECK-SUM (CAR L))) + (SETQ L (CDR L)) + (SETQ CNT (1- CNT)) + (COND (FONT (SETQ CNT (1- CNT)))) + (COND ((> CNT 0)(GO LOOP))) + (SETQ ADR (+ ADR 100)) + (COND (FONT (SETQ ADR (+ ADR 100)))) + (ZOUT (- CHECK-SUM)) + (SETQ CLIST (REVERSE CLIST)) +PLOOP (COND ((NULL CLIST)(GO BLOCK))) + (COND ((= (CAR CLIST) 177) (TYO 77)) + ((TYO (CAR CLIST)))) + (SETQ CLIST (CDR CLIST)) + (GO PLOOP))) + +(DEFUN ZOUT (NUM) + (PROG NIL + (SETQ NUM (LOGAND 777777 NUM)) + (SETQ CLIST (CONS (+ 100 (LOGAND 77 (LSH NUM -14))) CLIST )) + (SETQ CLIST (CONS (+ 100 (LOGAND 77 (LSH NUM -6))) CLIST )) + (SETQ CLIST (CONS (+ 100 (LOGAND 77 NUM)) CLIST )) + (RETURN T))) + +(DEFUN ZAPPER (START L) + (PROG (CTR CLIST FOO) + (SETQ FOO (SETQ CTR (LENGTH L))) + LOOP (COND ((NULL L) (GO DONE))) + (RAM-OUT (CAR L)) ;DATA + (SETQ L (CDR L)) + (GO LOOP) + DONE (RAM-OUT CTR) ;BLOCK LENGTH + (RAM-OUT (PLUS START CTR)) ;START ADR + (RAM-OUT 147577) ;START WORD + (SET I-MEM-NAME ( IMPLODE CLIST)))) + + + +(DEFUN RAM-OUT (NUM) + (PROG NIL + (SETQ NUM (LOGAND 177777 NUM)) + (SETQ CLIST (CONS (ASCII (+ 100 (LOGAND 17 NUM))) CLIST)) + (SETQ CLIST (CONS (ASCII (+ 100 (LOGAND 17 (LSH NUM -4)))) CLIST )) + (SETQ CLIST (CONS (ASCII (+ 100 (LOGAND 17 (LSH NUM -10)))) CLIST )) + (SETQ CLIST (CONS (ASCII (+ 100 (LOGAND 17 (LSH NUM -14)))) CLIST)) + (RETURN T) )) + +(DEFUN TRIG-TABLE NIL + (PROG (A OUT) + (SETQ A 181.) + LOOP (SETQ OUT (CONS (FIX (TIMES 177777 (SIN (TIMES .01745329 A)))) OUT)) + (SETQ A (1- A)) + (COND ((> A -1)(GO LOOP))(T (RETURN OUT))) )) + + +;-- INITIAL SYMS + + + +(DEFUN OPER-TYPE (CODE TYPE) + (PROG (A B ) + (SETQ A (LIST CODE (LSH (ZAP-EVAL (CADR WD)) 6 ))) + (COND ((NULL A)(PRINT (APPEND '(NOT ENOUGH ARGS IN) WD))) + ((= TYPE 1)(SETQ WD (CDR WD))(RETURN (WORD-EVAL A)))) ;INC TYP + (SETQ B (ZAP-EVAL (CADDR WD))) + (COND ((= TYPE 3)) + ((> B 17)(PRINT '(B ADDRESS TOO BIG FOR AN OPER))) + ((< B 0)(SETQ B (LOGAND B 17)))) + (COND ((NULL B)(PRINT (APPEND '(NOT ENOUGH WORDS IN) WD))) + ((> TYPE 1)(SETQ WD (CDDR WD))(RETURN (WORD-EVAL (CONS B A)))) + ))) + +(DEFPROP PUT (COND ((< (ZAP-EVAL (CADDR WD)) 10)(PRINT '(USE GET INSTEAD)) 0 ) + (T (OPER-TYPE 076000 3)) ) ZAP-SYM ) + +(DEFUN BRANCH-TYPE (CODE) + (PROG2 () + (WORD-EVAL (LIST CODE (LOGAND 3777(1- (- (ZAP-EVAL(CADR WD)) I-MEM-LOC ))))) + (SETQ WD NIL))) + +(DEFUN DIS-TYPE () + (PROG2 () + (PLUS 72000 (COND ((EQ (CADR WD) 'BUS) 0) + ((EQ (CADR WD) 'FLAGS) 400) + ((EQ (CADR WD) 'INTS) 1000) + ((EQ (CADR WD) 'STARS) 1400) + (T (PRINT (CONS (CADR WD)'(UNKNOWN))) 0 )) + (LSH (- 17 (CADDR WD)) 4)) + (SETQ WD NIL))) + +(DEFPROP + (PROG2 () + (+ (ZAP-EVAL (CADR WD))(WORD-EVAL (CDDR WD))) + (SETQ WD NIL)) ZAP-SYM) +(DEFPROP * (PROG2 () + (* (ZAP-EVAL (CADR WD))(WORD-EVAL (CDDR WD))) + (SETQ WD NIL)) ZAP-SYM) + +(DEFPROP - (PROG2 () + (COND ((NULL (CDDR WD))(- (ZAP-EVAL (CADR WD)))) + (T (- (ZAP-EVAL (CADR WD))(WORD-EVAL (CDDR WD))))) + (SETQ WD NIL)) ZAP-SYM) +; +(DEFPROP DIS (DIS-TYPE) ZAP-SYM) +(DEFPROP ADD (OPER-TYPE 004060 2) ZAP-SYM ) +(DEFPROP SUB (OPER-TYPE 006000 2) ZAP-SYM ) +(DEFPROP INC (OPER-TYPE 006040 1) ZAP-SYM ) +(DEFPROP DEC (OPER-TYPE 004020 1) ZAP-SYM ) +(DEFPROP XADD (OPER-TYPE 004040 2) ZAP-SYM ) +(DEFPROP AND (OPER-TYPE 000040 2) ZAP-SYM ) +(DEFPROP IOR (OPER-TYPE 002000 2) ZAP-SYM ) +(DEFPROP XOR (OPER-TYPE 002020 2) ZAP-SYM ) +(DEFPROP NOR (OPER-TYPE 000060 2) ZAP-SYM ) +(DEFPROP ANDN (OPER-TYPE 000020 2) ZAP-SYM ) +(DEFPROP ARS (OPER-TYPE 006060 2) ZAP-SYM ) +(DEFPROP ROT (OPER-TYPE 004000 2) ZAP-SYM ) +(DEFPROP MROT (OPER-TYPE 002040 2) ZAP-SYM ) +(DEFPROP ADDI (OPER-TYPE 005060 2) ZAP-SYM ) +(DEFPROP SUBI (OPER-TYPE 007000 2) ZAP-SYM ) +(DEFPROP INCI (OPER-TYPE 007040 1) ZAP-SYM ) +(DEFPROP DECI (OPER-TYPE 005020 1) ZAP-SYM ) +(DEFPROP XADDI (OPER-TYPE 005040 2) ZAP-SYM ) +(DEFPROP ANDI (OPER-TYPE 001040 2) ZAP-SYM ) +(DEFPROP IORI (OPER-TYPE 003000 2) ZAP-SYM ) +(DEFPROP XORI (OPER-TYPE 003020 2) ZAP-SYM ) +(DEFPROP NORI (OPER-TYPE 001060 2) ZAP-SYM ) +(DEFPROP ANDNI (OPER-TYPE 001020 2) ZAP-SYM ) +(DEFPROP ARSI (OPER-TYPE 007060 2) ZAP-SYM ) +(DEFPROP ROTI (OPER-TYPE 005000 2) ZAP-SYM ) +(DEFPROP MROTI (OPER-TYPE 003040 2) ZAP-SYM ) +(DEFPROP LOD (OPER-TYPE 001000 1) ZAP-SYM ) +(DEFPROP CMP (OPER-TYPE 016000 2) ZAP-SYM ) +(DEFPROP CMPI 017000 ZAP-SYM ) +(DEFPROP T 10000 ZAP-SYM) +(DEFPROP IFC 30000 ZAP-SYM) +(DEFPROP GET (OPER-TYPE 074000 3) ZAP-SYM ) +(DEFPROP READ (OPER-TYPE 020000 2) ZAP-SYM ) +(DEFPROP WRITE (OPER-TYPE 024000 2) ZAP-SYM ) +(DEFPROP CREAD (OPER-TYPE 021000 2) ZAP-SYM ) +(DEFPROP CWRITE (OPER-TYPE 025000 2) ZAP-SYM ) +(DEFPROP READI (OPER-TYPE 022040 2) ZAP-SYM ) +(DEFPROP WRITEI (OPER-TYPE 026040 2) ZAP-SYM ) +(DEFPROP CREADI (OPER-TYPE 023040 2) ZAP-SYM ) +(DEFPROP CWRITEI (OPER-TYPE 027040 2) ZAP-SYM ) +(DEFPROP READD (OPER-TYPE 020020 2) ZAP-SYM ) +(DEFPROP WRITED (OPER-TYPE 024020 2) ZAP-SYM ) +(DEFPROP CREADD (OPER-TYPE 021020 2) ZAP-SYM ) +(DEFPROP CWRITED (OPER-TYPE 025020 2) ZAP-SYM ) +(DEFPROP JUMP 050000 ZAP-SYM ) +(DEFPROP PUSHJ 040000 ZAP-SYM ) +(DEFPROP POPJ 076016 ZAP-SYM ) +(DEFPROP POPJI 076716 ZAP-SYM) +(DEFPROP BEQ (BRANCH-TYPE 134000 ) ZAP-SYM ) +(DEFPROP BNE (BRANCH-TYPE 130000 ) ZAP-SYM ) +(DEFPROP BPL (BRANCH-TYPE 124000 ) ZAP-SYM ) +(DEFPROP BMI (BRANCH-TYPE 120000 ) ZAP-SYM ) +(DEFPROP BCC (BRANCH-TYPE 100000 ) ZAP-SYM ) +(DEFPROP BCS (BRANCH-TYPE 104000 ) ZAP-SYM ) +(DEFPROP BVS (BRANCH-TYPE 110000 ) ZAP-SYM ) +(DEFPROP BVC (BRANCH-TYPE 114000 ) ZAP-SYM ) +(DEFPROP BIS (BRANCH-TYPE 150000 ) ZAP-SYM ) +(DEFPROP BIC (BRANCH-TYPE 154000 ) ZAP-SYM ) +(DEFPROP BFS (BRANCH-TYPE 170000 ) ZAP-SYM ) +(DEFPROP BFC (BRANCH-TYPE 174000 ) ZAP-SYM ) +(DEFPROP BXCI (BRANCH-TYPE 160000 ) ZAP-SYM ) +(DEFPROP BXSI (BRANCH-TYPE 164000 ) ZAP-SYM ) +(DEFPROP NOP (OPER-TYPE 10000 1) ZAP-SYM) +(DEFPROP ERROR (+ I-MEM-LOC 050000 ) ZAP-SYM ) +(DEFPROP XR 23 ZAP-SYM) +(DEFPROP ER (AND (PRINT '(USE XR NOT ER)) 13) ZAP-SYM) +(DEFPROP MAGIC 76014 ZAP-SYM) +(DEFPROP XCOR 21 ZAP-SYM) +(DEFPROP YCOR 20 ZAP-SYM) +(DEFPROP UART 24 ZAP-SYM) +(DEFPROP DSR 25 ZAP-SYM) +(DEFPROP KEY 26 ZAP-SYM) +(DEFPROP SCROLL 22 ZAP-SYM) +(DEFPROP CHARTV (OPER-TYPE 76015 1) ZAP-SYM) + +(NULL (SETQ SYM-LIST '( + DIS ADD SUB INC DEC XADD AND IOR + XOR NOR ANDN ARS ROT MROT ADDI SUBI + INCI DECI XADDI ANDI IORI XORI NORI ANDNI + ARSI ROTI MROTI LOD CMP CMPI T IFC + GET READ WRITE CREAD CWRITE READI WRITEI CREADI + CWRITEI READD WRITED CREADD CWRITED JUMP PUSHJ POPJ + POPJI BEQ BNE BPL BMI BCS BCC BVS + BVC BIS BIC BFS BFC BXSI BXCI NOP + ERROR XR ER MAGIC TEXT XCOR YCOR CLEARCLOCK + UART DSR KEY PUT +))) + +(DEFUN FREQ (N) (COND ((GET N 'USE)(PRINT (LIST N (GET N 'USE)))))) +(DEFUN FREQS () (PROG2 (MAPCAR 'FREQ SYM-LIST) T ) ) +(PRINT '(NOT FOR DEBUGGING HARDWARE)) + + \ No newline at end of file