Spectrum Next Dot Commands

.$

The command produces the following help output:

$ v1.2 by Garry Lancaster
Executes any dot command with a
string argument.

SYNOPSIS:
 .$ <COMMAND> <LETTER>$

INFO:
eg:  LET x$="myfile.dsk"
     .$ DEFRAG x$

does the same as:
     .DEFRAG myfile.dsk

Source here.

.ASSOCIATE

The command produces the following help output:

ASSOCIATEv1.1 by Garry Lancaster
Manage Browser file associations

SYNOPSIS:
 .ASSOCIATE [OPTION]

OPTIONS:
 -h, --help
     Display this help
 -s, --show TYPE
     Show entry for TYPE
 -d, --delete TYPE
     Delete entry for TYPE
 -a, --add TYPE "LINE"
     Add/replace entry for TYPE
 -l, --list
     List all entries

INFO:

TYPE is 1-3 chars (? * allowed)

LINE starts with:
  : return to menu afterwards
  < return to Browser afterwards
  ; return to BASIC afterwards
Remainder of the line are BASIC
commands to execute.
  | is replaced by filename
  ` is replaced by language code
Use \" to include quote in line

Source here.

.BAS2TXT

The command produces the following help output:

BAS2TXT v1.2 by Garry Lancaster
Convert BASIC file to text

SYNOPSIS:
.BAS2TXT [OPT] BASFILE [TXTFILE]

OPTIONS:
 -h, --help
     Display this help
 -s, --strip
     Strip line numbers
 -z, --cr
     ZX (CR) line-ends (default)
 -u, --lf
     Unix (LF) line-ends
 -c, --crlf
     CP/M & Win (CRLF) line-ends
 -n, --nobnk
     Don't process extra .BNKs

For an input file EXAMPLE.BAS,
files named EXAMPLE-*.BNK will
be processed as banked sections

Individual banked sections can
be processed if desired, eg
  .BAS2TXT EXAMPLE.BNK

Source here.

.BMPCONV

The command produces the following help output:

.bmpconv <-options> <filename>
to convert image to Next format.
tiles or bitmap.
options :-
-i = save image, default tilemap
-b = map is saved in bytes
-8 = block size 8x8, norm 16x16
-t = include tileset base
-2 = save 2MB layout
-r = don't remove repeat tiles

Source here.

.BMPLOAD

The command produces the following help output:

.bmpload <filename> to load image to background

Source here.

.BOOT

The following text describing the command was found by hand examination of its source or binary:

Boot v1.5 - SpecNext / emook'19

Boots to another personality from NextZXOS
This will overwrite your config.ini!

.boot [0-99]
eg .boot 2,

(Closed source?)

.BROWSE

The command produces the following help output:

BROWSE v1.2 by Garry Lancaster
Uses Browser to select filename

SYNOPSIS:
 .BROWSE [OPTION]... VARIABLE$
OPTIONS:
 -h, --help
     Display this help
 -t, --type EXT
     Add EXT to selectable types
     Wildcards * or ? allowed
     Multiple -t options allowed
 -p, --prompt PROMPT
     Custom help prompt
     Can include: \i inverse on
                  \o inverse off
 -s, --save
     Ask for new filename
 -e, --edit PROMPT
     Custom prompt for edit/save
 -8, --8.3
     Return short name (not LFN)
 -r, --rename
     Allow rename with R key
 -d, --delete
     Allow erase with E key
 -k, --mkdir
     Allow mkdir with K key
 -m, --remount
     Allow remount with M key
 -u, --unmount
     Allow unmount with U key
 -c, --copy
     Allow copy/paste with C/P

Source here.

.CD

The command produces the following help output:

CD v1.0 by Gari Biasillo
Change current directory


SYNOPSIS:
 .CD [OPTION]... DIR...
OPTIONS:
 -v, --verbose
     Verbose output
 -h, --help
     Display this help

INFO:
 .CD ...  is the same as two cd .. commands
 .CD ....  is the same as three cd .. commands
 .CD .....  is the same as four cd .. commands

Source here.

.CHMOD

The command produces the following help output:

CHMOD v1.0 by Garry Lancaster
Changes file/dir attributes


SYNOPSIS:
 .CHMOD [OPTION]... FILE...
OPTIONS:
 -?, --help
     Display this help
 -v, --verbose
     Verbose output
 +r, -w
     Make read-only
 -r, +w
     Make writable
 +s, -s
     Add/remove SYSTEM attrib
 +h, -h
     Add/remove HIDDEN attrib
 +a, -a
     Add/remove ARCHIVE attrib

Source here.

.COFF

The command produces the following help output:

Contention off

(Closed source?)

.CONFIG

The command produces the following help output:

CONFIG - configure zxn hardware

config
Describe current configuration

config [OPTION=VALUE]...
Change current configuration

PRESETS
Select machine appropriate
timing, contention, float bus

48, 48k
128, 128k, 2
3, 2A, 2B, 3E
p, pent, pentagon
zxn

NEXTREG

nr=, nextreg=reg,val[,mask]
  Write val to reg.  Optional
  mask is ANDed with current
  reg contents then val is ORed
  with the result before write.

CPU & DMA

3.5
  Set 3.5MHz

7
  Set 7MHz

14
  Set 14MHz

dma=z80,zxn
  Select DMA compatibility mode

COMPATIBILITY

t=, timing=48,128,next,pent...
  Select display timing.
  Some software expects to run
  on specific machines for
  proper display.

tmx=, timex=on,off...
  Timex video modes enable.
  Disabling activates floating
  bus reads on port 0xff.

c=, con=, contention=on,off...
  RAM Contention enable.
  Some software expects RAM
  contention for proper display

lock
  Lock 0x7ffd paging

unlock
  Unlock 0x7ffd paging

DISPLAY

50, 60
  Select 50Hz or 60Hz display

sl=,scanlines=0,25,50,75...
  Enable scanlines

AUDIO

beeper=, speaker=on,off...
  Internal speaker enable

dacs=on,off...
  Audio DACs enable

aymode=[ay|ym|off],[abc|acb],
  [mono|stereo],[1|2|3|ts]...
  Chooses features for all AY
  instances.  Mono, stereo, ABC
  or ACB stereo, one or three
  active.

ay0=mono,stereo...
ay1=mono,stereo...
ay2=mono,stereo...
  Affects specific AY instance.

JOYSTICKS

j0=,joy0=,left=
j1=,joy1=,right=
  [s1|sinc1|sinclair1|12345]
  [s2|sinc2|sinclair2|67890]
  [k|kemp|kempston|k1|kemp1]
  [k2|kemp2|kempston2]
  [c|cur|cursor|5678]
  [md1]
  [md2]

config v1.1 z88dk.org

Source here.

.CORE

The command produces the following help output:

CORE v0.1 by Garry Lancaster
Boot an alternative core

SYNOPSIS:
.CORE [OPT] CORENAME [FILE]

OPTIONS:
 -h, --help
     Display this help

Depending upon the core, a file
located in the core's standard
files directory (eg a game ROM)
may be specified

Examples:
  .core atom
  .core cpc6128 game.dsk

Source here.

.COWSAY

The following text describing the command was found by hand examination of its source or binary:

 _________________________ 
| Usage: cowsay [message] |
 -------------------------
     \  ^__^
      \ (oo)\_____
        (__)\     )\/\
           ||----w |
           ||     ||

Source here.

.CP

The command produces the following help output:

cp - copy files

cp SRC DST
cp SRC DIR

-f, --force
  force overwrite if DST exists

v1.0 zx-next 48k z88dk.org

Source here.

.CPM

The following text describing the command was found by hand examination of its source or binary:

NextZXOS CP/M Loader v1.4
by Garry Lancaster

Source here.

.DATE

The command produces the following help output:

DATE V2.0 usage: 
date <ENTER>
show current date

date "DD/MM/YYYY" <ENTER>
set the date

Date must be greater than
or equal to 01/01/2000
and less than 01/01/2100

Source here.

.DEFRAG

The command produces the following help output:

DEFRAG v1.7 by Garry Lancaster
Defragments a file

SYNOPSIS:
 .DEFRAG FILE

Source here.

.DISPLAYEDGE

The command does not produce any known help output.

The source distribution has a markdown README file with the following content:

"runtime" library to read+parse the "sys/env.cfg"

You can include the file "displayedge_rt.i.asm" in your own project and call the provided API calls to read the user's configuration.

The cfg file is ordinary ASCII text file, see included test.cfg for details, so user can also edit the values in any text editor (recommended end-of-line is MS-DOS "CRLF").

using "runtime" as source code included into your project

If you are using sjasmplus, you can use the runtime library like this:

    ORG xyz     ; where you want to place the runtime code
    INCLUDE "displayedge_rt.i.asm"

    ; ... in data area, reserve space ...
DisplayMarginsArray:    DS      dspedge.S_MARGINS * dspedge.MODE_COUNT  ; 4 * 9 = 36
        ; if the app reacts dynamically to video mode changes, preserve this array

                        ALIGN   256
ParsingBuffer:          DS      256     ; 256B buffer for parsing file, aligned ($xx00)
        ; this buffer is used temporarily by ParseCfgFile and can be re-used afterward

    ; .. in your init code, when starting the app ...

        ; optional - read local cfg in the app directory (if your sw supports local config)
            ld      hl,yourAppLocalCfgName
            ld      de,DisplayMarginsArray
            ld      bc,ParsingBuffer
            call    dspedge.ParseCfgFile    ; set array to -1 values even when error happens
            jr      nc,NoEsxError_allDone
            ; esx error, check if it is "file does not exist" - no local config
            cp      5                       ; esx_enoent
            jr      nz,someEsxError         ; some other error happened
            ; continue to read the default global config instead

        ; regular global config

            ; read default /sys/env.cfg file
            ld      hl,dspedge.defaultCfgFileName
            ld      de,DisplayMarginsArray
            ld      bc,ParsingBuffer
            call    dspedge.ParseCfgFile    ; set array to -1 values even when error happens
            jr      c,someEsxError          ; A = esx error number

    ; .. in your gfx init code or mainloop (if you watch for mode changes)
        call    dspedge.DetectMode      ; A = current video mode
        ; (optional) check if mode did change, or you need to init margins
        ; A = video mode you want to get margins for
        ld      de,DisplayMarginsArray
        call    dspedge.GetMargins      ; B C D E = left right top bottom
        ; if the mode is not stored in the file yet, 4x 255 is returned

        ; use the values to adjust your drawing routines and screen layout

You can also check the displayedge.asm of the dot command to see the runtime code in the action.

using "runtime" as binary library in your project

Use sjasmplus to build the binary (set the ORG address to what you need):

sjasmplus -DDISPLAYEDGE_ORG_ADR=0x8000 --exp=displayedge_rt.exp displayedge_rt.i.asm

This will produce the displayedge_rt.bin and displayedge_rt.exp files, which you can then use in your favourite assembler, for example in sjasmplus it would look like:

    INCLUDE "displayedge_rt.exp"        ; include the symbol values
    ORG dspedge.Begin                   ; DISPLAYEDGE_ORG_ADR
    INCBIN "displayedge_rt.bin"         ; include the machine code of library

    ; the actual usage will be similar to the example above
    ; just adjust syntax for your assembler

ZXNext dot command DISPLAYEDGE to edit "sys/env.cfg" visually

This is "dot command" for NextZXOS running at TBBlue (aka ZXNext) board (does use tiles video-mode for graphics).

It lets you edit visually display margins - the visible area of your display in particular video mode - and store that in the config file. Any SW aware of this config file can then read it upon start, and shrink the playfield to display everything important within the area of screen which is visible on your display.

Use the controls to switch to the video mode you want to add margin to (some video modes have to be pre-selected by starting the machine in particular mode, it is possible to edit margins of actual video mode), and then edit the values until the "green frame" is visible well on your display, then save the config.

The controls are:

OP   : to select the edge of display for editing
HJKL : subtract/add to the margin of selected edge
Q    : exit back to NextZXOS
R    : reload the cfg file currently stored on disk (discards any changes)
S    : save the currently modified values to cfg file
F    : change between 50Hz/60Hz mode (also regular "F3" should work)
T    : in VGA modes you can switch between different video-mode timings
(Q/R/S/F/T usually requires confirmation by pressing "Y" after)

Source here.

.DZX7

The following text describing the command was found by hand examination of its source or binary:

DZX7: LZ77/LZSS decompression
(C) 2015 Einar Saukas

.dzx7 [-f] inname.zx7 [outname]

-f Overwrite output file

v1.1 zx-next 128k z88dk.org

The source distribution has a text README file with the following content:

/*
 * (c) Copyright 2015 by Einar Saukas. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * The name of its author may not be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 Modified for the zx-next by z88dk.org
 
 Primary source:
 http://www.worldofspectrum.org/infoseekid.cgi?id=0027996&loadpics=3
 
 Secondary source:
 https://github.com/z88dk/z88dk/tree/master/src/zx7
 
 zx7 requires a 32k buffer to decompress the source file.
 
 The 128k version, which runs when NextZXOS is in its normal mode of operation,
 is a dotn command that allocates this memory from the operating system.  This
 means it will never interfere with basic and it will always be able to run.  It
 also operates on the lfn version of the filename to determine the output
 filename.
 
 The 48k version uses the top 32k of main memory for the buffer.  It requires
 RAMTOP to be below 32768 in order to run and an error message will print
 if that is not the case.  The user is expected to "CLEAR 32767" and then re-try.
 In the future, a new version may save the top 32k to a temporary file and
 restore that on exit so that no RAMTOP check will be necessary.  This will
 be acceptable for dot commands whose running time would dominate disk save/load time.

Source here.

.ESPRESET

The command produces the following help output:

ESP RESET TOOL v1.4
© 2020 Robin Verhagen-Guest

Reset ESP8266-01 WiFi module on the Spectrum Next

espreset [-h]
Reset ESP without resetting the Next.
Similar to powering the ESP off and on, or to issuing an AT+RST command.

OPTIONS

  -h
  Display this help

ESP RESET TOOL v1.4
16 Feb 2020 20:07:44
© 2020 Robin Verhagen-Guest

The source distribution has a markdown README file with the following content:

espreset

ESP8266-01 reset dot command for the ZX Spectrum Next™

Source here.

.ESPUPDATE

The command produces the following help output:

ESP UPDATE TOOL v1.71
© 2020 Robin Verhagen-Guest

Updates firmware for ESP8266-01 WiFi module on the Spectrum Next

espupdate FILENAME [-y] [-h]
Update ESP with the firmware in an external file

espupdate -h
Display this help

OPTIONS

  FILENAME
  A file containing ESP firmware  in the NXESP format
  For more info, see the FAQ at:
  tinyurl.com/espfaq

  -y
  Skip "Are you sure?"

  -h
  Display this help

ESP UPDATE TOOL v1.71
21 Feb 2020 18:16:37
© 2020 Robin Verhagen-Guest

The source distribution has a markdown README file with the following content:

ESP Update

ESP8266-01 in-circuit firmware updater for the ZX Spectrum Next™.

Caution

The ESPUPDATE dot command is still in pre-alpha development. I recommend not running it on your Spectrum Next yet, unless I ask you to help test. The ESP-01 can never be bricked, but you might end up in a situation where you have to re-update it on your PC with a USB adaptor or breadboard, and the python program. No big deal, but just be aware :)

ESP Update is copyright © 2020 Robin Verhagen-Guest, and is licensed under Apache-2.0.

hdfmonkey is copyright © Matt Westcott 2010, and is licensed under GPL-3.0.

ZX Spectrum Next is a trademark of SpecNext Ltd.

Source here.

.EXTRACT

The command does not produce any known help output.

The source distribution has a markdown README file with the following content:

.EXTRACT dot command

To use, copy "EXTRACT" to the sd card's DOT directory.

Compiling

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"--clean" -create-app

Usage

.extract entered on its own at the basic prompt will print help.

This utility reads some portion of a file and either:

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].

All numbers can be specified in decimal, hexadecimal (leading 0x) or octal (leading 0).

The help text is reproduced here:

.extract file [+off][-off][len]
 [-f] [-o file] [-a file]
 [-m addr] [-ml linaddr]
 [-mp pnum] [-mb bnum]

input:
  file = input file
  +off = byte offset from start
  -off = byte offset from end
   len = length in bytes

output:
  -f  = overwrite permitted
  -o  = write to out file
  -a  = append to out file
  -m  = copy to 64k addr
  -ml = copy to linear addr
  -mp = copy to start of page
  -mb = copy to start of bank

no -o,-a,-m* generates hexdump

extract v1.3 zx-next z88dk

Examples

  1. Display the screen stored in an sna snapshot file:

.extract knight.sna +27 6912 -m 0x4000

Extract 6912 bytes from file "knight.sna" at offset 27 and write to 64k memory address 0x4000.

  1. Have a look at the sna header as a hexdump:

.extract knight.sna 27

Extract the first 27 bytes from file "knight.sna" and view it as a hexdump printed to screen.

  1. Copy the last 1024 bytes of a file to another file:

.extract knight.sna -1024 -o knight.bin

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).

  1. Append file to another one.

.extract knight.sna -a foo.bin

Extract the entire file "knight.sna" and append it to the file "foo.bin".

  1. Load file to page 18
.extract knight.sna -mp 18
.extract knight.sna -mb 9
.extract knight.sna -ml 0x24000

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.

Source here.

.FIND

The command produces the following help output:

find - search for files in a
  directory hierarchy

.find DIR [OPTION]...

Find files starting at DIR
that match provided criteria.

Example:

.find . -type=f -name *.txt

(find all files in the current
directory and below that end
in ".txt")

All word options accept single
or double leading hyphens.

CRITERIA

-exec
  file must be an executable
  bas dot nex o p sna snx
  tap z80

-mindepth N, -mindepth=N
  ignore until at least N
  directory levels traversed

-maxdepth N, -maxdepth=N
  ignore if more than N
  directory levels traversed

-mmin N, -mmin=N
  (not implemented yet)

-mtime N, -mtime=N
  (not implemented yet)

-name S, -name=S
  lfn name must match S
  S can contain *? wildcards

-prune S, -prune=S
  ignore directory S
  S can contain *? wildcards
  else S is a canonical name

-size N, -size=N
  if N>0 file must be at least
    N bytes in size
  if N<0 file must be less than
    N bytes in size
  N can have a suffix modifier:
    "b" : * 512
    "c" : * 1
    "w" : * 2
    "k" : * 1024
    "M" : * 1048576

-type T, -type=f, -type=d
  must be a file, directory

DISPLAY

-lfn=on
  print matches with lfn names

-lfn=off
  print matches with 8.3 names

-lfn=both
  print matches w/ both names

ACTION

-cd N, -cd=N
  change to the directory of
  the Nth match and exit

OTHER

-help
  print this help and exit

-version
  print version info and exit

find 1.1 zx-next 128k z88dk.org

The source distribution has a markdown README file with the following content:

.FIND dot command

To use, copy "FIND" to the sd card's DOT directory.

Compiling

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"--clean" -create-app

Usage

.find entered on its own at the basic prompt will print help.

This utility searches directories from the start directory for a particlar file matching criteria supplied on the command line.

The help text is reproduced here:

find - search for files in a
  directory hierarchy

.find DIR [OPTION]...

Find files starting at DIR
that match provided criteria.

Example:

.find . -type=f -name *.txt

(find all files in the current
directory and below that end
in ".txt")

All word options accept single
or double leading hyphens.

CRITERIA

-exec
  file must be an executable
  bas dot nex o p sna snx
  tap z80

-mindepth N, -mindepth=N
  ignore until at least N
  directory levels traversed

-maxdepth N, -maxdepth=N
  ignore if more than N
  directory levels traversed

-mmin N, -mmin=N
  (not implemented yet)

-mtime N, -mtime=N
  (not implemented yet)

-name S, -name=S
  lfn name must match S
  S can contain *? wildcards

-prune S, -prune=S
  ignore directory S
  S can contain *? wildcards
  else S is a canonical name

-size N, -size=N
  if N>0 file must be at least
    N bytes in size
  if N<0 file must be less than
    N bytes in size
  N can have a suffix modifier:
    "b" : * 512
    "c" : * 1
    "w" : * 2
    "k" : * 1024
    "M" : * 1048576

-type T, -type=f, -type=d
  must be a file, directory

DISPLAY

-lfn=on
  print matches with lfn names

-lfn=off
  print matches with 8.3 names

-lfn=both
  print matches w/ both names

ACTION

-cd N, -cd=N
  change to the directory of
  the Nth match and exit

OTHER

-help
  print this help and exit

-version
  print version info and exit

find 1.1 zx-next 128k z88dk.org

Examples

  1. Locate all exectuables in the current directory and below. Executables are defined as "nex o p sna snx tap z80" types.

.find . -exec

  1. Locate the 20th executable and change directory to that. Use .run to run the program.
.find . -exec -cd=20
.run castelvania.tap
  1. Locate all text files between 1k and 10k in size.

.find . -name *.txt -size 1k -size -10k

  1. Find all games with batman in the name.

.find . -exec -name *batman*

Filename matches are only applied against the long filename. The matching uses wildcards * and ? which can match any character including .

Source here.

.GUIDE

The following text describing the command was found by hand examination of its source or binary:

NextGuide is a node-based documentation system designed for the ZX Spectrum
Next.  Rather than viewing a linear plain text file, NextGuide can display
section of documentation in isolation and have hyperlinks to connect the
various nodes up.

Copyright 2020 Matt Davies, all rights reserved.

The command line invocation for this guide is:

.guide <filename> [<node name>]


If the file is not found, the software will go through these steps before
giving up:

  1)  Add the .gde file extension if it doesn't exist.
  2)  Search in the c:/docs/guides folder.

Only if both of these fail will you be greeted by an error message.

The optional node name allows the reader to jump straight to that node rather
than the initial main node.  If that node does not exist, the main node will
be selected as usual.

Also, if no parameters are given, an attempt to open the guide at
C:/DOCS/GUIDES/NEXTGUIDE.GDE is tried.

(Closed source?)

.I2CSCAN

The command produces the following help output:

USAGE: i2cscan v0.1: 
i2cscan <ENTER>
Show devices on bus.

Source here.

.INSTALL

The command produces the following help output:

INSTALL v1.2 by Garry Lancaster
Installs a NextZXOS driver

SYNOPSIS:
 .INSTALL NAME.DRV

Source here.

.LFN

The command produces the following help output:

LFN v1.2 by Garry Lancaster
Returns the long filename for a
short (8.3) name.

SYNOPSIS:
 .LFN filename

Source here.

.LS

The command produces the following help output:

ls - list directory contents

ls [OPTION]... [FILE]...

List information about FILEs
(the current dir by default).

Sort entries alphabetically if
-StUX and --sort are not used.

FILTER FILES

-a, --all
  do not ignore .*

-A, --almost-all
  ignore . and ..

-B, --ignore-backups
  do not list *.bak

Wildcards accepted.

LIST STYLE

-C
  list entries by columns

-l
  use a long listing format

-m
  comma separated list

-x
  list entries by lines

-1
  list one file per line

--format=across : -x
--fromat=commas : -m
--format=horizontal : -x
--format=long : -l
--format=single-column : -1
--format=verbose : -l
--format=vertical : -C

-s, --size
  print file size

-w, --width=COLS
  set output width to COLS.

--lfn=off
  print 8.3 filenames

--lfn=on
  print lfn filenames

--lfn=both
  print both 8.3 and lfn

SORT METHOD

-S
  sort by size largest first

-t
  sort by time newest first

-U
  do not sort

-X
  sort by extension

--sort=none : -U
--sort=size : -S
--sort=time : -t
--sort=extension : -X

-r, --reverse
  reverse sort order

--gdf,
--group-directories-first
  list directories before files

FILE SIZE FORMAT

-h, --human-readable
  sizes in K,M,G (*1024)

--si
  sizes in KB,MB,GB (*1000)

--block-size=SIZE
  sizes scaled by SIZE

DATE-TIME FORMAT

--time-style=long-iso
  2002-03-30 23:45

--time-style=iso
  2002-03-30, 03-30 23:45

--time-style=locale
  mar 30 2002 23:45

DIRECTORY PROCESSING

-d, --directory
  list dirs and do not enter

-R, --recursive
  list subdirs recursively

--system
  include system files

OTHER

--help
  print this help and exit

--version
  print version info and exit

ls 1.0 zx-next 128k z88dk.org

The source distribution has a text README file with the following content:

This is a near complete implementation of unix "ls" that
is capable of sorting directories with thousands of entries.

TODO:

* Add different list styles
  Currently -l is always generated

* Change listing format depending on column width

* Add filename formatting with flag characters
  and filename colouring.

* Parse the LS_COLOR environment variable for
  colouring information.  Currently this environment
  variable and TIME_STYLE are both read but only
  TIME_STYLE is processed.

NOTES:

The output format is limited to -l for now and chosen to
fit in 32 columns.  The default is to list 8.3 filenames.

Try a variation like this one in 64 column mode:

.ls --gdf -AR --time-style=locale --lfn=on

USE OF MEMORY

A directory queue is maintained in two 8k pages and is
always paged entirely into memory at mmu6 and mmu7 when
accessed.  The queue is fifo and exists in a circular
buffer occupying the 16k.  In recursive mode, directories
that need to be visited are pushed into this queue.  And
as directories are listed, they are popped out of the queue.

An obstack holding file pointer records is held in main
memory from the end of the program (around address 43000)
to the top of memory.  Each file pointer record is a three-
byte pointer, the first byte indicating 8k page number and
the remaining two being a pointer into the page when it is
present in mmu7.  These file pointer records are fixed size
and grow like an expanding array so are easily sortable with
quicksort.  About 6000 records can be stored in main memory
allowing sorting of directories containing up to 6000 files.

Each file pointer record points at an actual file record.
These records are stored in extra 8k pages called LFN_PAGES.
A file record records 8.3 and lfn names, as well as time and
size information.  An individual record is variable in size
because the lfn name is variable in size.  Each page storing
records is managed by an obstack which will allocate memory
as needed.  The number of pages available is statically
compiled into the program and is currently four which means
32k is available to store file records.  Realistically this
places a much lower limit on the max number of files that
can be read from a directory at once, ie less than 6000.
If the limit is reached, the directory listing is split into
pieces.  If more space is needed, more pages can be allocated
by changing a constant and re-building the program.

Utilities like .ls must co-exist with basic, as in they must
not disturb basic's state.  This means .ls must allocate memory
from the operating system to load into and it must deallocate
that memory on exit.  All tasks are taken care of automatically
when z88dk builds this type of dot command called "dotn".

aralbrec@z88dk.org

Source here.

.LSTAP

The command produces the following help output:

LSTAP v1.1 by Garry Lancaster
List contents of any .TAP file

SYNOPSIS:
 .LSTAP [OPTION]... [FILE]

OPTIONS:
 -h, --help
     Display this help
 -i, --input
     Use current input file
 -o, --output
     Use current output file
 -f, --fileoffsets
     Show data offsets in TAP

Source here.

.MEM

The command does not produce any known help output.

Source here.

.MKDIR

The command produces the following help output:

MKDIR v1.0 by Gari Biasillo
Make new directories


SYNOPSIS:
 .MKDIR [OPTION]... DIR...
OPTIONS:
 -v, --verbose
     Print a message for each created directory
 -h, --help
     Display this help

Source here.

.MKP3D

This command is not part of the standard distribution at this time.

Source here.

.MKSWAP

The command produces the following help output:

MKSWAP v1.3 by Garry Lancaster

SYNOPSIS:
 .MKSWAP FILENAME [SIZE]

INFO:
Creates a swap file usable by
NextZXOS machine-code programs

Optional size in MB is 1..30
(default=30)

Swap files should be named:
    C:/NEXTZXOS/SWP-n.P3S
where 'n' is number 0-9

(Closed source?)

.MV

The command produces the following help output:

mv - move (rename) files

mv [OPTION]... [-T] SRC DST
mv [OPTION]... SRC... DIR
mv [OPTION]... -t DIR SRC...

Rename SRC to DST, or move
SRC(es) to DIR.

Names can contain wildcards.

Names with trailing slashes
are directories.

-b
  make backup of existing DST

-f, --force
  do not prompt for overwrite

-i, --interactive
  prompt for overwrite

-n, --no-clobber
  do not overwrite

The last -f,-i,-n takes effect

--strip-trailing-slashes
  remove slashes from names

-S, --suffix=SUFFIX
  override backup suffix

--system
  match system files to SRC

-t, --target-directory=DIR
  move all SRC to DIR

-T, --no-target-directory
  treat DST as a normal file

-u, --update
  move only when SRC is newer
  than DST or if DST missing

-v, --verbose
  explain what is being done

--help
  display this help and exit

--version
  print version and exit

mv 1.0 zx-next 128k z88dk.org

Source here.

.NDAWPLAY

The following text describing the command was found by hand examination of its source or binary:

Next DAW Player v1.0
Press 'q' to Quit

(Closed source?)

.NEXLOAD

The following text describing the command was found by hand examination of its source or binary:

NEXLOAD v14
Loads and runs .NEX files

nexload
Show help

nexload FILENAME
Load a .NEX file

FILENAME
File to load, which can include an optional drive or path

NEXLOAD v14 can load .NEX files up to and including format V1.3

Copyright © 2018-2019 Jim Bagley

Source here.

.NEXTVER

The command produces the following help output:

NEXTVER v1.0 by Garry Lancaster
Set variable to NextZXOS version

SYNOPSIS:
 .NEXTVER [OPTION]... VARIABLE
OPTIONS:
 -h, --help
     Display this help
 -v, --verbose
     Display the version
INFO:
Returns 0 if not NextZXOS mode

Source here.

.NGET

This command is not part of the standard distribution at this time.

The source distribution has a markdown README file with the following content:

NGET

Package manager server and client for the ZX Spectrum Next™

NGET is copyright © 2020 Robin Verhagen-Guest, and is licensed under Apache 2.0.

hdfmonkey is copyright © Matt Westcott 2010, and is licensed under GPL-3.0.

ZX Spectrum Next is a trademark of SpecNext Ltd.

Source here.

.NXTP

The command produces the following help output:

NXTP v1.69
© 2019-2020 Robin Verhagen-Guest

NXTP
Set date/time from internet

nxtp
Show help

nxtp SERVER PORT [OPTIONS [...]]
Lookup and set current date/time

SERVER
Hostname or IP of time server
List of public servers at:
https://tinyurl.com/nxtpsrv

PORT
Network port of time server

OPTIONS
  -z=TIMEZONECODE
  Your current timezone code
  If omitted, uses UK time
  List of timezone codes at:
  https://tinyurl.com/tznxtp

NXTP v1.69 08 Apr 2020 13:54:24
© 2019 Robin Verhagen-Guest

The source distribution has a markdown README file with the following content:

nxtp (Network neXt Time Protocol)

nxtp is an easy way of setting your local time on retro computers equipped a RTC (Real Time Clock) and a network interface. It is similar to the well-known NTP Network Time Protocol but faster and more lightweight, and simpler to implement on retro computers.

nxtp Client

An .nxtp dot command client for the ZX Spectrum Next™ is provided, written in Z80N assembly language. You may add a command to your AUTOEXEC.BAS BASIC startup program to automatically sync the time whenever you boot into NextZXOS. Your Next must be equipped with a RTC in order to use nxtp.

You can tell nxtp to set the local time in your own timezone, including any daylight savings time currently in effect.

We also provide a C# reference client using .NET Core 3.0, to assist with porting to other architectures or machines.

If you haven't already done so, set up your Next WiFi using WIFI.BAS as described in this wiki article.

To sync date and time every time you boot your Next, set up AUTOEXEC.BAS as described in this wiki article.

nxtp Server

The server is written in C# using .NET Core 3.0, and can be hosted on any Windows, Mac or linux computer. You may use the public server hosted by the Next team, or run your own private copy of the server on your PC. You may also run the server on a Raspberry Pi running Raspbian. It is lightweight enough to run on a wifi-equipped Raspberry Pi Zero W.

Protocol

The nxtp protocol is documented here.

Project Status

nxtp is currently in beta testing. Download the latest Next client here.

If you have a GitHub account you can elect to be notified whenever there is a project release.

nxtp is © 2019-2020 Robin Verhagen-Guest, and licensed under Apache 2.0.

hdfmonkey is copyright © Matt Westcott 2010, and is licensed under GPL-3.0.

Everyone is encouraged to host a public nxtp server, or port the nxtp client to a different machine or architecture.

ZX Spectrum Next is a trademark of SpecNext Ltd.

Source here.

.PI2C

The command produces the following help output:

PI2C V0.1 usage: 
pi2c <ENTER>
See if PI responds with an ACK

pi2c {-d} -wHH{HH}<ENTER>
 - write upto 64 0xHH

pi2c {-d} -rNN<ENTER>
-rNN - read 0xNN bytes 

-d - no ACK test

(Closed source?)

.PISEND

The command produces the following help output:

.pisend v2.00b

usage : pisend file.ext

base64 encodes a file and sends
 to the pi uart.

use -c {command} to send a 
command to nextpi.

Uses KevB's super fast encoder

use:
.pisend -c {command to run on nextpi} 
.pisend filename.tzx {sends file to pi}
.pisend -c nextpi-tzx_load rbc.tzx 
.pisend -c nextpi-play_sid sing*
.pisend -q {clear pi cmd and prepare for instruction}
Thanks to kevb, TimG, Big D and all the rest...

The source distribution has a markdown README file with the following content:

pisend source

The unwieldy source for pisend

pisend is an evolution of constantly trying to nail down the uart/pi0. Its not perfect at all but I'm hoping making this open source will help other people how talking to the pi0 can be achieved.

pisend-v15.asm

Thanks go to Kev Brady for the UUENCODING, Tim Gillberts for the baud selection routines, 32bitdisplay by alwin henseler, div32_16 by fgsgh.

Please dont submit corrections for things that look like redundant code, only actual areas of improvement.

Also included in checkpi.asm which is an attempt to clean up, and checkpi-tostring.asm is an attempt to get a string back.

The checkpi ones are just examples and hopefully will help you work out how to talk with NextPi to some degree.

This source if free to be used in anyway but any diritives must also be open source.

Source here.

.PLAYAKY9

The following text describing the command was found by hand examination of its source or binary:

.playaky9 [-q] <filename> to play a 9ch arkos file

(Closed source?)

.PLAYPT3

The following text describing the command was found by hand examination of its source or binary:

.playpt3 [-q] <filename> to play a pt3/ts file

Keys: 1 Toggle AY 1 Stereo/Mono
      2 Toggle AY 2 Stereo/Mono
      3 Toggle ACB/ABC

(Closed source?)

.PLAYWAV

The following text describing the command was found by hand examination of its source or binary:

.playwav <file> to play a WAV

v1.4
original code VTrucco&FBelavenuto, remixed David Saphier 2019/emook

The source distribution has a markdown README file with the following content:

playwav 1.6

usage

.playwav FILE.WAV

.playwav -s NR FILE.WAV

Sample rates supported:

Source here.

.PS2MODE

The command produces the following help output:

PS2MODE V1.0 usage: 
ps2mode<ENTER>
show current mode

ps2mode -m <ENTER>
set the PS2 port to MOUSE

ps2mode -k <ENTER>
set the PS2 port to KEYBOARD

(Closed source?)

.RM

The command produces the following help output:

RM v1.0 by Gari Biasillo
Remove files


SYNOPSIS:
 .RM [OPTION]... FILE...
OPTIONS:
 -v, --verbose
     Verbose output
 -h, --help
     Display this help

Source here.

.RMDIR

The command produces the following help output:

RMDIR v1.0 by Gari Biasillo
Remove directories


SYNOPSIS:
 .RMDIR [OPTION]... DIR...
OPTIONS:
 -p, --parents
     Remove DIR and its ancestors;
 e.g., '.RMDIR -p a/b/c' is
 similar to '.RMDIR a/b/c a/b a'

 -v, --verbose
     Verbose output
 -h, --help
     Display this help

Source here.

.RUN

The command produces the following help output:

.run [OPTIONS] FILE

supported extensions:  bas
dot nex o p sna snx tap z80

options:

-p = list dirs in PATH
-? = list FILE matches
-c = cd to FILE location
-r = retain cwd on clean exit
-N = select Nth FILE match

run 1.4 zx-next z88dk.org

The source distribution has a markdown README file with the following content:

.RUN dot command

RUN searches a path to locate and execute a program with filename matching the criteria.

The PATH is held in an environment variable stored in file /sys/env.cfg. It has the following form:

PATH = /demos/*;/games;/games/*;/games/zx81/*

Each line in env.cfg can contain a name = value 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.

PATH is a list of directories that should be searched to locate executables. Each directory is separated by a ;. Backward slashes are ok and will be changed to forward, leading and trailing spaces are ok. Spaces inside names are ok.

A trailing /* means all the directories contained in that directory will be searched. So /games/* means all directories in /games will be searched; note it does not mean /games itself will be searched and that is why you will see both /games and /games/* in the example above.

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.

Options allow listing of all filename matches and executing matches other than the first.

Programs having the following extensions are identified as executable:

bas, dot, nex, o, p, sna, snx, tap, z80

Compiling

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"--clean" -create-app

Usage

The help text is reproduced here:

.run [OPTIONS] FILE

supported extensions:  bas
dot nex o p sna snx tap z80

options:

-p = list dirs in PATH
-? = list FILE matches
-c = cd to FILE location
-r = retain cwd on clean exit
-N = select Nth FILE match

run 1.4 zx-next z88dk.org

Examples

  1. .run

Prints help.

  1. .run -p

Lists each directory in the PATH.
Places an X beside directories that don't exist.

  1. .run -? war*

Lists all executables matching war*.
The list is numbered so that a particular match can be referred to.

  1. .run -c warhawk.nex

Change to the directory where warhawk.nex is found.

  1. .run warhawk.nex

Run the first warhawk.nex found

  1. .run -2 warhawk.nex

Run the second warhawk.nex found

  1. .run castle*.tap

(Assume "castlevania.tap" exists and is the first match)

Mount castlevania.tap.
The directory will be changed to the location of the tap.

Run with:

LOAD "t:": LOAD ""

  1. .run -r castlevania.tap

Mount castlevania.tap.
The current working directory will not be changed.

Run with:

LOAD "t:": LOAD ""

  1. .run -? *batman*
    .run -5 *batman*

List all executables with batman in their names.
Run the 5th match from that list.

Notes

  1. 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's file browser which will come up with a menu allowing you to select which mode to use before mounting the tap file.

  2. 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 .reset 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 "debug tools" then "status". With the arrow keys navigate to nextreg 8 and make sure bit 6 is rest in the value there. If it isn'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 'c'. Contention will now be enabled.

Source here.

.SPREDIT

The following text describing the command was found by hand examination of its source or binary:

SprEdit

Usage :

.SPREDIT <filename> 
   to load sprite images to sprite VRAM and edit them

Source here.

.STRINGS

The command produces the following help output:

.strings file [-n num]
 [-s string] [-t {o,d,x}]
 [-w] [-f] [-o file] [-a file]

 -n = set min string len (4)
 -s = print separator ("\n")
 -t = file offset dec/oct/hex
 -w = make \r\n part of string

 -f = overwrite permitted
 -o = output filename
 -a = append filename

no -o,-a prints to screen

strings v1.2 zx-next z88dk.org

The source distribution has a markdown README file with the following content:

.STRINGS dot command

To use, copy "STRINGS" to the sd card's DOT directory.

Compiling

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"--clean" -create-app

Usage

.strings entered on its own at the basic prompt will print help.

This utility searches for ascii text strings stored in files. Results can be printed to screen or saved to an output file.

The help text is reproduced here:

.strings file [-n num]
 [-s string] [-t {o,d,x}]
 [-w] [-f] [-o file] [-a file]

 -n = set min string len (4)
 -s = print separator ("\n")
 -t = file offset dec/oct/hex
 -w = make \r\n part of string

 -f = overwrite permitted
 -o = output filename
 -a = append filename

no -o,-a prints to screen

strings v1.2 zx-next z88dk.org

Examples

  1. Look for strings at least 6 chars long. If found print the file offset in hex along with the string. Output to screen.
.strings knight.sna -n 6 -t X
  1. Look for strings and save findings to an output file. Print file offset in decimal and print a separator between findings.
.strings knight.sna -t d -s ------- -o string.txt

Source here.

.SYNC

This command is not part of the standard distribution at this time.

Source here.

.TAPEIN

The command produces the following help output:

TAPEIN v1.0 by Garry Lancaster
Change tape input to .TAP file

SYNOPSIS:
 .TAPEIN [OPTION]... [FILE]

OPTIONS:
 -v, --verbose
     Verbose output
 -h, --help
     Display this help
 -c, --close
     Close input file
 -r, --rewind
     Rewind to start
 -s, --setptr <block>
     Set tape block pointer
 -p, --pause
     Toggle screen pause
 -l, --simulate
     Toggle loading simulation

Use LOAD "t:" before loading

Source here.

.TAPEOUT

The command produces the following help output:

TAPEOUT v1.0 by Garry Lancaster
Change tape output to .TAP file

SYNOPSIS:
 .TAPEOUT [OPTION]... [FILE]

OPTIONS:
 -v, --verbose
     Verbose output
 -h, --help
     Display this help
 -c, --close
     Close input file
 -o, --overwrite
     Overwrite instead of append

Use SAVE "t:" before saving

Source here.

.TIME

The command produces the following help output:

TIME V3.5 usage: 
time <ENTER>
show current time

time "HH:MM:SS" <ENTER>
set the time

time -d{i} <ENTER>
show current time, no ACK test
i - wipe RAM ID signature.

-wRRHH{HH} - write upto 54 0xHH
bytes into reg/ram from 0xRR.

-rNNRR - read 0xNN bytes 

-n - RTC.SYS API call result.

Time is in 24 Hour mode

Source here.

.TOSPRRAM

The following text describing the command was found by hand examination of its source or binary:

.TOSPRRAM <filename> to load sprite images to sprite VRAM

(Closed source?)

.TXT2BAS

The command produces the following help output:

TXT2BAS v1.5 by Garry Lancaster
Convert text file to BASIC

SYNOPSIS:
.TXT2BAS [OPT] TXTFILE [BASFILE]

OPTIONS:
 -v, --verbose
   Show lines during processing
 -a, --always-write
   Write even if syntax errors
 -h, --help
   Display this help

Supported directives in text:

 #program PRGNAME
   Start of main BASIC code
   (file is PRGNAME.BAS)

 #bank BNKNAME
   Start of banked section
   (file is PRGNAME-BNKNAME.BNK)

 #bankfile BNKFILENAME
   Start of banked section
   (file is BNKFILENAME)

 #autostart LINE
   Program autostarts at LINE

 #autostart
   Autostarts at following line

 #autoline LINE,STEP
   Start auto-numbering

 #autoline LINE
   Start auto-numbering(step=10)

 #autoline
   Stop auto-numbering

(Other lines starting # ignored)

Source here.

.UART

The following text describing the command was found by hand examination of its source or binary:

 Simple ZX Next Terminal
by Tim Gilberts based on code
originally by Victor Trucco.
EDIT - change BAUD rate
CAPS LOCK - ON/OFF (default ON)
TRUE VIDEO - Debug CIPSEND/IPD
INV VIDEO - CIPSEND mode ON/OFF
GRAPHICS - EMIT EOT (1Ah)
To exit press Sym Shift + SPACE
Start with -f{i} option to find ESP

Source here.

.UNINSTALL

The command produces the following help output:

UNINSTALLv1.2 by Garry Lancaster
Uninstalls a NextZXOS driver

SYNOPSIS:
 .UNINSTALL NAME.DRV

Source here.

.UUENCODE

The following text describing the command was found by hand examination of its source or binary:

UUENCODE v0.1 by Xalior

USAGE:
  .UUENCODE input.bin output.txt

(Closed source?)