Maxc Byte Lisp
From Computer History Wiki
Notes about the Maxc Byte Lisp instructions, gleaned from microcode sources.
Additional PDP-10 instructions
It's not entirely clear, but it seems to me most of these are used in addition to the normal PDP-10 instruction set. These are defined in the microcode source file lisp.mc.
| Opcode | Mnemonic | Description |
|---|---|---|
| 107 | BLISP | |
| 114 | RETFR | Return from function |
| 115 | UPSHJ | Dispatching UUO call |
| 116 | LDT | Load type of pointer |
| 117 | BTLU | Bit table lookup |
| 120 | BFRET | Return to Byte Lisp function |
| 121 | CALLFN | Call Lisp function |
| 247 | CHASE | |
| 257 | REWIND | Reverse shallow-deep bindings in a frame |
Byte Lisp instructions
These instructions are 9 bits. They are defined in the microcode source files lispm1.mc and lispm2.mc, which are for Maxc1 and Maxc2, respectively.
| Opcode | Mnemonic |
|---|---|
| 601 | SVARX |
| 603 | LVARX |
| 605 | XVARX |
| 607 | ARG |
| 611 | CONSTX |
| 613 | SDSETX |
| 615 | SSETX |
| 617 | LDSETX |
| 621 | LSETX |
| 623 | XDSETX |
| 625 | XSETX |
| 627 | JUMPXX |
| 631 | GETLIST |
| 633 | ASSOC |
| 635 | ITIMES2 |
| 637 | IQUOT |
| 641 | IREMN |
| 643 | IOR2 |
| 645 | IXOR2 |
| 647 | BLSH |
| 651 | BASH |
| 653 | NTYP |
| 702 | MINONE |
| 703 | ZERO |
| 704 | ONE |
| 705 | TWO |
| 706 | SIC |
| 707 | NIL |
| 710 | T |
| 711 | COPY |
| 712 | POP |
| 714 | POP2 |
| 715 | POP3 |
| 716 | VAG |
| 717 | IPLUS2 |
| 720 | IDIF |
| 721 | IAND2 |
| 722 | ADD1 |
| 723 | SUB1 |
| 725 | DBIND |
| 726 | BIND |
| 727 | UNBIND |
| 730 | RETURN |
| 731 | XRETURN |
| 732 | JUMP IF 0(PP) = NIL |
| 733 | JUMP IF 0(PP) # NIL |
| 734 | JUMP IF 0(PP) # -1(PP) |
| 735 | JUMP IF 0(PP) = -1(PP) |
| 736 | JUMP IF 0(PP) IS NOT AN ATOM |
| 737 | JUMP IF 0(PP) IS AN ATOM |
| 740 | JUMP IF 0(PP) IS NOT A LIST |
| 741 | JUMP IF 0(PP) IS A LIST |
| 742 | JNNUM |
| 743 | JNUM (TYPE .E. FLOATT TO SMALLT) |
| 744 | JNFIXP |
| 745 | JFIXP (TYPE .E. FIXT TO SMALLT) |
| 746 | JUMP IF 0(PP) IS NOT OF TYPE = NEXTBYTE |
| 747 | JUMP IF 0(PP) IS OF TYPE = NEXTBYTE |
| 750 | JUMP IF -1(PP) .NE. 0(PP) |
| 751 | JUMP IF -1(PP) .E. 0(PP) |
| 752 | JUMP IF -1(PP) .GE. 0(PP) |
| 753 | JUMP IF -1(PP) .L. 0(PP) |
| 754 | JUMP IF -1(PP) .G. 0(PP) |
| 755 | JUMP IF -1(PP) .LE. 0(PP) |
| 756 | JUMPX |
| 757 | SWAP |
| 760 | LAST |
| 761 | FETCHFIELD |
| 762 | REPLACEFIELD |
| 763 | FRPLACD |
| 764 | FRPLACA |
| 765 | RPLACD |
| 766 | RPLACA |
| 767 | GETP |
| 770 | CDDR |
| 771 | CDAR |
| 772 | CADR |
| 773 | CAAR |
| 774 | CDR |
| 775 | CAR |
| 776 | FMEMB |