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 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 Sun, 7 Feb 2010 10:20 +0100 nano (1.1.0) AROS port (nanoa, nano) -- Stefan Pietzonke Fr, 1 Jan 2010 21:15 +0100 nano (1.0.9) * new opcodes: stelements, gettype -- Stefan Pietzonke 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 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 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 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 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 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 Sat, 14 Feb 2009 17:17 +0100 nano (1.0.2) * more DEBUG printfs cleanup -- Stefan Pietzonke 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 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 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 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 Sun, 27 Aug 2006 01:20 +0200 nano (0.99.8) * bugfixes: memory leaks in the assembler fixed. -- Stefan Pietzonke Sun, 30 Jul 2006 18:33 +0200 nano (0.99.7) * code cleanup -- Stefan Pietzonke 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 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 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 Thu, 15 Jun 2006 19:08 +0200 nano (0.99.3) * added -stacks cli option, for stacksize override -- Stefan Pietzonke 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 Sun, 24 Apr 2006 18:31 +0200 nano (0.99) * Added stack functions -- Stefan Pietzonke 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 Thu, 6 Apr 2006 23:30 +0200 nano (0.97.4) * Added NEWS, README Sources converted to unix LF format -- Stefan Pietzonke Wed, 7 Sep 2005 21:37:12 +0200 nano (0.97.3) * Added GNU build environment -- Roland Stigge Sat, 3 Sep 2005 13:17:57 +0200