Short:        virtual machine, assembler like language
Author:       jay-t@gmx.net (Stefan Pietzonke)
Uploader:     jay-t gmx net (Stefan Pietzonke)
Type:         dev/lang
Version:      1.1.2
Architecture: m68k-amigaos >= 2.0.0
Required:     AmigaOS 2.0, ixemul library, 68020+, 2+ MB

Long:
    Nano is a portable virtual machine.

    The programming language is assembler like, but it's easy to learn.
    IMHO.

    The main features are:

    - types: byte, short int, long int, double and string.
    - arrays
    - console in-/output
      ANSI output functions: text styles, text locating, cursor moving...
    - file in-/output
    - easy to use TCP/IP
    - open source (GPL)

The manual is available in English and German.
You can find the source on my homepage: www.jay-t.de


nano (1.1.2)

updated: include/host.h, assemb/loadp.c, vm/main.c, ChangeLog (uploaded)
updated global_d.h

changed env variable handling to set defaults if not set:

NANOPROG:
OS_AMIGA || OS_AROS:
"Work:nano/prog/"

OS_LINUX:
"~/nano/prog/"

OS_WINDOWS:
"C:/nano/prog/"


NANOINC:
OS_AMIGA || OS_AROS:
"Work:nano/include/"

OS_LINUX:
"/usr/local/share/nano/include/"

OS_WINDOWS:
"C:/nano/include/"

Changed type for int to int from long, for 64 bit compatbility.
Now nano compiles as 64 bit version.

-- Stefan Pietzonke <jay-t@gmx.net>  Fri, 6 Aug 2010 16:00 +0200


nano (1.1.1)
    * new opcodes:
    inc_ls_jmp_l, inc_lseq_jmp_l, dec_gr_jmp_l, dec_greq_jmp_l
    inc_ls_jsr_l, inc_lseq_jsr_l, dec_gr_jsr_l, dec_greq_jsr_l

    to speedup loops.

    Example:
    inc_l           L1;
    lseq_jmp_l      L1, L2, loop;

    can be replaced with:

    inc_lseq_jmp_l  L1, L2, loop;

    which is faster.

    * changed directory name to nanovm, to avoid some name confusion
    with the nano editor by the debian package stuff.
    If I do checkinstall.

-- Stefan Pietzonke <jay-t@gmx.net>  Sun, 7 Feb 2010 10:20 +0100


nano (1.1.0)
    AROS port (nanoa, nano)

-- Stefan Pietzonke <jay-t@gmx.net>  Fr, 1 Jan 2010 21:15 +0100


nano (1.0.9)
    * new opcodes: stelements, gettype

-- Stefan Pietzonke <jay-t@gmx.net>  Sat, 3 Oct 2009 00:39 +0200


nano (1.0.8)
    * new opcodes: stgettype, getaddress, pointer
    for indirect addressing of arrays.

    See the pdf manual for more.

-- Stefan Pietzonke <jay-t@gmx.net>  Sat,  29 Aug 2009 12:21 +0200


nano (1.0.7)
    * changed some things in watchdog.c
    * All nano include files changed to lowercase variable
      names to avoid some strange things in the assembler.
    * New: the flow gfx headers released together with the
      flow sources on www.jay-t.de/nano

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  5 July 2009 09:50 +0200


nano (1.0.6)
    * added watchdog.c for debugging, it adds memory protection
    to all constant variables. For debugging only.

-- Stefan Pietzonke <jay-t@gmx.net>  Sat,  20 June 2009 13:07 +0200


nano (1.0.5)
    Now assembler and VM show the filenames with error messages.
    New -includes assembler option.

-- Stefan Pietzonke <jay-t@gmx.net>  Fri,  3 Apr 2009 22:10 +0200


nano (1.0.4)
    * added suport for hex numbers in the assembler:
      exp: &FF% in var.c/conv_hex

-- Stefan Pietzonke <jay-t@gmx.net>  Sat,  7 Mar 2009 13:06 +0100


nano (1.0.3)
    * added support for binary numbers in the assembler:
      exp: B1001%, in var.c/conv_binary to t_var.digitstr

-- Stefan Pietzonke <jay-t@gmx.net>  Sat,  14 Feb 2009 17:17 +0100


nano (1.0.2)
    * more DEBUG printfs
      cleanup

-- Stefan Pietzonke <jay-t@gmx.net>  Wed,  14 May 2008 21:10 +0200


nano (1.0.1)
    * bugfix: assembler: lab now warns if the label was already defined.
      jumplist[i].islabel is set by opcode.c

    * change: vm/exe_main.c: input_l and input_d
      uses now fgets and sscanf for input reading.

    * bugfix: sqrt_d wanted three arguments. Changed to two and works now.

-- Stefan Pietzonke <jay-t@gmx.net>  Fri,  11 Jan 2008 20:12 +0100


nano (1.0.0)
    * new opcode: show_stack, prints the stack for debugging

    * bugfix: vm/exe_main.c: add_s uses now STRING_TMP_1 and STRING_TMP_2
      variables for temp use, to avoid possible memory overlapping by
      strcat().

    * bugfix: vm/exe_socket.c: added MSG_NOSIGNAL in exe_sread and
      exe_swrite, to avoid programm exit on SIGPIPE when other side
      of socket is closed during read/write.

      Checked on Linux.

    * bugfix: vm/exe_socket.c: exe_sread_line_string
      now breaks read, if the reading fails at first char.

      Added checking for the right range of slist_ind, the socket index,
      on all write functions. This fixes the illegal read bug.

-- Stefan Pietzonke <jay-t@gmx.net>  Tue,  14 Dec 2007 07:14 +0100


nano (0.99.10)
    * bugfix: openo.c bytecode verifier
      sets now a return value

    * loadp.c: conv_include_name
      fixed possible overflow through env variable reading

    * vm/arch.h, vm/exe_process.c
      changed the Windows sleep() function to Sleep()

-- Stefan Pietzonke <jay-t@gmx.net>  Mon,  26 Feb 2007 20:52 +0100


nano (0.99.9)
    * bugfixes: memory leaks in the assembler again!
      Now you get an error message, if the source file is too long.

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  27 Aug 2006 01:20 +0200


nano (0.99.8)
    * bugfixes: memory leaks in the assembler fixed.

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  30 Jul 2006 18:33 +0200


nano (0.99.7)
    * code cleanup

-- Stefan Pietzonke <jay-t@gmx.net>  Fri,  21 Jul 2006 11:02 +0200


nano (0.99.6)
    * added move_a_s and move_s_a opcodes for string arrays

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  18 Jul 2006 10:05 +0200


nano (0.99.5)
    * added assembler: new warning if end of line mark (semicolon)
      is not set. Some preprocessor bugfixes.

    * MAXVARNAME = 64, MAXJUMPNAME = 64
      Variable names and label names can now be 64 chars long.

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  25 Jun 2006 18:00 +0200


nano (0.99.4)
    * new assembler preprocessor functions:
      #unsetreg_all_l
      #unsetreg_all_d

      for unsetting all L or D register names

-- Stefan Pietzonke <jay-t@gmx.net>  Thu,  15 Jun 2006 19:08 +0200


nano (0.99.3)

    * added -stacks cli option, for stacksize override

-- Stefan Pietzonke <jay-t@gmx.net>  Sat,  3 Jun 2006 20:12 +0200


nano (0.99.2)

    * Updated the random number generator to the new Mersenne Twister
      mt19937ar.c from Makoto Matsumoto and Takuji Nishimura, 2002/1/26

      http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  24 Apr 2006 18:31 +0200


nano (0.99)

    * Added stack functions

-- Stefan Pietzonke <jay-t@gmx.net>  Sun,  23 Apr 2006 01:11 +0200


nano (0.98)

    * Added bytecode verifier
    * Added _os variable and host.nah include.
      See info.na program

    * bugfixes:
      vm/exe_socket.c: removed error in the accept() call.
      vm/exe_process.c: Linux code fixed

    * Manual updated

    * exe_socket.c
      Patched the Windows socket includes to use "winsock2" and "ws2tcpip.h".
      Because "socklen_t" is not declared in "winsock.h".

      Amiga: defined "socklen_t". It's not in the includes.

 -- Stefan Pietzonke <jay-t@gmx.net>  Thu,  6 Apr 2006 23:30 +0200


nano (0.97.4)

    * Added NEWS, README
      Sources converted to unix LF format

 -- Stefan Pietzonke <jay-t@gmx.net>  Wed,  7 Sep 2005 21:37:12 +0200


nano (0.97.3)

    * Added GNU build environment

 -- Roland Stigge <stigge@antcom.de>  Sat,  3 Sep 2005 13:17:57 +0200