happycat 0 Report post Posted September 6, 2009 Three issues. XM is released in the standard distribution with a different function. I changed the name of XDS-C xm and sample hello.mod translated OK. Is there anything else I need to change to remove the conflict? Compiler does not accept the "TOPSPEED" option although I unpacked the topspeed distro into /usr/local/xds. I get an error on the EXPORT QUALIFIED statement. Source of last try follows: (* $HASIMPMOD := FALSE; *) <* PUSH *> <*+ VERBOSE *> <*+ M2EXTENSIONS *> <*+ TOPSPEED *> <*+ NOHEADER *> <*+ GENCPP *> <*+ COMMENT *> <*+ M2ADDTYPES *> DEFINITION MODULE ArrayDef; FROM SYSTEM IMPORT ADDRESS; EXPORT QUALIFIED arTypes, arOperands, arOperations, arNext, arCommand; TYPE (* Vector/Matrix variable type are defined to reduce execution time in determining the types of the operands and the result. The letters replacing the periods(.) in the form "ar..." define the types of the first and second operands, and the result. The types defined are: I - INTEGER D - LONGINT R - REAL L - LONGREAL C - COMPLEX Z - LONGCOMPLEX For example: the arType "arILR" specifies that the first operand is an INTEGER, the second is LONGREAL, and the result is REAL. The declaration of an arType may also specify the number of operands. *) arTypes = ( (* singlets *) arI, arD, arR, arL, arC, arZ, (* doubles *) arII, arID, arIR, arIL, arIC, arIZ, arDI, arDD, arDR, arDL, arDC, arDZ, arRI, arRD, arRR, arRL, arRC, arRZ, arLI, arLD, arLR, arLL, arLC, arLZ, arCI, arCD, arCR, arCL, arCC, arCZ, arZI, arZD, arZR, zrZL, arZC, arZZ, (* Triples *) arIII, arIID, arIIR, arIIL, arIIC, arIIZ, arIDI, arIDD, arIDR, arIDL, arIDC, arIDZ, arIRI, arIRD, arIRR, arIRL, arIRC, arIRZ, arILI, arILD, arILR, arILL, arILC, arILZ, arICI, arICD, arICR, arICL, arICC, arICZ, arIZI, arIZD, arIZR, arIZL, arIZC, arIZZ, arDII, arDID, arDIR, arDIL, arDIC, arDIZ, arDDI, arDDD, arDDR, arDDL, arDDC, arDDZ, arDRI, arDRD, arDRR, arDRL, arDRC, arDRZ, arDLI, arDLD, arDLR, arDLL, arDLC, arDLZ, arDCI, arDCD, arDCR, arDCL, arDCC, arDCZ, arDZI, arDZD, arDZR, arDZL, arDZC, arDZZ, arRII, arRID, arRIR, arRIL, arRIC, arRIZ, arRDI, arRDD, arRDR, arRDL, arRDC, arRDZ, arRRI, arRRD, arRRR, arRRL, arRRC, arRRZ, arRLI, arRLD, arRLR, arRLL, arRLC, arRLZ, arRCI, arRCD, arRCR, arRCL, arRCC, arRCZ, arRZI, arRZD, arRZR, arRZL, arRZC, arRZZ, arLII, arLID, arLIR, arLIL, arLIC, arLIZ, arLDI, arLDD, arLDR, arLDL, arLDC, arLDZ, arLRI, arLRD, arLRR, arLRL, arLRC, arLRZ, arLLI, arLLD, arLLR, arLLL, arLLC, arLLZ, arLCI, arLCD, arLCR, arLCL, arLCC, arLCZ, arLZI, arLZD, arLZR, arLZL, arLZC, arLZZ, arCII, arCID, arCIR, arCIL, arCIC, arCIZ, arCDI, arCDD, arCDR, arCDL, arCDC, arCDZ, arCRI, arCRD, arCRR, arCRL, arCRC, arCRZ, arCLI, arCLD, arCLR, arCLL, arCLC, arCLZ, arCCI, arCCD, arCCR, arCCL, arCCC, arCCZ, arCZI, arCZD, arCZR, arCZL, arCZC, arCZZ, arZII, arZID, arZIR, arZIL, arZIC, arZIZ, arZDI, arZDD, arZDR, arZDL, arZDC, arZDZ, arZRI, arZRD, arZRR, arZRL, arZRC, arZRZ, arZLI, arZLD, arZLR, arZLL, arZLC, arZLZ, arZCI, arZCD, arZCR, arZCL, arZCC, arZCZ, arZZI, arZZD, arZZR, arZZL, arZZC, arZZZ ); arOperations = ( arFINIop, arMoveop, arZeroACCop, arADDop, arSUBop, arMULop, arDIVop, arFFTop, arIFFTop, arSQRop, arLNop, arABSop, arNEGop, arEXPop, arTANop, arCOSop, arSINop, arARCSINop, arARCCOSop, arARCTANop, arSUMop, arMMULop, arDOTop, arConvertop ); arOperands = RECORD Operand: ADDRESS; Step, Size: INTEGER; END; arCommand = RECORD Next: ADDRESS; Operation: arOperations; Types: arTypes; Operands: ARRAY[0..2] OF arOperands; END; arNext = POINTER TO arCommand; END ArrayDef. Thanks for you help in advance. Share this post Link to post Share on other sites
snowman 0 Report post Posted September 6, 2009 You need to rename [tt]bin/xm.*[/tt] as well. Have no idea why unpacking the TSCP did not work. Unpack it into an empty directory and verify if [tt]bin/xm[/tt] files are identical. IIRC [tt]EXPORT QUALIFIED[/tt] is not part of ISO Modula-2. I'd say it is superfluous - just use qualified import. Share this post Link to post Share on other sites
happycat 0 Report post Posted September 7, 2009 Thanks for the response. I was afraid the EXPORT QUALIFIED was out of the ISO standard but hoped it was in the Topspeed. I know that the ISO Modula-2ers may find the source I'm using as unusual. In case you are interested the source was originally used with the "Scenic" compiler for the "Stride" computer systems in the late 80s. This is a conversion process -- any deferences between that compiler and the ISO compiler is going to represent problems. But, that is part of the process. Thanks again. Share this post Link to post Share on other sites
snowman 0 Report post Posted September 8, 2009 We can help you convert your Modula-2 source to C/C++. In particular, we can add support for your Modula-2 dialect so as to reduce the amount of manual edits. Share this post Link to post Share on other sites
cfbsoftware 0 Report post Posted September 10, 2009 In case you are interested the source was originally used with the "Scenic" compiler for the "Stride" computer systems in the late 80s. I AM interested. I'm currently trying to get hold of a Modula-2 system to use on my Sage IV. I originally had Pecan Modula-2, formerly Volition Systems Modula-2, but that went to a computer museum with my original Sage II in the mid 90's. I had forgotten about Scenic's compiler - you wouldn't still happen to have it would you? Share this post Link to post Share on other sites