[nos-bbs] jnos for dos

Glenn Thomas glennt at charter.net
Thu Apr 19 12:22:09 EDT 2007


Hi Barry!

Thanks for the details on 3.1. I never used it myself, though I think 
the Borland os/2 compiler was based on it. Also, thanks for the 
questions. Here are my answers. Remember, dumb looks are always free! ;-)

73 de Glenn

At 11:55 PM 4/18/2007, Barry Siegfried wrote:
>[Glenn Thomas <glennt at charter.net> wrote]:

<snip>

>Please forgive the stupid question Glenn, but what are "strong" and
>"weak" typing in C++ and C, respectively?  I have never heard these
>terms and would like to know what they mean.  Obviously, I'm a 'C'
>(and not a C++) guy.

The only stupid question is the one you don't ask. Strong/weak typing 
refers to variables passed as function (or subroutine in other 
languages) arguments. In weak typing, no checks are done at compile 
time, the parameter types are locally declared and taken as gospel by 
the compiler. Thus with weak typing it's allowed to call a function 
with an argument that is of type "double" and have the function treat 
it as a "long". Languages that allow this include assembler, FORTRAN 
(*sigh*) and C.

In strong typing, the compiler will check parameter types between the 
call and the target and declare an error if they don't match. You can 
usually still do a "mixed mode" call, but the compiler will force you 
to at least cast the parameter in the call to the correct type. 
Languages with this characteristic include C++, Ada, HAL/S and (I think) PL/1.

As I said before, there's nothing inherently wrong with this. It's an 
issue because mixed mode calls can result in very obscure bugs when 
it is used unintentionally.

> > Using the makefile and either the 4.0 or 4.5 command line compiler
> > I was able to compile JNOS 1.11c and f with no problems.  FWIW, I've
> > also successfully compiled JNOS 1.11X with Borland 1.5 and 2.0, but
> > there are a few gotchas there...
>
>Do you recall what those gotchas were?  I've never used anything
>other than Borland 3.1 so I am not familiar with the earlier Borland
>or Turbo-C compilers.  They were before my time.  :)

It's been a few years. The main one I remember is that some of the 
assembler pseudo-ops either didn't exist or didn't work right in the 
earlier assemblers. I don't remember which ones, though the set of 
possibilities is small because there isn't much assembly in JNOS. I 
haven't looked at JNOS2.0 to see if the assembly is still there, 
though with gcc it's not a problem.

> > One other thing about Borland, I think that 3.1 was the last release
> > that included an assembler.  After that it was an option, so be sure
> > to save the object files from assembly language modules.
>
>I believe you're right about that, which I guess means it is too bad
>for people who would need to change any assembly code in these modules.
>
>73, de Barry, K2MF >>

Yeah. I recall there being a set of object modules for those 
routines, so you could build without an assembler. In my case, I had 
the v1.5 and v2.0 versions of TASM, but decided that I'd rather not 
fight with the assembly code every time a new version of JNOS came 
out, so I invested in the latest version of TASM. It wasn't very 
cheap, but at least I could do a "make clean" without worrying. OTOH, 
I don't recall having to change any of the assembler code other than 
what was required for the older assemblers.

73 de Glenn wb6w






More information about the nos-bbs mailing list