|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: h
Length: 2236 (0x8bc) Names: »hanoi.elc«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89 └─⟦46d41b2d0⟧ »./emacs-18.55.tar.Z« └─⟦fa971747f⟧ └─⟦this⟧ »dist-18.55/lisp/hanoi.elc«
0x000…020 0a 28 64 65 66 75 6e 20 68 61 6e 6f 69 2d 74 6f 70 6f 73 20 28 72 6f 77 20 63 6f 6c 29 20 28 62 ┆ (defun hanoi-topos (row col) (b┆ 0x020…040 79 74 65 2d 63 6f 64 65 20 22 c2 08 21 88 c3 20 88 c4 09 21 87 22 20 5b 72 6f 77 20 63 6f 6c 20 ┆yte-code " ! ! " [row col ┆ 0x040…060 67 6f 74 6f 2d 6c 69 6e 65 20 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 66 6f 72 77 ┆goto-line beginning-of-line forw┆ 0x060…080 61 72 64 2d 63 68 61 72 5d 20 34 29 29 0a 0a 28 64 65 66 75 6e 20 68 61 6e 6f 69 20 28 6e 72 69 ┆ard-char] 4)) (defun hanoi (nri┆ 0x080…0a0 6e 67 73 29 20 22 5c 0a 54 6f 77 65 72 73 20 6f 66 20 48 61 6e 6f 69 20 64 69 76 65 72 73 69 6f ┆ngs) "\ Towers of Hanoi diversio┆ 0x0a0…0c0 6e 2e 20 20 41 72 67 75 6d 65 6e 74 20 69 73 20 6e 75 6d 62 65 72 20 6f 66 20 72 69 6e 67 73 2e ┆n. Argument is number of rings.┆ 0x0c0…0e0 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 62 79 74 65 2d 63 6f 64 65 20 22 08 3f 83 09 00 ┆" (interactive (byte-code " ? ┆ 0x0e0…100 c1 82 0c 00 c2 08 21 43 87 22 20 5b 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 33 ┆ !C " [current-prefix-arg 3┆ 0x100…120 20 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 5d 20 32 29 29 20 28 62 79 74 65 ┆ prefix-numeric-value] 2)) (byte┆ 0x120…140 2d 63 6f 64 65 20 22 cd 88 09 d3 58 85 0b 00 d4 d5 21 88 cd cd cd c5 d6 20 21 c6 d6 20 21 1e 06 ┆-code " X ! ! ! ┆ 0x140…160 1d 1c 1b 1a 09 d7 5c 5c d8 d9 09 53 da 5c 22 d7 db 23 1e 08 1e 07 0e 06 0e 07 59 85 3a 00 0e 06 ┆ \\ S \" # Y : ┆ 0x160…180 0e 08 56 3f 85 62 00 dc 20 88 c5 d6 20 21 89 15 0e 07 59 85 57 00 c6 d6 20 21 89 16 06 0e 08 56 ┆ V? b ! Y W ! V┆ 0x180…1a0 3f 85 62 00 d4 dd 0e 08 0e 07 23 88 de 0e 06 da 5c 22 89 12 88 df e0 0a e1 5c 22 21 3f 85 79 00 ┆? b # \" \"!? y ┆ 0x1a0…1c0 0a 54 89 12 88 0d e2 5a 0e 07 56 83 89 00 0d e2 5a 82 8a 00 0d 89 13 2a 88 e3 0b 09 e1 23 0a 0b ┆ T Z V Z * # ┆ 0x1c0…1e0 42 d9 e2 0a 5c 22 0b 42 d9 db 0a 5c 22 0b 42 e4 09 cd 5c 22 1e 0c 1e 0b 1e 0a 1e 09 1c d3 1e 0e ┆B \" B \" B \" ┆ 0x1e0…200 0e 0e 09 57 85 e3 00 0e 0c 0e 0e e5 cd e6 d8 0e 0e 0e 0e e2 23 e7 0e 0e 5c 5c 5c 22 e6 d8 0e 0e ┆ W # \\\" ┆ 0x200…220 0e 0e e2 23 e8 5c 22 23 49 88 0e 0e 54 89 16 0e 88 82 b2 00 29 88 e9 ea 21 88 cd 89 16 0f 88 eb ┆ # \"#I T ) ! ┆ 0x220…240 70 21 88 ec 20 88 d3 1e 0e 0e 0e 0b 57 85 13 01 0e 0e 54 89 16 0e 88 ed e8 0e 06 53 5c 22 88 ee ┆p! W T S\" ┆ 0x240…260 63 88 82 f8 00 29 88 ed ef 0e 06 53 5c 22 88 e1 1e 10 0e 10 da 57 85 5f 01 f0 0c d9 0e 10 0a 5c ┆c ) S\" W _ \┆ 0x260…280 22 5c 22 88 0e 10 d7 5c 5c 89 16 10 88 0c 1e 0e 0e 0e 0b 57 85 5a 01 0e 0e 54 89 16 0e 88 f1 e1 ┆"\" \\ W Z T ┆ 0x280…2a0 21 88 f2 63 88 f3 e1 21 88 f4 e1 21 88 82 3a 01 29 88 82 1f 01 29 88 d3 cd 1e 11 1e 0e 0e 0e 09 ┆! c ! ! : ) ) ┆ 0x2a0…2c0 57 85 ac 01 0e 0c e3 09 e1 0e 0e 23 48 89 16 11 88 0e 11 d3 0b 0e 0e 5a 49 88 f0 0e 09 41 0e 09 ┆W #H ZI A ┆ 0x2c0…2e0 40 09 0e 0e 5a 5a 5c 22 88 f5 0e 11 d2 cd 23 88 f6 0e 09 0e 09 41 53 5c 22 88 0e 0e 54 89 16 0e ┆@ ZZ\" # AS\" T ┆ 0x2e0…300 88 82 67 01 2a 88 d2 89 16 0f 88 f7 d3 21 88 f8 09 53 0e 09 0e 0a 0e 0b 24 88 65 62 88 f9 fa 21 ┆ g * ! S $ eb !┆ 0x300…320 88 d2 89 16 0f 88 fb fc 20 21 88 f7 d3 21 2d 2d 87 22 20 5b 63 75 72 72 65 6e 74 2d 70 72 65 66 ┆ ! !-- " [current-pref┆ 0x320…340 69 78 2d 61 72 67 20 6e 72 69 6e 67 73 20 70 6f 6c 65 2d 73 70 61 63 69 6e 67 20 66 6c 6f 6f 72 ┆ix-arg nrings pole-spacing floor┆ 0x340…360 2d 72 6f 77 20 66 6c 79 2d 72 6f 77 20 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 77 69 6e 64 6f ┆-row fly-row window-height windo┆ 0x360…380 77 2d 77 69 64 74 68 20 68 20 77 20 70 6f 6c 65 2d 31 20 70 6f 6c 65 2d 32 20 70 6f 6c 65 2d 33 ┆w-width h w pole-1 pole-2 pole-3┆ 0x380…3a0 20 72 69 6e 67 73 20 6e 69 6c 20 69 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 6e 20 ┆ rings nil i buffer-read-only n ┆ 0x3a0…3c0 72 69 6e 67 20 74 20 30 20 65 72 72 6f 72 20 22 4e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 20 ┆ring t 0 error "Negative number ┆ 0x3c0…3e0 6f 66 20 72 69 6e 67 73 22 20 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 32 20 2b 20 2a 20 ┆of rings" selected-window 2 + * ┆ 0x3e0…400 36 20 35 20 64 65 6c 65 74 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 73 20 22 53 63 72 65 65 6e ┆6 5 delete-other-windows "Screen┆ 0x400…420 20 69 73 20 74 6f 6f 20 73 6d 61 6c 6c 20 28 6e 65 65 64 20 61 74 20 6c 65 61 73 74 20 25 64 78 ┆ is too small (need at least %dx┆ 0x420…440 25 64 29 22 20 2f 20 7a 65 72 6f 70 20 6c 6f 67 61 6e 64 20 31 20 33 20 2d 20 6d 61 6b 65 2d 76 ┆%d)" / zerop logand 1 3 - make-v┆ 0x440…460 65 63 74 6f 72 20 76 65 63 74 6f 72 20 6d 61 6b 65 2d 73 74 72 69 6e 67 20 34 38 20 33 32 20 73 ┆ector vector make-string 48 32 s┆ 0x460…480 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 22 2a 48 61 6e 6f 69 2a 22 20 62 75 66 66 65 72 ┆witch-to-buffer "*Hanoi*" buffer┆ 0x480…4a0 2d 66 6c 75 73 68 2d 75 6e 64 6f 20 65 72 61 73 65 2d 62 75 66 66 65 72 20 69 6e 73 65 72 74 2d ┆-flush-undo erase-buffer insert-┆ 0x4a0…4c0 63 68 61 72 20 31 30 20 36 31 20 68 61 6e 6f 69 2d 74 6f 70 6f 73 20 6e 65 78 74 2d 6c 69 6e 65 ┆char 10 61 hanoi-topos next-line┆ 0x4c0…4e0 20 31 32 34 20 64 65 6c 65 74 65 2d 63 68 61 72 20 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 68 ┆ 124 delete-char backward-char h┆ 0x4e0…500 61 6e 6f 69 2d 64 72 61 77 2d 72 69 6e 67 20 73 65 74 63 64 72 20 73 69 74 2d 66 6f 72 20 68 61 ┆anoi-draw-ring setcdr sit-for ha┆ 0x500…520 6e 6f 69 30 20 6d 65 73 73 61 67 65 20 22 44 6f 6e 65 22 20 73 65 74 2d 62 75 66 66 65 72 2d 6d ┆noi0 message "Done" set-buffer-m┆ 0x520…540 6f 64 69 66 69 65 64 2d 70 20 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 5d 20 34 36 29 ┆odified-p buffer-modified-p] 46)┆ 0x540…560 29 0a 0a 28 64 65 66 75 6e 20 68 61 6e 6f 69 30 20 28 6e 20 66 72 6f 6d 20 74 6f 20 77 6f 72 6b ┆) (defun hanoi0 (n from to work┆ 0x560…580 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c5 20 83 0d 00 c6 c7 c8 43 5c 22 82 28 00 08 c9 57 86 ┆) (byte-code " C\" ( W ┆ 0x580…5a0 28 00 ca 08 53 0a 0b 0c 24 88 cb 08 0a 0c 23 88 ca 08 53 0b 0c 0a 24 87 22 20 5b 6e 20 74 20 66 ┆( S $ # S $ " [n t f┆ 0x5a0…5c0 72 6f 6d 20 77 6f 72 6b 20 74 6f 20 69 6e 70 75 74 2d 70 65 6e 64 69 6e 67 2d 70 20 73 69 67 6e ┆rom work to input-pending-p sign┆ 0x5c0…5e0 61 6c 20 71 75 69 74 20 22 49 20 63 61 6e 20 74 65 6c 6c 20 79 6f 75 27 76 65 20 68 61 64 20 65 ┆al quit "I can tell you've had e┆ 0x5e0…600 6e 6f 75 67 68 22 20 30 20 68 61 6e 6f 69 30 20 68 61 6e 6f 69 2d 6d 6f 76 65 2d 72 69 6e 67 5d ┆nough" 0 hanoi0 hanoi-move-ring]┆ 0x600…620 20 39 29 29 0a 0a 28 64 65 66 75 6e 20 68 61 6e 6f 69 2d 6d 6f 76 65 2d 72 69 6e 67 20 28 6e 20 ┆ 9)) (defun hanoi-move-ring (n ┆ 0x620…640 66 72 6f 6d 20 74 6f 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 09 0a 48 c4 1b 18 08 cd 48 ce 0e ┆from to) (byte-code " H H ┆ 0x640…660 07 40 0a cf 23 ce 0e 09 40 0a cf 23 0e 09 41 1e 0a 1e 08 1e 06 1d d0 0d 0e 06 5c 22 88 0d 0e 0b ┆ @ # @ # A \" ┆ 0x660…680 56 85 4a 00 d1 08 c4 cc 23 88 d2 cf 21 88 d1 08 cc c4 23 88 d3 cd 21 88 0d 53 89 15 88 82 27 00 ┆V J # ! # ! S ' ┆ 0x680…6a0 88 d4 0e 07 0e 07 41 54 5c 22 88 d5 0e 08 0e 06 5c 22 3f 85 ad 00 0e 08 0e 06 56 83 85 00 d6 cf ┆ AT\" \"? V ┆ 0x6a0…6c0 21 88 d7 d8 21 88 d9 cf 21 88 da db db 5c 22 88 d3 cd 21 88 0e 06 54 54 89 16 06 82 a9 00 0e 08 ┆! ! ! \" ! TT ┆ 0x6c0…6e0 0e 06 57 85 a9 00 d9 cf 21 88 dc d8 21 88 d6 cf 21 88 da db db 5c 22 88 d3 cd 21 88 0e 06 53 53 ┆ W ! ! ! \" ! SS┆ 0x6e0…700 89 16 06 88 82 54 00 88 d0 0e 0b 0e 08 5c 22 88 0d 0e 0a 57 85 db 00 d1 08 c4 0d 0e 0b 56 23 88 ┆ T \" W V# ┆ 0x700…720 dd cf 21 88 d1 08 cc c4 23 88 d3 cd 21 88 0d 54 89 15 88 82 b5 00 88 08 cd 0e 0a 49 88 d4 0e 09 ┆ ! # ! T I ┆ 0x720…740 0e 09 41 53 5c 22 2c 2a 87 22 20 5b 72 69 6e 67 20 72 69 6e 67 73 20 6e 20 62 75 66 66 65 72 2d ┆ AS\",* " [ring rings n buffer-┆ 0x740…760 72 65 61 64 2d 6f 6e 6c 79 20 6e 69 6c 20 72 6f 77 20 63 6f 6c 20 66 72 6f 6d 20 64 73 74 2d 63 ┆read-only nil row col from dst-c┆ 0x760…780 6f 6c 20 74 6f 20 64 73 74 2d 72 6f 77 20 66 6c 79 2d 72 6f 77 20 74 20 30 20 2d 20 31 20 68 61 ┆ol to dst-row fly-row t 0 - 1 ha┆ 0x780…7a0 6e 6f 69 2d 74 6f 70 6f 73 20 68 61 6e 6f 69 2d 64 72 61 77 2d 72 69 6e 67 20 70 72 65 76 69 6f ┆noi-topos hanoi-draw-ring previo┆ 0x7a0…7c0 75 73 2d 6c 69 6e 65 20 73 69 74 2d 66 6f 72 20 73 65 74 63 64 72 20 65 71 75 61 6c 20 65 6e 64 ┆us-line sit-for setcdr equal end┆ 0x7c0…7e0 2d 6f 66 2d 6c 69 6e 65 20 64 65 6c 65 74 65 2d 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 32 20 ┆-of-line delete-backward-char 2 ┆ 0x7e0…800 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 69 6e 73 65 72 74 20 33 32 20 64 65 6c 65 ┆beginning-of-line insert 32 dele┆ 0x800…820 74 65 2d 63 68 61 72 20 6e 65 78 74 2d 6c 69 6e 65 5d 20 32 37 29 29 0a 0a 28 64 65 66 75 6e 20 ┆te-char next-line] 27)) (defun ┆ 0x820…840 68 61 6e 6f 69 2d 64 72 61 77 2d 72 69 6e 67 20 28 72 69 6e 67 20 66 31 20 66 32 29 20 28 62 79 ┆hanoi-draw-ring (ring f1 f2) (by┆ 0x840…860 74 65 2d 63 6f 64 65 20 22 8a 09 83 0b 00 0a c5 48 82 0e 00 0a c6 48 18 08 47 1b c7 0b 21 88 08 ┆te-code " H H G ! ┆ 0x860…880 63 88 0c 85 2c 00 c8 c9 0b c5 5c 5c c6 5c 22 21 88 c7 c5 21 88 ca 63 2a 29 87 22 20 5b 73 74 72 ┆c , \\ \"! ! c*) " [str┆ 0x880…8a0 69 6e 67 20 66 31 20 72 69 6e 67 20 6c 65 6e 20 66 32 20 31 20 32 20 64 65 6c 65 74 65 2d 63 68 ┆ing f1 ring len f2 1 2 delete-ch┆ 0x8a0…8bc 61 72 20 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 2f 20 31 32 34 5d 20 35 29 29 0a ┆ar backward-char / 124] 5)) ┆