|
|
#1 | |||
|
Registrierter Benutzer
|
Fehler beim Compilieren (OA3)
Hallo zusammen,
sitze mal wieder vor ein paar abendlichen Problemen, kann nicht mehr Compilieren mit Fehlermeldung Zitat:
Die Warnmeldungen und fast alle anderen Parameter des Compilers habe ich schon seit langer Zeit nicht mehr einschalten können, da dann der Hauptspeicher noch wesentlich früher (derzeit kommt er bei Segment 61 von 62) nicht mehr ausreicht. Wenn ich aus der DosShell compiliere, bekomme ich meistens einen NTVDM-Fehler, da endet es schon bei Segment 19: Zitat:
Ich habe daher den Verdacht, dass es sich vielleicht gar nicht um einen zu geringen Hauptspeicher handelt, sondern ein anderer Fehler diese Meldung (mit)verursacht. Ein erster Schritt wären die Einstellungen für den Aufruf unter W2K bzw. XP. Wer kennt da die optimalen Werte für die pif-Datei und die config.nt? Ich komme unter W2k, wenn ich nur den Command aufrufe, auf 622 KB Speicher. Mem in der DosShell von OA3 zeigt dann 601 KB. Unter XP schaffe ich nicht mehr als 593 KB. Soweit ich mich erinnere, hatte ich unter DOS meistens nur knapp 600 KB, also weniger und hatte keine Probleme. Kann man mit EMS/XMS/HDM Einstellungen die Situation verbessern? Manchmal sehe ich vor dem NTVDM-Fehler ein paar Warnungen wegen nicht ausreichend definierter Variablen und eine "^TAB 3" Warnung: Zitat:
Danke für Eure Hilfe, Hans Jürgen (hjlint#) |
|||
|
|
|
|
|
#2 |
|
Entwickler
|
Nur mal so eine Frage, segmentierst du deine Programme so ?
zb. Code:
SEGMENT haupt1, unter1, unter2, unter3 SEGMENT haupt2, unter4, unter5, unter6 |
|
|
|
|
|
#3 |
|
Registrierter Benutzer
|
Ich habe ein Hauptprogramm (nicht mehrere) und habe ursprünglich mal
Segment U1,U1a,U1b,... Segment U2,U2a,U2b,... segmentiert. Nachdem ich aber damit nicht mehr klargekommen bin, sieht es jetzt fast überall so aus: Segment U1 Segment U1a Segment U1b ... Segment U2 ... Die Reihenfolge ist willkürlich, da ich nicht weiß, wie es sinnvoll wäre. Wenn ich noch ein mal eine Liste gedruckt oder gespeichert bekäme, könnte ich die Struktur und die Segmentgrößen vielleicht mal prüfen. Da ich aber alles ausschalten muss, damit es überhaupt klappt, könnte ich nur 18.000 Programmzeilen von Hand durchgehen, um die Struktur und Reihenfolge zu erkennen. Gruß Hans Jürgen |
|
|
|
|
|
#4 |
|
Entwickler
|
Hmm also die Segmente sollen nebeneinander stehen sonst bringt das Segmentieren ja nichts. Es sollen lt. Handbuch immer Hauptprogramm, Unterprogramm1, Unterprogramm2, in einer Reihe stehen. Auf diese Weise habe ich meine 100 Segmente mit 15.500 Zeilen Code problemlos compiliert.
|
|
|
|
|
|
#5 |
|
Registrierter Benutzer
|
Was macht man denn, wenn man Unterprogramme hat, die in anderen Programmen ebenfalls aufgerufen werden?
Segment u1,u1a,u1b,...hilfe1 Segment u2,u2a,u2b,...hilfe1 Oder steckt man hilfe1 in ein eigenes Segment und läßt es bei u1 und u2 weg? Im Laufe der Zeit habe ich bei mir die Segmente fast alle für sich definiert, da ich dann wieder ein paar Zeilen mehr zufügen konnte. Ursprünglich sah es mal so aus wie bei Dir, jetzt beinhalten fast alle Segmente nur ein Programm. Aber so richtig verstanden habe ich die Thematik nicht und wenn ich jetzt wieder ein paar Zeilen hinzufüge, dann kracht es vermutlich wieder. Ich habe mein Programm übrigens gestern wieder compilieren können, indem ich ein paar Testzeilen mit Unterprogrammaufrufen weggelassen habe, was natürlich keine dauerhafte Lösung darstellen kann. Was überhaupt nicht funktioniert ist Warnungen einschalten. Da kommt jetzt immer der NTVDM-Fehler. ALternativ, neu seit gestern: eine Endlosschleife beim Compilieren, die sich in einem hüpfenden Cursor zeigt, Programm läßt sich nur hart abbrechen und danach fängt der Drucker an, ununterbrochen vier Segmente aus der Mitte zu drucken. Ich habe übrigens, falls es jemanden interessiert, ein selbstgeschriebenes Programm aus 1992 wiedergefunden, das die Struktur eine OA-Programmes in Form einer Baumstruktur der Unterprogrammaufrufe in eine Datei schreibt; Hauptprogramm Unterprogramm1 Unterprogramm2 U3a U4a ... Unterprogramm4 ... Input ist das Hauptprogramm und mein Programm hangelt sich dann rekursiv durch alle Unterprogramme, die es in einer Baumstruktur in eine Datei schreibt. Wenn Interesse besteht, kann ich das Programm hochladen. Nach wie vor würde mich aber interessieren, wieviel Speicher Ihr in der DosShell zur Verfügung habt und wie die Einstellungen sind. Gruß Hans Jürgen |
|
|
|
|
|
#6 |
|
Entwickler
|
Also vor dem Start habe ich:
Code:
A:23984 S:24029 C:305280 E:0(0) T:305280 Code:
A:13515 S:13560 C:222784 E:0(0) T:222784 Code:
655360 bytes total conventional memory
655360 bytes available to MS-DOS
494960 largest executable program size
1048576 bytes total contiguous extended memory
0 bytes available contiguous extended memory
941056 bytes available XMS memory
MS-DOS resident in High Memory AreaProgramme die ich außerhalb eines Segments aufrufe gebe ich in ein eigenes Segment oder lasse ich sogar komplett weg. Ich glaube das größte Problem sind local views und Fenster die am meisten Speicher brauchen. PS: EDIT - Beim Compilileren habe ich nur /W und /P an. |
|
|
|
|
|
#7 | |
|
Registrierter Benutzer
|
Zitat:
so ging es mir Anfangs auch und letztlich nahm ich daraus einfach nur den logischen Aufbau zur Kenntnis. Wirklich helfen kann ich auch nicht, da ich eigentlich meine gesamte Programmierung der Hilfe von Günter und Heinz verdanke. Nur soviel: Hatte auch das Problem, dass ich mit dem Aufbau der Segmente nicht wusste, welche ich in welcher Reihenfolge plazieren soll. Den Anfang habe ich dann so gestaltet, dass ich erstmal alle folgenden mit Segment1, !USegment1a,... !Segment2,USegment2a,... als Kommentar dargestellt habe. Beim Compilieren wird ja dann jedes fehlende Segment reklamiert. In dieser Reihenfolge habe ich dann die Segmente und Untersegmete aufgebaut. Ob dies dann des Rätsels Lösung war kann ich nicht fundiert bestätigen, aber ich hatte zumindest meinen Erfolg. Gruß Rainer |
|
|
|
|
|
|
#8 |
|
Registrierter Benutzer
|
Ich habe unter XP:
Code:
655360 Bytes gesamter konventioneller Speicher
655360 Bytes für MS-DOS verfügbar
598912 maximale Größe für ausführbares Programm
1048576 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verfügbar
941056 Bytes XMS-Speicher verfügbar
MS-DOS ist resident im oberen Speicherbereich (HMA).Code:
655360 Bytes gesamter konventioneller Speicher
655360 Bytes für MS-DOS verfügbar
606224 maximale Größe für ausführbares Programm
1048576 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verfügbar
941056 Bytes XMS-Speicher verfügbar
MS-DOS ist resident im oberen Speicherbereich (HMA)./W bedeutet, dass Du die Warnungen auch ausgeschaltet hast? Hast Du es mal mit "Warnungen an" versucht? Und dann verstehe ich Deine Werte nicht, was bedeuten die ( A:13515 S:13560 C:222784 E:0(0) T:222784)? @Rainer: Segmente sind doch nicht unbedingt erforderlich. Wenn ich bei mir eine Segment-Definition herausnehme, passiert gar nichts. Wie meinst Du das mit dem Reklamieren durch den Compiler? Gruß Hans Jürgen |
|
|
|
|
|
#9 | |
|
Entwickler
|
Zitat:
Ich müsste nachsehen was die einzelnen Werte bedeuten, ich denke der Heinz weiß das sicher ganz genau. Ansonsten könnte ich auch die Programmierer aus den USA fragen.. |
|
|
|
|
|
|
#10 |
|
Registrierter Benutzer
|
In der XP-Umgebung habe ich Shift-F7 umgelegt, in der W2K jedoch nicht. Trotzdem kommt nichts bei Shift-F7. Kann es sein, dass die Funktion nur unter OA4 funktioniert? Was steht bei Dir denn bei der Funktionstaste F7? In der Hilfe ist es bei mir ein Zeichenelement.
|
|
|
|
Antwort schreiben... |
| Themen-Optionen | Thema durchsuchen |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| OA3 und MS- Access | Joachim08 | SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum | 4 | 26.07.2011 13:31 |
| OA3 startet nicht unter Windows XP Prof. SP2 | Ernst Kleinknec | SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum | 30 | 13.11.2010 22:57 |
| PDF-Druck aus OA3 | Hans Jürgen | SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum | 5 | 20.12.2008 12:12 |
| OA3 im DOS-Fenster | Hans Jürgen | SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum | 8 | 10.12.2008 07:59 |