Difference between revisions of "Maxc Byte Lisp"
From Computer History Wiki
(9-bit byte codes.) |
m (New cat) |
||
Line 298: | Line 298: | ||
| FMEMB | | FMEMB | ||
|} | |} | ||
+ | |||
+ | [[Category: Language Implementations]] |
Latest revision as of 00:52, 22 May 2023
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 |