diff options
-rw-r--r-- | TODO | 5 | ||||
-rw-r--r-- | xexcat.c | 8 |
2 files changed, 11 insertions, 2 deletions
@@ -2,8 +2,9 @@ for now: These may need library (xex.c) changes: xexcat: handle run/init addresses embedded in a segment longer than 2 bytes. -xexcat: handle or at least detect DOS 1.0 executables. currently - xex_fread_seg_header() will warn about them, but that's all. +xexcat: handle or at least detect DOS 1.0 executables as + input. currently xex_fread_seg_header() will warn about them, but that's + all. xexcat: warn if an an init address occurs before the code it references. or at least if it occurs before *any* code! @@ -237,6 +237,14 @@ int main(int argc, char **argv) { /* normalize the $FFFF headers: only the first segment needs one. though if the output is DOS 1.0, it's $0984 instead. */ if(count == 1) { + if(!seg.has_ff_header) { + if(seg.start_addr == 0x0984) { + fprintf(stderr, + SELF ": %s: can't handle DOS 1.0 executables as input\n" + " Convert this file to a regular .xex with xex1to2.\n", + infile); + } + } if(dos1_output) { seg.has_ff_header = 0; fputc(0x84, out); |