aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKaroly Lorentey2005-10-19 14:03:44 +0000
committerKaroly Lorentey2005-10-19 14:03:44 +0000
commit6d8cf83040cdb54a0b1d72bd6a021f9815bd4af2 (patch)
treef22e60624e5ffd52bbe19fea7809c2f5cb54704d /lisp
parent734b679135207a8623dc460eb8d108befe080d46 (diff)
parent6507c4c73dad972eb4f6bc224c8c22de6cbeec97 (diff)
downloademacs-6d8cf83040cdb54a0b1d72bd6a021f9815bd4af2.tar.gz
emacs-6d8cf83040cdb54a0b1d72bd6a021f9815bd4af2.zip
Merged from miles@gnu.org--gnu-2005 (patch 593-595)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-593 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-594 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-595 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-425
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog101
-rw-r--r--lisp/desktop.el9
-rw-r--r--lisp/info.el44
-rw-r--r--lisp/international/fontset.el55
-rw-r--r--lisp/international/utf-8.el3
-rw-r--r--lisp/makefile.w32-in46
-rw-r--r--lisp/mh-e/.gitignore1
-rw-r--r--lisp/progmodes/mixal-mode.el1221
-rw-r--r--lisp/startup.el10
-rw-r--r--lisp/toolbar/README2
-rw-r--r--lisp/toolbar/diropen.pbmbin81 -> 81 bytes
-rw-r--r--lisp/toolbar/diropen.xpm255
12 files changed, 746 insertions, 1001 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1de2034918d..00c71e23aeb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,4 +1,76 @@
12005-10-11 Sven Joachim <svenjoac@gmx.de> 12005-10-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from
4 Gnome file-manager.png. Suggested by
5 Joachim Nilsson <joachim.nilsson@vmlinux.org>.
6
7 * toolbar/README: Add diropen.xpm.
8
92005-10-13 Bill Wohler <wohler@newt.com>
10
11 * makefile.w32-in (MH_E_SRC): Rename from MH-E-SRC per NMAKE
12 restrictions. Suggested by David Robinow <drobinow@gmail.com>.
13
142005-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
15
16 * progmodes/mixal-mode.el (mixal-operation-codes-alist):
17 Don't waste the byte-compiler's time on constant data.
18
192005-10-13 Kenichi Handa <handa@m17n.org>
20
21 * international/utf-8.el (utf-8-compose): Display an invalid UTF-8
22 byte with `escape-glyph' face.
23
24 * international/fontset.el (ccl-encode-unicode-font):
25 Lookup utf-subst-table-for-encode, not ucs-mule-cjk-to-unicode.
26 Handle the case that ucs-mule-to-mule-unicode translates a character to
27 ASCII (usually for IPA characters).
28
292005-10-12 Bill Wohler <wohler@newt.com>
30
31 * makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads.
32 (mh-autoloads): New. Builds mh-e/mh-loaddefs.el. Rebuilds if any
33 files in MH-E-SRC have been updated.
34 (updates, compile, recompile, bootstrap): Depend on mh-autoloads.
35
362005-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
37
38 * progmodes/mixal-mode.el (mixal-operation-codes): Remove.
39 (mixal-mode-syntax-table): Add \n as end-comment.
40 (mixal-operation-codes-alist): Immediately initialize to full value.
41 (mixal-add-operation-code): Remove.
42 (mixal-describe-operation-code): Make the arg non-optional.
43 Use the interactive spec instead.
44 Use mixal-operation-codes-alist rather than mixal-operation-codes.
45 (mixal-font-lock-keywords): Don't highlight comments here any more.
46 (mixal-font-lock-syntactic-keywords): New var.
47 (mixal-mode): Use it. Fix comment-start-skip.
48
492005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
50
51 * startup.el (command-line-x-option-alist): -nb => -nbi
52
532005-10-12 Kim F. Storm <storm@cua.dk>
54
55 * startup.el (fancy-splash-default-action): Discard mouse click in
56 the spash screen window, as it has no sensible meaning in the
57 next window to be selected. Fixes error reported by Jan D.
58
592005-10-12 Reiner Steib <Reiner.Steib@gmx.de>
60
61 * desktop.el (desktop-load-file): Do nothing when FUNCTION is nil.
62
632005-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
64
65 * progmodes/mixal-mode.el: Sync with version in the GNU MDK project.
66 Try to fix up minor layout issues like indentation, line break, etc...
67 (mixal-mode-syntax-table): Don't try to specify comment syntax,
68 because it doesn't work.
69 (mixal-operation-codes): Add some more codes.
70 (mixal-font-lock-keywords): Process comments here.
71 (mixal-mode): mixasm no longer needs -g option.
72
732005-10-11 Sven Joachim <svenjoac@gmx.de> (tiny change)
2 74
3 * progmodes/sh-script.el (sh-tmp-file): 75 * progmodes/sh-script.el (sh-tmp-file):
4 Use mktemp -t. Finish support for es and rc shells. 76 Use mktemp -t. Finish support for es and rc shells.
@@ -798,7 +870,7 @@
798 color rxvt terminals by using the code xterm.el used to use before 870 color rxvt terminals by using the code xterm.el used to use before
799 2005-04-09 in order to match the colors used by rxvt. 871 2005-04-09 in order to match the colors used by rxvt.
800 872
8012005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) 8732005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change)
802 874
803 * term/rxvt.el (rxvt-register-default-colors): Add support for 88 875 * term/rxvt.el (rxvt-register-default-colors): Add support for 88
804 colors rxvt-unicode terminals by using the same code as xterm.el. 876 colors rxvt-unicode terminals by using the same code as xterm.el.
@@ -5940,8 +6012,8 @@
5940 6012
5941 * log-view.el (log-view-file, log-view-message): Remove "-face" 6013 * log-view.el (log-view-file, log-view-message): Remove "-face"
5942 suffix from face names. 6014 suffix from face names.
5943 (log-view-file-face, log-view-message-face): New 6015 (log-view-file-face, log-view-message-face):
5944 backward-compatibility aliases for renamed faces. 6016 New backward-compatibility aliases for renamed faces.
5945 (log-view-file-face, log-view-message-face): Use renamed log-view 6017 (log-view-file-face, log-view-message-face): Use renamed log-view
5946 faces. 6018 faces.
5947 6019
@@ -5961,8 +6033,8 @@
5961 (ruler-mode-margins-face, ruler-mode-fringes-face) 6033 (ruler-mode-margins-face, ruler-mode-fringes-face)
5962 (ruler-mode-column-number-face, ruler-mode-fill-column-face) 6034 (ruler-mode-column-number-face, ruler-mode-fill-column-face)
5963 (ruler-mode-comment-column-face, ruler-mode-goal-column-face) 6035 (ruler-mode-comment-column-face, ruler-mode-goal-column-face)
5964 (ruler-mode-tab-stop-face, ruler-mode-current-column-face): New 6036 (ruler-mode-tab-stop-face, ruler-mode-current-column-face):
5965 backward-compatibility aliases for renamed faces. 6037 New backward-compatibility aliases for renamed faces.
5966 (ruler-mode-pad, ruler-mode-margins, ruler-mode-fringes) 6038 (ruler-mode-pad, ruler-mode-margins, ruler-mode-fringes)
5967 (ruler-mode-column-number, ruler-mode-fill-column) 6039 (ruler-mode-column-number, ruler-mode-fill-column)
5968 (ruler-mode-comment-column, ruler-mode-goal-column) 6040 (ruler-mode-comment-column, ruler-mode-goal-column)
@@ -6085,8 +6157,7 @@
6085 * comint.el (comint-check-proc, make-comint-in-buffer) 6157 * comint.el (comint-check-proc, make-comint-in-buffer)
6086 (comint-source-default): Doc fixes. 6158 (comint-source-default): Doc fixes.
6087 6159
6088 * term.el (term-send-string): Improve argument/docstring 6160 * term.el (term-send-string): Improve argument/docstring consistency.
6089 consistency.
6090 6161
60912005-06-09 Luc Teirlinck <teirllm@auburn.edu> 61622005-06-09 Luc Teirlinck <teirllm@auburn.edu>
6092 6163
@@ -6203,12 +6274,11 @@
6203 XEmacs code. 6274 XEmacs code.
6204 (flyspell-word): Minor simplification. 6275 (flyspell-word): Minor simplification.
6205 (flyspell-math-tex-command-p): Quieten the byte-compiler. 6276 (flyspell-math-tex-command-p): Quieten the byte-compiler.
6206 (flyspell-external-point-words): Remove unused vars `size' and 6277 (flyspell-external-point-words): Remove unused vars `size' and `start'.
6207 `start'. 6278 (flyspell-do-correct): Rename from flyspell-xemacs-correct.
6208 (flyspell-do-correct): Rename from flyspell-xemacs-correct. Merge 6279 Merge the corresponding Emacs code.
6209 the corresponding Emacs code. 6280 (flyspell-correct-word, flyspell-xemacs-popup):
6210 (flyspell-correct-word, flyspell-xemacs-popup): Use 6281 Use flyspell-do-correct.
6211 flyspell-do-correct.
6212 6282
6213 * emacs-lisp/debug.el (debug): Don't bury the buffer unless it's in 6283 * emacs-lisp/debug.el (debug): Don't bury the buffer unless it's in
6214 a dedicated window. 6284 a dedicated window.
@@ -6247,8 +6317,7 @@
6247 Add a completion-base-size-function property. 6317 Add a completion-base-size-function property.
6248 6318
6249 * simple.el (completion-setup-function): Look for 6319 * simple.el (completion-setup-function): Look for
6250 completion-base-size-function property of 6320 completion-base-size-function property of minibuffer-completion-table.
6251 minibuffer-completion-table.
6252 6321
6253 * files.el (locate-file-completion): Doc fix. 6322 * files.el (locate-file-completion): Doc fix.
6254 6323
diff --git a/lisp/desktop.el b/lisp/desktop.el
index cf4d387c7b1..0d5d18da191 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -963,10 +963,11 @@ directory DIRNAME."
963 963
964(defun desktop-load-file (function) 964(defun desktop-load-file (function)
965 "Load the file where auto loaded FUNCTION is defined." 965 "Load the file where auto loaded FUNCTION is defined."
966 (let ((fcell (symbol-function function))) 966 (when function
967 (when (and (listp fcell) 967 (let ((fcell (symbol-function function)))
968 (eq 'autoload (car fcell))) 968 (when (and (listp fcell)
969 (load (cadr fcell))))) 969 (eq 'autoload (car fcell)))
970 (load (cadr fcell))))))
970 971
971;; ---------------------------------------------------------------------------- 972;; ----------------------------------------------------------------------------
972;; Create a buffer, load its file, set its mode, ...; 973;; Create a buffer, load its file, set its mode, ...;
diff --git a/lisp/info.el b/lisp/info.el
index 4dc129db152..5d86d0cb46e 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3666,23 +3666,23 @@ the variable `Info-file-list-for-emacs'."
3666 ((equal tag "Up") Info-up-link-keymap)))))) 3666 ((equal tag "Up") Info-up-link-keymap))))))
3667 (when Info-use-header-line 3667 (when Info-use-header-line
3668 (goto-char (point-min)) 3668 (goto-char (point-min))
3669 (let ((header-end (line-end-position)) 3669 (let* ((header-end (line-end-position))
3670 header) 3670 (header
3671 ;; If we find neither Next: nor Prev: link, show the entire 3671 ;; If we find neither Next: nor Prev: link, show the entire
3672 ;; node header. Otherwise, don't show the File: and Node: 3672 ;; node header. Otherwise, don't show the File: and Node:
3673 ;; parts, to avoid wasting precious space on information that 3673 ;; parts, to avoid wasting precious space on information that
3674 ;; is available in the mode line. 3674 ;; is available in the mode line.
3675 (if (re-search-forward 3675 (if (re-search-forward
3676 "\\(next\\|up\\|prev[ious]*\\): " 3676 "\\(next\\|up\\|prev[ious]*\\): "
3677 header-end t) 3677 header-end t)
3678 (progn 3678 (progn
3679 (goto-char (match-beginning 1)) 3679 (goto-char (match-beginning 1))
3680 (setq header (buffer-substring (point) header-end))) 3680 (buffer-substring (point) header-end))
3681 (if (re-search-forward "node:[ \t]*[^ \t]+[ \t]*" header-end t) 3681 (if (re-search-forward "node:[ \t]*[^ \t]+[ \t]*"
3682 (setq header 3682 header-end t)
3683 (concat "No next, prev or up links -- " 3683 (concat "No next, prev or up links -- "
3684 (buffer-substring (point) header-end))) 3684 (buffer-substring (point) header-end))
3685 (setq header (buffer-substring (point) header-end)))) 3685 (buffer-substring (point) header-end)))))
3686 (put-text-property (point-min) (1+ (point-min)) 3686 (put-text-property (point-min) (1+ (point-min))
3687 'header-line 3687 'header-line
3688 (replace-regexp-in-string 3688 (replace-regexp-in-string
@@ -3698,9 +3698,15 @@ the variable `Info-file-list-for-emacs'."
3698 3698
3699 ;; Fontify titles 3699 ;; Fontify titles
3700 (goto-char (point-min)) 3700 (goto-char (point-min))
3701 (when not-fontified-p 3701 (when (and font-lock-mode not-fontified-p)
3702 (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" 3702 (while (and (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$"
3703 nil t) 3703 nil t)
3704 ;; Only consider it as an underlined title if the ASCII
3705 ;; underline has the same size as the text. A typical
3706 ;; counter example is when a continuation "..." is alone
3707 ;; on a line.
3708 (= (- (match-end 1) (match-beginning 1))
3709 (- (match-end 2) (match-beginning 2))))
3704 (let* ((c (preceding-char)) 3710 (let* ((c (preceding-char))
3705 (face 3711 (face
3706 (cond ((= c ?*) 'info-title-1) 3712 (cond ((= c ?*) 'info-title-1)
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index c441b72166c..1e5c9508f4e 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -173,39 +173,42 @@
173 ((if (r2 >= 0) 173 ((if (r2 >= 0)
174 ;; This is a 2D charset. 174 ;; This is a 2D charset.
175 (r1 = ((r1 << 7) | r2))) 175 (r1 = ((r1 << 7) | r2)))
176 (lookup-character ucs-mule-cjk-to-unicode r0 r1) 176 (lookup-character utf-subst-table-for-encode r0 r1)
177 (if r7 177 (if r7
178 ;; We got it! 178 ;; We got it!
179 ((r1 = (r0 >> 8)) 179 ((r1 = (r0 >> 8))
180 (r2 = (r0 & #xFF))) 180 (r2 = (r0 & #xFF)))
181 ;; Look for a translation for non-ASCII chars. 181 ;; Look for a translation for non-ASCII chars.
182 ((translate-character ucs-mule-to-mule-unicode r0 r1) 182 ((translate-character ucs-mule-to-mule-unicode r0 r1)
183 (if (r0 == ,(charset-id 'latin-iso8859-1)) 183 (if (r0 == ,(charset-id 'ascii))
184 ((r2 = (r1 + 128)) 184 ((r2 = r1)
185 (r1 = 0)) 185 (r1 = 0))
186 ((r2 = (r1 & #x7F)) 186 ((if (r0 == ,(charset-id 'latin-iso8859-1))
187 (r1 >>= 7) 187 ((r2 = (r1 + 128))
188 (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) 188 (r1 = 0))
189 ((r1 *= 96) 189 ((r2 = (r1 & #x7F))
190 (r1 += r2) 190 (r1 >>= 7)
191 (r1 += ,(- #x100 (* 32 96) 32)) 191 (if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
192 (r1 >8= 0) 192 ((r1 *= 96)
193 (r2 = r7)) 193 (r1 += r2)
194 (if (r0 == ,(charset-id 'mule-unicode-2500-33ff)) 194 (r1 += ,(- #x100 (* 32 96) 32))
195 ((r1 *= 96) 195 (r1 >8= 0)
196 (r1 += r2) 196 (r2 = r7))
197 (r1 += ,(- #x2500 (* 32 96) 32)) 197 (if (r0 == ,(charset-id 'mule-unicode-2500-33ff))
198 (r1 >8= 0) 198 ((r1 *= 96)
199 (r2 = r7)) 199 (r1 += r2)
200 (if (r0 == ,(charset-id 'mule-unicode-e000-ffff)) 200 (r1 += ,(- #x2500 (* 32 96) 32))
201 ((r1 *= 96) 201 (r1 >8= 0)
202 (r1 += r2) 202 (r2 = r7))
203 (r1 += ,(- #xe000 (* 32 96) 32)) 203 (if (r0 == ,(charset-id 'mule-unicode-e000-ffff))
204 (r1 >8= 0) 204 ((r1 *= 96)
205 (r2 = r7)) 205 (r1 += r2)
206 ;; No way, use the glyph for U+FFFD. 206 (r1 += ,(- #xe000 (* 32 96) 32))
207 ((r1 = #xFF) 207 (r1 >8= 0)
208 (r2 = #xFD))))))))))))) 208 (r2 = r7))
209 ;; No way, use the glyph for U+FFFD.
210 ((r1 = #xFF)
211 (r2 = #xFD)))))))))))))))
209 "Encode characters for display with iso10646 font. 212 "Encode characters for display with iso10646 font.
210Translate through the translation-hash-table named 213Translate through the translation-hash-table named
211`ucs-mule-cjk-to-unicode' and the translation-table named 214`ucs-mule-cjk-to-unicode' and the translation-table named
diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el
index 56043630817..384d973db9f 100644
--- a/lisp/international/utf-8.el
+++ b/lisp/international/utf-8.el
@@ -934,7 +934,8 @@ Move point to the end of the sequence."
934 'help-echo 'utf-8-help-echo) 934 'help-echo 'utf-8-help-echo)
935 (if (= l 2) 935 (if (= l 2)
936 (put-text-property (point) (min (point-max) (+ l (point))) 936 (put-text-property (point) (min (point-max) (+ l (point)))
937 'display (format "\\%03o" ch)) 937 'display (propertize (format "\\%03o" ch)
938 'face 'escape-glyph))
938 (compose-region (point) (+ l (point)) ?$,3u=(B)) 939 (compose-region (point) (+ l (point)) ?$,3u=(B))
939 (forward-char l)) 940 (forward-char l))
940 (forward-char 1)))) 941 (forward-char 1))))
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index 6d3cacecc6a..df92500a006 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -176,7 +176,7 @@ update-subdirs-SH: doit
176 $(srcdir)/update-subdirs $$file; \ 176 $(srcdir)/update-subdirs $$file; \
177 done; 177 done;
178 178
179updates: update-subdirs autoloads finder-data custom-deps 179updates: update-subdirs autoloads mh-autoloads finder-data custom-deps
180 180
181# Update the AUTHORS file. 181# Update the AUTHORS file.
182 182
@@ -207,7 +207,7 @@ TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2)
207# compiled find the right files. 207# compiled find the right files.
208 208
209# Need separate version for sh and native cmd.exe 209# Need separate version for sh and native cmd.exe
210compile: subdirs.el compile-$(SHELLTYPE) doit 210compile: subdirs.el mh-autoloads compile-$(SHELLTYPE) doit
211 211
212compile-CMD: 212compile-CMD:
213# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g 213# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
@@ -282,9 +282,47 @@ compile-after-backup: backup-compiled-files compile-always
282# Note that this doesn't create .elc files. It only recompiles if an 282# Note that this doesn't create .elc files. It only recompiles if an
283# .elc is present. 283# .elc is present.
284 284
285recompile: doit 285recompile: mh-autoloads doit
286 $(emacs) -f batch-byte-recompile-directory $(lisp) 286 $(emacs) -f batch-byte-recompile-directory $(lisp)
287 287
288# Update MH-E internal autoloads. These are not to be confused with
289# the autoloads for the MH-E entry points, which are already in
290# loaddefs.el.
291MH_E_SRC = $(lisp)/mh-e/mh-acros.el $(lisp)/mh-e/mh-alias.el \
292 $(lisp)/mh-e/mh-comp.el $(lisp)/mh-e/mh-customize.el \
293 $(lisp)/mh-e/mh-e.el $(lisp)/mh-e/mh-funcs.el \
294 $(lisp)/mh-e/mh-mime.el $(lisp)/mh-e/mh-pick.el \
295 $(lisp)/mh-e/mh-print.el $(lisp)/mh-e/mh-inc.el \
296 $(lisp)/mh-e/mh-init.el $(lisp)/mh-e/mh-index.el \
297 $(lisp)/mh-e/mh-identity.el $(lisp)/mh-e/mh-junk.el \
298 $(lisp)/mh-e/mh-seq.el $(lisp)/mh-e/mh-speed.el \
299 $(lisp)/mh-e/mh-utils.el
300
301mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el
302$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
303 echo ";;; mh-loaddefs.el --- automatically extracted autoloads" > $@
304 echo ";;" >> $@
305 echo ";;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc." >> $@
306 echo ";;; Author: Bill Wohler <wohler@newt.com>" >> $@
307 echo ";;; Keywords: mail" >> $@
308 echo ";;; Commentary:" >> $@
309 echo ";;; Change Log:" >> $@
310 echo ";;; Code:" >> $@
311 $(EMACS) $(EMACSOPT) \
312 -l autoload \
313 --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
314 --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
315 --eval "(setq make-backup-files nil)" \
316 -f batch-update-autoloads $(lisp)/mh-e
317 echo " " >> $@
318 echo "(provide 'mh-loaddefs)" >> $@
319 echo ";;; Local Variables:" >> $@
320 echo ";;; version-control: never" >> $@
321 echo ";;; no-byte-compile: t" >> $@
322 echo ";;; no-update-autoloads: t" >> $@
323 echo ";;; End:" >> $@
324 echo ";;; mh-loaddefs.el ends here" >> $@
325
288# Prepare a bootstrap in the lisp subdirectory. 326# Prepare a bootstrap in the lisp subdirectory.
289# 327#
290# Build loaddefs.el to make sure it's up-to-date. If it's not, that 328# Build loaddefs.el to make sure it's up-to-date. If it's not, that
@@ -316,7 +354,7 @@ bootstrap-clean-SH:
316# When done, remove bootstrap-emacs from ../bin, so that 354# When done, remove bootstrap-emacs from ../bin, so that
317# it will not be mistaken for an installed binary. 355# it will not be mistaken for an installed binary.
318 356
319bootstrap: update-subdirs autoloads compile finder-data custom-deps 357bootstrap: update-subdirs autoloads mh-autoloads compile finder-data custom-deps
320 - $(DEL) $(EMACS) 358 - $(DEL) $(EMACS)
321 359
322# 360#
diff --git a/lisp/mh-e/.gitignore b/lisp/mh-e/.gitignore
index 150b33984e4..19a8825a278 100644
--- a/lisp/mh-e/.gitignore
+++ b/lisp/mh-e/.gitignore
@@ -1 +1,2 @@
1mh-autoloads.el
1mh-loaddefs.el 2mh-loaddefs.el
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index 5134cf8292e..741ae8097a0 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -46,6 +46,14 @@
46 46
47;;; History: 47;;; History:
48;; Version 0.3: 48;; Version 0.3:
49;; 12/10/05: Stefan Monnier <monnier@iro.umontreal.ca>
50;; Use font-lock-syntactic-keywords to detect/mark comments.
51;; Use [^ \t\n]+ to match the operand part of a line.
52;; Drop mixal-operation-codes.
53;; Build the mixal-operation-codes-alist immediately.
54;; Use `interactive' in mixal-describe-operation-code.
55;; Remove useless ".*$" at the end of some regexps.
56;; Fix the definition of comment-start-skip.
49;; 08/10/05: sync mdk and emacs cvs 57;; 08/10/05: sync mdk and emacs cvs
50;; from emacs: compile-command and require-final-newline 58;; from emacs: compile-command and require-final-newline
51;; from mdk: see version 0.2 59;; from mdk: see version 0.2
@@ -79,10 +87,12 @@
79;;; Syntax table 87;;; Syntax table
80(defvar mixal-mode-syntax-table 88(defvar mixal-mode-syntax-table
81 (let ((st (make-syntax-table))) 89 (let ((st (make-syntax-table)))
82 ;; (modify-syntax-entry ?* "<" st) we need to do a bit more to make 90 ;; We need to do a bit more to make fontlocking for comments work.
83 ;; (modify-syntax-entry ?\n ">" st) fontlocking for comments work 91 ;; See mixal-font-lock-syntactic-keywords.
92 ;; (modify-syntax-entry ?* "<" st)
93 (modify-syntax-entry ?\n ">" st)
84 st) 94 st)
85 "Syntax table for `dot-mode'.") 95 "Syntax table for `mixal-mode'.")
86 96
87(defvar mixal-font-lock-label-face 'font-lock-variable-name-face 97(defvar mixal-font-lock-label-face 'font-lock-variable-name-face
88 "Face name to use for label names. 98 "Face name to use for label names.
@@ -99,48 +109,10 @@ value.")
99Default value is that of `font-lock-builtin-face', but you can modify its 109Default value is that of `font-lock-builtin-face', but you can modify its
100value.") 110value.")
101 111
102(defvar mixal-operation-codes
103 '("NOP" "ADD" "FADD" "SUB" "FSUB" "MUL" "FMUL" "DIV" "FDIV" "NUM" "CHAR"
104 "HLT" "SLA" "SRA" "SLAX" "SRAX" "SLC" "SRC" "MOVE" "LDA" "LD1" "LD2" "LD3"
105 "LD4" "LD5" "LD6" "LDX" "LDAN" "LD1N" "LD2N" "LD3N" "LD4N" "LD5N" "LD6N"
106 "LDXN" "STA" "ST1" "ST2" "ST3" "ST4" "ST5" "ST6" "STX" "STJ" "STZ" "JBUS"
107 "IOC" "IN" "OUT" "JRAD" "JMP" "JSJ" "JOV" "JNOV"
108 "JL" "JE" "JG" "JGE" "JNE" "JLE"
109 "JAN" "J1N" "J2N" "J3N" "J4N" "J5N" "J6N" "JXN"
110 "JAZ" "J1Z" "J2Z" "J3Z" "J4Z" "J5Z" "J6Z" "JXZ"
111 "JAP" "J1P" "J2P" "J3P" "J4P" "J5P" "J6P" "JXP"
112 "JANN" "J1NN" "J2NN" "J3NN" "J4NN" "J5NN" "J6NN" "JXNN"
113 "JANZ" "J1NZ" "J2NZ" "J3NZ" "J4NZ" "J5NZ" "J6NZ" "JXNZ"
114 "JANP" "J1NP" "J2NP" "J3NP" "J4NP" "J5NP" "J6NP" "JXNP"
115 "INCA" "DECA" "ENTA" "ENNA" "INC1" "DEC1" "ENT1" "ENN1"
116 "INC2" "DEC2" "ENT2" "ENN2" "INC3" "DEC3" "ENT3" "ENN3" "INC4" "DEC4"
117 "ENT4" "ENN4" "INC5" "DEC5" "ENT5" "ENN5" "INC6" "DEC6" "ENT6" "ENN6"
118 "INCX" "DECX" "ENTX" "ENNX" "CMPA" "FCMP" "CMP1" "CMP2" "CMP3" "CMP4"
119 "CMP5" "CMP6" "CMPX")
120 "List of possible operation codes as strings.")
121;; (makunbound 'mixal-operation-codes)
122
123(defvar mixal-assembly-pseudoinstructions 112(defvar mixal-assembly-pseudoinstructions
124 '("ORIG" "EQU" "CON" "ALF" "END") 113 '("ORIG" "EQU" "CON" "ALF" "END")
125 "List of possible assembly pseudoinstructions.") 114 "List of possible assembly pseudoinstructions.")
126 115
127;;; Font-locking:
128(defvar mixal-font-lock-keywords
129 `(("^\\([A-Z0-9a-z]+\\).*$"
130 (1 mixal-font-lock-label-face))
131 (,(regexp-opt mixal-operation-codes 'words)
132 . mixal-font-lock-operation-code-face)
133 (,(regexp-opt
134 mixal-assembly-pseudoinstructions 'words)
135 . mixal-font-lock-assembly-pseudoinstruction-face)
136 ("^[A-Z0-9a-z]*[ \t]+[A-ZO-9a-z]+[ \t]+\\(=.*=\\).*$"
137 (1 font-lock-constant-face))
138 ("^[A-Z0-9a-z]*[ \t]+[A-Z0-9a-z]+[ \t]+[A-Z0-9a-z,():+-\\*=\" ]*\t+\\(.*\\)$"
139 (1 font-lock-comment-face))
140 ("^\\*.*$" . font-lock-comment-face))
141 "Keyword highlighting specification for `mixal-mode'.")
142;; (makunbound 'mixal-font-lock-keywords)
143
144;;;; Compilation 116;;;; Compilation
145;; Output from mixasm is compatible with default behavior of emacs, 117;; Output from mixasm is compatible with default behavior of emacs,
146;; I just added a key (C-cc) and modified the make-command. 118;; I just added a key (C-cc) and modified the make-command.
@@ -149,1127 +121,940 @@ value.")
149;; Tabs works well by default. 121;; Tabs works well by default.
150 122
151;;;; Describe 123;;;; Describe
152(defvar mixal-operation-codes-alist '() 124(defvar mixal-operation-codes-alist
153 "Alist that contains all the possible operation codes for mix. 125 ;; FIXME: the codes FADD, FSUB, FMUL, FDIV, JRAD, and FCMP were in
154Each elt has the form 126 ;; mixal-operation-codes but not here. They should probably be added here.
155 (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME) 127 ;;
156Where OP-CODE is the text of the opcode as an symbol, 128 ;; We used to define this with a backquote and subexps like ,(+ 8 3) for
157FULL-NAME is the human readable name as a string, 129 ;; better clarity, but the resulting code was too big and caused the
158C-BYTE is the operation code telling what operation is to be performed, 130 ;; byte-compiler to eat up all the stack space. Even using
159F-BYTE holds a modification of the operation code which can be a symbol 131 ;; `eval-when-compile' didn't help because the byte-compiler insists on
160 or a number, 132 ;; compiling the code before evaluating it.
161DESCRIPTION contains an string with a description about the operation code and 133 '((LDA loading "load A" 8 field
162EXECUTION-TIME holds info about the time it takes, number or string.") 134 "Put in rA the contents of cell no. M.
163;; (makunbound 'mixal-operation-codes-alist)
164
165(defun mixal-add-operation-code (op-code group full-name C-byte F-byte
166 description execution-time)
167 "Add an operation code to `mixal-operation-codes-alist'."
168 (setq mixal-operation-codes-alist
169 (cons (list op-code group full-name C-byte F-byte
170 description execution-time)
171 mixal-operation-codes-alist)))
172
173;; now add each operation code
174
175(mixal-add-operation-code
176 'LDA 'loading "load A" 8 'field
177 "Put in rA the contents of cell no. M.
178Uses a + when there is no sign in subfield. Subfield is left padded with 135Uses a + when there is no sign in subfield. Subfield is left padded with
179zeros to make a word." 136zeros to make a word."
180 2) 137 2)
181 138
182(mixal-add-operation-code 139 (LDX loading "load X" 15 field
183 'LDX 'loading "load X" 15 'field 140 "Put in rX the contents of cell no. M.
184 "Put in rX the contents of cell no. M.
185Uses a + when there is no sign in subfield. Subfield is left padded with 141Uses a + when there is no sign in subfield. Subfield is left padded with
186zeros to make a word." 142zeros to make a word."
187 2) 143 2)
188 144
189(mixal-add-operation-code 145 (LD1 loading "load I1" 9 field
190 'LD1 'loading "load I1" (+ 8 1) 'field 146 "Put in rI1 the contents of cell no. M.
191 "Put in rI1 the contents of cell no. M.
192Uses a + when there is no sign in subfield. Subfield is left padded with 147Uses a + when there is no sign in subfield. Subfield is left padded with
193zeros to make a word. Index registers only have 2 bytes and a sign, Trying 148zeros to make a word. Index registers only have 2 bytes and a sign, Trying
194to set anything more that that will result in undefined behavior." 149to set anything more that that will result in undefined behavior."
195 2) 150 2)
196 151
197(mixal-add-operation-code 152 (LD2 loading "load I2" 10 field
198 'LD2 'loading "load I2" (+ 8 2) 'field 153 "Put in rI2 the contents of cell no. M.
199 "Put in rI2 the contents of cell no. M.
200Uses a + when there is no sign in subfield. Subfield is left padded with 154Uses a + when there is no sign in subfield. Subfield is left padded with
201zeros to make a word. Index registers only have 2 bytes and a sign, Trying 155zeros to make a word. Index registers only have 2 bytes and a sign, Trying
202to set anything more that that will result in undefined behavior." 156to set anything more that that will result in undefined behavior."
203 2) 157 2)
204 158
205(mixal-add-operation-code 159 (LD3 loading "load I3" 11 field
206 'LD3 'loading "load I3" (+ 8 3) 'field 160 "Put in rI3 the contents of cell no. M.
207 "Put in rI3 the contents of cell no. M.
208Uses a + when there is no sign in subfield. Subfield is left padded with 161Uses a + when there is no sign in subfield. Subfield is left padded with
209zeros to make a word. Index registers only have 2 bytes and a sign, Trying 162zeros to make a word. Index registers only have 2 bytes and a sign, Trying
210to set anything more that that will result in undefined behavior." 163to set anything more that that will result in undefined behavior."
211 2) 164 2)
212 165
213(mixal-add-operation-code 166 (LD4 loading "load I4" 12 field
214 'LD4 'loading "load I4" (+ 8 4) 'field 167 "Put in rI4 the contents of cell no. M.
215 "Put in rI4 the contents of cell no. M.
216Uses a + when there is no sign in subfield. Subfield is left padded with 168Uses a + when there is no sign in subfield. Subfield is left padded with
217zeros to make a word. Index registers only have 2 bytes and a sign, Trying 169zeros to make a word. Index registers only have 2 bytes and a sign, Trying
218to set anything more that that will result in undefined behavior." 170to set anything more that that will result in undefined behavior."
219 2) 171 2)
220 172
221(mixal-add-operation-code 173 (LD5 loading "load I5" 13 field
222 'LD5 'loading "load I5" (+ 8 5) 'field 174 "Put in rI5 the contents of cell no. M.
223 "Put in rI5 the contents of cell no. M.
224Uses a + when there is no sign in subfield. Subfield is left padded with 175Uses a + when there is no sign in subfield. Subfield is left padded with
225zeros to make a word. Index registers only have 2 bytes and a sign, Trying 176zeros to make a word. Index registers only have 2 bytes and a sign, Trying
226to set anything more that that will result in undefined behavior." 177to set anything more that that will result in undefined behavior."
227 2) 178 2)
228 179
229(mixal-add-operation-code 180 (LD6 loading "load I6" 14 field
230 'LD6 'loading "load I6" (+ 8 6) 'field 181 "Put in rI6 the contents of cell no. M.
231 "Put in rI6 the contents of cell no. M.
232Uses a + when there is no sign in subfield. Subfield is left padded with 182Uses a + when there is no sign in subfield. Subfield is left padded with
233zeros to make a word. Index registers only have 2 bytes and a sign, Trying 183zeros to make a word. Index registers only have 2 bytes and a sign, Trying
234to set anything more that that will result in undefined behavior." 184to set anything more that that will result in undefined behavior."
235 2) 185 2)
236 186
237(mixal-add-operation-code 187 (LDAN loading "load A negative" 16 field
238 'LDAN 'loading "load A negative" 16 'field 188 "Put in rA the contents of cell no. M, with opposite sign.
239 "Put in rA the contents of cell no. M, with opposite sign.
240Uses a + when there is no sign in subfield, otherwise use the opposite sign. 189Uses a + when there is no sign in subfield, otherwise use the opposite sign.
241Subfield is left padded with zeros to make a word." 190Subfield is left padded with zeros to make a word."
242 2) 191 2)
243 192
244(mixal-add-operation-code 193 (LDXN loading "load X negative" 23 field
245 'LDXN 'loading "load X negative" 23 'field 194 "Put in rX the contents of cell no. M, with opposite sign.
246 "Put in rX the contents of cell no. M, with opposite sign.
247Uses a + when there is no sign in subfield, otherwise use the opposite sign. 195Uses a + when there is no sign in subfield, otherwise use the opposite sign.
248Subfield is left padded with zeros to make a word." 196Subfield is left padded with zeros to make a word."
249 2) 197 2)
250 198
251(mixal-add-operation-code 199 (LD1N loading "load I1 negative" 17 field
252 'LD1N 'loading "load I1 negative" (+ 16 1) 'field 200 "Put in rI1 the contents of cell no. M, with opposite sign.
253 "Put in rI1 the contents of cell no. M, with opposite sign.
254Uses a + when there is no sign in subfield, otherwise use the opposite sign. 201Uses a + when there is no sign in subfield, otherwise use the opposite sign.
255Subfield is left padded with zeros to make a word. Index registers only 202Subfield is left padded with zeros to make a word. Index registers only
256have 2 bytes and a sign, Trying to set anything more that that will result 203have 2 bytes and a sign, Trying to set anything more that that will result
257in undefined behavior." 204in undefined behavior."
258 2) 205 2)
259 206
260(mixal-add-operation-code 207 (LD2N loading "load I2 negative" 18 field
261 'LD2N 'loading "load I2 negative" (+ 16 2) 'field 208 "Put in rI2 the contents of cell no. M, with opposite sign.
262 "Put in rI2 the contents of cell no. M, with opposite sign.
263Uses a + when there is no sign in subfield, otherwise use the opposite sign. 209Uses a + when there is no sign in subfield, otherwise use the opposite sign.
264Subfield is left padded with zeros to make a word. Index registers only 210Subfield is left padded with zeros to make a word. Index registers only
265have 2 bytes and a sign, Trying to set anything more that that will result 211have 2 bytes and a sign, Trying to set anything more that that will result
266in undefined behavior." 212in undefined behavior."
267 2) 213 2)
268 214
269(mixal-add-operation-code 215 (LD3N loading "load I3 negative" 19 field
270 'LD3N 'loading "load I3 negative" (+ 16 3) 'field 216 "Put in rI3 the contents of cell no. M, with opposite sign.
271 "Put in rI3 the contents of cell no. M, with opposite sign.
272Uses a + when there is no sign in subfield, otherwise use the opposite sign. 217Uses a + when there is no sign in subfield, otherwise use the opposite sign.
273Subfield is left padded with zeros to make a word. Index registers only 218Subfield is left padded with zeros to make a word. Index registers only
274have 2 bytes and a sign, Trying to set anything more that that will result 219have 2 bytes and a sign, Trying to set anything more that that will result
275in undefined behavior." 220in undefined behavior."
276 2) 221 2)
277 222
278(mixal-add-operation-code 223 (LD4N loading "load I4 negative" 20 field
279 'LD4N 'loading "load I4 negative" (+ 16 4) 'field 224 "Put in rI4 the contents of cell no. M, with opposite sign.
280 "Put in rI4 the contents of cell no. M, with opposite sign.
281Uses a + when there is no sign in subfield, otherwise use the opposite sign. 225Uses a + when there is no sign in subfield, otherwise use the opposite sign.
282Subfield is left padded with zeros to make a word. Index registers only 226Subfield is left padded with zeros to make a word. Index registers only
283have 2 bytes and a sign, Trying to set anything more that that will result 227have 2 bytes and a sign, Trying to set anything more that that will result
284in undefined behavior." 228in undefined behavior."
285 2) 229 2)
286 230
287(mixal-add-operation-code 231 (LD5N loading "load I5 negative" 21 field
288 'LD5N 'loading "load I5 negative" (+ 16 5) 'field 232 "Put in rI5 the contents of cell no. M, with opposite sign.
289 "Put in rI5 the contents of cell no. M, with opposite sign.
290Uses a + when there is no sign in subfield, otherwise use the opposite sign. 233Uses a + when there is no sign in subfield, otherwise use the opposite sign.
291Subfield is left padded with zeros to make a word. Index registers only 234Subfield is left padded with zeros to make a word. Index registers only
292have 2 bytes and a sign, Trying to set anything more that that will result 235have 2 bytes and a sign, Trying to set anything more that that will result
293in undefined behavior." 236in undefined behavior."
294 2) 237 2)
295 238
296(mixal-add-operation-code 239 (LD6N loading "load I6 negative" 22 field
297 'LD6N 'loading "load I6 negative" (+ 16 6) 'field 240 "Put in rI6 the contents of cell no. M, with opposite sign.
298 "Put in rI6 the contents of cell no. M, with opposite sign.
299Uses a + when there is no sign in subfield, otherwise use the opposite sign. 241Uses a + when there is no sign in subfield, otherwise use the opposite sign.
300Subfield is left padded with zeros to make a word. Index registers only 242Subfield is left padded with zeros to make a word. Index registers only
301have 2 bytes and a sign, Trying to set anything more that that will result 243have 2 bytes and a sign, Trying to set anything more that that will result
302in undefined behavior." 244in undefined behavior."
303 2) 245 2)
304 246
305(mixal-add-operation-code 247 (STA storing "store A" 24 field
306 'STA 'storing "store A" 24 'field 248 "Store in cell Nr. M the contents of rA.
307 "Store in cell Nr. M the contents of rA.
308The modification of the operation code represents the subfield of the 249The modification of the operation code represents the subfield of the
309memory cell that is to be overwritten with bytes from a register. These 250memory cell that is to be overwritten with bytes from a register. These
310bytes are taken beginning by the rightmost side of the register. The 251bytes are taken beginning by the rightmost side of the register. The
311sign of the memory cell is not changed, unless it is part of the subfield." 252sign of the memory cell is not changed, unless it is part of the subfield."
312 2) 253 2)
313 254
314(mixal-add-operation-code 255 (STX storing "store X" 31 field
315 'STX 'storing "store X" 31 'field 256 "Store in cell Nr. M the contents of rX.
316 "Store in cell Nr. M the contents of rX.
317The modification of the operation code represents the subfield of the 257The modification of the operation code represents the subfield of the
318memory cell that is to be overwritten with bytes from a register. These 258memory cell that is to be overwritten with bytes from a register. These
319bytes are taken beginning by the rightmost side of the register. The 259bytes are taken beginning by the rightmost side of the register. The
320sign of the memory cell is not changed, unless it is part of the subfield." 260sign of the memory cell is not changed, unless it is part of the subfield."
321 2) 261 2)
322 262
323(mixal-add-operation-code 263 (ST1 storing "store I1" 25 field
324 'ST1 'storing "store I1" (+ 24 1) 'field 264 "Store in cell Nr. M the contents of rI1.
325 "Store in cell Nr. M the contents of rI1.
326The modification of the operation code represents the subfield of the 265The modification of the operation code represents the subfield of the
327memory cell that is to be overwritten with bytes from a register. These 266memory cell that is to be overwritten with bytes from a register. These
328bytes are taken beginning by the rightmost side of the register. The 267bytes are taken beginning by the rightmost side of the register. The
329sign of the memory cell is not changed, unless it is part of the subfield. 268sign of the memory cell is not changed, unless it is part of the subfield.
330Because index registers only have 2 bytes and a sign, the rest of the bytes 269Because index registers only have 2 bytes and a sign, the rest of the bytes
331are assumed to be 0." 270are assumed to be 0."
332 2) 271 2)
333 272
334(mixal-add-operation-code 273 (ST2 storing "store I2" 26 field
335 'ST2 'storing "store I2" (+ 24 2) 'field 274 "Store in cell Nr. M the contents of rI2.
336 "Store in cell Nr. M the contents of rI2.
337The modification of the operation code represents the subfield of the 275The modification of the operation code represents the subfield of the
338memory cell that is to be overwritten with bytes from a register. These 276memory cell that is to be overwritten with bytes from a register. These
339bytes are taken beginning by the rightmost side of the register. The 277bytes are taken beginning by the rightmost side of the register. The
340sign of the memory cell is not changed, unless it is part of the subfield. 278sign of the memory cell is not changed, unless it is part of the subfield.
341Because index registers only have 2 bytes and a sign, the rest of the bytes 279Because index registers only have 2 bytes and a sign, the rest of the bytes
342are assumed to be 0." 280are assumed to be 0."
343 2) 281 2)
344 282
345(mixal-add-operation-code 283 (ST3 storing "store I3" 27 field
346 'ST3 'storing "store I3" (+ 24 3) 'field 284 "Store in cell Nr. M the contents of rI3.
347 "Store in cell Nr. M the contents of rI3.
348The modification of the operation code represents the subfield of the 285The modification of the operation code represents the subfield of the
349memory cell that is to be overwritten with bytes from a register. These 286memory cell that is to be overwritten with bytes from a register. These
350bytes are taken beginning by the rightmost side of the register. The 287bytes are taken beginning by the rightmost side of the register. The
351sign of the memory cell is not changed, unless it is part of the subfield. 288sign of the memory cell is not changed, unless it is part of the subfield.
352Because index registers only have 2 bytes and a sign, the rest of the bytes 289Because index registers only have 2 bytes and a sign, the rest of the bytes
353are assumed to be 0." 290are assumed to be 0."
354 2) 291 2)
355 292
356(mixal-add-operation-code 293 (ST4 storing "store I4" 28 field
357 'ST4 'storing "store I4" (+ 24 4) 'field 294 "Store in cell Nr. M the contents of rI4.
358 "Store in cell Nr. M the contents of rI4.
359The modification of the operation code represents the subfield of the 295The modification of the operation code represents the subfield of the
360memory cell that is to be overwritten with bytes from a register. These 296memory cell that is to be overwritten with bytes from a register. These
361bytes are taken beginning by the rightmost side of the register. The 297bytes are taken beginning by the rightmost side of the register. The
362sign of the memory cell is not changed, unless it is part of the subfield. 298sign of the memory cell is not changed, unless it is part of the subfield.
363Because index registers only have 2 bytes and a sign, the rest of the bytes 299Because index registers only have 2 bytes and a sign, the rest of the bytes
364are assumed to be 0." 300are assumed to be 0."
365 2) 301 2)
366 302
367(mixal-add-operation-code 303 (ST5 storing "store I5" 29 field
368 'ST5 'storing "store I5" (+ 24 5) 'field 304 "Store in cell Nr. M the contents of rI5.
369 "Store in cell Nr. M the contents of rI5.
370The modification of the operation code represents the subfield of the 305The modification of the operation code represents the subfield of the
371memory cell that is to be overwritten with bytes from a register. These 306memory cell that is to be overwritten with bytes from a register. These
372bytes are taken beginning by the rightmost side of the register. The 307bytes are taken beginning by the rightmost side of the register. The
373sign of the memory cell is not changed, unless it is part of the subfield. 308sign of the memory cell is not changed, unless it is part of the subfield.
374Because index registers only have 2 bytes and a sign, the rest of the bytes 309Because index registers only have 2 bytes and a sign, the rest of the bytes
375are assumed to be 0." 310are assumed to be 0."
376 2) 311 2)
377 312
378(mixal-add-operation-code 313 (ST6 storing "store I6" 30 field
379 'ST6 'storing "store I6" (+ 24 6) 'field 314 "Store in cell Nr. M the contents of rI6.
380 "Store in cell Nr. M the contents of rI6.
381The modification of the operation code represents the subfield of the 315The modification of the operation code represents the subfield of the
382memory cell that is to be overwritten with bytes from a register. These 316memory cell that is to be overwritten with bytes from a register. These
383bytes are taken beginning by the rightmost side of the register. The 317bytes are taken beginning by the rightmost side of the register. The
384sign of the memory cell is not changed, unless it is part of the subfield. 318sign of the memory cell is not changed, unless it is part of the subfield.
385Because index registers only have 2 bytes and a sign, the rest of the bytes 319Because index registers only have 2 bytes and a sign, the rest of the bytes
386are assumed to be 0." 320are assumed to be 0."
387 2) 321 2)
388 322
389(mixal-add-operation-code 323 (STJ storing "store J" 32 field
390 'STJ 'storing "store J" 32 'field 324 "Store in cell Nr. M the contents of rJ.
391 "Store in cell Nr. M the contents of rJ.
392The modification of the operation code represents the subfield of the 325The modification of the operation code represents the subfield of the
393memory cell that is to be overwritten with bytes from a register. These 326memory cell that is to be overwritten with bytes from a register. These
394bytes are taken beginning by the rightmost side of the register. The sign 327bytes are taken beginning by the rightmost side of the register. The sign
395of rJ is always +, sign of the memory cell is not changed, unless it is 328of rJ is always +, sign of the memory cell is not changed, unless it is
396part of the subfield. The default field for STJ is (0:2)." 329part of the subfield. The default field for STJ is (0:2)."
397 2) 330 2)
398 331
399(mixal-add-operation-code 332 (STZ storing "store zero" 33 field
400 'STZ 'storing "store zero" 33 'field 333 "Store in cell Nr. M '+ 0'.
401 "Store in cell Nr. M '+ 0'.
402The modification of the operation code represents the subfield of the 334The modification of the operation code represents the subfield of the
403memory cell that is to be overwritten with zeros." 335memory cell that is to be overwritten with zeros."
404 2) 336 2)
405 337
406(mixal-add-operation-code 338 (ADD arithmetic "add" 1 field
407 'ADD 'arithmetic "add" 1 'field 339 "Add to A the contents of cell Nr. M.
408 "Add to A the contents of cell Nr. M.
409Subfield is padded with zero to make a word. 340Subfield is padded with zero to make a word.
410If the result is to large, the operation result modulo 1,073,741,823 (the 341If the result is to large, the operation result modulo 1,073,741,823 (the
411maximum value storable in a MIX word) is stored in `rA', and the overflow 342maximum value storable in a MIX word) is stored in `rA', and the overflow
412toggle is set to TRUE." 343toggle is set to TRUE."
413 2) 344 2)
414 345
415(mixal-add-operation-code 346 (SUB arithmetic "subtract" 2 field
416 'SUB 'arithmetic "subtract" 2 'field 347 "Subtract to A the contents of cell Nr. M.
417 "Subtract to A the contents of cell Nr. M.
418Subfield is padded with zero to make a word. 348Subfield is padded with zero to make a word.
419If the result is to large, the operation result modulo 1,073,741,823 (the 349If the result is to large, the operation result modulo 1,073,741,823 (the
420maximum value storable in a MIX word) is stored in `rA', and the overflow 350maximum value storable in a MIX word) is stored in `rA', and the overflow
421toggle is set to TRUE." 351toggle is set to TRUE."
422 2) 352 2)
423 353
424(mixal-add-operation-code 354 (MUL arithmetic "multiply" 3 field
425 'MUL 'arithmetic "multiply" 3 'field 355 "Multiplies the contents of cell Nr. M with A, result is 10 bytes and stored in rA and rX.
426 "Multiplies the contents of cell Nr. M with A, result is 10 bytes and stored in rA and rX.
427The sign is + if the sign of rA and cell M where the same, otherwise, it is -" 356The sign is + if the sign of rA and cell M where the same, otherwise, it is -"
428 10) 357 10)
429 358
430(mixal-add-operation-code 359 (DIV arithmetic "divide" 4 field
431 'DIV 'arithmetic "divide" 4 'field 360 "Both rA and rX are taken together and divided by cell Nr. M, quotient is placed in rA, remainder in rX.
432 "Both rA and rX are taken together and divided by cell Nr. M, quotient is placed in rA, remainder in rX.
433The sign is taken from rA, and after the divide the sign of rA is set to + when 361The sign is taken from rA, and after the divide the sign of rA is set to + when
434both the sign of rA and M where the same. Divide by zero and overflow of rA result 362both the sign of rA and M where the same. Divide by zero and overflow of rA
435in undefined behavior." 363result in undefined behavior."
436 12) 364 12)
437 365
438(mixal-add-operation-code 366 (ENTA address-transfer "enter A" 48
439 'ENTA 'address-transfer "enter A" 48 2 367 "Literal value is stored in rA.
440 "Literal value is stored in rA.
441Indexed, stores value of index in rA." 368Indexed, stores value of index in rA."
442 1) 369 1)
443 370
444(mixal-add-operation-code 371 (ENTX address-transfer "enter X" 55
445 'ENTX 'address-transfer "enter X" 55 2 372 "Literal value is stored in rX.
446 "Literal value is stored in rX.
447Indexed, stores value of index in rX." 373Indexed, stores value of index in rX."
448 1) 374 1)
449 375
450(mixal-add-operation-code 376 (ENT1 address-transfer "Enter rI1" 49
451 'ENT1 'address-transfer "Enter rI1" (+ 48 1) 2 377 "Literal value is stored in rI1.
452 "Literal value is stored in rI1.
453Indexed, stores value of index in rI1." 378Indexed, stores value of index in rI1."
454 1) 379 1)
455 380
456(mixal-add-operation-code 381 (ENT2 address-transfer "Enter rI2" 50
457 'ENT2 'address-transfer "Enter rI2" (+ 48 2) 2 382 "Literal value is stored in rI2.
458 "Literal value is stored in rI2.
459Indexed, stores value of index in rI2." 383Indexed, stores value of index in rI2."
460 1) 384 1)
461 385
462(mixal-add-operation-code 386 (ENT3 address-transfer "Enter rI3" 51
463 'ENT3 'address-transfer "Enter rI3" (+ 48 3) 2 387 "Literal value is stored in rI3.
464 "Literal value is stored in rI3.
465Indexed, stores value of index in rI3." 388Indexed, stores value of index in rI3."
466 1) 389 1)
467 390
468(mixal-add-operation-code 391 (ENT4 address-transfer "Enter rI4" 52
469 'ENT4 'address-transfer "Enter rI4" (+ 48 4) 2 392 "Literal value is stored in rI4.
470 "Literal value is stored in rI4.
471Indexed, stores value of index in rI4." 393Indexed, stores value of index in rI4."
472 1) 394 1)
473 395
474(mixal-add-operation-code 396 (ENT5 address-transfer "Enter rI5" 53
475 'ENT5 'address-transfer "Enter rI5" (+ 48 5) 2 397 "Literal value is stored in rI5.
476 "Literal value is stored in rI5.
477Indexed, stores value of index in rI5." 398Indexed, stores value of index in rI5."
478 1) 399 1)
479 400
480(mixal-add-operation-code 401 (ENT6 address-transfer "Enter rI6" 54
481 'ENT6 'address-transfer "Enter rI6" (+ 48 6) 2 402 "Literal value is stored in rI6.
482 "Literal value is stored in rI6.
483Indexed, stores value of index in rI6." 403Indexed, stores value of index in rI6."
484 1) 404 1)
485 405
486(mixal-add-operation-code 406 (ENNA address-transfer "enter negative A" 48
487 'ENNA 'address-transfer "enter negative A" 48 3 407 "Literal value is stored in rA with opposite sign.
488 "Literal value is stored in rA with opposite sign.
489Indexed, stores value of index in rA with opposite sign." 408Indexed, stores value of index in rA with opposite sign."
490 1) 409 1)
491 410
492(mixal-add-operation-code 411 (ENNX address-transfer "enter negative X" 55
493 'ENNX 'address-transfer "enter negative X" 55 3 412 "Literal value is stored in rX with opposite sign.
494 "Literal value is stored in rX with opposite sign.
495Indexed, stores value of index in rX with opposite sign." 413Indexed, stores value of index in rX with opposite sign."
496 1) 414 1)
497 415
498(mixal-add-operation-code 416 (ENN1 address-transfer "Enter negative rI1" 49
499 'ENN1 'address-transfer "Enter negative rI1" (+ 48 1) 3 417 "Literal value is stored in rI1 with opposite sign.
500 "Literal value is stored in rI1 with opposite sign.
501Indexed, stores value of index in rI1 with opposite sign." 418Indexed, stores value of index in rI1 with opposite sign."
502 1) 419 1)
503 420
504(mixal-add-operation-code 421 (ENN2 address-transfer "Enter negative rI2" 50
505 'ENN2 'address-transfer "Enter negative rI2" (+ 48 2) 3 422 "Literal value is stored in rI2 with opposite sign.
506 "Literal value is stored in rI2 with opposite sign.
507Indexed, stores value of index in rI2 with opposite sign." 423Indexed, stores value of index in rI2 with opposite sign."
508 1) 424 1)
509 425
510(mixal-add-operation-code 426 (ENN3 address-transfer "Enter negative rI3" 51
511 'ENN3 'address-transfer "Enter negative rI3" (+ 48 3) 3 427 "Literal value is stored in rI3 with opposite sign.
512 "Literal value is stored in rI3 with opposite sign.
513Indexed, stores value of index in rI3 with opposite sign." 428Indexed, stores value of index in rI3 with opposite sign."
514 1) 429 1)
515 430
516(mixal-add-operation-code 431 (ENN4 address-transfer "Enter negative rI4" 52
517 'ENN4 'address-transfer "Enter negative rI4" (+ 48 4) 3 432 "Literal value is stored in rI4 with opposite sign.
518 "Literal value is stored in rI4 with opposite sign.
519Indexed, stores value of index in rI4 with opposite sign." 433Indexed, stores value of index in rI4 with opposite sign."
520 1) 434 1)
521 435
522(mixal-add-operation-code 436 (ENN5 address-transfer "Enter negative rI5" 53
523 'ENN5 'address-transfer "Enter negative rI5" (+ 48 5) 3 437 "Literal value is stored in rI5 with opposite sign.
524 "Literal value is stored in rI5 with opposite sign.
525Indexed, stores value of index in rI5 with opposite sign." 438Indexed, stores value of index in rI5 with opposite sign."
526 1) 439 1)
527 440
528(mixal-add-operation-code 441 (ENN6 address-transfer "Enter negative rI6" 54
529 'ENN6 'address-transfer "Enter negative rI6" (+ 48 6) 3 442 "Literal value is stored in rI6 with opposite sign.
530 "Literal value is stored in rI6 with opposite sign.
531Indexed, stores value of index in rI6 with opposite sign." 443Indexed, stores value of index in rI6 with opposite sign."
532 1) 444 1)
533 445
534(mixal-add-operation-code 446 (INCA address-transfer "increase A" 48
535 'INCA 'address-transfer "increase A" 48 0 447 "Increase register A with the literal value of M.
536 "Increase register A with the literal value of M.
537On overflow the overflow toggle is set." 448On overflow the overflow toggle is set."
538 1) 449 1)
539 450
540(mixal-add-operation-code 451 (INCX address-transfer "increase X" 55
541 'INCX 'address-transfer "increase X" 55 0 452 "Increase register X with the literal value of M.
542 "Increase register X with the literal value of M.
543On overflow the overflow toggle is set." 453On overflow the overflow toggle is set."
544 1) 454 1)
545 455
546(mixal-add-operation-code 456 (INC1 address-transfer "increase I1" 49
547 'INC1 'address-transfer "increase I1" (+ 48 1) 0 457 "Increase register I1 with the literal value of M.
548 "Increase register I1 with the literal value of M.
549The result is undefined when the result does not fit in 458The result is undefined when the result does not fit in
5502 bytes." 4592 bytes."
551 1) 460 1)
552 461
553(mixal-add-operation-code 462 (INC2 address-transfer "increase I2" 50
554 'INC2 'address-transfer "increase I2" (+ 48 2) 0 463 "Increase register I2 with the literal value of M.
555 "Increase register I2 with the literal value of M.
556The result is undefined when the result does not fit in 464The result is undefined when the result does not fit in
5572 bytes." 4652 bytes."
558 1) 466 1)
559 467
560(mixal-add-operation-code 468 (INC3 address-transfer "increase I3" 51
561 'INC3 'address-transfer "increase I3" (+ 48 3) 0 469 "Increase register I3 with the literal value of M.
562 "Increase register I3 with the literal value of M.
563The result is undefined when the result does not fit in 470The result is undefined when the result does not fit in
5642 bytes." 4712 bytes."
565 1) 472 1)
566 473
567(mixal-add-operation-code 474 (INC4 address-transfer "increase I4" 52
568 'INC4 'address-transfer "increase I4" (+ 48 4) 0 475 "Increase register I4 with the literal value of M.
569 "Increase register I4 with the literal value of M.
570The result is undefined when the result does not fit in 476The result is undefined when the result does not fit in
5712 bytes." 4772 bytes."
572 1) 478 1)
573 479
574(mixal-add-operation-code 480 (INC5 address-transfer "increase I5" 53
575 'INC5 'address-transfer "increase I5" (+ 48 5) 0 481 "Increase register I5 with the literal value of M.
576 "Increase register I5 with the literal value of M.
577The result is undefined when the result does not fit in 482The result is undefined when the result does not fit in
5782 bytes." 4832 bytes."
579 1) 484 1)
580 485
581(mixal-add-operation-code 486 (INC6 address-transfer "increase I6" 54
582 'INC6 'address-transfer "increase I6" (+ 48 6) 0 487 "Increase register I6 with the literal value of M.
583 "Increase register I6 with the literal value of M.
584The result is undefined when the result does not fit in 488The result is undefined when the result does not fit in
5852 bytes." 4892 bytes."
586 1) 490 1)
587 491
588(mixal-add-operation-code 492 (DECA address-transfer "decrease A" 48
589 'DECA 'address-transfer "decrease A" 48 1 493 "Decrease register A with the literal value of M.
590 "Decrease register A with the literal value of M.
591On overflow the overflow toggle is set." 494On overflow the overflow toggle is set."
592 1) 495 1)
593 496
594(mixal-add-operation-code 497 (DECX address-transfer "decrease X" 55
595 'DECX 'address-transfer "decrease X" 55 1 498 "Decrease register X with the literal value of M.
596 "Decrease register X with the literal value of M.
597On overflow the overflow toggle is set." 499On overflow the overflow toggle is set."
598 1) 500 1)
599 501
600(mixal-add-operation-code 502 (DEC1 address-transfer "decrease I1" 49
601 'DEC1 'address-transfer "decrease I1" (+ 48 1) 1 503 "Decrease register I1 with the literal value of M.
602 "Decrease register I1 with the literal value of M.
603The result is undefined when the result does not fit in 504The result is undefined when the result does not fit in
6042 bytes." 5052 bytes."
605 1) 506 1)
606 507
607(mixal-add-operation-code 508 (DEC2 address-transfer "decrease I2" 50
608 'DEC2 'address-transfer "decrease I2" (+ 48 2) 1 509 "Decrease register I2 with the literal value of M.
609 "Decrease register I2 with the literal value of M.
610The result is undefined when the result does not fit in 510The result is undefined when the result does not fit in
6112 bytes." 5112 bytes."
612 1) 512 1)
613 513
614(mixal-add-operation-code 514 (DEC3 address-transfer "decrease I3" 51
615 'DEC3 'address-transfer "decrease I3" (+ 48 3) 1 515 "Decrease register I3 with the literal value of M.
616 "Decrease register I3 with the literal value of M.
617The result is undefined when the result does not fit in 516The result is undefined when the result does not fit in
6182 bytes." 5172 bytes."
619 1) 518 1)
620 519
621(mixal-add-operation-code 520 (DEC4 address-transfer "decrease I4" 52
622 'DEC4 'address-transfer "decrease I4" (+ 48 4) 1 521 "Decrease register I4 with the literal value of M.
623 "Decrease register I4 with the literal value of M.
624The result is undefined when the result does not fit in 522The result is undefined when the result does not fit in
6252 bytes." 5232 bytes."
626 1) 524 1)
627 525
628(mixal-add-operation-code 526 (DEC5 address-transfer "decrease I5" 53
629 'DEC5 'address-transfer "decrease I5" (+ 48 5) 1 527 "Decrease register I5 with the literal value of M.
630 "Decrease register I5 with the literal value of M.
631The result is undefined when the result does not fit in 528The result is undefined when the result does not fit in
6322 bytes." 5292 bytes."
633 1) 530 1)
634 531
635(mixal-add-operation-code 532 (DEC6 address-transfer "decrease I6" 54
636 'DEC6 'address-transfer "decrease I6" (+ 48 6) 1 533 "Decrease register I6 with the literal value of M.
637 "Decrease register I6 with the literal value of M.
638The result is undefined when the result does not fit in 534The result is undefined when the result does not fit in
6392 bytes." 5352 bytes."
640 1) 536 1)
641 537
642(mixal-add-operation-code 538 (CMPA comparison "compare A" 56 field
643 'CMPA 'comparison "compare A" 56 'field 539 "Compare contents of A with contents of M.
644 "Compare contents of A with contents of M.
645The field specifier works on both fields. The comparison indicator 540The field specifier works on both fields. The comparison indicator
646is set to LESS, EQUAL or GREATER depending on the outcome." 541is set to LESS, EQUAL or GREATER depending on the outcome."
647 2) 542 2)
648
649 543
650(mixal-add-operation-code 544 (CMPX comparison "compare X" 63 field
651 'CMPX 'comparison "compare X" 63 'field 545 "Compare contents of rX with contents of M.
652 "Compare contents of rX with contents of M.
653The field specifier works on both fields. The comparison indicator 546The field specifier works on both fields. The comparison indicator
654is set to LESS, EQUAL or GREATER depending on the outcome." 547is set to LESS, EQUAL or GREATER depending on the outcome."
655 2) 548 2)
656 549
657 550 (CMP1 comparison "compare I1" 57 field
658(mixal-add-operation-code 551 "Compare contents of rI1 with contents of M.
659 'CMP1 'comparison "compare I1" (+ 56 1) 'field
660 "Compare contents of rI1 with contents of M.
661The field specifier works on both fields. The comparison indicator 552The field specifier works on both fields. The comparison indicator
662is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 553is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3
663have a value of 0." 554have a value of 0."
664 2) 555 2)
665
666 556
667(mixal-add-operation-code 557 (CMP2 comparison "compare I2" 58 field
668 'CMP2 'comparison "compare I2" (+ 56 2) 'field 558 "Compare contents of rI2 with contents of M.
669 "Compare contents of rI2 with contents of M.
670The field specifier works on both fields. The comparison indicator 559The field specifier works on both fields. The comparison indicator
671is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 560is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3
672have a value of 0." 561have a value of 0."
673 2) 562 2)
674
675 563
676(mixal-add-operation-code 564 (CMP3 comparison "compare I3" 59 field
677 'CMP3 'comparison "compare I3" (+ 56 3) 'field 565 "Compare contents of rI3 with contents of M.
678 "Compare contents of rI3 with contents of M.
679The field specifier works on both fields. The comparison indicator 566The field specifier works on both fields. The comparison indicator
680is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 567is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3
681have a value of 0." 568have a value of 0."
682 2) 569 2)
683 570
684 571 (CMP4 comparison "compare I4" 60 field
685(mixal-add-operation-code 572 "Compare contents of rI4 with contents of M.
686 'CMP4 'comparison "compare I4" (+ 56 4) 'field
687 "Compare contents of rI4 with contents of M.
688The field specifier works on both fields. The comparison indicator 573The field specifier works on both fields. The comparison indicator
689is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 574is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3
690have a value of 0." 575have a value of 0."
691 2) 576 2)
692
693 577
694(mixal-add-operation-code 578 (CMP5 comparison "compare I5" 61 field
695 'CMP5 'comparison "compare I5" (+ 56 5) 'field 579 "Compare contents of rI5 with contents of M.
696 "Compare contents of rI5 with contents of M.
697The field specifier works on both fields. The comparison indicator 580The field specifier works on both fields. The comparison indicator
698is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 581is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3
699have a value of 0." 582have a value of 0."
700 2) 583 2)
701 584
702 585 (CMP6 comparison "compare I6" 62 field
703(mixal-add-operation-code 586 "Compare contents of rI6 with contents of M.
704 'CMP6 'comparison "compare I6" (+ 56 6) 'field
705 "Compare contents of rI6 with contents of M.
706The field specifier works on both fields. The comparison indicator 587The field specifier works on both fields. The comparison indicator
707is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 588is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3
708have a value of 0." 589have a value of 0."
709 2) 590 2)
710 591
711(mixal-add-operation-code 592 (JMP jump "jump" 39
712 'JMP 'jump "jump" 39 0 593 "Unconditional jump.
713 "Unconditional jump.
714Register J is set to the value of the next instruction that would have 594Register J is set to the value of the next instruction that would have
715been executed when there was no jump." 595been executed when there was no jump."
716 1) 596 1)
717 597
718(mixal-add-operation-code 598 (JSJ jump "jump, save J" 39
719 'JSJ 'jump "jump, save J" 39 1 599 "Unconditional jump, but rJ is not modified."
720 "Unconditional jump, but rJ is not modified." 600 1)
721 1)
722 601
723(mixal-add-operation-code 602 (JOV jump "jump on overflow" 39
724 'JOV 'jump "jump on overflow" 39 2 603 "Jump if OV is set (and turn it off).
725 "Jump if OV is set (and turn it off).
726Register J is set to the value of the next instruction that would have 604Register J is set to the value of the next instruction that would have
727been executed when there was no jump." 605been executed when there was no jump."
728 1) 606 1)
729 607
730(mixal-add-operation-code 608 (JNOV jump "Jump on no overflow" 39
731 'JNOV 'jump "Jump on no overflow" 39 3 609 "Jump if OV is not set (and turn it off).
732 "Jump if OV is not set (and turn it off).
733Register J is set to the value of the next instruction that would have 610Register J is set to the value of the next instruction that would have
734been executed when there was no jump." 611been executed when there was no jump."
735 1) 612 1)
736 613
737(mixal-add-operation-code 614 (JL jump "Jump on less" 39
738 'JL 'jump "Jump on less" 39 4 615 "Jump if '[CM] = L'.
739 "Jump if '[CM] = L'.
740Register J is set to the value of the next instruction that would have 616Register J is set to the value of the next instruction that would have
741been executed when there was no jump." 617been executed when there was no jump."
742 1) 618 1)
743
744 619
745(mixal-add-operation-code 620 (JE jump "Jump on equal" 39
746 'JE 'jump "Jump on equal" 39 5 621 "Jump if '[CM] = E'.
747 "Jump if '[CM] = E'.
748Register J is set to the value of the next instruction that would have 622Register J is set to the value of the next instruction that would have
749been executed when there was no jump." 623been executed when there was no jump."
750 1) 624 1)
751 625
752 626 (JG jump "Jump on greater" 39
753(mixal-add-operation-code 627 "Jump if '[CM] = G'.
754 'JG 'jump "Jump on greater" 39 6
755 "Jump if '[CM] = G'.
756Register J is set to the value of the next instruction that would have 628Register J is set to the value of the next instruction that would have
757been executed when there was no jump." 629been executed when there was no jump."
758 1) 630 1)
759
760 631
761(mixal-add-operation-code 632 (JGE jump "Jump on not less" 39
762 'JGE 'jump "Jump on not less" 39 7 633 "Jump if '[CM]' does not equal 'L'.
763 "Jump if '[CM]' does not equal 'L'.
764Register J is set to the value of the next instruction that would have 634Register J is set to the value of the next instruction that would have
765been executed when there was no jump." 635been executed when there was no jump."
766 1) 636 1)
767
768 637
769(mixal-add-operation-code 638 (JNE jump "Jump on not equal" 39
770 'JNE 'jump "Jump on not equal" 39 8 639 "Jump if '[CM]' does not equal 'E'.
771 "Jump if '[CM]' does not equal 'E'.
772Register J is set to the value of the next instruction that would have 640Register J is set to the value of the next instruction that would have
773been executed when there was no jump." 641been executed when there was no jump."
774 1) 642 1)
775 643
776 644 (JLE jump "Jump on not greater" 39
777(mixal-add-operation-code 645 "Jump if '[CM]' does not equal 'G'.
778 'JLE 'jump "Jump on not greater" 39 9
779 "Jump if '[CM]' does not equal 'G'.
780Register J is set to the value of the next instruction that would have 646Register J is set to the value of the next instruction that would have
781been executed when there was no jump." 647been executed when there was no jump."
782 1) 648 1)
783 649
784(mixal-add-operation-code 650 (JAN jump "jump A negative" 40
785 'JAN 'jump "jump A negative" 40 0 651 "Jump if the content of rA is negative.
786 "Jump if the content of rA is negative.
787Register J is set to the value of the next instruction that would have 652Register J is set to the value of the next instruction that would have
788been executed when there was no jump." 653been executed when there was no jump."
789 1) 654 1)
790
791 655
792(mixal-add-operation-code 656 (JAZ jump "jump A zero" 40
793 'JAZ 'jump "jump A zero" 40 1 657 "Jump if the content of rA is zero.
794 "Jump if the content of rA is zero.
795Register J is set to the value of the next instruction that would have 658Register J is set to the value of the next instruction that would have
796been executed when there was no jump." 659been executed when there was no jump."
797 1) 660 1)
798 661
799 662 (JAP jump "jump A positive" 40
800(mixal-add-operation-code 663 "Jump if the content of rA is positive.
801 'JAP 'jump "jump A positive" 40 2
802 "Jump if the content of rA is positive.
803Register J is set to the value of the next instruction that would have 664Register J is set to the value of the next instruction that would have
804been executed when there was no jump." 665been executed when there was no jump."
805 1) 666 1)
806
807 667
808(mixal-add-operation-code 668 (JANN jump "jump A non-negative" 40
809 'JANN 'jump "jump A non-negative" 40 3 669 "Jump if the content of rA is non-negative.
810 "Jump if the content of rA is non-negative.
811Register J is set to the value of the next instruction that would have 670Register J is set to the value of the next instruction that would have
812been executed when there was no jump." 671been executed when there was no jump."
813 1) 672 1)
814 673
815 674 (JANZ jump "jump A non-zero" 40
816(mixal-add-operation-code 675 "Jump if the content of rA is non-zero.
817 'JANZ 'jump "jump A non-zero" 40 4
818 "Jump if the content of rA is non-zero.
819Register J is set to the value of the next instruction that would have 676Register J is set to the value of the next instruction that would have
820been executed when there was no jump." 677been executed when there was no jump."
821 1) 678 1)
822
823 679
824(mixal-add-operation-code 680 (JANP jump "jump A non-positive" 40
825 'JANP 'jump "jump A non-positive" 40 5 681 "Jump if the content of rA is non-positive.
826 "Jump if the content of rA is non-positive.
827Register J is set to the value of the next instruction that would have 682Register J is set to the value of the next instruction that would have
828been executed when there was no jump." 683been executed when there was no jump."
829 1) 684 1)
830 685
831(mixal-add-operation-code 686 (JXN jump "jump X negative" 47
832 'JXN 'jump "jump X negative" 47 0 687 "Jump if the content of rX is negative.
833 "Jump if the content of rX is negative.
834Register J is set to the value of the next instruction that would have 688Register J is set to the value of the next instruction that would have
835been executed when there was no jump." 689been executed when there was no jump."
836 1) 690 1)
837
838 691
839(mixal-add-operation-code 692 (JXZ jump "jump X zero" 47
840 'JXZ 'jump "jump X zero" 47 1 693 "Jump if the content of rX is zero.
841 "Jump if the content of rX is zero.
842Register J is set to the value of the next instruction that would have 694Register J is set to the value of the next instruction that would have
843been executed when there was no jump." 695been executed when there was no jump."
844 1) 696 1)
845 697
846 698 (JXP jump "jump X positive" 47
847(mixal-add-operation-code 699 "Jump if the content of rX is positive.
848 'JXP 'jump "jump X positive" 47 2
849 "Jump if the content of rX is positive.
850Register J is set to the value of the next instruction that would have 700Register J is set to the value of the next instruction that would have
851been executed when there was no jump." 701been executed when there was no jump."
852 1) 702 1)
853
854 703
855(mixal-add-operation-code 704 (JXNN jump "jump X non-negative" 47
856 'JXNN 'jump "jump X non-negative" 47 3 705 "Jump if the content of rX is non-negative.
857 "Jump if the content of rX is non-negative.
858Register J is set to the value of the next instruction that would have 706Register J is set to the value of the next instruction that would have
859been executed when there was no jump." 707been executed when there was no jump."
860 1) 708 1)
861 709
862 710 (JXNZ jump "jump X non-zero" 47
863(mixal-add-operation-code 711 "Jump if the content of rX is non-zero.
864 'JXNZ 'jump "jump X non-zero" 47 4
865 "Jump if the content of rX is non-zero.
866Register J is set to the value of the next instruction that would have 712Register J is set to the value of the next instruction that would have
867been executed when there was no jump." 713been executed when there was no jump."
868 1) 714 1)
869
870 715
871(mixal-add-operation-code 716 (JXNP jump "jump X non-positive" 47
872 'JXNP 'jump "jump X non-positive" 47 5 717 "Jump if the content of rX is non-positive.
873 "Jump if the content of rX is non-positive.
874Register J is set to the value of the next instruction that would have 718Register J is set to the value of the next instruction that would have
875been executed when there was no jump." 719been executed when there was no jump."
876 1) 720 1)
877 721
878(mixal-add-operation-code 722 (J1N jump "jump I1 negative" 41
879 'J1N 'jump "jump I1 negative" (+ 40 1) 0 723 "Jump if the content of rI1 is negative.
880 "Jump if the content of rI1 is negative.
881Register J is set to the value of the next instruction that would have 724Register J is set to the value of the next instruction that would have
882been executed when there was no jump." 725been executed when there was no jump."
883 1) 726 1)
884 727
885 728 (J1Z jump "jump I1 zero" 41
886(mixal-add-operation-code 729 "Jump if the content of rI1 is zero.
887 'J1Z 'jump "jump I1 zero" (+ 40 1) 1
888 "Jump if the content of rI1 is zero.
889Register J is set to the value of the next instruction that would have 730Register J is set to the value of the next instruction that would have
890been executed when there was no jump." 731been executed when there was no jump."
891 1) 732 1)
892
893 733
894(mixal-add-operation-code 734 (J1P jump "jump I1 positive" 41
895 'J1P 'jump "jump I1 positive" (+ 40 1) 2 735 "Jump if the content of rI1 is positive.
896 "Jump if the content of rI1 is positive.
897Register J is set to the value of the next instruction that would have 736Register J is set to the value of the next instruction that would have
898been executed when there was no jump." 737been executed when there was no jump."
899 1) 738 1)
900
901 739
902(mixal-add-operation-code 740 (J1NN jump "jump I1 non-negative" 41
903 'J1NN 'jump "jump I1 non-negative" (+ 40 1) 3 741 "Jump if the content of rI1 is non-negative.
904 "Jump if the content of rI1 is non-negative.
905Register J is set to the value of the next instruction that would have 742Register J is set to the value of the next instruction that would have
906been executed when there was no jump." 743been executed when there was no jump."
907 1) 744 1)
908 745
909 746 (J1NZ jump "jump I1 non-zero" 41
910(mixal-add-operation-code 747 "Jump if the content of rI1 is non-zero.
911 'J1NZ 'jump "jump I1 non-zero" (+ 40 1) 4
912 "Jump if the content of rI1 is non-zero.
913Register J is set to the value of the next instruction that would have 748Register J is set to the value of the next instruction that would have
914been executed when there was no jump." 749been executed when there was no jump."
915 1) 750 1)
916
917 751
918(mixal-add-operation-code 752 (J1NP jump "jump I1 non-positive" 41
919 'J1NP 'jump "jump I1 non-positive" (+ 40 1) 5 753 "Jump if the content of rI1 is non-positive.
920 "Jump if the content of rI1 is non-positive.
921Register J is set to the value of the next instruction that would have 754Register J is set to the value of the next instruction that would have
922been executed when there was no jump." 755been executed when there was no jump."
923 1) 756 1)
924 757
925(mixal-add-operation-code 758 (J2N jump "jump I2 negative" 41
926 'J2N 'jump "jump I2 negative" (+ 40 1) 0 759 "Jump if the content of rI2 is negative.
927 "Jump if the content of rI2 is negative.
928Register J is set to the value of the next instruction that would have 760Register J is set to the value of the next instruction that would have
929been executed when there was no jump." 761been executed when there was no jump."
930 1) 762 1)
931
932 763
933(mixal-add-operation-code 764 (J2Z jump "jump I2 zero" 41
934 'J2Z 'jump "jump I2 zero" (+ 40 1) 1 765 "Jump if the content of rI2 is zero.
935 "Jump if the content of rI2 is zero.
936Register J is set to the value of the next instruction that would have 766Register J is set to the value of the next instruction that would have
937been executed when there was no jump." 767been executed when there was no jump."
938 1) 768 1)
939 769
940 770 (J2P jump "jump I2 positive" 41
941(mixal-add-operation-code 771 "Jump if the content of rI2 is positive.
942 'J2P 'jump "jump I2 positive" (+ 40 1) 2
943 "Jump if the content of rI2 is positive.
944Register J is set to the value of the next instruction that would have 772Register J is set to the value of the next instruction that would have
945been executed when there was no jump." 773been executed when there was no jump."
946 1) 774 1)
947
948 775
949(mixal-add-operation-code 776 (J2NN jump "jump I2 non-negative" 41
950 'J2NN 'jump "jump I2 non-negative" (+ 40 1) 3 777 "Jump if the content of rI2 is non-negative.
951 "Jump if the content of rI2 is non-negative.
952Register J is set to the value of the next instruction that would have 778Register J is set to the value of the next instruction that would have
953been executed when there was no jump." 779been executed when there was no jump."
954 1) 780 1)
955
956 781
957(mixal-add-operation-code 782 (J2NZ jump "jump I2 non-zero" 41
958 'J2NZ 'jump "jump I2 non-zero" (+ 40 1) 4 783 "Jump if the content of rI2 is non-zero.
959 "Jump if the content of rI2 is non-zero.
960Register J is set to the value of the next instruction that would have 784Register J is set to the value of the next instruction that would have
961been executed when there was no jump." 785been executed when there was no jump."
962 1) 786 1)
963 787
964 788 (J2NP jump "jump I2 non-positive" 41
965(mixal-add-operation-code 789 "Jump if the content of rI2 is non-positive.
966 'J2NP 'jump "jump I2 non-positive" (+ 40 1) 5
967 "Jump if the content of rI2 is non-positive.
968Register J is set to the value of the next instruction that would have 790Register J is set to the value of the next instruction that would have
969been executed when there was no jump." 791been executed when there was no jump."
970 1) 792 1)
971
972 793
973(mixal-add-operation-code 794 (J3N jump "jump I3 negative" 41
974 'J3N 'jump "jump I3 negative" (+ 40 1) 0 795 "Jump if the content of rI3 is negative.
975 "Jump if the content of rI3 is negative.
976Register J is set to the value of the next instruction that would have 796Register J is set to the value of the next instruction that would have
977been executed when there was no jump." 797been executed when there was no jump."
978 1) 798 1)
979 799
980 800 (J3Z jump "jump I3 zero" 41
981(mixal-add-operation-code 801 "Jump if the content of rI3 is zero.
982 'J3Z 'jump "jump I3 zero" (+ 40 1) 1
983 "Jump if the content of rI3 is zero.
984Register J is set to the value of the next instruction that would have 802Register J is set to the value of the next instruction that would have
985been executed when there was no jump." 803been executed when there was no jump."
986 1) 804 1)
987
988 805
989(mixal-add-operation-code 806 (J3P jump "jump I3 positive" 41
990 'J3P 'jump "jump I3 positive" (+ 40 1) 2 807 "Jump if the content of rI3 is positive.
991 "Jump if the content of rI3 is positive.
992Register J is set to the value of the next instruction that would have 808Register J is set to the value of the next instruction that would have
993been executed when there was no jump." 809been executed when there was no jump."
994 1) 810 1)
995 811
996 812 (J3NN jump "jump I3 non-negative" 41
997(mixal-add-operation-code 813 "Jump if the content of rI3 is non-negative.
998 'J3NN 'jump "jump I3 non-negative" (+ 40 1) 3
999 "Jump if the content of rI3 is non-negative.
1000Register J is set to the value of the next instruction that would have 814Register J is set to the value of the next instruction that would have
1001been executed when there was no jump." 815been executed when there was no jump."
1002 1) 816 1)
1003
1004 817
1005(mixal-add-operation-code 818 (J3NZ jump "jump I3 non-zero" 41
1006 'J3NZ 'jump "jump I3 non-zero" (+ 40 1) 4 819 "Jump if the content of rI3 is non-zero.
1007 "Jump if the content of rI3 is non-zero.
1008Register J is set to the value of the next instruction that would have 820Register J is set to the value of the next instruction that would have
1009been executed when there was no jump." 821been executed when there was no jump."
1010 1) 822 1)
1011
1012 823
1013(mixal-add-operation-code 824 (J3NP jump "jump I3 non-positive" 41
1014 'J3NP 'jump "jump I3 non-positive" (+ 40 1) 5 825 "Jump if the content of rI3 is non-positive.
1015 "Jump if the content of rI3 is non-positive.
1016Register J is set to the value of the next instruction that would have 826Register J is set to the value of the next instruction that would have
1017been executed when there was no jump." 827been executed when there was no jump."
1018 1) 828 1)
1019 829
1020 830 (J4N jump "jump I4 negative" 41
1021(mixal-add-operation-code 831 "Jump if the content of rI4 is negative.
1022 'J4N 'jump "jump I4 negative" (+ 40 1) 0
1023 "Jump if the content of rI4 is negative.
1024Register J is set to the value of the next instruction that would have 832Register J is set to the value of the next instruction that would have
1025been executed when there was no jump." 833been executed when there was no jump."
1026 1) 834 1)
1027
1028 835
1029(mixal-add-operation-code 836 (J4Z jump "jump I4 zero" 41
1030 'J4Z 'jump "jump I4 zero" (+ 40 1) 1 837 "Jump if the content of rI4 is zero.
1031 "Jump if the content of rI4 is zero.
1032Register J is set to the value of the next instruction that would have 838Register J is set to the value of the next instruction that would have
1033been executed when there was no jump." 839been executed when there was no jump."
1034 1) 840 1)
1035 841
1036 842 (J4P jump "jump I4 positive" 41
1037(mixal-add-operation-code 843 "Jump if the content of rI4 is positive.
1038 'J4P 'jump "jump I4 positive" (+ 40 1) 2
1039 "Jump if the content of rI4 is positive.
1040Register J is set to the value of the next instruction that would have 844Register J is set to the value of the next instruction that would have
1041been executed when there was no jump." 845been executed when there was no jump."
1042 1) 846 1)
1043
1044 847
1045(mixal-add-operation-code 848 (J4NN jump "jump I4 non-negative" 41
1046 'J4NN 'jump "jump I4 non-negative" (+ 40 1) 3 849 "Jump if the content of rI4 is non-negative.
1047 "Jump if the content of rI4 is non-negative.
1048Register J is set to the value of the next instruction that would have 850Register J is set to the value of the next instruction that would have
1049been executed when there was no jump." 851been executed when there was no jump."
1050 1) 852 1)
1051 853
1052 854 (J4NZ jump "jump I4 non-zero" 41
1053(mixal-add-operation-code 855 "Jump if the content of rI4 is non-zero.
1054 'J4NZ 'jump "jump I4 non-zero" (+ 40 1) 4
1055 "Jump if the content of rI4 is non-zero.
1056Register J is set to the value of the next instruction that would have 856Register J is set to the value of the next instruction that would have
1057been executed when there was no jump." 857been executed when there was no jump."
1058 1) 858 1)
1059
1060 859
1061(mixal-add-operation-code 860 (J4NP jump "jump I4 non-positive" 41
1062 'J4NP 'jump "jump I4 non-positive" (+ 40 1) 5 861 "Jump if the content of rI4 is non-positive.
1063 "Jump if the content of rI4 is non-positive.
1064Register J is set to the value of the next instruction that would have 862Register J is set to the value of the next instruction that would have
1065been executed when there was no jump." 863been executed when there was no jump."
1066 1) 864 1)
1067
1068 865
1069(mixal-add-operation-code 866 (J5N jump "jump I5 negative" 41
1070 'J5N 'jump "jump I5 negative" (+ 40 1) 0 867 "Jump if the content of rI5 is negative.
1071 "Jump if the content of rI5 is negative.
1072Register J is set to the value of the next instruction that would have 868Register J is set to the value of the next instruction that would have
1073been executed when there was no jump." 869been executed when there was no jump."
1074 1) 870 1)
1075 871
1076 872 (J5Z jump "jump I5 zero" 41
1077(mixal-add-operation-code 873 "Jump if the content of rI5 is zero.
1078 'J5Z 'jump "jump I5 zero" (+ 40 1) 1
1079 "Jump if the content of rI5 is zero.
1080Register J is set to the value of the next instruction that would have 874Register J is set to the value of the next instruction that would have
1081been executed when there was no jump." 875been executed when there was no jump."
1082 1) 876 1)
1083
1084 877
1085(mixal-add-operation-code 878 (J5P jump "jump I5 positive" 41
1086 'J5P 'jump "jump I5 positive" (+ 40 1) 2 879 "Jump if the content of rI5 is positive.
1087 "Jump if the content of rI5 is positive.
1088Register J is set to the value of the next instruction that would have 880Register J is set to the value of the next instruction that would have
1089been executed when there was no jump." 881been executed when there was no jump."
1090 1) 882 1)
1091 883
1092 884 (J5NN jump "jump I5 non-negative" 41
1093(mixal-add-operation-code 885 "Jump if the content of rI5 is non-negative.
1094 'J5NN 'jump "jump I5 non-negative" (+ 40 1) 3
1095 "Jump if the content of rI5 is non-negative.
1096Register J is set to the value of the next instruction that would have 886Register J is set to the value of the next instruction that would have
1097been executed when there was no jump." 887been executed when there was no jump."
1098 1) 888 1)
1099
1100 889
1101(mixal-add-operation-code 890 (J5NZ jump "jump I5 non-zero" 41
1102 'J5NZ 'jump "jump I5 non-zero" (+ 40 1) 4 891 "Jump if the content of rI5 is non-zero.
1103 "Jump if the content of rI5 is non-zero.
1104Register J is set to the value of the next instruction that would have 892Register J is set to the value of the next instruction that would have
1105been executed when there was no jump." 893been executed when there was no jump."
1106 1) 894 1)
1107 895
1108 896 (J5NP jump "jump I5 non-positive" 41
1109(mixal-add-operation-code 897 "Jump if the content of rI5 is non-positive.
1110 'J5NP 'jump "jump I5 non-positive" (+ 40 1) 5
1111 "Jump if the content of rI5 is non-positive.
1112Register J is set to the value of the next instruction that would have 898Register J is set to the value of the next instruction that would have
1113been executed when there was no jump." 899been executed when there was no jump."
1114 1) 900 1)
1115
1116 901
1117(mixal-add-operation-code 902 (J6N jump "jump I6 negative" 41
1118 'J6N 'jump "jump I6 negative" (+ 40 1) 0 903 "Jump if the content of rI6 is negative.
1119 "Jump if the content of rI6 is negative.
1120Register J is set to the value of the next instruction that would have 904Register J is set to the value of the next instruction that would have
1121been executed when there was no jump." 905been executed when there was no jump."
1122 1) 906 1)
1123
1124 907
1125(mixal-add-operation-code 908 (J6Z jump "jump I6 zero" 41
1126 'J6Z 'jump "jump I6 zero" (+ 40 1) 1 909 "Jump if the content of rI6 is zero.
1127 "Jump if the content of rI6 is zero.
1128Register J is set to the value of the next instruction that would have 910Register J is set to the value of the next instruction that would have
1129been executed when there was no jump." 911been executed when there was no jump."
1130 1) 912 1)
1131 913
1132 914 (J6P jump "jump I6 positive" 41
1133(mixal-add-operation-code 915 "Jump if the content of rI6 is positive.
1134 'J6P 'jump "jump I6 positive" (+ 40 1) 2
1135 "Jump if the content of rI6 is positive.
1136Register J is set to the value of the next instruction that would have 916Register J is set to the value of the next instruction that would have
1137been executed when there was no jump." 917been executed when there was no jump."
1138 1) 918 1)
1139
1140 919
1141(mixal-add-operation-code 920 (J6NN jump "jump I6 non-negative" 41
1142 'J6NN 'jump "jump I6 non-negative" (+ 40 1) 3 921 "Jump if the content of rI6 is non-negative.
1143 "Jump if the content of rI6 is non-negative.
1144Register J is set to the value of the next instruction that would have 922Register J is set to the value of the next instruction that would have
1145been executed when there was no jump." 923been executed when there was no jump."
1146 1) 924 1)
1147
1148 925
1149(mixal-add-operation-code 926 (J6NZ jump "jump I6 non-zero" 41
1150 'J6NZ 'jump "jump I6 non-zero" (+ 40 1) 4 927 "Jump if the content of rI6 is non-zero.
1151 "Jump if the content of rI6 is non-zero.
1152Register J is set to the value of the next instruction that would have 928Register J is set to the value of the next instruction that would have
1153been executed when there was no jump." 929been executed when there was no jump."
1154 1) 930 1)
1155 931
1156 932 (J6NP jump "jump I6 non-positive" 41
1157(mixal-add-operation-code 933 "Jump if the content of rI6 is non-positive.
1158 'J6NP 'jump "jump I6 non-positive" (+ 40 1) 5
1159 "Jump if the content of rI6 is non-positive.
1160Register J is set to the value of the next instruction that would have 934Register J is set to the value of the next instruction that would have
1161been executed when there was no jump." 935been executed when there was no jump."
1162 1) 936 1)
1163 937
1164(mixal-add-operation-code 938 (SLA miscellaneous "shift left A" 6
1165 'SLA 'miscellaneous "shift left A" 6 0 939 "Shift to A, M bytes left.
1166 "Shift to A, M bytes left.
1167Hero's will be added to the right." 940Hero's will be added to the right."
1168 2) 941 2)
1169
1170 942
1171(mixal-add-operation-code 943 (SRA miscellaneous "shift right A" 6
1172 'SRA 'miscellaneous "shift right A" 6 1 944 "Shift to A, M bytes right.
1173 "Shift to A, M bytes right.
1174Zeros will be added to the left." 945Zeros will be added to the left."
1175 2) 946 2)
1176
1177 947
1178(mixal-add-operation-code 948 (SLAX miscellaneous "shift left AX" 6
1179 'SLAX 'miscellaneous "shift left AX" 6 2 949 "Shift AX, M bytes left.
1180 "Shift AX, M bytes left.
1181Zeros will be added to the right." 950Zeros will be added to the right."
1182 2) 951 2)
1183 952
1184 953
1185 954 (SRAX miscellaneous "shift right AX" 6
1186(mixal-add-operation-code 955 "Shift AX, M bytes right.
1187 'SRAX 'miscellaneous "shift right AX" 6 3
1188 "Shift AX, M bytes right.
1189Zeros will be added to the left." 956Zeros will be added to the left."
1190 2) 957 2)
1191
1192 958
1193(mixal-add-operation-code 959 (SLC miscellaneous "shift left AX circularly" 6
1194 'SLC 'miscellaneous "shift left AX circularly" 6 4 960 "Shift AX, M bytes left circularly.
1195 "Shift AX, M bytes left circularly.
1196The bytes that fall off to the left will be added to the right." 961The bytes that fall off to the left will be added to the right."
1197 2) 962 2)
1198 963
1199 964 (SRC miscellaneous "shift right AX circularly" 6
1200(mixal-add-operation-code 965 "Shift AX, M bytes right circularly.
1201 'SRC 'miscellaneous "shift right AX circularly" 6 4
1202 "Shift AX, M bytes right circularly.
1203The bytes that fall off to the right will be added to the left." 966The bytes that fall off to the right will be added to the left."
1204 2) 967 2)
1205 968
1206(mixal-add-operation-code 969 (MOVE miscellaneous "move" 7 number
1207 'MOVE 'miscellaneous "move" 7 'number 970 "Move MOD words from M to the location stored in rI1."
1208 "Move MOD words from M to the location stored in rI1." 971 (+ 1 (* 2 number)))
1209 '(+ 1 (* 2 number)))
1210 972
1211(mixal-add-operation-code 973 (NOP miscellaneous "no operation" 0 ignored
1212 'NOP 'miscellaneous "no operation" 0 'ignored 974 "No operation, M and F are not used by the machine."
1213 "No operation, M and F are not used by the machine." 975 1)
1214 1)
1215 976
1216(mixal-add-operation-code 977 (HLT miscellaneous "halt" 5
1217 'HLT 'miscellaneous "halt" 5 2 978 "Halt.
1218 "Halt.
1219Stop instruction fetching." 979Stop instruction fetching."
1220 1) 980 1)
1221 981
1222(mixal-add-operation-code 982 (IN input-output "input" 36 unit
1223 'IN 'input-output "input" 36 'unit 983 "Transfer a block of words from the specified unit to memory.
1224 "Transfer a block of words from the specified unit to memory.
1225The transfer starts at address M." 984The transfer starts at address M."
1226 1) 985 1)
1227 986
1228(mixal-add-operation-code 987 (OUT input-output "output" 37 unit
1229 'OUT 'input-output "output" 37 'unit 988 "Transfer a block of words from memory.
1230 "Transfer a block of words from memory.
1231The transfer starts at address M to the specified unit." 989The transfer starts at address M to the specified unit."
1232 1) 990 1)
1233 991
1234(mixal-add-operation-code 992 (IOC input-output "input-output control" 35 unit
1235 'IOC 'input-output "input-output control" 35 'unit 993 "Perform a control operation.
1236 "Perform a control operation.
1237The control operation is given by M on the specified unit." 994The control operation is given by M on the specified unit."
1238 1) 995 1)
1239
1240(mixal-add-operation-code
1241 'JRED 'input-output "jump ready" 38 'unit
1242 "Jump to M if the specified unit is ready."
1243 1)
1244 996
997 (JRED input-output "jump ready" 38 unit
998 "Jump to M if the specified unit is ready."
999 1)
1245 1000
1246(mixal-add-operation-code 1001 (JBUS input-output "jump busy" 34 unit
1247 'JBUS 'input-output "jump busy" 34 'unit 1002 "Jump to M if the specified unit is busy."
1248 "Jump to M if the specified unit is busy." 1003 1)
1249 1)
1250 1004
1251(mixal-add-operation-code 1005 (NUM conversion "convert to numeric" 5
1252 'NUM 'conversion "convert to numeric" 5 0 1006 "Convert rAX to its numerical value and store it in rA.
1253 "Convert rAX to its numerical value and store it in rA.
1254the register rAX is assumed to contain a character representation of 1007the register rAX is assumed to contain a character representation of
1255a number." 1008a number."
1256 10) 1009 10)
1257 1010
1258(mixal-add-operation-code 1011 (CHAR conversion "convert to characters" 5
1259 'CHAR 'conversion "convert to characters" 5 1 1012 "Convert the number stored in rA to a character representation.
1260 "Convert the number stored in rA to a character representation.
1261The converted character representation is stored in rAX." 1013The converted character representation is stored in rAX."
1262 10) 1014 10))
1015
1016 "Alist that contains all the possible operation codes for mix.
1017Each elt has the form
1018 (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME)
1019Where OP-CODE is the text of the opcode as an symbol,
1020FULL-NAME is the human readable name as a string,
1021C-BYTE is the operation code telling what operation is to be performed,
1022F-BYTE holds a modification of the operation code which can be a symbol
1023 or a number,
1024DESCRIPTION contains an string with a description about the operation code and
1025EXECUTION-TIME holds info about the time it takes, number or string.")
1026;; (makunbound 'mixal-operation-codes-alist)
1027
1028
1029;;; Font-locking:
1030(defvar mixal-font-lock-syntactic-keywords
1031 ;; Normal comments start with a * in column 0 and end at end of line.
1032 '(("^\\*" (0 '(11))) ;(string-to-syntax "<") == '(11)
1033 ;; Every line can end with a comment which is placed after the operand.
1034 ;; I assume here that mnemonics without operands can not have a comment.
1035 ("^[[:alnum:]]*[ \t]+[[:alnum:]]+[ \t]+[^ \n\t]+[ \t]*\\([ \t]\\)[^\n \t]"
1036 (1 '(11)))))
1037
1038(defvar mixal-font-lock-keywords
1039 `(("^\\([A-Z0-9a-z]+\\)"
1040 (1 mixal-font-lock-label-face))
1041 (,(regexp-opt (mapcar (lambda (x) (symbol-name (car x)))
1042 mixal-operation-codes-alist) 'words)
1043 . mixal-font-lock-operation-code-face)
1044 (,(regexp-opt mixal-assembly-pseudoinstructions 'words)
1045 . mixal-font-lock-assembly-pseudoinstruction-face)
1046 ("^[A-Z0-9a-z]*[ \t]+[A-ZO-9a-z]+[ \t]+\\(=.*=\\)"
1047 (1 font-lock-constant-face)))
1048 "Keyword highlighting specification for `mixal-mode'.")
1049;; (makunbound 'mixal-font-lock-keywords)
1263 1050
1264(defvar mixal-describe-operation-code-history nil 1051(defvar mixal-describe-operation-code-history nil
1265 "History list for describe operation code.") 1052 "History list for describe operation code.")
1266 1053
1267(defun mixal-describe-operation-code (&optional op-code) 1054(defun mixal-describe-operation-code (op-code)
1268 "Display the full documentation of OP-CODE." 1055 "Display the full documentation of OP-CODE."
1269 (interactive) 1056 (interactive
1270 ;; We like to provide completion and history, so do it ourself 1057 (list
1271 ;; (interactive "?bla")?
1272 (unless op-code
1273 (let* ((completion-ignore-case t) 1058 (let* ((completion-ignore-case t)
1274 ;; we already have a list, but it is not in the right format 1059 ;; we already have a list, but it is not in the right format
1275 ;; transform it to a valid table so completition can use it 1060 ;; transform it to a valid table so completition can use it
@@ -1277,15 +1062,16 @@ The converted character representation is stored in rAX."
1277 (cons (symbol-name (car elm)) nil)) 1062 (cons (symbol-name (car elm)) nil))
1278 mixal-operation-codes-alist)) 1063 mixal-operation-codes-alist))
1279 ;; prompt is different depending on we are close to a valid op-code 1064 ;; prompt is different depending on we are close to a valid op-code
1280 (have-default (member (current-word) mixal-operation-codes)) 1065 (have-default (assq (intern-soft (current-word))
1066 mixal-operation-codes-alist))
1281 (prompt (concat "Describe operation code " 1067 (prompt (concat "Describe operation code "
1282 (if have-default 1068 (if have-default
1283 (concat "(default " (current-word) "): ") 1069 (concat "(default " (current-word) "): ")
1284 ": ")))) 1070 ": "))))
1285 ;; as the operation code to the user 1071 ;; As the operation code to the user.
1286 (setq op-code (completing-read prompt table nil t nil 1072 (completing-read prompt table nil t nil
1287 'mixal-describe-operation-code-history 1073 'mixal-describe-operation-code-history
1288 (current-word))))) 1074 (current-word)))))
1289 ;; get the info on the op-code and output it to the help buffer 1075 ;; get the info on the op-code and output it to the help buffer
1290 (let ((op-code-help (assq (intern-soft op-code) mixal-operation-codes-alist))) 1076 (let ((op-code-help (assq (intern-soft op-code) mixal-operation-codes-alist)))
1291 (when op-code-help 1077 (when op-code-help
@@ -1317,8 +1103,11 @@ Assumes that file has been compiled with debugging support."
1317 "Major mode for the mixal asm language. 1103 "Major mode for the mixal asm language.
1318\\{mixal-mode-map}" 1104\\{mixal-mode-map}"
1319 (set (make-local-variable 'comment-start) "*") 1105 (set (make-local-variable 'comment-start) "*")
1320 (set (make-local-variable 'comment-start-skip) "*") 1106 (set (make-local-variable 'comment-start-skip) "^\\*[ \t]*")
1321 (set (make-local-variable 'font-lock-defaults) '(mixal-font-lock-keywords)) 1107 (set (make-local-variable 'font-lock-defaults)
1108 `(mixal-font-lock-keywords nil nil nil nil
1109 (font-lock-syntactic-keywords . ,mixal-font-lock-syntactic-keywords)
1110 (parse-sexp-lookup-properties . t)))
1322 ;; might add an indent function in the future 1111 ;; might add an indent function in the future
1323 ;; (set (make-local-variable 'indent-line-function) 'mixal-indent-line) 1112 ;; (set (make-local-variable 'indent-line-function) 'mixal-indent-line)
1324 (set (make-local-variable 'compile-command) (concat "mixasm " 1113 (set (make-local-variable 'compile-command) (concat "mixasm "
diff --git a/lisp/startup.el b/lisp/startup.el
index 4ec3915787a..f5b01809512 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -128,7 +128,7 @@ This is normally copied from `default-directory' when Emacs starts.")
128 ("-bg" 1 x-handle-switch background-color) 128 ("-bg" 1 x-handle-switch background-color)
129 ("-background" 1 x-handle-switch background-color) 129 ("-background" 1 x-handle-switch background-color)
130 ("-ms" 1 x-handle-switch mouse-color) 130 ("-ms" 1 x-handle-switch mouse-color)
131 ("-nb" 0 x-handle-switch icon-type nil) 131 ("-nbi" 0 x-handle-switch icon-type nil)
132 ("-iconic" 0 x-handle-iconic) 132 ("-iconic" 0 x-handle-iconic)
133 ("-xrm" 1 x-handle-xrm-switch) 133 ("-xrm" 1 x-handle-xrm-switch)
134 ("-cr" 1 x-handle-switch cursor-color) 134 ("-cr" 1 x-handle-switch cursor-color)
@@ -1232,7 +1232,13 @@ This is an internal function used to turn off the splash screen after
1232the user caused an input event by hitting a key or clicking with the 1232the user caused an input event by hitting a key or clicking with the
1233mouse." 1233mouse."
1234 (interactive) 1234 (interactive)
1235 (push last-command-event unread-command-events) 1235 (if (and (consp last-command-event)
1236 (eq (posn-window (event-start last-command-event))
1237 (selected-window)))
1238 ;; This is a mouse-down event in the spash screen window.
1239 ;; Ignore it and consume the corresponding mouse-up event.
1240 (read-event)
1241 (push last-command-event unread-command-events))
1236 (throw 'exit nil)) 1242 (throw 'exit nil))
1237 1243
1238 1244
diff --git a/lisp/toolbar/README b/lisp/toolbar/README
index 4bf1700dd91..81df0c874bd 100644
--- a/lisp/toolbar/README
+++ b/lisp/toolbar/README
@@ -7,4 +7,6 @@ The following icons are from GTK+ 2.x:
7 7
8 back_arrow.xpm and fwd_arrow.xpm are slightly modified undo and redo. 8 back_arrow.xpm and fwd_arrow.xpm are slightly modified undo and redo.
9 9
10 diropen.xpm is file-manager.png from Gnome hicolor theme.
11
10They are not part of Emacs, but distributed and used by Emacs. 12They are not part of Emacs, but distributed and used by Emacs.
diff --git a/lisp/toolbar/diropen.pbm b/lisp/toolbar/diropen.pbm
index 0f1996db78c..61adc3b2a23 100644
--- a/lisp/toolbar/diropen.pbm
+++ b/lisp/toolbar/diropen.pbm
Binary files differ
diff --git a/lisp/toolbar/diropen.xpm b/lisp/toolbar/diropen.xpm
index bdc0b19d7dd..6937b99a44d 100644
--- a/lisp/toolbar/diropen.xpm
+++ b/lisp/toolbar/diropen.xpm
@@ -1,215 +1,44 @@
1/* XPM */ 1/* XPM */
2static char * diropen_xpm[] = { 2static char * diropen_xpm[] = {
3"24 24 188 2", 3"19 24 17 1",
4" c None", 4" c None",
5". c #000000", 5". c #000100",
6"+ c #010100", 6"+ c #C6C9A6",
7"@ c #B5B8A5", 7"@ c #D0D3AF",
8"# c #E4E7D2", 8"# c #93997C",
9"$ c #878A76", 9"$ c #E6E7D0",
10"% c #33342B", 10"% c #BEC19E",
11"& c #0B0B0B", 11"& c #B4B895",
12"* c #E2E5CF", 12"* c #A7AA88",
13"= c #CFD4AF", 13"= c #6B6D59",
14"- c #CED3AE", 14"- c #4A4E40",
15"; c #B2B696", 15"; c #7C8166",
16"> c #2D2D25", 16"> c #898E72",
17", c #23241D", 17", c #3C4032",
18"' c #9D9F90", 18"' c #575845",
19") c #C6CAA6", 19") c #34332C",
20"! c #C4C9A5", 20"! c #24231D",
21"~ c #C6CBA7", 21" ............... ",
22"{ c #C7CCA8", 22" .+@@@@@@@@@@@@@#. ",
23"] c #C9CEA9", 23".$@@@@@@@@@@@@@@@#.",
24"^ c #555847", 24".++++%%%%%%%%%&&&*.",
25"/ c #1A1B15", 25".&&&&&&&&&&******#.",
26"( c #20201A", 26".*%+++%%%%%%%%%&=#.",
27"_ c #D4D6C2", 27".*+***********##-#.",
28": c #BEC2A0", 28".*+****;===;####-#.",
29"< c #B3B896", 29".*+****=*****###-#.",
30"[ c #B0B595", 30".*+****;*****###-#.",
31"} c #B3B797", 31".*+****########>-#.",
32"| c #B6BB99", 32".*&######>>>>>>>,>.",
33"1 c #BBC09E", 33".*#-------------'>)",
34"2 c #BCC19F", 34".*&&&&&&&&&&&&&*#>)",
35"3 c #81856C", 35".*&************#'>)",
36"4 c #3E3F32", 36".*&***********##,>)",
37"5 c #010101", 37".*&****====;###>,>)",
38"6 c #DADDC8", 38".#&****=**#**##>,;)",
39"7 c #AFB494", 39".#&****>****###>,;)",
40"8 c #AAAF8F", 40".#&****########>,;)",
41"9 c #A3A789", 41".##''''''''''''',;)",
42"0 c #A6AA8B", 42".#>==============;)",
43"a c #A9AD8E", 43".''''''''''''''''-!",
44"b c #A7AB8D", 44" ................. "};
45"c c #A4A88A",
46"d c #A1A588",
47"e c #AAAD96",
48"f c #B3B5A5",
49"g c #B8BBAA",
50"h c #BABCAB",
51"i c #40413B",
52"j c #CACDBB",
53"k c #BABDA8",
54"l c #0C0C09",
55"m c #DDDFCB",
56"n c #969B7E",
57"o c #9DA286",
58"p c #95987C",
59"q c #96997E",
60"r c #9A9D81",
61"s c #999D80",
62"t c #9DA184",
63"u c #A5AA8B",
64"v c #A4A98A",
65"w c #A3A889",
66"x c #A2A588",
67"y c #33352B",
68"z c #9B9E83",
69"A c #898D74",
70"B c #D8DBC9",
71"C c #84866E",
72"D c #7D8169",
73"E c #151612",
74"F c #D7DAC9",
75"G c #797D67",
76"H c #3D3F34",
77"I c #E0E0D9",
78"J c #EBEDDD",
79"K c #E8EBD9",
80"L c #D8DBCA",
81"M c #1A1A18",
82"N c #0A0A09",
83"O c #6E7067",
84"P c #8D8F84",
85"Q c #4A4B45",
86"R c #2C2D29",
87"S c #4B4C46",
88"T c #E7EAD8",
89"U c #E3E6D4",
90"V c #DEE1D0",
91"W c #DADCCC",
92"X c #DADCD1",
93"Y c #2B2C28",
94"Z c #D7DAC6",
95"` c #6F735E",
96" . c #0D0D0D",
97".. c #F4F4EC",
98"+. c #606251",
99"@. c #92957B",
100"#. c #4A4C3E",
101"$. c #434438",
102"%. c #CACFAB",
103"&. c #C6CBA8",
104"*. c #C2C6A4",
105"=. c #ABB091",
106"-. c #23251E",
107";. c #494B3D",
108">. c #DCDCD4",
109",. c #EAECDD",
110"'. c #CDD2AD",
111"). c #20201B",
112"!. c #1C1C17",
113"~. c #A4A88B",
114"{. c #414337",
115"]. c #BABF9D",
116"^. c #B5B999",
117"/. c #81836C",
118"(. c #070806",
119"_. c #D5D8C4",
120":. c #161616",
121"<. c #F2F2EA",
122"[. c #CACFAA",
123"}. c #050504",
124"|. c #3C3D32",
125"1. c #C9CEAA",
126"2. c #C8CDA9",
127"3. c #BFC4A2",
128"4. c #3E4035",
129"5. c #BCC09F",
130"6. c #B6BB9A",
131"7. c #B0B494",
132"8. c #9DA185",
133"9. c #535445",
134"0. c #B6B8A7",
135"a. c #747470",
136"b. c #ECECE2",
137"c. c #C3C8A5",
138"d. c #C2C7A4",
139"e. c #393B30",
140"f. c #BFC4A1",
141"g. c #BDC2A0",
142"h. c #C0C5A2",
143"i. c #3A3B31",
144"j. c #A9AD8F",
145"k. c #A3A78A",
146"l. c #80836D",
147"m. c #020201",
148"n. c #A6A998",
149"o. c #B8BC9B",
150"p. c #1B1C17",
151"q. c #181814",
152"r. c #AFB394",
153"s. c #ACB091",
154"t. c #878A72",
155"u. c #9B9F83",
156"v. c #9A9D82",
157"w. c #8A8D75",
158"x. c #4F5243",
159"y. c #070705",
160"z. c #9E9F91",
161"A. c #E5E6DA",
162"B. c #ADB192",
163"C. c #A6AA8C",
164"D. c #A5A98C",
165"E. c #4B4D3F",
166"F. c #70735F",
167"G. c #9FA286",
168"H. c #999D81",
169"I. c #35362D",
170"J. c #2D2E26",
171"K. c #8A8D74",
172"L. c #71735F",
173"M. c #080908",
174"N. c #E3E5D9",
175"O. c #C0C3AF",
176"P. c #94987C",
177"Q. c #8F9379",
178"R. c #8B8F75",
179"S. c #8A8E74",
180"T. c #888C73",
181"U. c #7D816A",
182"V. c #0E0F0C",
183"W. c #3E4034",
184"X. c #4E5042",
185"Y. c #282922",
186"Z. c #121310",
187"`. c #24251F",
188" + c #71745F",
189".+ c #6A6D59",
190"++ c #434538",
191"@+ c #080907",
192" ",
193" ",
194" ",
195" . . . . . . . ",
196" + @ # # # # # $ % ",
197" & * = = = - - ; > ",
198", ' * ) ! ~ { ] ] ^ / . . ",
199"( _ : < [ } | 1 2 3 4 5 . . . . . . . ",
200", 6 7 8 9 0 8 a b c d e f g h . i j k . ",
201"l m n o p q r s q t u v w x 9 . y z A . ",
202". B C D E . . . . . . . . . . . . . . . 5 5 ",
203". F G H I J K K L M N O P Q R . S T U V W X Y ",
204". Z ` ...= = = +.. @.= = = #.. $.%.&.*.1 =.-. ",
205". Z ;.>.,.'.- - ).!.'.'.'.'.~.. {.&.*.].^./.(. ",
206". _.:.<.%.[.%.[.}.|.1.{ 2.2.3.. 4.5.6.7.8.9.l ",
207". 0.a.b.c.d.d.*.}.e.f.g.h.g.} . i.[ j.k.l.m. ",
208". n.>.o.o.^.} } p.q.r.r.r.s.t.. % u.v.w.x.y. ",
209". z.A.B.j.C.D.k.E.. F.G.u.H.I.. J.K.K.L.M. ",
210". N.O.P.Q.R.S.T.U.V.}.W.X.Y.Z.. `. +.+++@+ ",
211" . . . . . . . . . . . . . . . . . . }. ",
212" ",
213" ",
214" ",
215" "};