Modula-2: Troubleshooting

compile errors - crash errors - installation problems - compile problems

As we all know, a computer is not perfect and not smart enough to understand all your needs... That's why we constructed this page! This page will be updated regularly. If you still have problems not reported here, contact us, so we can add them to this page!!
Try to report the problem (error messages, ...) as exact as possible:

  1. Could you install XDS?  No: it is an installation problem
  2. Can you open XDS? No: it is an installation problem
  3. Can you compile a program? No: it is a compile problem
  4. Does the compilation ends properly, without problems? No: you have compile errors
  5. Can you run a (simple) program? No:  crash error
Compile errors

compile error possible causes (oorzaken) solutions
call of proper procedure in expression - de procedure geeft geen waarde terug, bvb x := WrCard(...) is fout, geen x:= ervoor zetten

control variable "i" is threatened here   als je in de FOR declaratie "i" gebruikt, dan mag je die binnen de FOR-lus niet van waarde doen veranderen of gebruiken voor een andere FOR
designator is read-only
- je mag een constante niet van waarde veranderen
- de procedure heeft een VAR parameter, dan moet je een variabele meegeven (geen constante of iets als x + 1)

expected expression  waarschijnlijk niets tussen de kommas gezet in oproep van een functie:  (.... ,  , ...)
expected start of declaration - hij verwacht een declaratie (VAR, TYPE, CONST of PROCEDURE)
- je hebt bvb een BEGIN vergeten

expected start of factor - de compiler verwacht een getal of een variabele

- compiler is expecting a number for variable 

- als in array definitie ARRAY [1...10]: gebruik 2 puntjes ipv 3!!
- when in array definition ARRAY [1...10]: use 2 dots instead of 3! 
expected start of statement - hij verwacht een statement
- VAR, PROCEDURE, CONST en TYPE declaraties moeten voor de BEGIN van de module gebeuren!
- in a CASE: you forgot the '|' before a new label

expected symbol ";" - ";" vergeten op vorige lijn 
- als op laatste lijn => een END vergeten bij een IF of een FOR 
- op lijn met RETURN x; => de procedure is niet gedefinieerd dat hij een waarde returnt (output type na de haakjes vergeten)
expression out of bounds - index van een array ligt buiten de grenzen van de array (kleiner of groter)
fewer actual than formal parameters - je hebt aan de procedure te weinig parameters meegegeven. Bvb WrCard heeft 2 parameters nodig: WrCard(x,2)
- bij gebruik van constantes MAX, SIZE, MIN, ... ben je die vergeten te definieren en worden die als procedures aanzien!
- check het aantal parameters met de definitie van de procedure
identifier does not match block name - de naam na de END komt niet overeen met de procedurenaam  
identifier expected - hij verwacht hier een naam van een variabele of procedure
- als op een lijn met een END; statement, je hebt een END teveel gezet! 
incompatible types Je bent verschillende types door elkaar aan het mixen.
- toewijzingen van variabelen en procedure parameters: het type moet exact kloppen!

- in expressies moeten alle variabelen ook overeenstemmen
- vergeet niet de nodige haakjes te zetten
    vb: IF x = 1 AND y = 2 THEN  moet worden IF (x = 1) AND (y = 2) THEN 
- vergeet de .0 niet voor reele constantes (2.0 ipv 2)!!
- gebruik = in een IF, WHILE of REPEAT ipv := !!!!

- you are trying to mix 2 types, this is forbidden in expressions or when you pass/return a parameter

- check de definitie van de procedure! Zet eventueel variabelen om mbv VAL(TYPE, variabele)
- schrijf reële constantes als 2.0!!



incompatible types:

- vergeet de .0 niet voor reele constantes (2.0 ipv 2), in expressies met reele getallen!!
invalid Location 
and your compiling is stopped (actually it is the optimisation-phase of XDS)
- you have a RETURN in a FOR-loop 
- you have other strange constructs
- remember that a RETURN makes a procedure to stop!
is not an object - geef je een niet-variabel mee voor een VAR-parameter? Dit mag niet. 
bvb: procedure call "aVarProcedure(n + 1)" is niet mogelijk, 'n + 1'  is geen variabele (n op zich wel natuurlijk)
language extension is not allowed (ARRAY OF type)
- je probeert een open array variabele te declareren. Open arrays kan je enkel als procedure parameter gebruiken!

more actual than formal parameters - je hebt aan de procedure te veel parameters meegegeven.  - check het aantal parameters met de definitie van de procedure
object is not an array
- je probeert een index te nemen met [] van een variabele die geen array is!

object is not a variable
- hij verwacht een variabele, maar je geeft bvb een type

ordinal type expected
- variabele mag geen REAL zijn hier
- de controle variabele (i) mag geen REAL zijn
procedure designator is expected
- je hebt haakjes gezet achter iets dat geen procedure is

proper procedure is expected de procedure geeft een waarde terug, die moet je aan een variabele toekennen - dus RdCard(); is fout, moet x := RdCard(); zijn
undeclared identifier "..." - hij kent deze variabele niet

- he doesn't know this variable

- de variabel- en procedurenamen moeten exact juist geschreven zijn! 
unexpected end of file
- hij verwacht END MODULENAAM.
- heb je een END te weinig?

if you replace the xc.msg file of the bin directory of your xds with this one, you get more detailed messages from us: we added the possible causes of this table to the messages!

Crash errors

To see on which line your code crashed, use the his-tool !! (or use the debugger )
crash error possible causes (oorzaken) solution
ASSERT (FALSE, 200) ??? 
- I think it has to do with mixing different XDS versions: delete all .sym & .OBJ files

invalid case in CASE statement - the CASE variable got a value that is not in the list of labels add a ELSE statement to handle the values
invalid index - de index van de array ligt buiten de gedefinieerde grootte
- index of an array out of bounds

invalid location - you use a variable (or a procedure) which you did not give a value (bvb niet-geinitialiseerde variabele in een procedure wordt gebruikt, maar heeft nog geen waarde gekregen!
- you reference a NIL pointer (eg ptr^.next when ptr = NIL)!! 

function without RETURN statement er is geen RETURN statement aan het einde van de procedure
function reached the end without a RETURN statement there

negative or zero based ... the power procedure of RealMath can only handle a strictly positive base. I know this is stupid! be sure that the base is strictly positive
whole overflow - waarde van een variabele wordt te groot of te klein (bvb Cardinal krijgt een negatieve waarde)
- value gets too big or too small (eg Cardinal gets a negative value)

zero division  - you divide a number by 0

Installation Troubleshooting

  1. First install XDS (xds-x86-245-trial-win32.exe) and only then the extra tops speed package (tscp-x86-245-trial-win32.exe)
  2. Do not install XDS in a folder or directory with a space in its name (a bug in XDS)!
  3. Put back your date before the expiration date!
  4. If you remove XDS from your computer, there will still be entries in your registry!! You best remove these entries manually!

problem Possible solutions
during installation: error message "couldn't install API-files" Put back the date before the expiration date (for XDS 2.45)!!
"Setup is unable to find a hard disk location to store temporary files. Make at least ... Error 101" I had this problem in Windows NT. I copied the xds-x86-245-trial-win32.exe and the tscp-x86-245-trial-win32.exe files to the C:/Temp directory, started the installation from there and then it worked. This temporary folder is used to create the temporary install files (this foder could be on another location on your PC).
file is in use by another user Try to install XDS to another folder (not the same as where you extracted it). If this doesn't help, reboot your computer and try again.

Compile Problems

XDS is installed, but you can't run even the simplest, correct program...
problem Possible solutions
error message: ASSERT ... - first try this: delete all the .SYM & .OBJ files (these files are generated by XDS) in that folder and recompile 
- You'll have to restart the computer (logging off is not sufficient)
error: %cE%cO%c... 
error: DEMO version: Code generation is disabled
You are using a demo version of XDS. 
Put back the date before the expiration date (shown in the XDS menu: Help -> About) 
If you see in the blue window bar (top left) "XDS DEMO", you 'll have to restart XDS after putting back the date
Couldn't open executable ... - don't put spaces in the name of your folders or files... 
- the name of the file must be exactly the same as the module name 
- don't try to run definition and implementation modules, just compile them with  and run them from the main module
Severe Error: external command fault 255: 
                             xlink  tmp.lnk
- check if your black screen got the "program terminated" message in the blue bar of the window, otherwise close it (cross in upperright corner) 
- is the name of the module and file exact the same (case sensitive) 
- delete all the .SYM & .OBJ files (these files are generated by XDS) in that folder and recompile 
- a .MOD file is missing (the .DEF file is present) 
- Severe error: Bad return code from maker 
- Severe error: Module not found "..."
- don't put spaces in the name of your folders or files...
Severe error in ... .def: INTERNAL ASSERT 
                               WHILE reading symbol file ... .sym
I think this .sym file was generated with another XDS version. Delete it and recompile (maybe delete all .sym and .obj files)!
Severe Error in ******.mod (4:15): file open error: "Windows.sym" no such file  The installation of your XDS went wrong, it didn't install Windows.sym (necessary for using sound). Reinstall XDS.
Make sure it reports "Windows.sym" and not "Wimdows.sym". In the second case, just reinstall wimdows.
Severe Error: external command fault 255: 
                              error starting maker
- don't install XDS in a folder with spaces (like "Program Files") 
??? reinstall??
Severe Error: Project make aborted  This error happens sometimes in the computerrooms, I couldn't find the exact reason yet. This worked for me: 
- delete all your .SYM, .BAK & .OBJ files
The code is not coloured... Your file isn't saved as a .mod file, you have to add this extension yourself while saving!
The run button is disabled:  A bug of XDS. Open another text window, then go back to your code.
RUN doesn't do anything You'll have to restart the computer (logging off is not sufficient)
other... Possibly the installation went wrong: reinstall XDS (remove XDS completely, also in the registry (see Installation Troubleshooting point 5))