More thrashing around with DOS Frotz
authorDavid Griffith <dave@661.org>
Wed, 15 Aug 2012 20:49:51 +0000 (13:49 -0700)
committerDavid Griffith <dave@661.org>
Wed, 15 Aug 2012 20:49:51 +0000 (13:49 -0700)
src/blorb/blorblib.c
src/dos/bcinit.c

index 0ea93a0d678c4a480c744d912019ffcb73ac3960..b0d4f718011afb64dc0448ff8e2c1eb385bb8e50 100644 (file)
@@ -95,10 +95,18 @@ bb_err_t bb_create_map(FILE *file, bb_map_t **newmap)
     if (err)
         return bb_err_Read;
 
+/* FIXME.  Under 16-bit DOS, this fails.
+ * From the following url: "'unsigned long' variables don't work in 
+ * 16-bit mode."  How do I get around this?
+ * http://www.digitalmars.com/d/archives/c++/dos/16-bits/45.html
+ */
     readlen = fread(buffer, sizeof(uint32), 3, file);
     if (readlen != 3)
         return bb_err_Read;
 
+printf("buffer0 %i should be %i\n", bb_native4(buffer[0]), bb_ID_FORM);
+printf("buffer2 %i should be %i\n", bb_native4(buffer[2]), bb_ID_IFRS);
+
     if (bb_native4(buffer[0]) != bb_ID_FORM)
         return bb_err_Format;
     if (bb_native4(buffer[2]) != bb_ID_IFRS)
index 742fd6e57b9fa04bef4466323fa1ab2559aca2bc..247e4b03617bad5b2e39ed966a3918036d0cc7ed 100644 (file)
@@ -928,6 +928,7 @@ int dos_init_blorb(void)
      (char *)basename(blorb_file), 55) == 0) {\r
        if ((blorbfile = fopen(blorb_file, "rb")) == NULL)\r
            return bb_err_Read;\r
+/* Under DOS, bb_create_map() returns bb_err_Format */\r
        blorb_err = bb_create_map(blorbfile, &blorb_map);\r
 \r
        if (blorb_err != bb_err_None) {\r