<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.specnext.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Myopian</id>
	<title>SpecNext Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.specnext.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Myopian"/>
	<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/Special:Contributions/Myopian"/>
	<updated>2026-05-29T19:09:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Monitors&amp;diff=11431</id>
		<title>Monitors</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Monitors&amp;diff=11431"/>
		<updated>2020-06-05T04:07:40Z</updated>

		<summary type="html">&lt;p&gt;Myopian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Monitors reported to be working with the next ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Monitor !! vga0 50hz !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Acer AL1715 || No || 50hz vga5 works, 60hz modes work&lt;br /&gt;
|-&lt;br /&gt;
| Acer K242HL || Yes || &amp;quot;seems to work just fine&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| AG neovo F-419 || Yes || no issues on vga mode 0. (accepts 49Hz to about 75Hz)&lt;br /&gt;
|-&lt;br /&gt;
| Asus VG278 || Yes || All modes work, both vga and hdmi&lt;br /&gt;
|-&lt;br /&gt;
| Asus VS239 || Yes || All modes work&lt;br /&gt;
|-&lt;br /&gt;
| BenQ BL2420PT 24&amp;quot; IPS QHD || Yes || The pixel response times are too slow to show the multi colour effects in the Mescaline demo properly.&lt;br /&gt;
|-&lt;br /&gt;
| Dell 2000FP || Yes || 4:3 resolution. Has DVI, not HDMI.&lt;br /&gt;
|-&lt;br /&gt;
| Dell 2007FPB || Yes || 4:3 resolution. Some &#039;feedback&#039; on image via VGA, but overall very pleased.&lt;br /&gt;
|-&lt;br /&gt;
| Fujitsu-Siemens B19-6 19 || Yes || 50hz vga0 works&lt;br /&gt;
|-&lt;br /&gt;
| HP Compaq LA2205wg || Yes || vga0 50hz works&lt;br /&gt;
|-&lt;br /&gt;
| hp 22cwa || Yes || VGA 50Hz all modes, VGA 60Hz all modes, HDMI both 50Hz and 60Hz. Does not have speakers.&lt;br /&gt;
|-&lt;br /&gt;
| Hp L1910 || Yes || 50hz mode 0 works&lt;br /&gt;
|-&lt;br /&gt;
| LG Ring 1900R || No || 50hz vga4 works&lt;br /&gt;
|-&lt;br /&gt;
| Samsung syncmaster 223bw || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Samsung SyncMaster 940Fn || Yes || 60hz all modes, 50hz vga0, vga1, vga2, vga5, vga6&lt;br /&gt;
|-&lt;br /&gt;
| Samsung SyncMaster E1920 || Yes || 50hz vga0 works&lt;br /&gt;
|-&lt;br /&gt;
| Samsung Syncmaster 997mb || Yes || Works fine&lt;br /&gt;
|-&lt;br /&gt;
| Vibrant VL5A9DL || No || 60hz all modes, 50hz vga4, vga5, vga6&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:pisend&amp;diff=11418</id>
		<title>Dot:pisend</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:pisend&amp;diff=11418"/>
		<updated>2020-05-31T23:38:38Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Created page with &amp;quot;= .PISEND dot command =  This utility sends data to the NextPi over the UART link.  == Usage ==  &amp;lt;code&amp;gt;.pisend&amp;lt;/code&amp;gt; entered at the basic prompt with no arguments will print...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .PISEND dot command =&lt;br /&gt;
&lt;br /&gt;
This utility sends data to the NextPi over the UART link.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.pisend&amp;lt;/code&amp;gt; entered at the basic prompt with no arguments will print help.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
use:&lt;br /&gt;
&lt;br /&gt;
.pisend -c {cmd}&lt;br /&gt;
 sends a command to the pi0, eg:&lt;br /&gt;
&lt;br /&gt;
.pisend -c nextpi-tzx_load rbc.tzx &lt;br /&gt;
.pisend -c nextpi-play_sid sing*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.pisend -c nextpi-tzx_load rbc.tzx &lt;br /&gt;
.pisend -c nextpi-play_sid sing*&lt;br /&gt;
&lt;br /&gt;
.pisend -q&lt;br /&gt;
&lt;br /&gt;
 discovers pi0 and sets baud    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You must send this -q first to  discover the pi0. Reg f&lt;br /&gt;
is set on successful exit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.pisend -r&lt;br /&gt;
&lt;br /&gt;
flush what is in the uart buffer&lt;br /&gt;
 to  / 49152 with 512 bytes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pisend {filename}&lt;br /&gt;
&lt;br /&gt;
pisend will base64 encode and   &lt;br /&gt;
trasnmit to the pi0             &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to kevb, TimG, Big D and all the rest...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://github.com/em00k/pisend-source here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:tapeout&amp;diff=11417</id>
		<title>Dot:tapeout</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:tapeout&amp;diff=11417"/>
		<updated>2020-05-31T23:27:37Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Document tapeout command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .TAPEOUT dot command =&lt;br /&gt;
&lt;br /&gt;
This utility changes tape output to a given &amp;lt;code&amp;gt;.TAP&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.tapeout -h&amp;lt;/code&amp;gt; entered at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TAPEOUT v1.0 by Garry Lancaster&lt;br /&gt;
Change tape output to .TAP file&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS:&lt;br /&gt;
 .TAPEOUT [OPTION]... [FILE]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
 -v, --verbose&lt;br /&gt;
     Verbose output&lt;br /&gt;
 -h, --help&lt;br /&gt;
     Display this help&lt;br /&gt;
 -c, --close&lt;br /&gt;
     Close input file&lt;br /&gt;
 -o, --overwrite&lt;br /&gt;
     Overwrite instead of append&lt;br /&gt;
&lt;br /&gt;
Use SAVE &amp;quot;t:&amp;quot; before saving&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/blob/master/src/c/DotCommands/DotCommand_TAPEOUT.c here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:tapein&amp;diff=11416</id>
		<title>Dot:tapein</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:tapein&amp;diff=11416"/>
		<updated>2020-05-31T23:25:57Z</updated>

		<summary type="html">&lt;p&gt;Myopian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .TAPEIN dot command =&lt;br /&gt;
&lt;br /&gt;
This utility changes tape input to a given &amp;lt;code&amp;gt;.TAP&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.tapein -h&amp;lt;/code&amp;gt; entered at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TAPEIN v1.0 by Garry Lancaster&lt;br /&gt;
Change tape input to .TAP file&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS:&lt;br /&gt;
 .TAPEIN [OPTION]... [FILE]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
 -v, --verbose&lt;br /&gt;
     Verbose output&lt;br /&gt;
 -h, --help&lt;br /&gt;
     Display this help&lt;br /&gt;
 -c, --close&lt;br /&gt;
     Close input file&lt;br /&gt;
 -r, --rewind&lt;br /&gt;
     Rewind to start&lt;br /&gt;
 -s, --setptr &amp;lt;block&amp;gt;&lt;br /&gt;
     Set tape block pointer&lt;br /&gt;
 -p, --pause&lt;br /&gt;
     Toggle screen pause&lt;br /&gt;
 -l, --simulate&lt;br /&gt;
     Toggle loading simulation&lt;br /&gt;
&lt;br /&gt;
Use LOAD &amp;quot;t:&amp;quot; before loading&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/blob/master/src/c/DotCommands/DotCommand_TAPEIN.c here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:tapein&amp;diff=11415</id>
		<title>Dot:tapein</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:tapein&amp;diff=11415"/>
		<updated>2020-05-31T23:24:26Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Document tapein&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .TAPEIN dot command =&lt;br /&gt;
&lt;br /&gt;
This utility Change tape input to &amp;lt;code&amp;gt;.TAP&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.tapein -h&amp;lt;/code&amp;gt; entered at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TAPEIN v1.0 by Garry Lancaster&lt;br /&gt;
Change tape input to .TAP file&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS:&lt;br /&gt;
 .TAPEIN [OPTION]... [FILE]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
 -v, --verbose&lt;br /&gt;
     Verbose output&lt;br /&gt;
 -h, --help&lt;br /&gt;
     Display this help&lt;br /&gt;
 -c, --close&lt;br /&gt;
     Close input file&lt;br /&gt;
 -r, --rewind&lt;br /&gt;
     Rewind to start&lt;br /&gt;
 -s, --setptr &amp;lt;block&amp;gt;&lt;br /&gt;
     Set tape block pointer&lt;br /&gt;
 -p, --pause&lt;br /&gt;
     Toggle screen pause&lt;br /&gt;
 -l, --simulate&lt;br /&gt;
     Toggle loading simulation&lt;br /&gt;
&lt;br /&gt;
Use LOAD &amp;quot;t:&amp;quot; before loading&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/blob/master/src/c/DotCommands/DotCommand_TAPEIN.c here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:lstap&amp;diff=11414</id>
		<title>Dot:lstap</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:lstap&amp;diff=11414"/>
		<updated>2020-05-31T23:20:56Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Document lstap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .LSTAP dot command =&lt;br /&gt;
&lt;br /&gt;
This utility lists the contents of &amp;lt;code&amp;gt;.tap&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.lstap -h&amp;lt;/code&amp;gt; entered at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LSTAP v1.1 by Garry Lancaster&lt;br /&gt;
List contents of any .TAP file&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS:&lt;br /&gt;
 .LSTAP [OPTION]... [FILE]&lt;br /&gt;
&lt;br /&gt;
OPTIONS:&lt;br /&gt;
 -h, --help&lt;br /&gt;
     Display this help&lt;br /&gt;
 -i, --input&lt;br /&gt;
     Use current input file&lt;br /&gt;
 -o, --output&lt;br /&gt;
     Use current output file&lt;br /&gt;
 -f, --fileoffsets&lt;br /&gt;
     Show data offsets in TAP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/blob/master/src/c/DotCommands/DotCommand_LSTAP.c here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:ls&amp;diff=11413</id>
		<title>Dot:ls</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:ls&amp;diff=11413"/>
		<updated>2020-05-31T23:14:37Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Add documentation for ls.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .LS dot command =&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.ls --help&amp;lt;/code&amp;gt; entered at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
This utility provides directory listings.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls - list directory contents&lt;br /&gt;
&lt;br /&gt;
ls [OPTION]... [FILE]...&lt;br /&gt;
&lt;br /&gt;
List information about FILEs&lt;br /&gt;
(the current dir by default).&lt;br /&gt;
&lt;br /&gt;
Sort entries alphabetically if&lt;br /&gt;
-StUX and --sort are not used.&lt;br /&gt;
&lt;br /&gt;
FILTER FILES&lt;br /&gt;
&lt;br /&gt;
-a, --all&lt;br /&gt;
  do not ignore .*&lt;br /&gt;
&lt;br /&gt;
-A, --almost-all&lt;br /&gt;
  ignore . and ..&lt;br /&gt;
&lt;br /&gt;
-B, --ignore-backups&lt;br /&gt;
  do not list *.bak&lt;br /&gt;
&lt;br /&gt;
Wildcards accepted.&lt;br /&gt;
&lt;br /&gt;
LIST STYLE&lt;br /&gt;
&lt;br /&gt;
-C&lt;br /&gt;
  list entries by columns&lt;br /&gt;
&lt;br /&gt;
-l&lt;br /&gt;
  use a long listing format&lt;br /&gt;
&lt;br /&gt;
-m&lt;br /&gt;
  comma separated list&lt;br /&gt;
&lt;br /&gt;
-x&lt;br /&gt;
  list entries by lines&lt;br /&gt;
&lt;br /&gt;
-1&lt;br /&gt;
  list one file per line&lt;br /&gt;
&lt;br /&gt;
--format=across : -x&lt;br /&gt;
--fromat=commas : -m&lt;br /&gt;
--format=horizontal : -x&lt;br /&gt;
--format=long : -l&lt;br /&gt;
--format=single-column : -1&lt;br /&gt;
--format=verbose : -l&lt;br /&gt;
--format=vertical : -C&lt;br /&gt;
&lt;br /&gt;
-s, --size&lt;br /&gt;
  print file size&lt;br /&gt;
&lt;br /&gt;
-w, --width=COLS&lt;br /&gt;
  set output width to COLS.&lt;br /&gt;
&lt;br /&gt;
--lfn=off&lt;br /&gt;
  print 8.3 filenames&lt;br /&gt;
&lt;br /&gt;
--lfn=on&lt;br /&gt;
  print lfn filenames&lt;br /&gt;
&lt;br /&gt;
--lfn=both&lt;br /&gt;
  print both 8.3 and lfn&lt;br /&gt;
&lt;br /&gt;
SORT METHOD&lt;br /&gt;
&lt;br /&gt;
-S&lt;br /&gt;
  sort by size largest first&lt;br /&gt;
&lt;br /&gt;
-t&lt;br /&gt;
  sort by time newest first&lt;br /&gt;
&lt;br /&gt;
-U&lt;br /&gt;
  do not sort&lt;br /&gt;
&lt;br /&gt;
-X&lt;br /&gt;
  sort by extension&lt;br /&gt;
&lt;br /&gt;
--sort=none : -U&lt;br /&gt;
--sort=size : -S&lt;br /&gt;
--sort=time : -t&lt;br /&gt;
--sort=extension : -X&lt;br /&gt;
&lt;br /&gt;
-r, --reverse&lt;br /&gt;
  reverse sort order&lt;br /&gt;
&lt;br /&gt;
--gdf,&lt;br /&gt;
--group-directories-first&lt;br /&gt;
  list directories before files&lt;br /&gt;
&lt;br /&gt;
FILE SIZE FORMAT&lt;br /&gt;
&lt;br /&gt;
-h, --human-readable&lt;br /&gt;
  sizes in K,M,G (*1024)&lt;br /&gt;
&lt;br /&gt;
--si&lt;br /&gt;
  sizes in KB,MB,GB (*1000)&lt;br /&gt;
&lt;br /&gt;
--block-size=SIZE&lt;br /&gt;
  sizes scaled by SIZE&lt;br /&gt;
&lt;br /&gt;
DATE-TIME FORMAT&lt;br /&gt;
&lt;br /&gt;
--time-style=long-iso&lt;br /&gt;
  2002-03-30 23:45&lt;br /&gt;
&lt;br /&gt;
--time-style=iso&lt;br /&gt;
  2002-03-30, 03-30 23:45&lt;br /&gt;
&lt;br /&gt;
--time-style=locale&lt;br /&gt;
  mar 30 2002 23:45&lt;br /&gt;
&lt;br /&gt;
DIRECTORY PROCESSING&lt;br /&gt;
&lt;br /&gt;
-d, --directory&lt;br /&gt;
  list dirs and do not enter&lt;br /&gt;
&lt;br /&gt;
-R, --recursive&lt;br /&gt;
  list subdirs recursively&lt;br /&gt;
&lt;br /&gt;
--system&lt;br /&gt;
  include system files&lt;br /&gt;
&lt;br /&gt;
OTHER&lt;br /&gt;
&lt;br /&gt;
--help&lt;br /&gt;
  print this help and exit&lt;br /&gt;
&lt;br /&gt;
--version&lt;br /&gt;
  print version info and exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;README.TXT&amp;lt;/code&amp;gt; from the source is reproduced here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a near complete implementation of unix &amp;quot;ls&amp;quot; that&lt;br /&gt;
is capable of sorting directories with thousands of entries.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
* Add different list styles&lt;br /&gt;
  Currently -l is always generated&lt;br /&gt;
&lt;br /&gt;
* Change listing format depending on column width&lt;br /&gt;
&lt;br /&gt;
* Add filename formatting with flag characters&lt;br /&gt;
  and filename colouring.&lt;br /&gt;
&lt;br /&gt;
* Parse the LS_COLOR environment variable for&lt;br /&gt;
  colouring information.  Currently this environment&lt;br /&gt;
  variable and TIME_STYLE are both read but only&lt;br /&gt;
  TIME_STYLE is processed.&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
&lt;br /&gt;
The output format is limited to -l for now and chosen to&lt;br /&gt;
fit in 32 columns.  The default is to list 8.3 filenames.&lt;br /&gt;
&lt;br /&gt;
Try a variation like this one in 64 column mode:&lt;br /&gt;
&lt;br /&gt;
.ls --gdf -AR --time-style=locale --lfn=on&lt;br /&gt;
&lt;br /&gt;
USE OF MEMORY&lt;br /&gt;
&lt;br /&gt;
A directory queue is maintained in two 8k pages and is&lt;br /&gt;
always paged entirely into memory at mmu6 and mmu7 when&lt;br /&gt;
accessed.  The queue is fifo and exists in a circular&lt;br /&gt;
buffer occupying the 16k.  In recursive mode, directories&lt;br /&gt;
that need to be visited are pushed into this queue.  And&lt;br /&gt;
as directories are listed, they are popped out of the queue.&lt;br /&gt;
&lt;br /&gt;
An obstack holding file pointer records is held in main&lt;br /&gt;
memory from the end of the program (around address 43000)&lt;br /&gt;
to the top of memory.  Each file pointer record is a three-&lt;br /&gt;
byte pointer, the first byte indicating 8k page number and&lt;br /&gt;
the remaining two being a pointer into the page when it is&lt;br /&gt;
present in mmu7.  These file pointer records are fixed size&lt;br /&gt;
and grow like an expanding array so are easily sortable with&lt;br /&gt;
quicksort.  About 6000 records can be stored in main memory&lt;br /&gt;
allowing sorting of directories containing up to 6000 files.&lt;br /&gt;
&lt;br /&gt;
Each file pointer record points at an actual file record.&lt;br /&gt;
These records are stored in extra 8k pages called LFN_PAGES.&lt;br /&gt;
A file record records 8.3 and lfn names, as well as time and&lt;br /&gt;
size information.  An individual record is variable in size&lt;br /&gt;
because the lfn name is variable in size.  Each page storing&lt;br /&gt;
records is managed by an obstack which will allocate memory&lt;br /&gt;
as needed.  The number of pages available is statically&lt;br /&gt;
compiled into the program and is currently four which means&lt;br /&gt;
32k is available to store file records.  Realistically this&lt;br /&gt;
places a much lower limit on the max number of files that&lt;br /&gt;
can be read from a directory at once, ie less than 6000.&lt;br /&gt;
If the limit is reached, the directory listing is split into&lt;br /&gt;
pieces.  If more space is needed, more pages can be allocated&lt;br /&gt;
by changing a constant and re-building the program.&lt;br /&gt;
&lt;br /&gt;
Utilities like .ls must co-exist with basic, as in they must&lt;br /&gt;
not disturb basic&#039;s state.  This means .ls must allocate memory&lt;br /&gt;
from the operating system to load into and it must deallocate&lt;br /&gt;
that memory on exit.  All tasks are taken care of automatically&lt;br /&gt;
when z88dk builds this type of dot command called &amp;quot;dotn&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/tree/master/src/c/DotCommands/ls here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:strings&amp;diff=11412</id>
		<title>Dot:strings</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:strings&amp;diff=11412"/>
		<updated>2020-05-31T23:05:22Z</updated>

		<summary type="html">&lt;p&gt;Myopian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .STRINGS dot command =&lt;br /&gt;
&lt;br /&gt;
To use, copy &amp;amp;quot;STRINGS&amp;amp;quot; to the sd card&#039;s DOT directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.strings&amp;lt;/code&amp;gt; entered on its own at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
This utility searches for ascii text strings stored in files. Results can be printed to screen or saved to an output file.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.strings file [-n num]&lt;br /&gt;
 [-s string] [-t {o,d,x}]&lt;br /&gt;
 [-w] [-f] [-o file] [-a file]&lt;br /&gt;
&lt;br /&gt;
 -n = set min string len (4)&lt;br /&gt;
 -s = print separator (&amp;amp;quot;\n&amp;amp;quot;)&lt;br /&gt;
 -t = file offset dec/oct/hex&lt;br /&gt;
 -w = make \r\n part of string&lt;br /&gt;
&lt;br /&gt;
 -f = overwrite permitted&lt;br /&gt;
 -o = output filename&lt;br /&gt;
 -a = append filename&lt;br /&gt;
&lt;br /&gt;
no -o,-a prints to screen&lt;br /&gt;
&lt;br /&gt;
strings v1.2 zx-next z88dk.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# Look for strings at least 6 chars long. If found print the file offset in hex along with the string. Output to screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.strings knight.sna -n 6 -t X&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Look for strings and save findings to an output file. Print file offset in decimal and print a separator between findings.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.strings knight.sna -t d -s ------- -o string.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/tree/master/src/c/DotCommands/strings here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o strings -pragma-include:zpragma.inc -subtype=dot-n -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:strings&amp;diff=11411</id>
		<title>Dot:strings</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:strings&amp;diff=11411"/>
		<updated>2020-05-31T23:04:34Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Created page with &amp;quot;= .STRINGS dot command =  To use, copy &amp;amp;quot;STRINGS&amp;amp;quot; to the sd card&amp;#039;s DOT directory.  == Compiling ==  &amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-n...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .STRINGS dot command =&lt;br /&gt;
&lt;br /&gt;
To use, copy &amp;amp;quot;STRINGS&amp;amp;quot; to the sd card&#039;s DOT directory.&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o strings -pragma-include:zpragma.inc -subtype=dot-n -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.strings&amp;lt;/code&amp;gt; entered on its own at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
This utility searches for ascii text strings stored in files. Results can be printed to screen or saved to an output file.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.strings file [-n num]&lt;br /&gt;
 [-s string] [-t {o,d,x}]&lt;br /&gt;
 [-w] [-f] [-o file] [-a file]&lt;br /&gt;
&lt;br /&gt;
 -n = set min string len (4)&lt;br /&gt;
 -s = print separator (&amp;amp;quot;\n&amp;amp;quot;)&lt;br /&gt;
 -t = file offset dec/oct/hex&lt;br /&gt;
 -w = make \r\n part of string&lt;br /&gt;
&lt;br /&gt;
 -f = overwrite permitted&lt;br /&gt;
 -o = output filename&lt;br /&gt;
 -a = append filename&lt;br /&gt;
&lt;br /&gt;
no -o,-a prints to screen&lt;br /&gt;
&lt;br /&gt;
strings v1.2 zx-next z88dk.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# Look for strings at least 6 chars long. If found print the file offset in hex along with the string. Output to screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.strings knight.sna -n 6 -t X&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Look for strings and save findings to an output file. Print file offset in decimal and print a separator between findings.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.strings knight.sna -t d -s ------- -o string.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/tree/master/src/c/DotCommands/strings here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:run&amp;diff=11410</id>
		<title>Dot:run</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:run&amp;diff=11410"/>
		<updated>2020-05-31T23:00:30Z</updated>

		<summary type="html">&lt;p&gt;Myopian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .RUN dot command =&lt;br /&gt;
&lt;br /&gt;
RUN searches a path to locate and execute a program with filename matching the criteria.&lt;br /&gt;
&lt;br /&gt;
The PATH is held in an environment variable stored in file &amp;lt;code&amp;gt;/sys/env.cfg&amp;lt;/code&amp;gt;. It has the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH = /demos/*;/games;/games/*;/games/zx81/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Each line in &amp;lt;code&amp;gt;env.cfg&amp;lt;/code&amp;gt; can contain a &amp;lt;code&amp;gt;name = value&amp;lt;/code&amp;gt; pair. The code that reads this file is robust so there can be errors and strange formatting but it is important that PATH is contained entirely in one line no matter how long it gets.&lt;br /&gt;
&lt;br /&gt;
PATH is a list of directories that should be searched to locate executables. Each directory is separated by a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;. Backward slashes are ok and will be changed to forward, leading and trailing spaces are ok. Spaces inside names are ok.&lt;br /&gt;
&lt;br /&gt;
A trailing &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; means all the directories contained in that directory will be searched. So &amp;lt;code&amp;gt;/games/*&amp;lt;/code&amp;gt; means all directories in &amp;lt;code&amp;gt;/games&amp;lt;/code&amp;gt; will be searched; note it does not mean &amp;lt;code&amp;gt;/games&amp;lt;/code&amp;gt; itself will be searched and that is why you will see both &amp;lt;code&amp;gt;/games&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/games/*&amp;lt;/code&amp;gt; in the example above.&lt;br /&gt;
&lt;br /&gt;
RUN will match the filename it is given against the contents of directories in the PATH and automatically launch the program. It will always search the current directory before those listed in PATH. The filename can contain wildcards.&lt;br /&gt;
&lt;br /&gt;
Options allow listing of all filename matches and executing matches other than the first.&lt;br /&gt;
&lt;br /&gt;
Programs having the following extensions are identified as executable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bas, dot, nex, o, p, sna, snx, tap, z80&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o run -pragma-include:zpragma.inc -subtype=dot-n -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.run [OPTIONS] FILE&lt;br /&gt;
&lt;br /&gt;
supported extensions:  bas&lt;br /&gt;
dot nex o p sna snx tap z80&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&lt;br /&gt;
-p = list dirs in PATH&lt;br /&gt;
-? = list FILE matches&lt;br /&gt;
-c = cd to FILE location&lt;br /&gt;
-r = retain cwd on clean exit&lt;br /&gt;
-N = select Nth FILE match&lt;br /&gt;
&lt;br /&gt;
run 1.4 zx-next z88dk.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;.run&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prints help.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -p&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lists each directory in the PATH.&amp;lt;br&amp;gt; Places an X beside directories that don&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -? war*&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lists all executables matching &amp;lt;code&amp;gt;war*&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt; The list is numbered so that a particular match can be referred to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -c warhawk.nex&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change to the directory where warhawk.nex is found.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run warhawk.nex&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the first warhawk.nex found&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -2 warhawk.nex&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the second warhawk.nex found&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run castle*.tap&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Assume &amp;amp;quot;castlevania.tap&amp;amp;quot; exists and is the first match)&lt;br /&gt;
&lt;br /&gt;
Mount castlevania.tap.&amp;lt;br&amp;gt; The directory will be changed to the location of the tap.&lt;br /&gt;
&lt;br /&gt;
Run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOAD &amp;amp;quot;t:&amp;amp;quot;: LOAD &amp;amp;quot;&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -r castlevania.tap&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount castlevania.tap.&amp;lt;br&amp;gt; The current working directory will not be changed.&lt;br /&gt;
&lt;br /&gt;
Run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOAD &amp;amp;quot;t:&amp;amp;quot;: LOAD &amp;amp;quot;&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;9&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -? *batman*&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; &amp;lt;code&amp;gt;.run -5 *batman*&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List all executables with &amp;lt;code&amp;gt;batman&amp;lt;/code&amp;gt; in their names.&amp;lt;br&amp;gt; Run the 5th match from that list.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
# When loading tap files, the computer will load in the current mode. That is, in standard 128k mode if in nextzxos, usr 0 mode if you have entered usr 0 mode and 48k mode if you have entered 48k mode. This is the same as how other zx machines take care of tape loading but it is different from nextzxos&#039;s file browser which will come up with a menu allowing you to select which mode to use before mounting the tap file.&lt;br /&gt;
# You may have to change some settings prior to running a program for some programs that rely on precise video timing or other factors. For nirvana games, contention must be enabled before running (and besides that your display must be 50Hz VGA to achieve precise timing). At the time of writing the only way to turn on contention is to do it via basic or the nmi menu but look out for a &amp;lt;code&amp;gt;.reset&amp;lt;/code&amp;gt; dot command in the future. To do it via the nmi menu, press the M1 button on the left side of the next; it will be the button closest to you and closest to the bottom where the joystick ports are. From the menu choose &amp;amp;quot;debug tools&amp;amp;quot; then &amp;amp;quot;status&amp;amp;quot;. With the arrow keys navigate to nextreg 8 and make sure bit 6 is rest in the value there. If it isn&#039;t, press caps+1 and enter a new two-digit hex value which is the same but with bit 6 reset. Then return to basic by pressing &#039;c&#039;. Contention will now be enabled.&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/blob/master/src/c/DotCommands/run here].&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:run&amp;diff=11409</id>
		<title>Dot:run</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:run&amp;diff=11409"/>
		<updated>2020-05-31T22:58:49Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Add documentation for .run&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .RUN dot command =&lt;br /&gt;
&lt;br /&gt;
RUN searches a path to locate and execute a program with filename matching the criteria.&lt;br /&gt;
&lt;br /&gt;
The PATH is held in an environment variable stored in file &amp;lt;code&amp;gt;/sys/env.cfg&amp;lt;/code&amp;gt;. It has the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH = /demos/*;/games;/games/*;/games/zx81/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Each line in &amp;lt;code&amp;gt;env.cfg&amp;lt;/code&amp;gt; can contain a &amp;lt;code&amp;gt;name = value&amp;lt;/code&amp;gt; pair. The code that reads this file is robust so there can be errors and strange formatting but it is important that PATH is contained entirely in one line no matter how long it gets.&lt;br /&gt;
&lt;br /&gt;
PATH is a list of directories that should be searched to locate executables. Each directory is separated by a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;. Backward slashes are ok and will be changed to forward, leading and trailing spaces are ok. Spaces inside names are ok.&lt;br /&gt;
&lt;br /&gt;
A trailing &amp;lt;code&amp;gt;/*&amp;lt;/code&amp;gt; means all the directories contained in that directory will be searched. So &amp;lt;code&amp;gt;/games/*&amp;lt;/code&amp;gt; means all directories in &amp;lt;code&amp;gt;/games&amp;lt;/code&amp;gt; will be searched; note it does not mean &amp;lt;code&amp;gt;/games&amp;lt;/code&amp;gt; itself will be searched and that is why you will see both &amp;lt;code&amp;gt;/games&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/games/*&amp;lt;/code&amp;gt; in the example above.&lt;br /&gt;
&lt;br /&gt;
RUN will match the filename it is given against the contents of directories in the PATH and automatically launch the program. It will always search the current directory before those listed in PATH. The filename can contain wildcards.&lt;br /&gt;
&lt;br /&gt;
Options allow listing of all filename matches and executing matches other than the first.&lt;br /&gt;
&lt;br /&gt;
Programs having the following extensions are identified as executable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bas, dot, nex, o, p, sna, snx, tap, z80&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o run -pragma-include:zpragma.inc -subtype=dot-n -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.run [OPTIONS] FILE&lt;br /&gt;
&lt;br /&gt;
supported extensions:  bas&lt;br /&gt;
dot nex o p sna snx tap z80&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&lt;br /&gt;
-p = list dirs in PATH&lt;br /&gt;
-? = list FILE matches&lt;br /&gt;
-c = cd to FILE location&lt;br /&gt;
-r = retain cwd on clean exit&lt;br /&gt;
-N = select Nth FILE match&lt;br /&gt;
&lt;br /&gt;
run 1.4 zx-next z88dk.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;.run&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prints help.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -p&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lists each directory in the PATH.&amp;lt;br&amp;gt; Places an X beside directories that don&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -? war*&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lists all executables matching &amp;lt;code&amp;gt;war*&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt; The list is numbered so that a particular match can be referred to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -c warhawk.nex&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change to the directory where warhawk.nex is found.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run warhawk.nex&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the first warhawk.nex found&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -2 warhawk.nex&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the second warhawk.nex found&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run castle*.tap&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Assume &amp;amp;quot;castlevania.tap&amp;amp;quot; exists and is the first match)&lt;br /&gt;
&lt;br /&gt;
Mount castlevania.tap.&amp;lt;br&amp;gt; The directory will be changed to the location of the tap.&lt;br /&gt;
&lt;br /&gt;
Run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOAD &amp;amp;quot;t:&amp;amp;quot;: LOAD &amp;amp;quot;&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -r castlevania.tap&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount castlevania.tap.&amp;lt;br&amp;gt; The current working directory will not be changed.&lt;br /&gt;
&lt;br /&gt;
Run with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOAD &amp;amp;quot;t:&amp;amp;quot;: LOAD &amp;amp;quot;&amp;amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;9&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;.run -? *batman*&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; &amp;lt;code&amp;gt;.run -5 *batman*&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List all executables with &amp;lt;code&amp;gt;batman&amp;lt;/code&amp;gt; in their names.&amp;lt;br&amp;gt; Run the 5th match from that list.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
# When loading tap files, the computer will load in the current mode. That is, in standard 128k mode if in nextzxos, usr 0 mode if you have entered usr 0 mode and 48k mode if you have entered 48k mode. This is the same as how other zx machines take care of tape loading but it is different from nextzxos&#039;s file browser which will come up with a menu allowing you to select which mode to use before mounting the tap file.&lt;br /&gt;
# You may have to change some settings prior to running a program for some programs that rely on precise video timing or other factors. For nirvana games, contention must be enabled before running (and besides that your display must be 50Hz VGA to achieve precise timing). At the time of writing the only way to turn on contention is to do it via basic or the nmi menu but look out for a &amp;lt;code&amp;gt;.reset&amp;lt;/code&amp;gt; dot command in the future. To do it via the nmi menu, press the M1 button on the left side of the next; it will be the button closest to you and closest to the bottom where the joystick ports are. From the menu choose &amp;amp;quot;debug tools&amp;amp;quot; then &amp;amp;quot;status&amp;amp;quot;. With the arrow keys navigate to nextreg 8 and make sure bit 6 is rest in the value there. If it isn&#039;t, press caps+1 and enter a new two-digit hex value which is the same but with bit 6 reset. Then return to basic by pressing &#039;c&#039;. Contention will now be enabled.&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/blob/master/src/c/DotCommands/run here].&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:find&amp;diff=11408</id>
		<title>Dot:find</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:find&amp;diff=11408"/>
		<updated>2020-05-31T22:53:04Z</updated>

		<summary type="html">&lt;p&gt;Myopian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .FIND dot command =&lt;br /&gt;
&lt;br /&gt;
To use, copy “FIND” to the sd card’s DOT directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find&amp;lt;/code&amp;gt; entered on its own at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
This utility searches directories from the start directory for a particlar file matching criteria supplied on the command line.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;find - search for files in a&lt;br /&gt;
  directory hierarchy&lt;br /&gt;
&lt;br /&gt;
.find DIR [OPTION]...&lt;br /&gt;
&lt;br /&gt;
Find files starting at DIR&lt;br /&gt;
that match provided criteria.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
.find . -type=f -name *.txt&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;br /&gt;
&lt;br /&gt;
(find all files in the current&lt;br /&gt;
directory and below that end&lt;br /&gt;
in &amp;amp;quot;.txt&amp;amp;quot;)&lt;br /&gt;
&lt;br /&gt;
All word options accept single&lt;br /&gt;
or double leading hyphens.&lt;br /&gt;
&lt;br /&gt;
CRITERIA&lt;br /&gt;
&lt;br /&gt;
-exec&lt;br /&gt;
  file must be an executable&lt;br /&gt;
  bas dot nex o p sna snx&lt;br /&gt;
  tap z80&lt;br /&gt;
&lt;br /&gt;
-mindepth N, -mindepth=N&lt;br /&gt;
  ignore until at least N&lt;br /&gt;
  directory levels traversed&lt;br /&gt;
&lt;br /&gt;
-maxdepth N, -maxdepth=N&lt;br /&gt;
  ignore if more than N&lt;br /&gt;
  directory levels traversed&lt;br /&gt;
&lt;br /&gt;
-mmin N, -mmin=N&lt;br /&gt;
  (not implemented yet)&lt;br /&gt;
&lt;br /&gt;
-mtime N, -mtime=N&lt;br /&gt;
  (not implemented yet)&lt;br /&gt;
&lt;br /&gt;
-name S, -name=S&lt;br /&gt;
  lfn name must match S&lt;br /&gt;
  S can contain *? wildcards&lt;br /&gt;
&lt;br /&gt;
-prune S, -prune=S&lt;br /&gt;
  ignore directory S&lt;br /&gt;
  S can contain *? wildcards&lt;br /&gt;
  else S is a canonical name&lt;br /&gt;
&lt;br /&gt;
-size N, -size=N&lt;br /&gt;
  if N&amp;amp;gt;0 file must be at least&lt;br /&gt;
    N bytes in size&lt;br /&gt;
  if N&amp;amp;lt;0 file must be less than&lt;br /&gt;
    N bytes in size&lt;br /&gt;
  N can have a suffix modifier:&lt;br /&gt;
    &amp;amp;quot;b&amp;amp;quot; : * 512&lt;br /&gt;
    &amp;amp;quot;c&amp;amp;quot; : * 1&lt;br /&gt;
    &amp;amp;quot;w&amp;amp;quot; : * 2&lt;br /&gt;
    &amp;amp;quot;k&amp;amp;quot; : * 1024&lt;br /&gt;
    &amp;amp;quot;M&amp;amp;quot; : * 1048576&lt;br /&gt;
&lt;br /&gt;
-type T, -type=f, -type=d&lt;br /&gt;
  must be a file, directory&lt;br /&gt;
&lt;br /&gt;
DISPLAY&lt;br /&gt;
&lt;br /&gt;
-lfn=on&lt;br /&gt;
  print matches with lfn names&lt;br /&gt;
&lt;br /&gt;
-lfn=off&lt;br /&gt;
  print matches with 8.3 names&lt;br /&gt;
&lt;br /&gt;
-lfn=both&lt;br /&gt;
  print matches w/ both names&lt;br /&gt;
&lt;br /&gt;
ACTION&lt;br /&gt;
&lt;br /&gt;
-cd N, -cd=N&lt;br /&gt;
  change to the directory of&lt;br /&gt;
  the Nth match and exit&lt;br /&gt;
&lt;br /&gt;
OTHER&lt;br /&gt;
&lt;br /&gt;
-help&lt;br /&gt;
  print this help and exit&lt;br /&gt;
&lt;br /&gt;
-version&lt;br /&gt;
  print version info and exit&lt;br /&gt;
&lt;br /&gt;
find 1.1 zx-next 128k z88dk.org&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# Locate all exectuables in the current directory and below. Executables are defined as “nex o p sna snx tap z80” types.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find . -exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the 20th executable and change directory to that. Use &amp;lt;code&amp;gt;.run&amp;lt;/code&amp;gt; to run the program.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.find . -exec -cd=20&lt;br /&gt;
.run castelvania.tap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate all text files between 1k and 10k in size.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find . -name *.txt -size 1k -size -10k&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Find all games with batman in the name.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find . -exec -name *batman*&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filename matches are only applied against the long filename. The matching uses wildcards &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; which can match any character including &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/tree/master/src/c/DotCommands/find here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o find -pragma-include:zpragma.inc -subtype=dotn -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:find&amp;diff=11407</id>
		<title>Dot:find</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:find&amp;diff=11407"/>
		<updated>2020-05-31T22:52:23Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Add documentation for find command.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .FIND dot command =&lt;br /&gt;
&lt;br /&gt;
To use, copy “FIND” to the sd card’s DOT directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find&amp;lt;/code&amp;gt; entered on its own at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
This utility searches directories from the start directory for a particlar file matching criteria supplied on the command line.&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;find - search for files in a&lt;br /&gt;
  directory hierarchy&lt;br /&gt;
&lt;br /&gt;
.find DIR [OPTION]...&lt;br /&gt;
&lt;br /&gt;
Find files starting at DIR&lt;br /&gt;
that match provided criteria.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
.find . -type=f -name *.txt&lt;br /&gt;
&lt;br /&gt;
(find all files in the current&lt;br /&gt;
directory and below that end&lt;br /&gt;
in &amp;amp;quot;.txt&amp;amp;quot;)&lt;br /&gt;
&lt;br /&gt;
All word options accept single&lt;br /&gt;
or double leading hyphens.&lt;br /&gt;
&lt;br /&gt;
CRITERIA&lt;br /&gt;
&lt;br /&gt;
-exec&lt;br /&gt;
  file must be an executable&lt;br /&gt;
  bas dot nex o p sna snx&lt;br /&gt;
  tap z80&lt;br /&gt;
&lt;br /&gt;
-mindepth N, -mindepth=N&lt;br /&gt;
  ignore until at least N&lt;br /&gt;
  directory levels traversed&lt;br /&gt;
&lt;br /&gt;
-maxdepth N, -maxdepth=N&lt;br /&gt;
  ignore if more than N&lt;br /&gt;
  directory levels traversed&lt;br /&gt;
&lt;br /&gt;
-mmin N, -mmin=N&lt;br /&gt;
  (not implemented yet)&lt;br /&gt;
&lt;br /&gt;
-mtime N, -mtime=N&lt;br /&gt;
  (not implemented yet)&lt;br /&gt;
&lt;br /&gt;
-name S, -name=S&lt;br /&gt;
  lfn name must match S&lt;br /&gt;
  S can contain *? wildcards&lt;br /&gt;
&lt;br /&gt;
-prune S, -prune=S&lt;br /&gt;
  ignore directory S&lt;br /&gt;
  S can contain *? wildcards&lt;br /&gt;
  else S is a canonical name&lt;br /&gt;
&lt;br /&gt;
-size N, -size=N&lt;br /&gt;
  if N&amp;amp;gt;0 file must be at least&lt;br /&gt;
    N bytes in size&lt;br /&gt;
  if N&amp;amp;lt;0 file must be less than&lt;br /&gt;
    N bytes in size&lt;br /&gt;
  N can have a suffix modifier:&lt;br /&gt;
    &amp;amp;quot;b&amp;amp;quot; : * 512&lt;br /&gt;
    &amp;amp;quot;c&amp;amp;quot; : * 1&lt;br /&gt;
    &amp;amp;quot;w&amp;amp;quot; : * 2&lt;br /&gt;
    &amp;amp;quot;k&amp;amp;quot; : * 1024&lt;br /&gt;
    &amp;amp;quot;M&amp;amp;quot; : * 1048576&lt;br /&gt;
&lt;br /&gt;
-type T, -type=f, -type=d&lt;br /&gt;
  must be a file, directory&lt;br /&gt;
&lt;br /&gt;
DISPLAY&lt;br /&gt;
&lt;br /&gt;
-lfn=on&lt;br /&gt;
  print matches with lfn names&lt;br /&gt;
&lt;br /&gt;
-lfn=off&lt;br /&gt;
  print matches with 8.3 names&lt;br /&gt;
&lt;br /&gt;
-lfn=both&lt;br /&gt;
  print matches w/ both names&lt;br /&gt;
&lt;br /&gt;
ACTION&lt;br /&gt;
&lt;br /&gt;
-cd N, -cd=N&lt;br /&gt;
  change to the directory of&lt;br /&gt;
  the Nth match and exit&lt;br /&gt;
&lt;br /&gt;
OTHER&lt;br /&gt;
&lt;br /&gt;
-help&lt;br /&gt;
  print this help and exit&lt;br /&gt;
&lt;br /&gt;
-version&lt;br /&gt;
  print version info and exit&lt;br /&gt;
&lt;br /&gt;
find 1.1 zx-next 128k z88dk.org&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# Locate all exectuables in the current directory and below. Executables are defined as “nex o p sna snx tap z80” types.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find . -exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the 20th executable and change directory to that. Use &amp;lt;code&amp;gt;.run&amp;lt;/code&amp;gt; to run the program.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.find . -exec -cd=20&lt;br /&gt;
.run castelvania.tap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate all text files between 1k and 10k in size.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find . -name *.txt -size 1k -size -10k&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Find all games with batman in the name.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.find . -exec -name *batman*&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filename matches are only applied against the long filename. The matching uses wildcards &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; which can match any character including &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/tree/master/src/c/DotCommands/find here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o find -pragma-include:zpragma.inc -subtype=dotn -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
	<entry>
		<id>https://wiki.specnext.dev/index.php?title=Dot:extract&amp;diff=11406</id>
		<title>Dot:extract</title>
		<link rel="alternate" type="text/html" href="https://wiki.specnext.dev/index.php?title=Dot:extract&amp;diff=11406"/>
		<updated>2020-05-31T22:36:46Z</updated>

		<summary type="html">&lt;p&gt;Myopian: Created page with &amp;quot;= .EXTRACT dot command =  To use, copy “EXTRACT” to the sd card’s DOT directory.  == Usage ==  &amp;lt;code&amp;gt;.extract&amp;lt;/code&amp;gt; entered on its own at the basic prompt will print he...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= .EXTRACT dot command =&lt;br /&gt;
&lt;br /&gt;
To use, copy “EXTRACT” to the sd card’s DOT directory.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.extract&amp;lt;/code&amp;gt; entered on its own at the basic prompt will print help.&lt;br /&gt;
&lt;br /&gt;
This utility reads some portion of a file and either:&lt;br /&gt;
&lt;br /&gt;
* saves that portion to another file&lt;br /&gt;
* appends that portion to another file&lt;br /&gt;
* loads that portion into the zx-next’s memory&lt;br /&gt;
* prints that portion in a hexdump&lt;br /&gt;
&lt;br /&gt;
The data can be loaded anywhere in the zx-next’s memory space. The destination address can be specified as a 64k address within the current banking arrangement, as a linear address covering the entire zx-next memory space in [0x000000,0x1BFFFF], as a 16k bank number in [0,111], or as an 8k page number in [0,223].&lt;br /&gt;
&lt;br /&gt;
All numbers can be specified in decimal, hexadecimal (leading 0x) or octal (leading 0).&lt;br /&gt;
&lt;br /&gt;
The help text is reproduced here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.extract file [+off][-off][len]&lt;br /&gt;
 [-f] [-o file] [-a file]&lt;br /&gt;
 [-m addr] [-ml linaddr]&lt;br /&gt;
 [-mp pnum] [-mb bnum]&lt;br /&gt;
&lt;br /&gt;
input:&lt;br /&gt;
  file = input file&lt;br /&gt;
  +off = byte offset from start&lt;br /&gt;
  -off = byte offset from end&lt;br /&gt;
   len = length in bytes&lt;br /&gt;
&lt;br /&gt;
output:&lt;br /&gt;
  -f  = overwrite permitted&lt;br /&gt;
  -o  = write to out file&lt;br /&gt;
  -a  = append to out file&lt;br /&gt;
  -m  = copy to 64k addr&lt;br /&gt;
  -ml = copy to linear addr&lt;br /&gt;
  -mp = copy to start of page&lt;br /&gt;
  -mb = copy to start of bank&lt;br /&gt;
&lt;br /&gt;
no -o,-a,-m* generates hexdump&lt;br /&gt;
&lt;br /&gt;
extract v1.3 zx-next z88dk&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
# Display the screen stored in an sna snapshot file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.extract knight.sna +27 6912 -m 0x4000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract 6912 bytes from file “knight.sna” at offset 27 and write to 64k memory address 0x4000.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Have a look at the sna header as a hexdump:&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.extract knight.sna 27&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the first 27 bytes from file “knight.sna” and view it as a hexdump printed to screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the last 1024 bytes of a file to another file:&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.extract knight.sna -1024 -o knight.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the last 1024 bytes from file “knight.sna” and save it to file “knight.bin”. If “knight.bin” already exists, an error will be produced (see -f).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Append file to another one.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;.extract knight.sna -a foo.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extract the entire file “knight.sna” and append it to the file “foo.bin”.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;5&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load file to page 18&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;.extract knight.sna -mp 18&lt;br /&gt;
.extract knight.sna -mb 9&lt;br /&gt;
.extract knight.sna -ml 0x24000&amp;lt;/pre&amp;gt;&lt;br /&gt;
Load the entire file “knight.sna” to the zx next’s memory. All variations above load the file contents to the same place in memory. The first command indicates the location using 8k page number. The second command indicates the location using 16k bank number. The last command indicates the location using a linearized memory address.&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&lt;br /&gt;
&lt;br /&gt;
Source [https://gitlab.com/thesmog358/tbblue/-/tree/master/src/c/DotCommands/extract here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;zcc +zxn -v -startup=30 -clib=sdcc_iy -SO3 --max-allocs-per-node200000 --opt-code-size @zproject.lst -o extract -pragma-include:zpragma.inc -subtype=dot -Cz&amp;amp;quot;--clean&amp;amp;quot; -create-app&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Tools]]&lt;/div&gt;</summary>
		<author><name>Myopian</name></author>
	</entry>
</feed>