Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on uxn.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://anggtwu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://anggtwu.net/e/uxn.e>
#           or at <http://anggtwu.net/e/uxn.e.html>.
#        See also <http://anggtwu.net/emacs.html>,
#                 <http://anggtwu.net/.emacs[.html]>,
#                 <http://anggtwu.net/.zshrc[.html]>,
#                 <http://anggtwu.net/escripts.html>,
#             and <http://anggtwu.net/>.
#
#######


# «.2026aug22-irc-modal»	(to "2026aug22-irc-modal")
# «.uxn11»			(to "uxn11")
# «.uxn12»			(to "uxn12")
# «.uf9»			(to "uf9")
# «.uf9-if»			(to "uf9-if")
# «.uxntal-mode»		(to "uxntal-mode")
# «.modal»			(to "modal")
# «.ronin»			(to "ronin")
# «.untrusem-talks»		(to "untrusem-talks")
# «.adelie»			(to "adelie")







#####
#
# 2026aug22-irc-modal
# 2026aug22
#
#####

# «2026aug22-irc-modal»  (to ".2026aug22-irc-modal")

*** edrx JOIN 
***  TOPIC A simple tree/term rewriting language based on delimited
           string rewriting. |
           https://wryl.tech/projects/modal.html |
           https://wiki.xxiivv.com/site/modal |
           https://git.sr.ht/~rabbits/modal
           (wryl!sid553797@user/meow/Wryl on Fri May 24 03:11:31
           2024)
***  NAMES aw000000 casuallyblue drakonis edrx jgardner neauoire
           NyxBot smlavine
<edrx> hi! untrusem told me to take a look at modal, but he's not
       here at the channel ATM...
<edrx> I'm the author of this,
       <https://anggtwu.net/eepitch.html#test-blocks>, and I am
       saying that I am temporarily with a very short attention
       span because of this -
       <https://anggtwu.net/2026-eepitch-svg.html#accusations>...
*** untrusem JOIN 
<edrx> but that's not totally bad... I am starting to adapt things
       that I was trying to learn to a style - reminiscent of Forth
       - based on factoring things into small words. the page about
       SVG that I mentioned above has two sections about that:
<edrx> the third screenshot here -
       https://anggtwu.net/2026-eepitch-svg.html#pict2e - shows and
       example, and it has a short movie.
<edrx> so, question...
<edrx> I saw that to run modal I will need to compile several
       unx-related tools before. what is the recommended order? I
       will try to write a (kind of) script that clones and
       compiles them, and then runs modal in emacs...
<untrusem> devine is here okay, but june is not, you will have more
           luck in #general on irc.nouveau.community or in #uxn in
           libera
<untrusem> edrx: I can help you with uxn tools btw
<edrx> untrusem: please
<untrusem> hop on #uxn btw
(edrx) 




https://wryl.tech/projects/modal.html
https://wiki.xxiivv.com/site/modal
https://git.sr.ht/~rabbits/modal
https://100r.co/site/uxn.html

(defun mo2 () (interactive) (find-libera-2a "#modal"))
(defun mo3 () (interactive) (find-libera-2a "#modal"))
(defun u2 () (interactive) (find-libera-2a "#uxn"))
(defun u3 () (interactive) (find-libera-3a "#uxn"))





#####
#
# uxn11
# 2026aug22
#
#####

# «uxn11»  (to ".uxn11")
# (find-git-links "https://git.sr.ht/~rabbits/uxn11" "uxn11")
# (code-c-d "uxn11" "~/usrc/uxn11/")
# (find-angg "UXN/uxn11/makefile.edrx")
# (find-uxn11file "")
# (find-uxn11sh "find * | sort")
# (find-uxn11file "README.md")
# (find-uxn11file "makefile")
# (find-debpkg-links "libsdl2-dev")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv ~/usrc/uxn11/
rm -Rfv ~/usrc/drifblim/
rm -Rfv ~/usrc/uxn-utils/
rm -Rfv ~/usrc/m_pc/
cd      ~/usrc/
git clone https://git.sr.ht/~rabbits/uxn11
git clone https://git.sr.ht/~rabbits/drifblim
git clone https://git.sr.ht/~rabbits/uxn-utils
git clone https://git.sr.ht/~rabbits/m_pc

cd ~/usrc/uxn11/
git clean -dfx
cp -v ~/UXN/uxn11/makefile.edrx .
make -f makefile.edrx grab
make -f makefile.edrx bin/uxn11
make -f makefile.edrx bin/uxn11-debug
make -f makefile.edrx bin/uxncli
make -f makefile.edrx tests
make -f makefile.edrx test

# (find-angg "UXN/uxn11/makefile.edrx")
# (find-uxn11file "")
# (find-uxn11sh "find * | sort")

# (find-fline "~/LOGS/2026aug26.uxn" "alias uxnasm=")
uxnasm () { ~/usrc/uxn11/bin/uxncli ~/usrc/uxn11/bin/drifblim.rom $*; }

cd ~/usrc/uxn11/bin/




#####
#
# uxn12
# 2026aug28
#
#####

# «uxn12»  (to ".uxn12")
# (find-git-links "https://srcdump.net/pita/uxn12" "uxn12")
# (find-fline "~/LOGS/2026aug28.eev" "uxn12 is another program like uxn11 but for wayland")





#####
#
# uf9
# 2026aug26
#
#####

# «uf9»  (to ".uf9")
# (find-angg ".emacs" "uf9")
# http://www.call-with-current-continuation.org/uf/uf.html
# http://www.call-with-current-continuation.org/uf/README
# http://www.call-with-current-continuation.org/articles/forth.txt
# ^ Which leads us to compactness, not only on the syntactic level, but on the abstraction level.
# http://www.call-with-current-continuation.org/software.html
# http://www.call-with-current-continuation.org/uf/uf.rom
# http://www.call-with-current-continuation.org/uf/uf-9.tgz
# (find-untgz-links "http://www.call-with-current-continuation.org/uf/uf-9.tgz" "uf9")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/uf-9/
tar -C ~/usrc/ -xvzf \
  $S/http/www.call-with-current-continuation.org/uf/uf-9.tgz
cd     ~/usrc/uf-9/

# (code-c-d "uf9" "~/usrc/uf-9/")
# (find-uf9file "")
# (find-uf9file "kernel.tal")
# (find-uf9file "uf.f")
# (find-uf9file "examples/")
# (find-uf9file "README")
# (find-uf9file "README" "uxnasm kernel.tal kernel.rom")
# (find-uf9file "README" "uxncli kernel.rom <uf.f")

cd     ~/usrc/uf-9/
uxncli () { ~/usrc/uxn11/bin/uxncli $*; }
uxnasm () { ~/usrc/uxn11/bin/uxncli ~/usrc/uxn11/bin/drifblim.rom $*; }
uxnasm kernel.tal kernel.rom
uxncli kernel.rom < uf.f

uxncli uf.rom
  1 2 + .
  words
  see words
  bye



** (find-uf9file "GLOSSARY")
** (find-uf9file "uf.f")
** (find-uf9file "")
** (find-uf9file "examples/bounce.f")

# (find-uf9file "uf.f" "save uf0.rom")
# (find-uf9file "uf.f" "save uf.rom")
# (find-uf9file "uf.f" "save ufx.rom")

* (eepitch-uf9)
* (eepitch-kill)
* (eepitch-uf9)

: yesno if   s" yes" type cr
        else s" no"  type cr
        then ;

42 yesno  \ yes
0  yesno  \ no


# «uf9-if»  (to ".uf9-if")
# (find-uf9file "GLOSSARY" "\nif ")
# (find-uf9file "uf.f"     ": if ")
# (find-uf9file "kernel.tal" "( `type` -")






#####
#
# uxntal-mode
# 2026aug26
#
#####

# «uxntal-mode»  (to ".uxntal-mode")
# https://git.sr.ht/~rabbits/uxn
# https://wiki.xxiivv.com/site/uxntal.html
# https://wiki.xxiivv.com/site/uxntal_opcodes.html#modes

# (find-epackage-links 'uxntal-mode "uxntalmode" t)
# (find-epackages      'uxntal-mode)
# (find-epackage       'uxntal-mode)
# (code-c-d "uxntalmode" "~/.emacs.d/elpa/uxntal-mode-20240327.153/")
# (find-uxntalmodefile "")
# (find-uxntalmodefile "uxntal-mode.el" "(defun uxntal-explain-word ")
# (find-efunction-links 'uxntal-mode)
# (find-efunction 'uxntal-mode)


(find-eppm '

(define-derived-mode uxntal-mode prog-mode "Uxntal"
  "Major mode for editing Uxntal files."
  (set-syntax-table (uxntal-create-syntax-table uxntal-mode-strict-comments))
  (uxntal-setup-compile-command)
  (add-hook 'uxntal-mode-hook
            (lambda ()
              (set (make-local-variable 'font-lock-defaults) '(uxntal-font-lock-keywords-1 nil nil))
              (set (make-local-variable 'comment-start) "( ")
              (set (make-local-variable 'comment-end) " )")
              (set (make-local-variable 'comment-quote-nested) nil)
              (set (make-local-variable 'indent-line-function) #'uxntal-indent-line)
              (set (make-local-variable 'imenu-generic-expression) uxntal-imenu-generic-expression))))

)

# (find-evariable-links 'uxntal-mode-map)




(require 'uxntal-mode)
;; (find-efunction 'uxntal-explain-word)
;; (find-eaproposv "uxntal-.*-re")
;; (find-fline "~/LOGS/2026aug26.uxn" "uxntal-explain-word")
;; (find-esetkey-links (kbd "C-c d")  'uxntal-explain-word)
(define-key uxntal-mode-map (kbd "C-c d") 'uxntal-explain-word)























.( no)
: yesno




1 2 +
words
see words

: square ( a -- a^2 ) dup * ;
: cube   ( a -- a^3 ) dup square * ;
5 cube .

see cube
' cube .
' cube @ .
' cube c@ .
see while
see if
see [if]

bye












#####
#
# modal
# 2026aug25
#
#####

# «modal»  (to ".modal")
# (find-angggrep "grep --color=auto -nH --null -e modal LOGS/2026*")
# https://wiki.xxiivv.com/site/modal.html
# (find-extra-file-links "/tmp/modal.pdf" "modal")
# (code-pdf-page "modal" "/tmp/modal.pdf")
# (code-pdf-text "modal" "/tmp/modal.pdf")
# (find-modalpage)
# (find-modaltext)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
export PATH=$HOME/usrc/uxn11/bin:$PATH

wget http://wiki.xxiivv.com/etc/modal.tal.txt
mv modal.tal.txt modal.tal
uxncli bin/drifblim.rom modal.tal modal.rom

uxncli bin/modal.rom
uxncli modal.rom
<> (a) (b)
(a)
(a)
(b)




untrusem told me this:
<>.?~(?~ ..)..
^ this is all you need to make a repl in modal

(defun eepitch-modal () (interactive)
  (eepitch-comint "modal" "~/usrc/uxn11/bin/uxncli ~/usrc/uxn11/modal.rom"))


* (eepitch-modal)
* (eepitch-kill)
* (eepitch-modal)

** <> (Let's learn Modal!) This is a comment
** <> (hello) (good bye)   This is a rule
** (hello) world           This is the input
** (good bye) world        This is the result

<> (Let's learn Modal!)
<> (hello) (good bye)
(hello) world
(good bye) world


* (eepitch-modal)
* (eepitch-kill)
* (eepitch-modal)

<> (a bat) (a black cat)
<> (a person) (a bat)
(I am (a person))
(I am (a bat))
(I am (a black cat))


* (eepitch-modal)
* (eepitch-kill)
* (eepitch-modal)
<> (Welcome to the Modal playground,
    Click the Rewrite button to evaluate the program.
    Select other examples with the dropdown.)

<> (equal ?a ?a) (Bool True) 
<> (equal ?a ?b) (Bool False)

<> (Rules are made of a left and a right side.
    They are tested in from first to last, from left to right.
    When a match occurs, the lhs is replaced by the rhs.
    Wildcards prefixed with ? will always match.

    Rules without a right-hand side are comments.
    Printing is done with the ?: wildcard.)

<> (print-bool (Bool ?:)) (done.)

(print-bool (equal baz baz))



* (eepitch-modal)
* (eepitch-kill)
* (eepitch-modal)
<> (a) (b)
(a)





#####
#
# ronin
# 2026aug25
#
#####

# «ronin»  (to ".ronin")
# (find-fline "~/LOGS/2026aug25.uxn" "<neauoire> http://wiki.xxiivv.com/site/ronin")
# http://wiki.xxiivv.com/site/ronin
# https://github.com/Hundredrabbits/Ronin

# (find-git-links "https://github.com/Hundredrabbits/Ronin" "ronin")
# (code-c-d "ronin" "~/usrc/Ronin/")
# (find-roninfile "")


https://github.com/Hundredrabbits/Ronin



#####
#
# untrusem-talks
# 2026aug28
#
#####

# «untrusem-talks»  (to ".untrusem-talks")
# (find-git-links "https://codeberg.org/untrusem/Talks" "Talks")
# (code-c-d "Talks" "~/usrc/Talks/")
# (find-Talksfile "")
# (find-Talksfile "readme.org")





#####
#
# adelie
# 2026aug28
#
#####

# «adelie»  (to ".adelie")
# https://100r.co/site/adelie.html
# (find-fline "~/LOGS/2026aug28.eev" "uxn12 ~/roms/adelie.rom <slides.txt>")





<neauoire> uxncli modal.rom
<neauoire> voila!
<neauoire> if you want to eval a modal file:
<neauoire> cat hello.modal | uxncli modal.rom




# make                                         |& tee om
  make bin/uxn11 bin/m_pc.rom bin/perifs.rom   |& tee om

gcc -DNDEBUG -O2 -g0 -s etc/alt/uxncli11.c -lutil -o bin/uxncli

cd      ~/usrc/uxn11/
bin/uxncli

laf ~/bin/uxn*

http://wiki.xxiivv.com/etc/modal.tal.txt

cmp bin/drifblim.rom /tmp/drifblim.rom


make bin/uxn11 bin/m_pc.rom bin/perifs.rom
gcc -DNDEBUG -O2 -g0 -s etc/alt/uxncli11.c -lutil -o bin/uxncli




cd      ~/usrc/uxn11/
git clean -dfx




cd      ~/usrc/uxn11/
make bin/drifblim.rom



# (find-es "uxn" "uxn11")



# (find-status   "libsdl2-dev")
# (find-vldifile "libsdl2-dev.list")
# (find-udfile   "libsdl2-dev/")




  (eepitch-shell)
  (eepitch-kill)
  (eepitch-shell)
rm -Rfv ~/usrc/modal/
cd      ~/usrc/
git clone https://git.sr.ht/~rabbits/modal
cd      ~/usrc/modal/
make
uxncli ./bin/modal.rom

https://git.sr.ht/~rabbits/uxncli




# (find-fline "~/LOGS/2026aug21.emacs" "https://wiki.xxiivv.com/site/modal.html")










#  Local Variables:
#  coding:               utf-8-unix
#  End: