[comp.os.os2.programmer] Beginner's questions

melling@cs.psu.edu (Michael D Mellinger) (12/06/90)

I have several questions that I am hoping someone can answer.

First, I am using MS C 6.0 and OS/2 1.2.

1. How can I compile a file that will run under DOS, Windows and OS2?
   I would like to include EGA resolution graphics with color.  The
   program also includes BIOS calls.  I set the compiler flags -G2 -Lr
   -AL(plus many others) and then tried to use the BIND command, but it
   gave me an invalid executable file error.

2. Is there a Unix make available?

3. Is Emacs(GNU flavor) available?  I am currently using Freemacs in
   DOS mode.  It is pretty good except that it doesn't have an undo.
   Can Microsoft's M editor be made to emulate Emacs?  Also, can I
   swap the Control and Caps Lock key in OS/2?

4. Can the OS/2 DOS box be run in a window instead of full-screen?

5. Finally, does a FAQ exist for this newsgroup, and is there a good
   anonoymous ftp site for OS/2 binaries and source.

I am presently making modifications to a program that was written in
DOS, and I would like to move from Windows 3.0 to OS/2 as my
development platform.  Any help or other suggestions in how to make
OS/2 a more productive platform will be greatly appreciated.

Thanks,
Mike

tanith@csd4.csd.uwm.edu (Michael D Kretzer) (12/08/90)

>1. How can I compile a file that will run under DOS, Windows and OS2?
>  I would like to include EGA resolution graphics with color.  The
>  program also includes BIOS calls.  I set the compiler flags -G2 -Lr
>  -AL(plus many others) and then tried to use the BIND command, but it
>  gave me an invalid executable file error.

        Compiling ONE file that can run under DOS, Windows and OS/2, would
        take some doing and would be very difficult if not impossible if
        you're working with the various Presentation Manager Flavors.
        As far as full-screen programs go (which I assume you are working
        with right now), to write something that would work in OS/2 and DOS,
        you need to use only Family API functions in your program in order
        to use the BIND command, and then you would run it as a DOS program 
        in Windows.  You cannot use BIOS calls (at least the ones that you're
        used to using in DOS) in OS/2, you must translate them to API functions,
        and their ilk if you want to program in OS/2.

>3. Is Emacs(GNU flavor) available?

        Yes, it's available by anonymous ftp on isca.icaen.uiowa.edu,
        they also have several OS/2 binaries and source in a directory
        something like /pub/os2...

>4. Can the OS/2 DOS box be run in a window instead of full-screen?

        As far as I know, you cannot run the OS/2 DOS box in a window.

jonka@microsoft.UUCP (Jonathan KAGLE) (12/18/90)

In article <Fpcbqln3@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes:
>I have several questions that I am hoping someone can answer.
>First, I am using MS C 6.0 and OS/2 1.2.
>1. How can I compile a file that will run under DOS, Windows and OS2?
>   I would like to include EGA resolution graphics with color.  The
>   program also includes BIOS calls.  I set the compiler flags -G2 -Lr
>   -AL(plus many others) and then tried to use the BIND command, but it
>   gave me an invalid executable file error.

This is not possible without writing a special layer to intercept BIOS and
graphics calls under OS/2 and Windows.  Due to their very nature, OS/2 and
Windows will not allow direct access to video RAM or BIOS.  You must use
system calls to perform these functions.

BIND will only work on OS/2 programs that use family API calls.  These are
unfortunately limited to text.  Microsoft sells a Software Migration Kit that
allows easy porting of Windows code to OS/2.  Since DOS does not have any
built-in graphics support, you must write your own video drivers or use 
GRAPH.LIB that comes with Microsoft languages.

>2. Is there a Unix make available?

NMAKE that comes with C6 is _very_ similar to UNIX make.  It can run almost
all UNIX makefiles with few if any changes.

>3. Is Emacs(GNU flavor) available?  I am currently using Freemacs in
>   DOS mode.  It is pretty good except that it doesn't have an undo.
>   Can Microsoft's M editor be made to emulate Emacs?  Also, can I
>   swap the Control and Caps Lock key in OS/2?

I believe that there was an OS/2 EMACS posted to comp.binaries.os2 a while 
back.  You can edit the key bindings in M or PWB and write editor extensions
and macros to add functionality, but they cannot totally emulate EMACS.  I
would highly recommend using PWB instead of M under PWB.  It provides far
greater functionality (help, menus, extensibility) with few disadvantages
(especially if you leave it running in the background).

I don't know of any utilities that can remap the CAPS LOCK key under OS/2.

>4. Can the OS/2 DOS box be run in a window instead of full-screen?

No.  :-(

>I am presently making modifications to a program that was written in
>DOS, and I would like to move from Windows 3.0 to OS/2 as my
>development platform.  Any help or other suggestions in how to make
>OS/2 a more productive platform will be greatly appreciated.

If your DOS program uses custom graphics routines, you will have quite a bit
of work ahead of you.  Once you have converted your application to Windows,
You will find that the transition to OS/2 (or the Macintosh, for that matter)
is not too tough.

>Thanks,
>Mike

     You're welcome,

       -Jonathan