summaryrefslogtreecommitdiff
path: root/lisp/progmodes/mixal-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/progmodes/mixal-mode.el')
-rw-r--r--lisp/progmodes/mixal-mode.el50
1 files changed, 43 insertions, 7 deletions
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index 468c116b674..b9f60598f63 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -1,11 +1,11 @@
-;;; mixal-mode.el --- Major mode for the mix asm language.
+;;; mixal-mode.el --- Major mode for the mix asm language. -*- lexical-binding:t -*-
;; Copyright (C) 2003-2020 Free Software Foundation, Inc.
;; Author: Pieter E.J. Pareit <pieter.pareit@gmail.com>
-;; Maintainer: emacs-devel@gnu.org
+;; Maintainer: Jose A Ortega Ruiz <jao@gnu.org>
;; Created: 09 Nov 2002
-;; Version: 0.1
+;; Version: 0.4
;; Keywords: languages, Knuth, mix, mixal, asm, mixvm, The Art Of Computer Programming
;; This file is part of GNU Emacs.
@@ -24,6 +24,7 @@
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
+
;; Major mode for the mix asm language.
;; The mix asm language is described in "The Art Of Computer Programming".
;;
@@ -34,8 +35,9 @@
;;
;; To use this mode, place the following in your init file:
;; `(load-file "/PATH-TO-FILE/mixal-mode.el")'.
+;;
;; When you load a file with the extension .mixal the mode will be started
-;; automatic. If you want to start the mode manual, use `M-x mixal-mode'.
+;; automatically. If you want to start the mode manually, use `M-x mixal-mode'.
;; Font locking will work, the behavior of tabs is the same as Emacs's
;; default behavior. You can compile a source file with `C-c c' you can
;; run a compiled file with `C-c r' or run it in debug mode with `C-c d'.
@@ -45,6 +47,9 @@
;; Have fun.
;;; History:
+;; Version 0.4:
+;; 16/10/20: Jose A Ortega Ruiz <jao@gnu.org>
+;; Add missed instructions: SLB,SRB,JAE,JAO,JXE,JXO
;; Version 0.3:
;; 12/10/05: Stefan Monnier <monnier@iro.umontreal.ca>
;; Use font-lock-syntactic-keywords to detect/mark comments.
@@ -683,6 +688,18 @@ Register J is set to the value of the next instruction that would have
been executed when there was no jump."
1)
+ (JAE jump "jump A even" 40
+ "Jump if the content of rA is even.
+Register J is set to the value of the next instruction that would have
+been executed when there was no jump."
+ 1)
+
+ (JAO jump "jump A odd" 40
+ "Jump if the content of rA is odd.
+Register J is set to the value of the next instruction that would have
+been executed when there was no jump."
+ 1)
+
(JXN jump "jump X negative" 47
"Jump if the content of rX is negative.
Register J is set to the value of the next instruction that would have
@@ -719,12 +736,24 @@ Register J is set to the value of the next instruction that would have
been executed when there was no jump."
1)
- (J1N jump "jump I1 negative" 41
- "Jump if the content of rI1 is negative.
+ (JXE jump "jump X even" 47
+ "Jump if the content of rX is even.
+Register J is set to the value of the next instruction that would have
+been executed when there was no jump."
+ 1)
+
+ (JXO jump "jump X odd" 47
+ "Jump if the content of rX is odd.
Register J is set to the value of the next instruction that would have
been executed when there was no jump."
1)
+ (J1N jump "jump I1 negative" 41
+ "Jump if the content of rI1 is negative.
+Register J is set to the value of the next instruction that would have
+been executed when there was no jump."
+ 1)
+
(J1Z jump "jump I1 zero" 41
"Jump if the content of rI1 is zero.
Register J is set to the value of the next instruction that would have
@@ -950,7 +979,6 @@ Zeros will be added to the left."
Zeros will be added to the right."
2)
-
(SRAX miscellaneous "shift right AX" 6
"Shift AX, M bytes right.
Zeros will be added to the left."
@@ -966,6 +994,14 @@ The bytes that fall off to the left will be added to the right."
The bytes that fall off to the right will be added to the left."
2)
+ (SLB miscellaneous "shift left AX binary" 6
+ "Shift AX, M binary places left."
+ 2)
+
+ (SRB miscellaneous "shift right AX binary" 6
+ "Shift AX, M binary places right."
+ 2)
+
(MOVE miscellaneous "move" 7 number
"Move MOD words from M to the location stored in rI1."
(+ 1 (* 2 number)))