Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
dummer-esel
Anmeldungsdatum: 29.11.2007 Beiträge: 6
|
Verfasst am: 29.11.2007, 02:58 Titel: Trotz Overflow kompilieren? Wie? |
|
|
Hallo,
gibt es eine Möglichkeit, nicht doch über die 64K hinauszukommen?
Habe ein altes Prog von früher entdeckt mit ca. 2600 Zeilen (der Programmcode allein braucht schon ca. 89 KB) und ich würde es zu gerne kompilieren.
Leider kann ich den Code nicht wirklich in andere Dateien verlagern und dann verlinken (die SUBs machen max. 600 Zeilen aus) und der restliche Code ist voll mit GOTO-Zeugs etc. (richtig schlimm "programmiert").
Jedenfalls habe ich noch keine Möglichkeit gefunden, das Ding in eine ausführbare exe-Datei zu bringen.
Wer eine Möglichkeit kennt, möge sich bitte umgehend bei mir melden!
Schöne Grüße,
Johann
--
htp://www.johann-eckert.de |
|
Nach oben |
|
|
croco97
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 29.11.2007, 12:36 Titel: |
|
|
Einfach mit Freebasic kompilieren:
Code: |
C:\fbc -lang qb deinprog.bas
|
Ob die .exe nun 16-Bit oder 32-Bit ist, dürfte dich nicht stören, es sei denn, sie soll auf Win 3.x ohne Win32s-Erweiterung oder noch was Älterem zum Laufen kommen. Für DOS gibt's auch den Freebasic-Version inkl. Extender.
Siehe
http://www.freebasic-portal.de
Viele Grüsse!
Croco |
|
Nach oben |
|
|
dummer-esel
Anmeldungsdatum: 29.11.2007 Beiträge: 6
|
Verfasst am: 29.11.2007, 14:19 Titel: |
|
|
croco97 hat Folgendes geschrieben: | Einfach mit Freebasic kompilieren |
ergibt leider jede Menge Syntax-Fehlerchen bei mir (z.B. adventu2.bas(15) error 10: Expected '=', found 'a' ).
Und das obwohl ich -lang qb als Parameter mit angegeben habe.
Zitat: | Ob die .exe nun 16-Bit oder 32-Bit ist, dürfte dich nicht stören |
richtig.
Any idea?
Oder muss man das nun im fb-forum posten?
Danke & Gruß,
Johann
--
http://www.johann-eckert.de |
|
Nach oben |
|
|
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 29.11.2007, 15:09 Titel: |
|
|
Ähm ja die Tatsache ist die, das Ehemalige Befehle wie z.B Play in FB nicht oder noch nicht vorhanden sind. Diese müssten rauseditiert oder nachgebildet werden.
Solche "toten" Befehle kann man z.B mit
Code: | sub play (dummy as string)
end sub |
ganz leicht umgehen _________________ Bis irgendwann... |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 29.11.2007, 15:16 Titel: |
|
|
Einfacher geht's auch...
Verwende QuickBasic statt QBasic. QuickBasic mag für viele identisch sein, aber es hat ein paar mehr Befehle und kann auch größere programme kompilieren bekommst du beides von qbasic.de _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
dummer-esel
Anmeldungsdatum: 29.11.2007 Beiträge: 6
|
Verfasst am: 29.11.2007, 15:29 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Einfacher geht's auch...
Verwende QuickBasic statt QBasic. QuickBasic mag für viele identisch sein, aber es hat ein paar mehr Befehle und kann auch größere programme kompilieren bekommst du beides von qbasic.de |
Danke für die Hilfe. Hätte ich vielleicht noch dazuschreiben sollten:
Habs mit QuickBasic 4.5 schon versucht (was ja, nachdem was man so liest noch mehr Speichern zum Kompilieren haben soll als 7.1).
Jedenfalls hat es damit leider (auch) nicht funktioniert |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 29.11.2007, 16:35 Titel: |
|
|
Dann solltest du es nochmal mit FreeBasic versuchen... Es ist klar, dass nicht alle Programme 1:1 übertragen werden könnten, aber wenn du den Parameter -lang qb verwendest, musst du oft nur noch sehr wenige dinge abändern Dabei hilft auch die Befehlsreferenz... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
croco97
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 29.11.2007, 17:18 Titel: |
|
|
Poste doch mal dein Proggi (genauer: lade es beim http://freebasic-portal.de hoch). Oder poste zumindest die Teile, an denen der fbc meckert. Ich denke, wir können dir da schnell helfen.
Grüsse!
Croco |
|
Nach oben |
|
|
dummer-esel
Anmeldungsdatum: 29.11.2007 Beiträge: 6
|
Verfasst am: 30.11.2007, 01:36 Titel: |
|
|
Also es sind schon einige Fehler... könnte man evtl auch mit automatischem Ersetzen hinkriegen, aber dann ist an dem Parameter "-lang qb" irgendwas seltsam.
croco97 hat Folgendes geschrieben: | Poste doch mal dein Proggi (genauer: lade es beim http://freebasic-portal.de hoch). Oder poste zumindest die Teile, an denen der fbc meckert. Ich denke, wir können dir da schnell helfen. |
hab mich nun bei diesem fb:porticula angemeldet, aber muss man erst diesen Client runterladen und installieren? Ich pack die Datei einfach auf meine Homepage, das geht schneller. Hier der Link:
http://www.johann-eckert.de/sonstiges/ADVENTU2.BAS
(ist ein Text-Adventure mit Grafik von mir. Wer es komplett haben will braucht noch die anderen 2 Dateien):
http://www.johann-eckert.de/sonstiges/AEND1.BAS
http://www.johann-eckert.de/sonstiges/AEND2.BAS
Viel Spaß beim Zocken, würde es nur wie gesagt auch gern in kompilierter Form auf meine Homepage stellen
Johann
EDIT:
Hier noch das was mein fbc zurückgibt:
Code: |
D:\Programme\FreeBASIC>fbc -lang qb adventu2.bas
adventu2.bas(4) error 10: Expected '=', found 't180l32o1cdefgao2cdefgao3cdefgao1
cdefgao2cdefgao3cdefgao1cdefgao2cdefgao3cdefga'
PLAY "t180l32o1cdefgao2cdefgao3cdefgao1cdefgao2cdefgao3cdefgao1cdefgao2cdefgao3c
defga"
^
adventu2.bas(15) error 10: Expected '=', found 'a'
SOUND a, 1: LOOP UNTIL INKEY$ <> ""
^
adventu2.bas(26) error 6: Expected '('
LOCATE 9, 10: INPUT "Wie heißt Du"; name$
^
adventu2.bas(45) error 6: Expected '(', found '='
Weite1: CLS : IF name$ = "" THEN name$ = "Du"
^
adventu2.bas(46) error 6: Expected '(', found ';'
LOCATE 1, 1: COLOR 7: PRINT " "; name$; ":"
^
adventu2.bas(85) error 6: Expected '(', found ';'
LOCATE 25, 10: COLOR 14: PRINT "Also los, "; name$; "! Let's go!"
^
adventu2.bas(86) error 6: Expected '(', found '='
IF name$ = "Du" THEN LOCATE 25: PRINT " Also los! Let'
s go! "
^
adventu2.bas(147) error 10: Expected '='
SOUND 0, 5: LOOP UNTIL B = 60
^
adventu2.bas(212) error 10: Expected '='
SOUND 525.25, 18.2 / 2
^
adventu2.bas(213) error 10: Expected '='
SOUND 783.99, 18.2 / 4
^
adventu2.bas(213) error 123: Too many errors, exiting
|
|
|
Nach oben |
|
|
croco97
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 30.11.2007, 10:30 Titel: |
|
|
Na bitte, geht doch!
Hier findest du deinen überarbeiteten Code:
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=310
Was ich gemacht habe:
PLAY und SOUND alles auskommentiert.
name$ durch name0$ ersetzt.
Hauptprogramm in ein SUB gesetzt, um den LOOP-Fehlern auf die Schliche zu kommen - durch die geniale Doppelpunkt-Orgie ist dem Autor wohl etwas der Überblick über noch offene Schleifen verloren gegangen. Die werden jetzt am Ende der SUB's geschlossen.
Ich hab's mit FBC ver. 017b kompiliert, das dürfte jetzt mit Ver. 018 und -lang qb auch kein Problem sein. Wenn doch: Melde dich hier nochmal!
Viele Grüsse!
Croco |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.11.2007, 15:50 Titel: |
|
|
@dummer-esel:
Nein, du musst dir den Client nicht herunterladen.
Du kannst einerseits das Webinterface nutzen (fb:porticula->Neuen Code hochladen) oder aber den Clienten, welcher z.B. ohne Aufruf des Browsers bzw. von FB-Portal die entweder gewählte Datei oder den Zwischenablageinhalt auf porticula hochlädt. Er ist quasi nur eine Erleichterung, keine Pflicht. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
dummer-esel
Anmeldungsdatum: 29.11.2007 Beiträge: 6
|
Verfasst am: 30.11.2007, 20:35 Titel: |
|
|
Danke, ist nett gemeint. Aber leider ist das Spiel so nicht mehr wirklich sinnvoll. Habe nämlich den SOUND-Befehl damals als Pause in Schleifen benutzt und durch die Auskommentierung sind nun einige Teile unbrauchbar geworden (abgesehen davon, dass man das Gedudel aus dem Speaker nicht mehr hört).
Die restlichen Änderungen sind ok, auch wenn mir das mit dem LOOP-Fehler nie aufgefallen ist (QB hat's immer korrekt ausgeführt und das Programm lief auch wie gewollt ab).
Zitat: | durch die geniale Doppelpunkt-Orgie ist dem Autor wohl etwas der Überblick über noch offene Schleifen verloren gegangen. |
Dass das mit den Doppelpunkten keine schöne Sache ist, ist mir durchaus klar. Heute würde ich das (wenn überhaupt) auch ganz anders schreiben... ohne GOTO, mehr Kommentare, anders strukturiert etc. das ist keine Frage!
Durch die Doppelpunkte stehen ja auch manchmal mehrere Befehle in einer Zeile und durch die Auskommentierung wurde deshalb mehr als nur die SOUND-Befehle in Mitleidenschaft gezogen.
Momentan bin ich dabei, das ganze mittels RegExen zu bereinigen, aber so langsam verlässt mich die Lust.
Vielleicht stell ich's einfach als .bas-Datei + Qbasic + DOSBox online. Ist zwar etwas umständlich, aber was solls...
Schöne Grüße,
Johann |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.11.2007, 20:40 Titel: |
|
|
In Freebasic ist der sleep-befehl wesentlich präziser (1msec auflösung), also sogar präziser als SOUND 0 Das könnte dir helfen... Für Musik bietet sich eher das MOD-Format an _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
dummer-esel
Anmeldungsdatum: 29.11.2007 Beiträge: 6
|
Verfasst am: 30.11.2007, 20:56 Titel: |
|
|
Jojo hat Folgendes geschrieben: | In Freebasic ist der sleep-befehl wesentlich präziser (1msec auflösung), also sogar präziser als SOUND 0 Das könnte dir helfen... Für Musik bietet sich eher das MOD-Format an |
Okay, dann versuch ich mal ne komplizierte RegEx zu bauen, die mir die SOUNDs in SLEEPs verwandelt... das mit MOD lasse ich erstmal, zumal ich im FB-Portal nix dazu gefunden hab.
Meinst du das Dateiformat .mod? Ich glaube nicht, dass ich meine SOUND-Anweisungen einfach so dadurch ersetzen kann (kenn mich in dieser Richtung aber auch nicht aus). Wenn man ein neues Spiel konzipiert, ist diese Idee sicher richtig.
Hilft mir in meiner Situation aber leider auch nicht weiter.
Danke trotzdem! |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.11.2007, 21:44 Titel: |
|
|
ja, ich meine .mod, genauer gesagt .it oder .xm du kannst mal im Forum nach meinem RAIN-Programm suchen, das zeigt ganz anschaulich, wie man sowas mit der FMOD-bibliothek realisieren kann. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
|