Previous: Hook functions, Up: Using mixguile
Another useful way of using mixguile
is writing executable
scripts that perform a set of commands for you. This is done using the
mixguile
switch -s
(being a Guile shell, mixguile
accepts all the command options of guile
; type mixguile -h
for a list of all available command options). For instance, if you have
a very useful MIX program foo.mix which you want to run often,
you don't have to fire a MIX virtual machine, load and run it every
time; you can write a Scheme script instead:
#! /usr/bin/mixguile -s !# ;;; runprimes: execute the primes.mix program ;; load the file you want to run (mix-load "../samples/primes") ;; execute it (mix-run) ;; print the contents of registers (mix-pall) ;; ...
Just save the above script to a file named, say, runtest, make it
executable (chmod +x runtest
), and, well, execute it from the
Unix shell:
$ ./runtest Program loaded. Start address: 3000 Running ... ... done Elapsed time: 190908 /Total program time: 190908 (Total uptime: 190908) rA: + 30 30 30 30 30 (0511305630) rX: + 30 30 32 32 39 (0511313959) rJ: + 47 18 (3026) rI1: + 00 00 (0000) rI2: + 55 51 (3571) rI3: + 00 19 (0019) rI4: + 31 51 (2035) rI5: + 00 00 (0000) rI6: + 00 00 (0000) Overflow: F Cmp: L $
Note that this is far more flexible that running programs
non-interactively using mixvm
(see Non-interactive mode), for
you can execute any combination of commands you want from a Scheme
script (not just running and dumping the registers). For additional
mixguile
command line options, see Invoking mixguile.