Do the version string pointer in the file header correctly.
authorhpa <hpa>
Wed, 2 Jan 2002 07:46:56 +0000 (07:46 +0000)
committerhpa <hpa>
Wed, 2 Jan 2002 07:46:56 +0000 (07:46 +0000)
memdisk/init.S16
memdisk/setup.c

index b07dc5b..b6be648 100644 (file)
@@ -46,10 +46,9 @@ _start:
                .word   0x0203          # header version number (>= 0x0105)
                                        # or else old loadlin-1.5 will fail)
 realmode_swtch:        .word   0, 0            # default_switch, SETUPSEG
-start_sys_seg: .word   0
-               .word   kernel_version  # pointing to kernel version string
-                                       # above section of header is compatible
-                                       # with loadlin-1.5 (header v1.5).
+start_sys_seg: .word   0               # obsolete
+version_ptr:   .word   memdisk_version-0x200
+                                       # pointing to kernel version string
 
 type_of_loader:        .byte   0               # = 0, old one (LILO, Loadlin,
                                        #      Bootlin, SYSLX, bootsect...)
@@ -179,8 +178,3 @@ endcmd:
                movw %si,%gs
                movw %si,%ss
                ljmp $0,$0x7c00         # Entrypoint at 0000:7C00
-
-               .section ".rodata", "a"
-kernel_version:        .ascii "MEMDISK ..."
-               .byte 0
-
index c7560d3..5a6faa1 100644 (file)
 #include <stdint.h>
 #include "e820.h"
 #include "conio.h"
+#include "version.h"
 
-#define FIRSTYEAR "2001"
-#define COPYYEAR  "2002"
+/* A pointer to this is stored in the header */
+const char memdisk_version[] =
+"MEMDISK " VERSION " " DATE
+"  Copyright " FIRSTYEAR "-" COPYYEAR " H. Peter Anvin";
 
 extern const char _binary_memdisk_bin_start[], _binary_memdisk_bin_end[];
 extern const char _binary_memdisk_bin_size[]; /* Weird, I know */
@@ -438,8 +441,7 @@ uint32_t setup(void)
   int total_size;
 
   /* Show signs of life */
-  puts("MEMDISK " VERSION " " DATE
-       "  Copyright " FIRSTYEAR "-" COPYYEAR " H. Peter Anvin\n");
+  printf("%s\n", memdisk_version);
 
   if ( !shdr->ramdisk_image || !shdr->ramdisk_size ) {
     puts("MEMDISK: No ramdisk image specified!\n");