Fixed bug in menu generator where ANSI escapes did not work. Mknbi_1_4_2
authorKen Yap <ken_yap@users.sourceforge.net>
Sat, 9 Aug 2003 23:44:24 +0000 (23:44 +0000)
committerKen Yap <ken_yap@users.sourceforge.net>
Sat, 9 Aug 2003 23:44:24 +0000 (23:44 +0000)
Was broken by introduction of LUA interpreter.

LOG
Makefile
ansiesc.c
luabuild/luapatch.txt
mknbi.pl

diff --git a/LOG b/LOG
index 679ee4b..c66a7b3 100644 (file)
--- a/LOG
+++ b/LOG
@@ -198,3 +198,8 @@ data location.
 + Warn if in a .UTF-8 locale as this may affect binary string handling.
 
 Released as mknbi-1.4.1 (production)
+
++ Fixed bug in menu generator where ANSI escapes did not work. Was
+broken by introduction of LUA interpreter.
+
+Released as mknbi-1.4.2 (production)
index 3f3d0ce..1fbb91e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
-VERSION=1.4.1
+VERSION=1.4.2
 EXTRAVERSION=
-TARVERSION=1.4.1
+TARVERSION=1.4.2
 # spec file can override
 RPMVERSION=$(VERSION)
 
@@ -32,7 +32,8 @@ MENURELOC=    0x60000
 # Available: -DANSIESC -DMOTD -DUSRPARMS -DPASSWD
 # -DCONSOLE_CRT -DCONSOLE_SERIAL -DSHOW_NUMERIC -DPOWERSAVE
 # Might as well take the lot since code size is not a concern
-BOOTMENU_FLAGS=        -DCONSOLE_CRT -DANSIESC -DMOTD -DUSRPARMS -DPASSWD -DPOWERSAVE -DCOMCONSOLE=0x3f8 -DCOMPRESERVE
+# Must pick ANSIMODE=1 if ANSIESC is chosen
+BOOTMENU_FLAGS=        -DCONSOLE_CRT -DANSIESC -DANSIMODE=1 -DMOTD -DUSRPARMS -DPASSWD -DPOWERSAVE -DCOMCONSOLE=0x3f8 -DCOMPRESERVE
 
 PREFIX=                /usr/local
 INSTPREFIX=    $(BUILD_ROOT)$(PREFIX)
index 900e212..6d19974 100644 (file)
--- a/ansiesc.c
+++ b/ansiesc.c
@@ -227,7 +227,7 @@ static void docommand(unsigned char ch)
     cy = argi[0];
     cx = argi[1];
     updatecursor:
-    int10(0x0200,256*scr,0,256*(cy-1)+(cx-1)); }
+    int10(0x0200,256*scr,0,256*cy+cx); }
   else if (ch == 'A') { /* move cursor up */
     if (cy < argi[0]) cy = 0;
     else              cy -= argi[0];
@@ -317,7 +317,7 @@ void ansi_putc(unsigned int ch)
                256*scr+(0x7F&(pix[0]*16+pix[1])),1,0); }
        if (!in_gfx)
          int10(0x0200,256*scr,0,        /* restore cursor position */
-               256*(cy-1)+(cx-1)); }
+               256*cy+cx); }
       else if (gfx_x < gfx_columns && gfx_y < gfx_rows)
        int10(0x0C00|                    /* write pixel */
              (ch <= 7 ? coltable[ch] : ch),256*scr,gfx_x++,gfx_y); }
@@ -463,6 +463,6 @@ void ansi_putc(unsigned int ch)
 #endif
       }
     updatecursor:
-      int10(0x0200,256*scr,0,256*(cy-1)+(cx-1)); /* update cursor position */ } }
+      int10(0x0200,256*scr,0,256*cy+cx); /* update cursor position */ } }
   return;
 }
index a441d1b..c020f52 100644 (file)
@@ -12,7 +12,6 @@ diff -ur --exclude='*.a' --exclude='*.o' --exclude='*.map' --unidirectional-new-
        cd src/lua; $(MAKE) $@
  
  # remove debug information from binaries
-Binary files /usr/local/src/lua-4.0.1/bin/lua and lua-4.0.1/bin/lua differ
 diff -ur --exclude='*.a' --exclude='*.o' --exclude='*.map' --unidirectional-new-file /usr/local/src/lua-4.0.1/config lua-4.0.1/config
 --- /usr/local/src/lua-4.0.1/config    2000-11-07 07:28:20.000000000 +1100
 +++ lua-4.0.1/config   2003-01-13 10:49:43.000000000 +1100
index 643f9d2..4429e17 100644 (file)
--- a/mknbi.pl
+++ b/mknbi.pl
@@ -576,6 +576,9 @@ binmode(STDOUT);
 
 if ($format eq 'nbi') {
        $first32 = '' if !defined($first32);
+       if ($target ne 'rom' and $target ne 'dos' and $target ne 'fdos') {
+               print STDERR "mkelf-$target is preferred in future instead of mknbi-$target\n";
+       }
        $module = Nbi->new($libdir);
 } elsif ($format eq 'elf') {
        $first32 = '' if !defined($first32);
@@ -630,20 +633,20 @@ B<mknbi> --version
 
 B<mknbi> --format=I<format> --target=I<target> [--output=I<outputfile>] I<target-specific-arguments>
 
-B<mknbi-linux> [--output=I<outputfile>] I<kernelimage> [I<ramdisk>]
-
 B<mkelf-linux> [--output=I<outputfile>] I<kernelimage> [I<ramdisk>]
 
-B<mknbi-rom> [--output=I<outputfile>] I<ROM-image>
+B<mknbi-linux> [--output=I<outputfile>] I<kernelimage> [I<ramdisk>]
 
-B<mknbi-menu> [--output=I<outputfile>] [I<dataimage>]
+B<mknbi-rom> [--output=I<outputfile>] I<ROM-image>
 
 B<mkelf-menu> [--output=I<outputfile>] [I<dataimage>]
 
-B<mknbi-nfl> [--output=I<outputfile>] [I<dataimage>]
+B<mknbi-menu> [--output=I<outputfile>] [I<dataimage>]
 
 B<mkelf-nfl> [--output=I<outputfile>] [I<dataimage>]
 
+B<mknbi-nfl> [--output=I<outputfile>] [I<dataimage>]
+
 B<mkelf-lua> [--output=I<outputfile>] I<luabin>
 
 B<mknbi-fdos> [--output=I<outputfile>] I<kernel.sys floppyimage>
@@ -682,12 +685,12 @@ executables can be run, because it looks for library files.
 
 Each of the variants will be described separately.
 
-=head1 MKNBI-LINUX
+=head1 MKELF-LINUX
 
-B<mknbi-linux> makes a tagged image from a Linux kernel image, either
-a zImage or a bzImage.
+B<mkelf-linux> and B<mknbi-linux> makes a boot image from a Linux kernel
+image, either a zImage or a bzImage.
 
-=head1 MKNBI-LINUX OPTIONS
+=head1 MKELF-LINUX OPTIONS
 
 B<--param=>I<string> Replace the default parameter string with the
 specified one. This option overrides all the following options so you
@@ -745,7 +748,7 @@ the following way:
 
 C<--ip=>I<client:server:gateway:netmask:hostname[:dev[:proto]]>
 
-Using this option B<mknbi-linux> will automatically convert system names
+Using this option B<mkelf-linux> will automatically convert system names
 into decimal IP addresses for the first three entries in this string.
 The B<hostname> entry will be used by the kernel to set the host name of
 the booted Linux diskless client.  When more than one network interface
@@ -804,14 +807,14 @@ suffixes are uppercase. This kernel parameter can be specified in
 
 Run the program thus:
 
-C<mknbi-linux> I<kernel-image> [I<ramdisk-image>] > C<linux.nb>
+C<mkelf-linux> I<kernel-image> [I<ramdisk-image>] > C<linux.nb>
 
 Then move F<linux.nb> to where the network booting process expects to
 find it.
 
-=head1 MKNBI-LINUX BOOTP/DHCP VENDOR TAGS
+=head1 MKELF-LINUX BOOTP/DHCP VENDOR TAGS
 
-B<mknbi-linux> includes a startup code at the beginning of the Linux
+B<mkelf-linux> includes a startup code at the beginning of the Linux
 kernel which is able to detect certain BOOTP vendor defined tags. These
 can be used to modify the kernel loading process at runtime. To use
 these tags with bootpd, a publicly available BOOTP server daemon, you
@@ -823,21 +826,21 @@ For example, to specify a different root NFS device, you can use:
 
 C<T130="eth1">
 
-The following tags are presently supported by B<mknbi-linux>:
+The following tags are presently supported by B<mkelf-linux>:
 
 B<129> The I<string> value given with this tag is appended verbatim to
 the end of the kernel command line.  It can be used to specify arguments
 like I/O addresses or DMA channels required for special hardware
 like SCSI adapters, network cards etc. Please consult the Linux kernel
 documentation about the syntax required by those options. It is the same
-as the B<--append> command line option to B<mknbi-linux>, but works at
+as the B<--append> command line option to B<mkelf-linux>, but works at
 boot time instead of image build time.
 
 B<130> With this tag it is possible to the select the network adapter
 used for mounting root via NFS on a multihomed diskless client. The
 syntax for the I<string> value is the same as for the C<dev> entry used
 with the B<--ip=> option as described above. However note that the
-B<mknbi-linux> runtime setup routine does not check the syntax of the
+B<mkelf-linux> runtime setup routine does not check the syntax of the
 string.
 
 The same tags will work in DHCP with the appropriate syntax for your
@@ -849,30 +852,30 @@ vendortags.
 
 =head1 MKNBI-ROM
 
-B<mknbi-rom> makes a tagged image from an Etherboot C<.rom> or C<.lzrom>
+B<mknbi-rom> makes a boot image from an Etherboot C<.rom> or C<.zrom>
 boot ROM image.  This allows it to be netbooted using an existing
 ROM. This is useful for developing Etherboot drivers or to load a newer
 version of Etherboot with an older one.
 
 Run mknbi like this:
 
-C<mknbi-rom nic.lzrom> > C<nic.nb>
+C<mknbi-rom nic.zrom> > C<nic.nb>
 
 Move F<nic.nb> to where the network booting process expects to find it.
 The boot ROM will load this as the I<operating system> and execute the
 ROM image.
 
-=head1 MKNBI-MENU
+=head1 MKELF-MENU
 
-B<mknbi-menu> and B<mkelf-menu> make a tagged or ELF image from an
-auxiliary menu program. Etherboot has the ability to load an auxiliary
-program which can interact with the user, modify the DHCP structure, and
-return a status.  Based on the status, Etherboot can load another
-binary, restart or exit.  This makes it possible to have elaborate user
-interface programs without having to modify Etherboot. The specification
-for auxiliary program is documented in the Etherboot Developer's Manual.
+B<mkelf-menu> and B<mknbi-menu> make a boot image from an auxiliary menu
+program. Etherboot has the ability to load an auxiliary program which
+can interact with the user, modify the DHCP structure, and return a
+status.  Based on the status, Etherboot can load another binary, restart
+or exit.  This makes it possible to have elaborate user interface
+programs without having to modify Etherboot. The specification for
+auxiliary program is documented in the Etherboot Developer's Manual.
 
-B<mknbi-menu> and B<mkelf-menu> take a binary named C<menu> from the
+B<mkelf-menu> and B<mknbi-menu> take a binary named C<menu> from the
 library directory, which is assumed to have an entry point of 0x60000.
 An optional argument is accepted, and this is loaded at 0x80000. This
 can be a data file used by the menu program.
@@ -894,10 +897,10 @@ according to the documentation.
 
 Alternate user interface programs are highly encouraged.
 
-=head1 MKNBI-NFL
+=head1 MKELF-NFL
 
-B<mknbi-nfl> and B<mkelf-nfl> make a tagged or ELF image from the NFL
-menu program. This menu program takes the names of images from a
+B<mkelf-nfl> and B<mknbi-nfl> make a boot image from the NFL menu
+program. This menu program takes the names of images from a
 menu-text-file file which just contains lines with the filenames
 (relative to the tftpd root directory) of images to load. The
 user-interface is a light-bar, similar to that used in GRUB.  There is a
@@ -905,7 +908,7 @@ sample menu-text-file in C<menu-nfl.eg>.
 
 Typical usage is:
 
-C<mknbi-nfl> C<menu-text-file> > C<nfl.nb>
+C<mkelf-nfl> C<menu-text-file> > C<nfl.nb>
 
 Then put nfl.nb in the TFTP boot directory and specify as the boot
 image. Chaining to other menus works.
@@ -931,12 +934,12 @@ in a separate document.
 
 =head1 MKNBI-FDOS
 
-B<mknbi-fdos> makes a tagged image from a FreeDOS kernel file and a
-floppy image.  Note that the kernel image is not read from the floppy
-section of the tagged image, but is a separate section in the tagged
-image. The bootloader has been adjusted to jump to it directly. This
-means the space that would be taken up on the I<floppy> by the kernel
-image file can now be used for applications and data.
+B<mknbi-fdos> makes a boot image from a FreeDOS kernel file and a floppy
+image.  Note that the kernel image is not read from the floppy section
+of the boot image, but is a separate section in the boot image. The
+bootloader has been adjusted to jump to it directly. This means the
+space that would be taken up on the I<floppy> by the kernel image file
+can now be used for applications and data.
 
 Obtain a distribution of FreeDOS with a recent kernel, probably at least
 2006. It has been tested with 2012 but nothing older. You can get the
@@ -988,7 +991,7 @@ possible if there are no hard disks found by DOS. This option is
 incompatible with --harddisk.
 
 B<--nosquash> Do not try to chop unused sectors from the end of the
-floppy image. This increases the tagged image size and hence loading
+floppy image. This increases the boot image size and hence loading
 time if the FAT filesystem on the floppy is mostly empty but you may
 wish to use this option if you have doubts as to whether the squashing
 algorithm is working correctly.
@@ -1001,9 +1004,9 @@ not a segment address, the last 4 bits are not used and should be 0.
 
 =head1 MKNBI-DOS
 
-B<mknbi-dos> makes a tagged image from a floppy image containing a
-bootable DOS filesystem.  It is not necessary to build the filesystem
-on a physical floppy if you have the mtools package, but you need a
+B<mknbi-dos> makes a boot image from a floppy image containing a
+bootable DOS filesystem.  It is not necessary to build the filesystem on
+a physical floppy if you have the mtools package, but you need a
 bootable floppy of any size to start with. First extract the boot block
 from the floppy, this boot block must match the DOS kernel files you
 will copy in the next step:
@@ -1062,7 +1065,7 @@ image is bootable by copying it onto the media, and then booting it:
 C<dd if=/tmp/floppyimage of=/dev/fd0>
 
 Then run mknbi-dos over the image F</tmp/floppyimage> to create a
-tagged image:
+boot image:
 
 C<mknbi-dos /tmp/floppyimage> > C<dos.nb>
 
@@ -1083,7 +1086,7 @@ possible if there are no hard disks found by DOS. This option is
 incompatible with --harddisk.
 
 B<--nosquash> Do not try to chop unused sectors from the end of the
-floppy image. This increases the tagged image size and hence loading
+floppy image. This increases the boot image size and hence loading
 time if the FAT filesystem on the floppy is mostly empty but you may
 wish to use this option if you have doubts as to whether the squashing
 algorithm is working correctly.
@@ -1113,7 +1116,7 @@ B<mknbi> is under the GNU Public License
 
 Ken Yap (C<ken_yap@users.sourceforge.net>)
 
-mk{nbi,elf}-nfl was contributed by Robb Main of Genedyne.
+mk{elf,nbi}-nfl was contributed by Robb Main of Genedyne.
 
 =head1 DATE