I know that in DOS i can write anywhere including on the OS or other things.
But DOS says that which memory locations can be used. I created a really huge
program in C built up from more than ten modules having an EXE larger than
90Kb (This is a very big program at Turbo C), but i never ran in problems like
at QBasic.
The problem was rised this way (As i said before):
I had a module in which i had this line in a FUNCTION:
tmp& = array1&(i%) + array2&(j%)
Then i added some new parts somewhere else to this program, and then it failed.
I could not believe, so i tested many times:
tmp& = array1&(i%)
tmp& = tmp& + array2&(j%)
worked, but the code above did not. Originally it worked, and when running
from the IDE this problem not rises.
So simply adding the arrays together WORKED both compiled and not compiled in
the original form. After inserting some new parts the first way FAILED in the
compiled form, but WORKED in the IDE. When replacing only that piece of code
to the second form, it both WORKED compiled and in the IDE.
I do not really think that this happened because of DOS is not protected...
The mouse bug: I must tell it again: look in my previous posts. I really tested
it on all those configurations, and it failed (Not only my current version of
QB, but all including a v4.0 and an another copy of v4.5).
So if something is corrupt here it is the Hungarian government which built the
same bug in all of the computers arriving to Hungary for some heavy bundles of
money... (Just joking
)
Compilers... I think BASIC should be never written based on C but based on
ASM... If someone writes BASIC based on C it is something like building up
Linux based on Windows 95. The BASIC language has a completely different
style to C, but it is near to ASM in structure. So building a BASIC compiler
should be started on ASM, not C (I do not say that the compiler itself must
be written in ASM, but it should compile BASIC directly to ASM. I think writing
a BASIC "compiler" using NASM would be a very good idea).