[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ELPA-diffs] /srv/bzr/emacs/elpa r392: * lmc.el (lmc-turbo): New option.
From: |
Stefan Monnier |
Subject: |
[ELPA-diffs] /srv/bzr/emacs/elpa r392: * lmc.el (lmc-turbo): New option. |
Date: |
Mon, 22 Apr 2013 12:34:25 -0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 392
committer: Stefan Monnier <address@hidden>
branch nick: elpa
timestamp: Mon 2013-04-22 12:34:25 -0400
message:
* lmc.el (lmc-turbo): New option.
(lmc--sit-for): New function. Use it instead of sit-for.
(lmc-run): Don't stop upon user input if lmc-turbo is enabled.
modified:
packages/lmc/lmc.el
=== modified file 'packages/lmc/lmc.el'
--- a/packages/lmc/lmc.el 2013-03-20 18:13:49 +0000
+++ b/packages/lmc/lmc.el 2013-04-22 16:34:25 +0000
@@ -3,7 +3,7 @@
;; Copyright (C) 2011, 2013 Free Software Foundation, Inc.
;; Author: Stefan Monnier <address@hidden>
-;; Version: 1.1
+;; Version: 1.2
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -76,6 +76,12 @@
(defvar lmc-acc 0 "Accumulator for LMC.")
(make-variable-buffer-local 'lmc--acc)
+(defvar lmc-turbo nil
+ "When non-nil, evaluate the code without extra delays.
+When nil, evaluation flashes the cursor at to help you see what's going on,
+which slows it down significantly.
+Also, when nil, evaluation is interrupted when the user hits a key.")
+
;; Emacs-22 backward compatibility.
(defmacro lmc--with-silent-modifications (&rest body)
(declare (debug t) (indent 0))
@@ -535,6 +541,9 @@
"If non-nil, memory words blink when modified."
:type 'boolean)
+(defun lmc--sit-for (secs)
+ (unless lmc-turbo (sit-for sec)))
+
(defun lmc-store-word (addr word)
(save-excursion
(lmc-addr->point addr)
@@ -544,17 +553,17 @@
(when lmc-store-flash
(lmc--with-silent-modifications
(put-text-property mb1 (point) 'face 'region))
- (sit-for 0.2))
+ (lmc--sit-for 0.2))
(let ((me1 (point)))
(insert (format " %03d" word)) (delete-region mb1 me1))
(when lmc-store-flash
- (sit-for 0.1)
+ (lmc--sit-for 0.1)
(lmc--with-silent-modifications
(put-text-property mb1 (point) 'face 'region))
- (sit-for 0.1)
+ (lmc--sit-for 0.1)
(lmc--with-silent-modifications
(put-text-property mb1 (point) 'face nil))
- (sit-for 0.1))))))
+ (lmc--sit-for 0.1))))))
(defun lmc-step ()
"Execute one LMC instruction."
@@ -597,9 +606,9 @@
"Run the code until hitting a HLT.
The machine will also stop if the user presses a key."
(interactive)
- (while (not (or (input-pending-p) (lmc-stopped-p)))
+ (while (not (or (unless lmc-turbo (input-pending-p)) (lmc-stopped-p)))
(lmc-step)
- (sit-for 0.05)))
+ (lmc--sit-for 0.05)))
;;; The LMC assembly language editor.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [ELPA-diffs] /srv/bzr/emacs/elpa r392: * lmc.el (lmc-turbo): New option.,
Stefan Monnier <=