dmt@hocsl.UUCP (10/24/84)
Thanks to everybody who offered help on my problem: > I now have an assembly language program whose entire script is: > > abc segment common > xyz proc > assume cs:abc,ds:abc > ; > int 20H ; don't do anything, just halt > ; > xyz endp > abc ends > end > > If I run it under DEBUG, it terminates normally. > If I run it from a .BIN file (even right after a boot), > the system hangs. It DOES compile OK, into the single > interrupt instruction. > I've done this on three different PCDOS machines, each > with its own system disk. Same result each time. > > I have now narrowed it down to, > "I must be doing something very stupid; somebody please > set me straight." I received good suggestions from Jim Schimpf of Utah and Bob Eager of U. of Kent. However, Rex Knepp of PSUVM.BITNET proved that I was indeed "doing something very stupid." His suggestion was trivial to implement, and solved the problem in straight-forward fashion for both the dummy program and the real one. After running the .EXE file through EXE2BIN, I was left with the .EXE file and a new .BIN file. DOS doesn't run .BIN files; you have to rename them .COM. Moreover, with the .EXE file still hanging around, DOS was running that instead. Apparently .EXE files don't do so well with INT 20. (I bet Jim Schimpf's idea using a FAR_RET would help here.) Anyway, the problem was solved by: DEL ABC.EXE REN ABC.BIN ABC.COM And of course it ran under DEBUG. After all, I was debugging a real .COM file under a different name. Thanks, Rex. Dave Tutelman