diff options
| author | Karoly Lorentey | 2005-10-19 14:03:44 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-10-19 14:03:44 +0000 |
| commit | 6d8cf83040cdb54a0b1d72bd6a021f9815bd4af2 (patch) | |
| tree | f22e60624e5ffd52bbe19fea7809c2f5cb54704d | |
| parent | 734b679135207a8623dc460eb8d108befe080d46 (diff) | |
| parent | 6507c4c73dad972eb4f6bc224c8c22de6cbeec97 (diff) | |
| download | emacs-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
| -rw-r--r-- | lisp/ChangeLog | 101 | ||||
| -rw-r--r-- | lisp/desktop.el | 9 | ||||
| -rw-r--r-- | lisp/info.el | 44 | ||||
| -rw-r--r-- | lisp/international/fontset.el | 55 | ||||
| -rw-r--r-- | lisp/international/utf-8.el | 3 | ||||
| -rw-r--r-- | lisp/makefile.w32-in | 46 | ||||
| -rw-r--r-- | lisp/mh-e/.gitignore | 1 | ||||
| -rw-r--r-- | lisp/progmodes/mixal-mode.el | 1221 | ||||
| -rw-r--r-- | lisp/startup.el | 10 | ||||
| -rw-r--r-- | lisp/toolbar/README | 2 | ||||
| -rw-r--r-- | lisp/toolbar/diropen.pbm | bin | 81 -> 81 bytes | |||
| -rw-r--r-- | lisp/toolbar/diropen.xpm | 255 | ||||
| -rw-r--r-- | man/ChangeLog | 13 | ||||
| -rw-r--r-- | man/basic.texi | 11 | ||||
| -rw-r--r-- | man/cmdargs.texi | 2 | ||||
| -rw-r--r-- | src/ChangeLog | 38 | ||||
| -rw-r--r-- | src/buffer.c | 12 | ||||
| -rw-r--r-- | src/keyboard.c | 26 | ||||
| -rw-r--r-- | src/sysdep.c | 25 | ||||
| -rw-r--r-- | src/xdisp.c | 31 | ||||
| -rw-r--r-- | src/xterm.c | 15 |
21 files changed, 885 insertions, 1035 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1de2034918d..00c71e23aeb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,4 +1,76 @@ | |||
| 1 | 2005-10-11 Sven Joachim <svenjoac@gmx.de> | 1 | 2005-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 | |||
| 9 | 2005-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 | |||
| 14 | 2005-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 | |||
| 19 | 2005-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 | |||
| 29 | 2005-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 | |||
| 36 | 2005-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 | |||
| 49 | 2005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 50 | |||
| 51 | * startup.el (command-line-x-option-alist): -nb => -nbi | ||
| 52 | |||
| 53 | 2005-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 | |||
| 59 | 2005-10-12 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 60 | |||
| 61 | * desktop.el (desktop-load-file): Do nothing when FUNCTION is nil. | ||
| 62 | |||
| 63 | 2005-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 | |||
| 73 | 2005-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 | ||
| 801 | 2005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) | 873 | 2005-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 | ||
| 6091 | 2005-06-09 Luc Teirlinck <teirllm@auburn.edu> | 6162 | 2005-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. |
| 210 | Translate through the translation-hash-table named | 213 | Translate 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 | ||
| 179 | updates: update-subdirs autoloads finder-data custom-deps | 179 | updates: 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 |
| 210 | compile: subdirs.el compile-$(SHELLTYPE) doit | 210 | compile: subdirs.el mh-autoloads compile-$(SHELLTYPE) doit |
| 211 | 211 | ||
| 212 | compile-CMD: | 212 | compile-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 | ||
| 285 | recompile: doit | 285 | recompile: 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. | ||
| 291 | MH_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 | |||
| 301 | mh-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 | ||
| 319 | bootstrap: update-subdirs autoloads compile finder-data custom-deps | 357 | bootstrap: 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 @@ | |||
| 1 | mh-autoloads.el | ||
| 1 | mh-loaddefs.el | 2 | mh-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.") | |||
| 99 | Default value is that of `font-lock-builtin-face', but you can modify its | 109 | Default value is that of `font-lock-builtin-face', but you can modify its |
| 100 | value.") | 110 | value.") |
| 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 |
| 154 | Each 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 | ;; |
| 156 | Where 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 |
| 157 | FULL-NAME is the human readable name as a string, | 129 | ;; better clarity, but the resulting code was too big and caused the |
| 158 | C-BYTE is the operation code telling what operation is to be performed, | 130 | ;; byte-compiler to eat up all the stack space. Even using |
| 159 | F-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. |
| 161 | DESCRIPTION contains an string with a description about the operation code and | 133 | '((LDA loading "load A" 8 field |
| 162 | EXECUTION-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. | ||
| 178 | Uses a + when there is no sign in subfield. Subfield is left padded with | 135 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 179 | zeros to make a word." | 136 | zeros 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. | ||
| 185 | Uses a + when there is no sign in subfield. Subfield is left padded with | 141 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 186 | zeros to make a word." | 142 | zeros 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. | ||
| 192 | Uses a + when there is no sign in subfield. Subfield is left padded with | 147 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 193 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying | 148 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying |
| 194 | to set anything more that that will result in undefined behavior." | 149 | to 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. | ||
| 200 | Uses a + when there is no sign in subfield. Subfield is left padded with | 154 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 201 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying | 155 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying |
| 202 | to set anything more that that will result in undefined behavior." | 156 | to 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. | ||
| 208 | Uses a + when there is no sign in subfield. Subfield is left padded with | 161 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 209 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying | 162 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying |
| 210 | to set anything more that that will result in undefined behavior." | 163 | to 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. | ||
| 216 | Uses a + when there is no sign in subfield. Subfield is left padded with | 168 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 217 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying | 169 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying |
| 218 | to set anything more that that will result in undefined behavior." | 170 | to 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. | ||
| 224 | Uses a + when there is no sign in subfield. Subfield is left padded with | 175 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 225 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying | 176 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying |
| 226 | to set anything more that that will result in undefined behavior." | 177 | to 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. | ||
| 232 | Uses a + when there is no sign in subfield. Subfield is left padded with | 182 | Uses a + when there is no sign in subfield. Subfield is left padded with |
| 233 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying | 183 | zeros to make a word. Index registers only have 2 bytes and a sign, Trying |
| 234 | to set anything more that that will result in undefined behavior." | 184 | to 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. | ||
| 240 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 189 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 241 | Subfield is left padded with zeros to make a word." | 190 | Subfield 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. | ||
| 247 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 195 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 248 | Subfield is left padded with zeros to make a word." | 196 | Subfield 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. | ||
| 254 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 201 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 255 | Subfield is left padded with zeros to make a word. Index registers only | 202 | Subfield is left padded with zeros to make a word. Index registers only |
| 256 | have 2 bytes and a sign, Trying to set anything more that that will result | 203 | have 2 bytes and a sign, Trying to set anything more that that will result |
| 257 | in undefined behavior." | 204 | in 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. | ||
| 263 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 209 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 264 | Subfield is left padded with zeros to make a word. Index registers only | 210 | Subfield is left padded with zeros to make a word. Index registers only |
| 265 | have 2 bytes and a sign, Trying to set anything more that that will result | 211 | have 2 bytes and a sign, Trying to set anything more that that will result |
| 266 | in undefined behavior." | 212 | in 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. | ||
| 272 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 217 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 273 | Subfield is left padded with zeros to make a word. Index registers only | 218 | Subfield is left padded with zeros to make a word. Index registers only |
| 274 | have 2 bytes and a sign, Trying to set anything more that that will result | 219 | have 2 bytes and a sign, Trying to set anything more that that will result |
| 275 | in undefined behavior." | 220 | in 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. | ||
| 281 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 225 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 282 | Subfield is left padded with zeros to make a word. Index registers only | 226 | Subfield is left padded with zeros to make a word. Index registers only |
| 283 | have 2 bytes and a sign, Trying to set anything more that that will result | 227 | have 2 bytes and a sign, Trying to set anything more that that will result |
| 284 | in undefined behavior." | 228 | in 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. | ||
| 290 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 233 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 291 | Subfield is left padded with zeros to make a word. Index registers only | 234 | Subfield is left padded with zeros to make a word. Index registers only |
| 292 | have 2 bytes and a sign, Trying to set anything more that that will result | 235 | have 2 bytes and a sign, Trying to set anything more that that will result |
| 293 | in undefined behavior." | 236 | in 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. | ||
| 299 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. | 241 | Uses a + when there is no sign in subfield, otherwise use the opposite sign. |
| 300 | Subfield is left padded with zeros to make a word. Index registers only | 242 | Subfield is left padded with zeros to make a word. Index registers only |
| 301 | have 2 bytes and a sign, Trying to set anything more that that will result | 243 | have 2 bytes and a sign, Trying to set anything more that that will result |
| 302 | in undefined behavior." | 244 | in 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. | ||
| 308 | The modification of the operation code represents the subfield of the | 249 | The modification of the operation code represents the subfield of the |
| 309 | memory cell that is to be overwritten with bytes from a register. These | 250 | memory cell that is to be overwritten with bytes from a register. These |
| 310 | bytes are taken beginning by the rightmost side of the register. The | 251 | bytes are taken beginning by the rightmost side of the register. The |
| 311 | sign of the memory cell is not changed, unless it is part of the subfield." | 252 | sign 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. | ||
| 317 | The modification of the operation code represents the subfield of the | 257 | The modification of the operation code represents the subfield of the |
| 318 | memory cell that is to be overwritten with bytes from a register. These | 258 | memory cell that is to be overwritten with bytes from a register. These |
| 319 | bytes are taken beginning by the rightmost side of the register. The | 259 | bytes are taken beginning by the rightmost side of the register. The |
| 320 | sign of the memory cell is not changed, unless it is part of the subfield." | 260 | sign 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. | ||
| 326 | The modification of the operation code represents the subfield of the | 265 | The modification of the operation code represents the subfield of the |
| 327 | memory cell that is to be overwritten with bytes from a register. These | 266 | memory cell that is to be overwritten with bytes from a register. These |
| 328 | bytes are taken beginning by the rightmost side of the register. The | 267 | bytes are taken beginning by the rightmost side of the register. The |
| 329 | sign of the memory cell is not changed, unless it is part of the subfield. | 268 | sign of the memory cell is not changed, unless it is part of the subfield. |
| 330 | Because index registers only have 2 bytes and a sign, the rest of the bytes | 269 | Because index registers only have 2 bytes and a sign, the rest of the bytes |
| 331 | are assumed to be 0." | 270 | are 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. | ||
| 337 | The modification of the operation code represents the subfield of the | 275 | The modification of the operation code represents the subfield of the |
| 338 | memory cell that is to be overwritten with bytes from a register. These | 276 | memory cell that is to be overwritten with bytes from a register. These |
| 339 | bytes are taken beginning by the rightmost side of the register. The | 277 | bytes are taken beginning by the rightmost side of the register. The |
| 340 | sign of the memory cell is not changed, unless it is part of the subfield. | 278 | sign of the memory cell is not changed, unless it is part of the subfield. |
| 341 | Because index registers only have 2 bytes and a sign, the rest of the bytes | 279 | Because index registers only have 2 bytes and a sign, the rest of the bytes |
| 342 | are assumed to be 0." | 280 | are 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. | ||
| 348 | The modification of the operation code represents the subfield of the | 285 | The modification of the operation code represents the subfield of the |
| 349 | memory cell that is to be overwritten with bytes from a register. These | 286 | memory cell that is to be overwritten with bytes from a register. These |
| 350 | bytes are taken beginning by the rightmost side of the register. The | 287 | bytes are taken beginning by the rightmost side of the register. The |
| 351 | sign of the memory cell is not changed, unless it is part of the subfield. | 288 | sign of the memory cell is not changed, unless it is part of the subfield. |
| 352 | Because index registers only have 2 bytes and a sign, the rest of the bytes | 289 | Because index registers only have 2 bytes and a sign, the rest of the bytes |
| 353 | are assumed to be 0." | 290 | are 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. | ||
| 359 | The modification of the operation code represents the subfield of the | 295 | The modification of the operation code represents the subfield of the |
| 360 | memory cell that is to be overwritten with bytes from a register. These | 296 | memory cell that is to be overwritten with bytes from a register. These |
| 361 | bytes are taken beginning by the rightmost side of the register. The | 297 | bytes are taken beginning by the rightmost side of the register. The |
| 362 | sign of the memory cell is not changed, unless it is part of the subfield. | 298 | sign of the memory cell is not changed, unless it is part of the subfield. |
| 363 | Because index registers only have 2 bytes and a sign, the rest of the bytes | 299 | Because index registers only have 2 bytes and a sign, the rest of the bytes |
| 364 | are assumed to be 0." | 300 | are 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. | ||
| 370 | The modification of the operation code represents the subfield of the | 305 | The modification of the operation code represents the subfield of the |
| 371 | memory cell that is to be overwritten with bytes from a register. These | 306 | memory cell that is to be overwritten with bytes from a register. These |
| 372 | bytes are taken beginning by the rightmost side of the register. The | 307 | bytes are taken beginning by the rightmost side of the register. The |
| 373 | sign of the memory cell is not changed, unless it is part of the subfield. | 308 | sign of the memory cell is not changed, unless it is part of the subfield. |
| 374 | Because index registers only have 2 bytes and a sign, the rest of the bytes | 309 | Because index registers only have 2 bytes and a sign, the rest of the bytes |
| 375 | are assumed to be 0." | 310 | are 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. | ||
| 381 | The modification of the operation code represents the subfield of the | 315 | The modification of the operation code represents the subfield of the |
| 382 | memory cell that is to be overwritten with bytes from a register. These | 316 | memory cell that is to be overwritten with bytes from a register. These |
| 383 | bytes are taken beginning by the rightmost side of the register. The | 317 | bytes are taken beginning by the rightmost side of the register. The |
| 384 | sign of the memory cell is not changed, unless it is part of the subfield. | 318 | sign of the memory cell is not changed, unless it is part of the subfield. |
| 385 | Because index registers only have 2 bytes and a sign, the rest of the bytes | 319 | Because index registers only have 2 bytes and a sign, the rest of the bytes |
| 386 | are assumed to be 0." | 320 | are 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. | ||
| 392 | The modification of the operation code represents the subfield of the | 325 | The modification of the operation code represents the subfield of the |
| 393 | memory cell that is to be overwritten with bytes from a register. These | 326 | memory cell that is to be overwritten with bytes from a register. These |
| 394 | bytes are taken beginning by the rightmost side of the register. The sign | 327 | bytes are taken beginning by the rightmost side of the register. The sign |
| 395 | of rJ is always +, sign of the memory cell is not changed, unless it is | 328 | of rJ is always +, sign of the memory cell is not changed, unless it is |
| 396 | part of the subfield. The default field for STJ is (0:2)." | 329 | part 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'. | ||
| 402 | The modification of the operation code represents the subfield of the | 334 | The modification of the operation code represents the subfield of the |
| 403 | memory cell that is to be overwritten with zeros." | 335 | memory 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. | ||
| 409 | Subfield is padded with zero to make a word. | 340 | Subfield is padded with zero to make a word. |
| 410 | If the result is to large, the operation result modulo 1,073,741,823 (the | 341 | If the result is to large, the operation result modulo 1,073,741,823 (the |
| 411 | maximum value storable in a MIX word) is stored in `rA', and the overflow | 342 | maximum value storable in a MIX word) is stored in `rA', and the overflow |
| 412 | toggle is set to TRUE." | 343 | toggle 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. | ||
| 418 | Subfield is padded with zero to make a word. | 348 | Subfield is padded with zero to make a word. |
| 419 | If the result is to large, the operation result modulo 1,073,741,823 (the | 349 | If the result is to large, the operation result modulo 1,073,741,823 (the |
| 420 | maximum value storable in a MIX word) is stored in `rA', and the overflow | 350 | maximum value storable in a MIX word) is stored in `rA', and the overflow |
| 421 | toggle is set to TRUE." | 351 | toggle 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. | ||
| 427 | The sign is + if the sign of rA and cell M where the same, otherwise, it is -" | 356 | The 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. | ||
| 433 | The sign is taken from rA, and after the divide the sign of rA is set to + when | 361 | The sign is taken from rA, and after the divide the sign of rA is set to + when |
| 434 | both the sign of rA and M where the same. Divide by zero and overflow of rA result | 362 | both the sign of rA and M where the same. Divide by zero and overflow of rA |
| 435 | in undefined behavior." | 363 | result 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. | ||
| 441 | Indexed, stores value of index in rA." | 368 | Indexed, 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. | ||
| 447 | Indexed, stores value of index in rX." | 373 | Indexed, 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. | ||
| 453 | Indexed, stores value of index in rI1." | 378 | Indexed, 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. | ||
| 459 | Indexed, stores value of index in rI2." | 383 | Indexed, 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. | ||
| 465 | Indexed, stores value of index in rI3." | 388 | Indexed, 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. | ||
| 471 | Indexed, stores value of index in rI4." | 393 | Indexed, 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. | ||
| 477 | Indexed, stores value of index in rI5." | 398 | Indexed, 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. | ||
| 483 | Indexed, stores value of index in rI6." | 403 | Indexed, 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. | ||
| 489 | Indexed, stores value of index in rA with opposite sign." | 408 | Indexed, 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. | ||
| 495 | Indexed, stores value of index in rX with opposite sign." | 413 | Indexed, 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. | ||
| 501 | Indexed, stores value of index in rI1 with opposite sign." | 418 | Indexed, 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. | ||
| 507 | Indexed, stores value of index in rI2 with opposite sign." | 423 | Indexed, 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. | ||
| 513 | Indexed, stores value of index in rI3 with opposite sign." | 428 | Indexed, 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. | ||
| 519 | Indexed, stores value of index in rI4 with opposite sign." | 433 | Indexed, 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. | ||
| 525 | Indexed, stores value of index in rI5 with opposite sign." | 438 | Indexed, 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. | ||
| 531 | Indexed, stores value of index in rI6 with opposite sign." | 443 | Indexed, 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. | ||
| 537 | On overflow the overflow toggle is set." | 448 | On 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. | ||
| 543 | On overflow the overflow toggle is set." | 453 | On 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. | ||
| 549 | The result is undefined when the result does not fit in | 458 | The result is undefined when the result does not fit in |
| 550 | 2 bytes." | 459 | 2 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. | ||
| 556 | The result is undefined when the result does not fit in | 464 | The result is undefined when the result does not fit in |
| 557 | 2 bytes." | 465 | 2 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. | ||
| 563 | The result is undefined when the result does not fit in | 470 | The result is undefined when the result does not fit in |
| 564 | 2 bytes." | 471 | 2 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. | ||
| 570 | The result is undefined when the result does not fit in | 476 | The result is undefined when the result does not fit in |
| 571 | 2 bytes." | 477 | 2 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. | ||
| 577 | The result is undefined when the result does not fit in | 482 | The result is undefined when the result does not fit in |
| 578 | 2 bytes." | 483 | 2 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. | ||
| 584 | The result is undefined when the result does not fit in | 488 | The result is undefined when the result does not fit in |
| 585 | 2 bytes." | 489 | 2 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. | ||
| 591 | On overflow the overflow toggle is set." | 494 | On 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. | ||
| 597 | On overflow the overflow toggle is set." | 499 | On 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. | ||
| 603 | The result is undefined when the result does not fit in | 504 | The result is undefined when the result does not fit in |
| 604 | 2 bytes." | 505 | 2 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. | ||
| 610 | The result is undefined when the result does not fit in | 510 | The result is undefined when the result does not fit in |
| 611 | 2 bytes." | 511 | 2 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. | ||
| 617 | The result is undefined when the result does not fit in | 516 | The result is undefined when the result does not fit in |
| 618 | 2 bytes." | 517 | 2 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. | ||
| 624 | The result is undefined when the result does not fit in | 522 | The result is undefined when the result does not fit in |
| 625 | 2 bytes." | 523 | 2 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. | ||
| 631 | The result is undefined when the result does not fit in | 528 | The result is undefined when the result does not fit in |
| 632 | 2 bytes." | 529 | 2 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. | ||
| 638 | The result is undefined when the result does not fit in | 534 | The result is undefined when the result does not fit in |
| 639 | 2 bytes." | 535 | 2 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. | ||
| 645 | The field specifier works on both fields. The comparison indicator | 540 | The field specifier works on both fields. The comparison indicator |
| 646 | is set to LESS, EQUAL or GREATER depending on the outcome." | 541 | is 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. | ||
| 653 | The field specifier works on both fields. The comparison indicator | 546 | The field specifier works on both fields. The comparison indicator |
| 654 | is set to LESS, EQUAL or GREATER depending on the outcome." | 547 | is 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. | ||
| 661 | The field specifier works on both fields. The comparison indicator | 552 | The field specifier works on both fields. The comparison indicator |
| 662 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 | 553 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 |
| 663 | have a value of 0." | 554 | have 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. | ||
| 670 | The field specifier works on both fields. The comparison indicator | 559 | The field specifier works on both fields. The comparison indicator |
| 671 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 | 560 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 |
| 672 | have a value of 0." | 561 | have 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. | ||
| 679 | The field specifier works on both fields. The comparison indicator | 566 | The field specifier works on both fields. The comparison indicator |
| 680 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 | 567 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 |
| 681 | have a value of 0." | 568 | have 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. | ||
| 688 | The field specifier works on both fields. The comparison indicator | 573 | The field specifier works on both fields. The comparison indicator |
| 689 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 | 574 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 |
| 690 | have a value of 0." | 575 | have 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. | ||
| 697 | The field specifier works on both fields. The comparison indicator | 580 | The field specifier works on both fields. The comparison indicator |
| 698 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 | 581 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 |
| 699 | have a value of 0." | 582 | have 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. | ||
| 706 | The field specifier works on both fields. The comparison indicator | 587 | The field specifier works on both fields. The comparison indicator |
| 707 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 | 588 | is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 |
| 708 | have a value of 0." | 589 | have 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. | ||
| 714 | Register J is set to the value of the next instruction that would have | 594 | Register J is set to the value of the next instruction that would have |
| 715 | been executed when there was no jump." | 595 | been 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). | ||
| 726 | Register J is set to the value of the next instruction that would have | 604 | Register J is set to the value of the next instruction that would have |
| 727 | been executed when there was no jump." | 605 | been 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). | ||
| 733 | Register J is set to the value of the next instruction that would have | 610 | Register J is set to the value of the next instruction that would have |
| 734 | been executed when there was no jump." | 611 | been 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'. | ||
| 740 | Register J is set to the value of the next instruction that would have | 616 | Register J is set to the value of the next instruction that would have |
| 741 | been executed when there was no jump." | 617 | been 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'. | ||
| 748 | Register J is set to the value of the next instruction that would have | 622 | Register J is set to the value of the next instruction that would have |
| 749 | been executed when there was no jump." | 623 | been 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'. | ||
| 756 | Register J is set to the value of the next instruction that would have | 628 | Register J is set to the value of the next instruction that would have |
| 757 | been executed when there was no jump." | 629 | been 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'. | ||
| 764 | Register J is set to the value of the next instruction that would have | 634 | Register J is set to the value of the next instruction that would have |
| 765 | been executed when there was no jump." | 635 | been 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'. | ||
| 772 | Register J is set to the value of the next instruction that would have | 640 | Register J is set to the value of the next instruction that would have |
| 773 | been executed when there was no jump." | 641 | been 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'. | ||
| 780 | Register J is set to the value of the next instruction that would have | 646 | Register J is set to the value of the next instruction that would have |
| 781 | been executed when there was no jump." | 647 | been 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. | ||
| 787 | Register J is set to the value of the next instruction that would have | 652 | Register J is set to the value of the next instruction that would have |
| 788 | been executed when there was no jump." | 653 | been 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. | ||
| 795 | Register J is set to the value of the next instruction that would have | 658 | Register J is set to the value of the next instruction that would have |
| 796 | been executed when there was no jump." | 659 | been 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. | ||
| 803 | Register J is set to the value of the next instruction that would have | 664 | Register J is set to the value of the next instruction that would have |
| 804 | been executed when there was no jump." | 665 | been 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. | ||
| 811 | Register J is set to the value of the next instruction that would have | 670 | Register J is set to the value of the next instruction that would have |
| 812 | been executed when there was no jump." | 671 | been 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. | ||
| 819 | Register J is set to the value of the next instruction that would have | 676 | Register J is set to the value of the next instruction that would have |
| 820 | been executed when there was no jump." | 677 | been 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. | ||
| 827 | Register J is set to the value of the next instruction that would have | 682 | Register J is set to the value of the next instruction that would have |
| 828 | been executed when there was no jump." | 683 | been 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. | ||
| 834 | Register J is set to the value of the next instruction that would have | 688 | Register J is set to the value of the next instruction that would have |
| 835 | been executed when there was no jump." | 689 | been 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. | ||
| 842 | Register J is set to the value of the next instruction that would have | 694 | Register J is set to the value of the next instruction that would have |
| 843 | been executed when there was no jump." | 695 | been 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. | ||
| 850 | Register J is set to the value of the next instruction that would have | 700 | Register J is set to the value of the next instruction that would have |
| 851 | been executed when there was no jump." | 701 | been 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. | ||
| 858 | Register J is set to the value of the next instruction that would have | 706 | Register J is set to the value of the next instruction that would have |
| 859 | been executed when there was no jump." | 707 | been 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. | ||
| 866 | Register J is set to the value of the next instruction that would have | 712 | Register J is set to the value of the next instruction that would have |
| 867 | been executed when there was no jump." | 713 | been 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. | ||
| 874 | Register J is set to the value of the next instruction that would have | 718 | Register J is set to the value of the next instruction that would have |
| 875 | been executed when there was no jump." | 719 | been 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. | ||
| 881 | Register J is set to the value of the next instruction that would have | 724 | Register J is set to the value of the next instruction that would have |
| 882 | been executed when there was no jump." | 725 | been 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. | ||
| 889 | Register J is set to the value of the next instruction that would have | 730 | Register J is set to the value of the next instruction that would have |
| 890 | been executed when there was no jump." | 731 | been 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. | ||
| 897 | Register J is set to the value of the next instruction that would have | 736 | Register J is set to the value of the next instruction that would have |
| 898 | been executed when there was no jump." | 737 | been 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. | ||
| 905 | Register J is set to the value of the next instruction that would have | 742 | Register J is set to the value of the next instruction that would have |
| 906 | been executed when there was no jump." | 743 | been 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. | ||
| 913 | Register J is set to the value of the next instruction that would have | 748 | Register J is set to the value of the next instruction that would have |
| 914 | been executed when there was no jump." | 749 | been 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. | ||
| 921 | Register J is set to the value of the next instruction that would have | 754 | Register J is set to the value of the next instruction that would have |
| 922 | been executed when there was no jump." | 755 | been 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. | ||
| 928 | Register J is set to the value of the next instruction that would have | 760 | Register J is set to the value of the next instruction that would have |
| 929 | been executed when there was no jump." | 761 | been 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. | ||
| 936 | Register J is set to the value of the next instruction that would have | 766 | Register J is set to the value of the next instruction that would have |
| 937 | been executed when there was no jump." | 767 | been 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. | ||
| 944 | Register J is set to the value of the next instruction that would have | 772 | Register J is set to the value of the next instruction that would have |
| 945 | been executed when there was no jump." | 773 | been 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. | ||
| 952 | Register J is set to the value of the next instruction that would have | 778 | Register J is set to the value of the next instruction that would have |
| 953 | been executed when there was no jump." | 779 | been 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. | ||
| 960 | Register J is set to the value of the next instruction that would have | 784 | Register J is set to the value of the next instruction that would have |
| 961 | been executed when there was no jump." | 785 | been 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. | ||
| 968 | Register J is set to the value of the next instruction that would have | 790 | Register J is set to the value of the next instruction that would have |
| 969 | been executed when there was no jump." | 791 | been 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. | ||
| 976 | Register J is set to the value of the next instruction that would have | 796 | Register J is set to the value of the next instruction that would have |
| 977 | been executed when there was no jump." | 797 | been 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. | ||
| 984 | Register J is set to the value of the next instruction that would have | 802 | Register J is set to the value of the next instruction that would have |
| 985 | been executed when there was no jump." | 803 | been 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. | ||
| 992 | Register J is set to the value of the next instruction that would have | 808 | Register J is set to the value of the next instruction that would have |
| 993 | been executed when there was no jump." | 809 | been 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. | ||
| 1000 | Register J is set to the value of the next instruction that would have | 814 | Register J is set to the value of the next instruction that would have |
| 1001 | been executed when there was no jump." | 815 | been 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. | ||
| 1008 | Register J is set to the value of the next instruction that would have | 820 | Register J is set to the value of the next instruction that would have |
| 1009 | been executed when there was no jump." | 821 | been 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. | ||
| 1016 | Register J is set to the value of the next instruction that would have | 826 | Register J is set to the value of the next instruction that would have |
| 1017 | been executed when there was no jump." | 827 | been 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. | ||
| 1024 | Register J is set to the value of the next instruction that would have | 832 | Register J is set to the value of the next instruction that would have |
| 1025 | been executed when there was no jump." | 833 | been 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. | ||
| 1032 | Register J is set to the value of the next instruction that would have | 838 | Register J is set to the value of the next instruction that would have |
| 1033 | been executed when there was no jump." | 839 | been 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. | ||
| 1040 | Register J is set to the value of the next instruction that would have | 844 | Register J is set to the value of the next instruction that would have |
| 1041 | been executed when there was no jump." | 845 | been 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. | ||
| 1048 | Register J is set to the value of the next instruction that would have | 850 | Register J is set to the value of the next instruction that would have |
| 1049 | been executed when there was no jump." | 851 | been 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. | ||
| 1056 | Register J is set to the value of the next instruction that would have | 856 | Register J is set to the value of the next instruction that would have |
| 1057 | been executed when there was no jump." | 857 | been 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. | ||
| 1064 | Register J is set to the value of the next instruction that would have | 862 | Register J is set to the value of the next instruction that would have |
| 1065 | been executed when there was no jump." | 863 | been 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. | ||
| 1072 | Register J is set to the value of the next instruction that would have | 868 | Register J is set to the value of the next instruction that would have |
| 1073 | been executed when there was no jump." | 869 | been 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. | ||
| 1080 | Register J is set to the value of the next instruction that would have | 874 | Register J is set to the value of the next instruction that would have |
| 1081 | been executed when there was no jump." | 875 | been 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. | ||
| 1088 | Register J is set to the value of the next instruction that would have | 880 | Register J is set to the value of the next instruction that would have |
| 1089 | been executed when there was no jump." | 881 | been 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. | ||
| 1096 | Register J is set to the value of the next instruction that would have | 886 | Register J is set to the value of the next instruction that would have |
| 1097 | been executed when there was no jump." | 887 | been 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. | ||
| 1104 | Register J is set to the value of the next instruction that would have | 892 | Register J is set to the value of the next instruction that would have |
| 1105 | been executed when there was no jump." | 893 | been 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. | ||
| 1112 | Register J is set to the value of the next instruction that would have | 898 | Register J is set to the value of the next instruction that would have |
| 1113 | been executed when there was no jump." | 899 | been 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. | ||
| 1120 | Register J is set to the value of the next instruction that would have | 904 | Register J is set to the value of the next instruction that would have |
| 1121 | been executed when there was no jump." | 905 | been 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. | ||
| 1128 | Register J is set to the value of the next instruction that would have | 910 | Register J is set to the value of the next instruction that would have |
| 1129 | been executed when there was no jump." | 911 | been 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. | ||
| 1136 | Register J is set to the value of the next instruction that would have | 916 | Register J is set to the value of the next instruction that would have |
| 1137 | been executed when there was no jump." | 917 | been 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. | ||
| 1144 | Register J is set to the value of the next instruction that would have | 922 | Register J is set to the value of the next instruction that would have |
| 1145 | been executed when there was no jump." | 923 | been 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. | ||
| 1152 | Register J is set to the value of the next instruction that would have | 928 | Register J is set to the value of the next instruction that would have |
| 1153 | been executed when there was no jump." | 929 | been 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. | ||
| 1160 | Register J is set to the value of the next instruction that would have | 934 | Register J is set to the value of the next instruction that would have |
| 1161 | been executed when there was no jump." | 935 | been 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. | ||
| 1167 | Hero's will be added to the right." | 940 | Hero'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. | ||
| 1174 | Zeros will be added to the left." | 945 | Zeros 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. | ||
| 1181 | Zeros will be added to the right." | 950 | Zeros 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. | ||
| 1189 | Zeros will be added to the left." | 956 | Zeros 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. | ||
| 1196 | The bytes that fall off to the left will be added to the right." | 961 | The 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. | ||
| 1203 | The bytes that fall off to the right will be added to the left." | 966 | The 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. | ||
| 1219 | Stop instruction fetching." | 979 | Stop 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. | ||
| 1225 | The transfer starts at address M." | 984 | The 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. | ||
| 1231 | The transfer starts at address M to the specified unit." | 989 | The 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. | ||
| 1237 | The control operation is given by M on the specified unit." | 994 | The 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. | ||
| 1254 | the register rAX is assumed to contain a character representation of | 1007 | the register rAX is assumed to contain a character representation of |
| 1255 | a number." | 1008 | a 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. | ||
| 1261 | The converted character representation is stored in rAX." | 1013 | The converted character representation is stored in rAX." |
| 1262 | 10) | 1014 | 10)) |
| 1015 | |||
| 1016 | "Alist that contains all the possible operation codes for mix. | ||
| 1017 | Each elt has the form | ||
| 1018 | (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME) | ||
| 1019 | Where OP-CODE is the text of the opcode as an symbol, | ||
| 1020 | FULL-NAME is the human readable name as a string, | ||
| 1021 | C-BYTE is the operation code telling what operation is to be performed, | ||
| 1022 | F-BYTE holds a modification of the operation code which can be a symbol | ||
| 1023 | or a number, | ||
| 1024 | DESCRIPTION contains an string with a description about the operation code and | ||
| 1025 | EXECUTION-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 | |||
| 1232 | the user caused an input event by hitting a key or clicking with the | 1232 | the user caused an input event by hitting a key or clicking with the |
| 1233 | mouse." | 1233 | mouse." |
| 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 | |||
| 10 | They are not part of Emacs, but distributed and used by Emacs. | 12 | They 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 */ |
| 2 | static char * diropen_xpm[] = { | 2 | static 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 | " "}; | ||
diff --git a/man/ChangeLog b/man/ChangeLog index 66f7caa1ee8..8ba536739fc 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,16 @@ | |||
| 1 | 2005-10-13 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * basic.texi (Position Info): Fix previous change. | ||
| 4 | |||
| 5 | 2005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 6 | |||
| 7 | * cmdargs.texi (Icons X): Fix typo. | ||
| 8 | |||
| 9 | 2005-10-12 Kenichi Handa <handa@m17n.org> | ||
| 10 | |||
| 11 | * basic.texi (Position Info): Describe the case that Emacs shows | ||
| 12 | "part of display ...". | ||
| 13 | |||
| 1 | 2005-10-11 Jay Belanger <belanger@truman.edu> | 14 | 2005-10-11 Jay Belanger <belanger@truman.edu> |
| 2 | 15 | ||
| 3 | * calc.texi (Integration): Mention using `a i' to compute definite | 16 | * calc.texi (Integration): Mention using `a i' to compute definite |
diff --git a/man/basic.texi b/man/basic.texi index 2f5aa3162e1..2c78de612ad 100644 --- a/man/basic.texi +++ b/man/basic.texi | |||
| @@ -636,10 +636,17 @@ Char: c (0143, 99, 0x63) point=21044 of 26883(78%) column 53 | |||
| 636 | The four values after @samp{Char:} describe the character that follows | 636 | The four values after @samp{Char:} describe the character that follows |
| 637 | point, first by showing it and then by giving its character code in | 637 | point, first by showing it and then by giving its character code in |
| 638 | octal, decimal and hex. For a non-@acronym{ASCII} multibyte character, these are | 638 | octal, decimal and hex. For a non-@acronym{ASCII} multibyte character, these are |
| 639 | followed by @samp{ext} and the character's representation, in hex, in | 639 | followed by @samp{file} and the character's representation, in hex, in |
| 640 | the buffer's coding system, if that coding system encodes the character | 640 | the buffer's coding system, if that coding system encodes the character |
| 641 | safely and with a single byte (@pxref{Coding Systems}). If the | 641 | safely and with a single byte (@pxref{Coding Systems}). If the |
| 642 | character's encoding is longer than one byte, Emacs shows @samp{ext ...}. | 642 | character's encoding is longer than one byte, Emacs shows @samp{file ...}. |
| 643 | |||
| 644 | However, if the character displayed is in the range 0200 through | ||
| 645 | 0377 octal, it may actually stand for an invalid UTF-8 byte read from | ||
| 646 | a file. In Emacs, that byte is represented as a sequence of 8-bit | ||
| 647 | characters, but all of them together display as the original invalid | ||
| 648 | byte, in octal code. In this case, @kbd{C-x =} shows @samp{part of | ||
| 649 | display ...} instead of @samp{file}. | ||
| 643 | 650 | ||
| 644 | @samp{point=} is followed by the position of point expressed as a character | 651 | @samp{point=} is followed by the position of point expressed as a character |
| 645 | count. The front of the buffer counts as position 1, one character later | 652 | count. The front of the buffer counts as position 1, one character later |
diff --git a/man/cmdargs.texi b/man/cmdargs.texi index bdb57d9b063..28cb567f0cd 100644 --- a/man/cmdargs.texi +++ b/man/cmdargs.texi | |||
| @@ -1188,7 +1188,7 @@ Start Emacs in iconified state. | |||
| 1188 | @end table | 1188 | @end table |
| 1189 | 1189 | ||
| 1190 | By default Emacs uses an icon window containing a picture of the GNU gnu. | 1190 | By default Emacs uses an icon window containing a picture of the GNU gnu. |
| 1191 | The @samp{-np} or @samp{--no-bitmap-icon} option tells Emacs to let the | 1191 | The @samp{-nbi} or @samp{--no-bitmap-icon} option tells Emacs to let the |
| 1192 | window manager choose what sort of icon to use---usually just a small | 1192 | window manager choose what sort of icon to use---usually just a small |
| 1193 | rectangle containing the frame's title. | 1193 | rectangle containing the frame's title. |
| 1194 | 1194 | ||
diff --git a/src/ChangeLog b/src/ChangeLog index d8c93e96754..30db0548172 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,41 @@ | |||
| 1 | 2005-10-14 Kim F. Storm <storm@cua.dk> | ||
| 2 | |||
| 3 | * xterm.c (note_mouse_movement): Return 1 if mouse moved; 0 otherwise. | ||
| 4 | (handle_one_xevent): Only clear help_echo_string; restore it if | ||
| 5 | note_mouse_movement didn't record any mouse movement. | ||
| 6 | |||
| 7 | * xdisp.c (pos_visible_p): Convert w->hscroll to pixels before use. | ||
| 8 | (remember_mouse_glyph): Clear RECT if mouse is over an image glyph. | ||
| 9 | |||
| 10 | * keyboard.c (make_lispy_position): Adjust wx for left margin if ON_TEXT. | ||
| 11 | (Fposn_at_x_y): Fix calculation of x coordinate. | ||
| 12 | (Fposn_at_point): Return nil if point is hscrolled out of view. | ||
| 13 | |||
| 14 | 2005-10-13 Andreas Schwab <schwab@suse.de> | ||
| 15 | |||
| 16 | * sysdep.c (request_sigio, unrequest_sigio): Do nothing in | ||
| 17 | non-interactive mode. | ||
| 18 | |||
| 19 | 2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 20 | |||
| 21 | * xterm.c, w32term.c, macterm.c (note_mouse_movement): Undo last change. | ||
| 22 | |||
| 23 | 2005-10-12 Kim F. Storm <storm@cua.dk> | ||
| 24 | |||
| 25 | * xterm.c (handle_one_xevent): Clear last_mouse_glyph on mouse up/down. | ||
| 26 | |||
| 27 | 2005-10-12 Romain Francoise <romain@orebokech.com> | ||
| 28 | |||
| 29 | * buffer.c (init_buffer): Rename `rc' to `len' for clarity. | ||
| 30 | |||
| 31 | 2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 32 | |||
| 33 | * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to | ||
| 34 | get end of text rows. Obtain header-line/mode-line rows directly. | ||
| 35 | |||
| 36 | * xterm.c, w32term.c, macterm.c (note_mouse_movement): Restore | ||
| 37 | help_echo_string if mouse is moved inside last_mouse_glyph. | ||
| 38 | |||
| 1 | 2005-10-12 Kim F. Storm <storm@cua.dk> | 39 | 2005-10-12 Kim F. Storm <storm@cua.dk> |
| 2 | 40 | ||
| 3 | * xdisp.c (remember_mouse_glyph): New generic version based on | 41 | * xdisp.c (remember_mouse_glyph): New generic version based on |
diff --git a/src/buffer.c b/src/buffer.c index fb1ff1c22e9..c173136961e 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -5114,7 +5114,7 @@ init_buffer () | |||
| 5114 | char *pwd; | 5114 | char *pwd; |
| 5115 | struct stat dotstat, pwdstat; | 5115 | struct stat dotstat, pwdstat; |
| 5116 | Lisp_Object temp; | 5116 | Lisp_Object temp; |
| 5117 | int rc; | 5117 | int len; |
| 5118 | 5118 | ||
| 5119 | #ifdef USE_MMAP_FOR_BUFFERS | 5119 | #ifdef USE_MMAP_FOR_BUFFERS |
| 5120 | { | 5120 | { |
| @@ -5141,13 +5141,13 @@ init_buffer () | |||
| 5141 | #ifndef VMS | 5141 | #ifndef VMS |
| 5142 | /* Maybe this should really use some standard subroutine | 5142 | /* Maybe this should really use some standard subroutine |
| 5143 | whose definition is filename syntax dependent. */ | 5143 | whose definition is filename syntax dependent. */ |
| 5144 | rc = strlen (pwd); | 5144 | len = strlen (pwd); |
| 5145 | if (!(IS_DIRECTORY_SEP (pwd[rc - 1]))) | 5145 | if (!(IS_DIRECTORY_SEP (pwd[len - 1]))) |
| 5146 | { | 5146 | { |
| 5147 | /* Grow buffer to add directory separator and '\0'. */ | 5147 | /* Grow buffer to add directory separator and '\0'. */ |
| 5148 | pwd = (char *) xrealloc (pwd, rc + 2); | 5148 | pwd = (char *) xrealloc (pwd, len + 2); |
| 5149 | pwd[rc] = DIRECTORY_SEP; | 5149 | pwd[len] = DIRECTORY_SEP; |
| 5150 | pwd[rc + 1] = '\0'; | 5150 | pwd[len + 1] = '\0'; |
| 5151 | } | 5151 | } |
| 5152 | #endif /* not VMS */ | 5152 | #endif /* not VMS */ |
| 5153 | 5153 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index 4937cc445bd..814ef5dc6c9 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -5108,7 +5108,11 @@ make_lispy_position (f, x, y, time) | |||
| 5108 | XSETINT (*x, wx); | 5108 | XSETINT (*x, wx); |
| 5109 | XSETINT (*y, wy); | 5109 | XSETINT (*y, wy); |
| 5110 | 5110 | ||
| 5111 | if (part == ON_MODE_LINE || part == ON_HEADER_LINE) | 5111 | if (part == ON_TEXT) |
| 5112 | { | ||
| 5113 | wx += WINDOW_LEFT_MARGIN_WIDTH (w); | ||
| 5114 | } | ||
| 5115 | else if (part == ON_MODE_LINE || part == ON_HEADER_LINE) | ||
| 5112 | { | 5116 | { |
| 5113 | /* Mode line or header line. Look for a string under | 5117 | /* Mode line or header line. Look for a string under |
| 5114 | the mouse that may have a `local-map' property. */ | 5118 | the mouse that may have a `local-map' property. */ |
| @@ -10779,11 +10783,11 @@ The `posn-' functions access elements of such lists. */) | |||
| 10779 | CHECK_LIVE_WINDOW (frame_or_window); | 10783 | CHECK_LIVE_WINDOW (frame_or_window); |
| 10780 | 10784 | ||
| 10781 | w = XWINDOW (frame_or_window); | 10785 | w = XWINDOW (frame_or_window); |
| 10782 | XSETINT (x, (WINDOW_TO_FRAME_PIXEL_X (w, XINT (x)) | 10786 | XSETINT (x, (XINT (x) |
| 10787 | + WINDOW_LEFT_EDGE_X (w) | ||
| 10783 | + (NILP (whole) | 10788 | + (NILP (whole) |
| 10784 | ? window_box_left_offset (w, TEXT_AREA) | 10789 | ? window_box_left_offset (w, TEXT_AREA) |
| 10785 | : - (WINDOW_LEFT_SCROLL_BAR_COLS (w) | 10790 | : 0))); |
| 10786 | * WINDOW_FRAME_COLUMN_WIDTH (w))))); | ||
| 10787 | XSETINT (y, WINDOW_TO_FRAME_PIXEL_Y (w, XINT (y))); | 10791 | XSETINT (y, WINDOW_TO_FRAME_PIXEL_Y (w, XINT (y))); |
| 10788 | frame_or_window = w->frame; | 10792 | frame_or_window = w->frame; |
| 10789 | } | 10793 | } |
| @@ -10809,9 +10813,21 @@ The `posn-' functions access elements of such lists. */) | |||
| 10809 | { | 10813 | { |
| 10810 | Lisp_Object tem; | 10814 | Lisp_Object tem; |
| 10811 | 10815 | ||
| 10816 | if (NILP (window)) | ||
| 10817 | window = selected_window; | ||
| 10818 | |||
| 10812 | tem = Fpos_visible_in_window_p (pos, window, Qt); | 10819 | tem = Fpos_visible_in_window_p (pos, window, Qt); |
| 10813 | if (!NILP (tem)) | 10820 | if (!NILP (tem)) |
| 10814 | tem = Fposn_at_x_y (XCAR (tem), XCAR (XCDR (tem)), window, Qnil); | 10821 | { |
| 10822 | Lisp_Object x = XCAR (tem); | ||
| 10823 | Lisp_Object y = XCAR (XCDR (tem)); | ||
| 10824 | |||
| 10825 | /* Point invisible due to hscrolling? */ | ||
| 10826 | if (XINT (x) < 0) | ||
| 10827 | return Qnil; | ||
| 10828 | tem = Fposn_at_x_y (x, y, window, Qnil); | ||
| 10829 | } | ||
| 10830 | |||
| 10815 | return tem; | 10831 | return tem; |
| 10816 | } | 10832 | } |
| 10817 | 10833 | ||
diff --git a/src/sysdep.c b/src/sysdep.c index c9464cd111f..0cf6ecb1f36 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -1032,6 +1032,7 @@ reset_sigio (fd) | |||
| 1032 | 1032 | ||
| 1033 | #ifdef FASYNC /* F_SETFL does not imply existence of FASYNC */ | 1033 | #ifdef FASYNC /* F_SETFL does not imply existence of FASYNC */ |
| 1034 | /* XXX Uhm, FASYNC is not used anymore here. */ | 1034 | /* XXX Uhm, FASYNC is not used anymore here. */ |
| 1035 | /* XXX Yeah, but you need it for SIGIO, don't you? */ | ||
| 1035 | 1036 | ||
| 1036 | void | 1037 | void |
| 1037 | request_sigio () | 1038 | request_sigio () |
| @@ -1039,7 +1040,7 @@ request_sigio () | |||
| 1039 | /* XXX read_socket_hook is not global anymore. Is blocking SIGIO | 1040 | /* XXX read_socket_hook is not global anymore. Is blocking SIGIO |
| 1040 | bad under X? */ | 1041 | bad under X? */ |
| 1041 | #if 0 | 1042 | #if 0 |
| 1042 | if (read_socket_hook) | 1043 | if (noninteractive || read_socket_hook) |
| 1043 | return; | 1044 | return; |
| 1044 | #endif | 1045 | #endif |
| 1045 | 1046 | ||
| @@ -1057,7 +1058,7 @@ unrequest_sigio (void) | |||
| 1057 | /* XXX read_socket_hook is not global anymore. Is blocking SIGIO | 1058 | /* XXX read_socket_hook is not global anymore. Is blocking SIGIO |
| 1058 | bad under X? */ | 1059 | bad under X? */ |
| 1059 | #if 0 | 1060 | #if 0 |
| 1060 | if (read_socket_hook) | 1061 | if (noninteractive || read_socket_hook) |
| 1061 | return; | 1062 | return; |
| 1062 | #endif | 1063 | #endif |
| 1063 | 1064 | ||
| @@ -1076,7 +1077,7 @@ request_sigio () | |||
| 1076 | { | 1077 | { |
| 1077 | int on = 1; | 1078 | int on = 1; |
| 1078 | 1079 | ||
| 1079 | if (read_socket_hook) | 1080 | if (noninteractive || read_socket_hook) |
| 1080 | return; | 1081 | return; |
| 1081 | 1082 | ||
| 1082 | /* XXX CURTTY() is bogus here. */ | 1083 | /* XXX CURTTY() is bogus here. */ |
| @@ -1089,7 +1090,7 @@ unrequest_sigio () | |||
| 1089 | { | 1090 | { |
| 1090 | int off = 0; | 1091 | int off = 0; |
| 1091 | 1092 | ||
| 1092 | if (read_socket_hook) | 1093 | if (noninteractive || read_socket_hook) |
| 1093 | return; | 1094 | return; |
| 1094 | 1095 | ||
| 1095 | /* XXX CURTTY() is bogus here. */ | 1096 | /* XXX CURTTY() is bogus here. */ |
| @@ -1109,7 +1110,7 @@ request_sigio () | |||
| 1109 | int on = 1; | 1110 | int on = 1; |
| 1110 | sigset_t st; | 1111 | sigset_t st; |
| 1111 | 1112 | ||
| 1112 | if (read_socket_hook) | 1113 | if (noninteractive || read_socket_hook) |
| 1113 | return; | 1114 | return; |
| 1114 | 1115 | ||
| 1115 | sigemptyset (&st); | 1116 | sigemptyset (&st); |
| @@ -1124,7 +1125,7 @@ unrequest_sigio () | |||
| 1124 | { | 1125 | { |
| 1125 | int off = 0; | 1126 | int off = 0; |
| 1126 | 1127 | ||
| 1127 | if (read_socket_hook) | 1128 | if (noninteractive || read_socket_hook) |
| 1128 | return; | 1129 | return; |
| 1129 | 1130 | ||
| 1130 | ioctl (0, FIOASYNC, &off); /* XXX This fails for multiple ttys. */ | 1131 | ioctl (0, FIOASYNC, &off); /* XXX This fails for multiple ttys. */ |
| @@ -1137,7 +1138,7 @@ unrequest_sigio () | |||
| 1137 | void | 1138 | void |
| 1138 | request_sigio () | 1139 | request_sigio () |
| 1139 | { | 1140 | { |
| 1140 | if (read_socket_hook) | 1141 | if (noninteractive || read_socket_hook) |
| 1141 | return; | 1142 | return; |
| 1142 | 1143 | ||
| 1143 | croak ("request_sigio"); | 1144 | croak ("request_sigio"); |
| @@ -1146,7 +1147,7 @@ request_sigio () | |||
| 1146 | void | 1147 | void |
| 1147 | unrequest_sigio () | 1148 | unrequest_sigio () |
| 1148 | { | 1149 | { |
| 1149 | if (read_socket_hook) | 1150 | if (noninteractive || read_socket_hook) |
| 1150 | return; | 1151 | return; |
| 1151 | 1152 | ||
| 1152 | croak ("unrequest_sigio"); | 1153 | croak ("unrequest_sigio"); |
| @@ -2335,12 +2336,16 @@ reset_sigio (fd) | |||
| 2335 | void | 2336 | void |
| 2336 | request_sigio () | 2337 | request_sigio () |
| 2337 | { | 2338 | { |
| 2339 | if (noninteractive) | ||
| 2340 | return; | ||
| 2338 | croak ("request sigio"); | 2341 | croak ("request sigio"); |
| 2339 | } | 2342 | } |
| 2340 | 2343 | ||
| 2341 | void | 2344 | void |
| 2342 | unrequest_sigio () | 2345 | unrequest_sigio () |
| 2343 | { | 2346 | { |
| 2347 | if (noninteractive) | ||
| 2348 | return; | ||
| 2344 | croak ("unrequest sigio"); | 2349 | croak ("unrequest sigio"); |
| 2345 | } | 2350 | } |
| 2346 | 2351 | ||
| @@ -2884,6 +2889,8 @@ reset_sigio (fd) | |||
| 2884 | void | 2889 | void |
| 2885 | request_sigio () | 2890 | request_sigio () |
| 2886 | { | 2891 | { |
| 2892 | if (noninteractive) | ||
| 2893 | return; | ||
| 2887 | sigrelse (SIGTINT); | 2894 | sigrelse (SIGTINT); |
| 2888 | 2895 | ||
| 2889 | interrupts_deferred = 0; | 2896 | interrupts_deferred = 0; |
| @@ -2892,6 +2899,8 @@ request_sigio () | |||
| 2892 | void | 2899 | void |
| 2893 | unrequest_sigio () | 2900 | unrequest_sigio () |
| 2894 | { | 2901 | { |
| 2902 | if (noninteractive) | ||
| 2903 | return; | ||
| 2895 | sighold (SIGTINT); | 2904 | sighold (SIGTINT); |
| 2896 | 2905 | ||
| 2897 | interrupts_deferred = 1; | 2906 | interrupts_deferred = 1; |
diff --git a/src/xdisp.c b/src/xdisp.c index 013d3955c6f..ff3d9f2ca0c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -1335,7 +1335,7 @@ pos_visible_p (w, charpos, x, y, rtop, rbot, exact_mode_line_heights_p) | |||
| 1335 | current_header_line_height = current_mode_line_height = -1; | 1335 | current_header_line_height = current_mode_line_height = -1; |
| 1336 | 1336 | ||
| 1337 | if (visible_p && XFASTINT (w->hscroll) > 0) | 1337 | if (visible_p && XFASTINT (w->hscroll) > 0) |
| 1338 | *x -= XFASTINT (w->hscroll); | 1338 | *x -= XFASTINT (w->hscroll) * WINDOW_FRAME_COLUMN_WIDTH (w); |
| 1339 | 1339 | ||
| 1340 | return visible_p; | 1340 | return visible_p; |
| 1341 | } | 1341 | } |
| @@ -2047,7 +2047,7 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2047 | height = WINDOW_FRAME_LINE_HEIGHT (w); | 2047 | height = WINDOW_FRAME_LINE_HEIGHT (w); |
| 2048 | 2048 | ||
| 2049 | r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); | 2049 | r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); |
| 2050 | end_row = r + w->current_matrix->nrows - 1; | 2050 | end_row = MATRIX_BOTTOM_TEXT_ROW (w->current_matrix, w); |
| 2051 | 2051 | ||
| 2052 | if (w->pseudo_window_p) | 2052 | if (w->pseudo_window_p) |
| 2053 | { | 2053 | { |
| @@ -2066,20 +2066,28 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2066 | area = RIGHT_MARGIN_AREA; | 2066 | area = RIGHT_MARGIN_AREA; |
| 2067 | goto text_glyph; | 2067 | goto text_glyph; |
| 2068 | 2068 | ||
| 2069 | case ON_TEXT: | ||
| 2070 | case ON_MODE_LINE: | ||
| 2071 | case ON_HEADER_LINE: | 2069 | case ON_HEADER_LINE: |
| 2070 | case ON_MODE_LINE: | ||
| 2071 | gr = (part == ON_HEADER_LINE | ||
| 2072 | ? MATRIX_HEADER_LINE_ROW (w->current_matrix) | ||
| 2073 | : MATRIX_MODE_LINE_ROW (w->current_matrix)); | ||
| 2074 | gy = gr->y; | ||
| 2075 | area = TEXT_AREA; | ||
| 2076 | goto text_glyph_row_found; | ||
| 2077 | |||
| 2078 | case ON_TEXT: | ||
| 2072 | area = TEXT_AREA; | 2079 | area = TEXT_AREA; |
| 2073 | 2080 | ||
| 2074 | text_glyph: | 2081 | text_glyph: |
| 2075 | gr = 0; gy = 0; | 2082 | gr = 0; gy = 0; |
| 2076 | for (; r < end_row && r->enabled_p; ++r) | 2083 | for (; r <= end_row && r->enabled_p; ++r) |
| 2077 | if (r->y + r->height > y) | 2084 | if (r->y + r->height > y) |
| 2078 | { | 2085 | { |
| 2079 | gr = r; gy = r->y; | 2086 | gr = r; gy = r->y; |
| 2080 | break; | 2087 | break; |
| 2081 | } | 2088 | } |
| 2082 | 2089 | ||
| 2090 | text_glyph_row_found: | ||
| 2083 | if (gr && gy <= y) | 2091 | if (gr && gy <= y) |
| 2084 | { | 2092 | { |
| 2085 | struct glyph *g = gr->glyphs[area]; | 2093 | struct glyph *g = gr->glyphs[area]; |
| @@ -2091,7 +2099,16 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2091 | break; | 2099 | break; |
| 2092 | 2100 | ||
| 2093 | if (g < end) | 2101 | if (g < end) |
| 2094 | width = g->pixel_width; | 2102 | { |
| 2103 | if (g->type == IMAGE_GLYPH) | ||
| 2104 | { | ||
| 2105 | /* Don't remember when mouse is over image, as | ||
| 2106 | image may have hot-spots. */ | ||
| 2107 | STORE_NATIVE_RECT (*rect, 0, 0, 0, 0); | ||
| 2108 | return; | ||
| 2109 | } | ||
| 2110 | width = g->pixel_width; | ||
| 2111 | } | ||
| 2095 | else | 2112 | else |
| 2096 | { | 2113 | { |
| 2097 | /* Use nominal char spacing at end of line. */ | 2114 | /* Use nominal char spacing at end of line. */ |
| @@ -2136,7 +2153,7 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2136 | 2153 | ||
| 2137 | row_glyph: | 2154 | row_glyph: |
| 2138 | gr = 0, gy = 0; | 2155 | gr = 0, gy = 0; |
| 2139 | for (; r < end_row && r->enabled_p; ++r) | 2156 | for (; r <= end_row && r->enabled_p; ++r) |
| 2140 | if (r->y + r->height > y) | 2157 | if (r->y + r->height > y) |
| 2141 | { | 2158 | { |
| 2142 | gr = r; gy = r->y; | 2159 | gr = r; gy = r->y; |
diff --git a/src/xterm.c b/src/xterm.c index 30a43995a57..ef40c8b790d 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -3588,7 +3588,7 @@ construct_mouse_click (result, event, f) | |||
| 3588 | static XMotionEvent last_mouse_motion_event; | 3588 | static XMotionEvent last_mouse_motion_event; |
| 3589 | static Lisp_Object last_mouse_motion_frame; | 3589 | static Lisp_Object last_mouse_motion_frame; |
| 3590 | 3590 | ||
| 3591 | static void | 3591 | static int |
| 3592 | note_mouse_movement (frame, event) | 3592 | note_mouse_movement (frame, event) |
| 3593 | FRAME_PTR frame; | 3593 | FRAME_PTR frame; |
| 3594 | XMotionEvent *event; | 3594 | XMotionEvent *event; |
| @@ -3602,10 +3602,11 @@ note_mouse_movement (frame, event) | |||
| 3602 | frame->mouse_moved = 1; | 3602 | frame->mouse_moved = 1; |
| 3603 | last_mouse_scroll_bar = Qnil; | 3603 | last_mouse_scroll_bar = Qnil; |
| 3604 | note_mouse_highlight (frame, -1, -1); | 3604 | note_mouse_highlight (frame, -1, -1); |
| 3605 | return 1; | ||
| 3605 | } | 3606 | } |
| 3606 | 3607 | ||
| 3607 | /* Has the mouse moved off the glyph it was on at the last sighting? */ | 3608 | /* Has the mouse moved off the glyph it was on at the last sighting? */ |
| 3608 | else if (event->x < last_mouse_glyph.x | 3609 | if (event->x < last_mouse_glyph.x |
| 3609 | || event->x >= last_mouse_glyph.x + last_mouse_glyph.width | 3610 | || event->x >= last_mouse_glyph.x + last_mouse_glyph.width |
| 3610 | || event->y < last_mouse_glyph.y | 3611 | || event->y < last_mouse_glyph.y |
| 3611 | || event->y >= last_mouse_glyph.y + last_mouse_glyph.height) | 3612 | || event->y >= last_mouse_glyph.y + last_mouse_glyph.height) |
| @@ -3615,7 +3616,10 @@ note_mouse_movement (frame, event) | |||
| 3615 | note_mouse_highlight (frame, event->x, event->y); | 3616 | note_mouse_highlight (frame, event->x, event->y); |
| 3616 | /* Remember which glyph we're now on. */ | 3617 | /* Remember which glyph we're now on. */ |
| 3617 | remember_mouse_glyph (frame, event->x, event->y, &last_mouse_glyph); | 3618 | remember_mouse_glyph (frame, event->x, event->y, &last_mouse_glyph); |
| 3619 | return 1; | ||
| 3618 | } | 3620 | } |
| 3621 | |||
| 3622 | return 0; | ||
| 3619 | } | 3623 | } |
| 3620 | 3624 | ||
| 3621 | 3625 | ||
| @@ -6496,8 +6500,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6496 | case MotionNotify: | 6500 | case MotionNotify: |
| 6497 | { | 6501 | { |
| 6498 | previous_help_echo_string = help_echo_string; | 6502 | previous_help_echo_string = help_echo_string; |
| 6499 | help_echo_string = help_echo_object = help_echo_window = Qnil; | 6503 | help_echo_string = Qnil; |
| 6500 | help_echo_pos = -1; | ||
| 6501 | 6504 | ||
| 6502 | if (dpyinfo->grabbed && last_mouse_frame | 6505 | if (dpyinfo->grabbed && last_mouse_frame |
| 6503 | && FRAME_LIVE_P (last_mouse_frame)) | 6506 | && FRAME_LIVE_P (last_mouse_frame)) |
| @@ -6536,7 +6539,8 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6536 | 6539 | ||
| 6537 | last_window=window; | 6540 | last_window=window; |
| 6538 | } | 6541 | } |
| 6539 | note_mouse_movement (f, &event.xmotion); | 6542 | if (!note_mouse_movement (f, &event.xmotion)) |
| 6543 | help_echo_string = previous_help_echo_string; | ||
| 6540 | } | 6544 | } |
| 6541 | else | 6545 | else |
| 6542 | { | 6546 | { |
| @@ -6645,6 +6649,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit) | |||
| 6645 | int tool_bar_p = 0; | 6649 | int tool_bar_p = 0; |
| 6646 | 6650 | ||
| 6647 | bzero (&compose_status, sizeof (compose_status)); | 6651 | bzero (&compose_status, sizeof (compose_status)); |
| 6652 | bzero (&last_mouse_glyph, sizeof (last_mouse_glyph)); | ||
| 6648 | 6653 | ||
| 6649 | if (dpyinfo->grabbed | 6654 | if (dpyinfo->grabbed |
| 6650 | && last_mouse_frame | 6655 | && last_mouse_frame |