Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Assemble-Meldung: Error: suffix or operands invalid for `cal
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.02.2007, 13:44    Titel: Assemble-Meldung: Error: suffix or operands invalid for `cal Antworten mit Zitat

Hallo zusammen,

ich habe vor vielen Jahren mal BASIC programmiert, mich aber ziemlich geärgert, dass QBASIC aus seinem DOS-Status nicht herausgekommen ist. Jetzt habe ich FreeBASIC entdeckt und mich freudig daran gemacht, ein paar alte Programme nach FreeBASIC zu portieren. Bei ein paar einfachen hat das schon ganz gut funktioniert, aber jetzt versuche ich mich gerade Programm, da erscheint beim Compilieren die Fehlermeldung:
Zitat:
laser2_1.asm: Assembler messages:
laser2_1.asm:2640: Error: suffix or operands invalid for `call'
laser2_1.asm:2644: Error: suffix or operands invalid for `call'
laser2_1.asm:2974: Error: suffix or operands invalid for `call'
laser2_1.asm:3009: Error: suffix or operands invalid for `call'
[...]


Woran könnte das liegen? Auf welche Unterschiede zwischen QBASIC und FreeBASIC könnte das u. U. zurückzuführen sein? Oder ist es was anderes?
Wenn jemand Lust hat, kann er sich gerne den Quellcode ansehen - ist aber etwas länger (47,1 KB) und eher spartanisch kommentiert ...

Noch was: ich nutze Linux. Bibliotheken sollten aber alle vorhanden sein, weil andere (auch graphische) BASIC-Programme ja compilierbar sind.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 15:24    Titel: Re: Assemble-Meldung: Error: suffix or operands invalid for Antworten mit Zitat

Hi nemored,
willkommen im Forum. Ich habe mir deine Quelle mal angesehen..
nemored hat Folgendes geschrieben:
Woran könnte das liegen?
Es fehlen jede Menge Dim's für Variablen, wenn du die FBIde zum kompilieren benutzt, kannst du dir im Logfile genau ansehen, wo das ist..
nemored hat Folgendes geschrieben:
ist aber etwas länger (47,1 KB) und eher spartanisch kommentiert ..
..das ist dein Problem grinsen
..denn du mußt jetzt im gesamten Quelltext nach den Stellen suchen, wo du Variablen mit '$' und ohne '$' verwendest.
Auf die Schnelle habe ich nur gesehen, daß du irgendwo>340 b$ und b verwendest..
Dafür wären(mal ausführlich und verkehrt geschrieben) folgende Dim-Anweisungen nötig:
Code:
Dim b As String
Dim b As Long
..sieht also so aus, als wäre es ganz normal, daß der Compiler meckert zwinkern
bzgl Differenzen zwischen FB und QB s. Befehlsreferenz, die brauchste aber sowieso, wenn du deine QB-Programme überarbeitest!
..oder du probierst gleich FB0.17 mit der Option '-lang qb' dann brauchste vllt. nich so viel zu ändern..
..aber 'n Kopf machen mußte dir schon, wenn du QB-Programme nach FB übertragen willst.
Motto: Wenn du von 'ner Ente auf einen BMW umsteigst, ist der Schalthebel nicht mehr da,
wo er vorher war(aber da isser grinsen)..
Viel Spaß beim Berichtigen happy
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.02.2007, 16:16    Titel: Antworten mit Zitat

Zitat:
willkommen im Forum

Danke sehr lächeln

Zu den b$ und b:
Bei QBASIC sind das noch zwei verschiedene Variablen - ersteres ein String, zweiteres das, was durch DEFxxx definiert wurde. Lese ich aus deinem Posting richtig heraus, dass es sich nun um ein und dieselbe Variable handelt, ob mit $ oder ohne? Wenn ja, dann habe ich ein bisschen mehr zu tun geschockt

Zitat:
Es fehlen jede Menge Dim's für Variablen, wenn du die FBIde zum kompilieren benutzt, kannst du dir im Logfile genau ansehen, wo das ist..

Nö, verwende ich nicht - läuft nicht auf meinem Linux-System zwinkern
(na gut, vielleicht über wine ...)
Bei anderen Programmen haben die fehlenden DIMs allerdings keine Schwierigkeiten gemacht. Außer bei 'schlampig' verwendeten Typ-Deklarierungen, die von QBASIC akzeptiert wurden lachen

Dann ist es vielleicht besser, ich schreibe das Ding einfach Stück für Stück neu ...
Danke für die Hinweise lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.02.2007, 16:22    Titel: Antworten mit Zitat

Ich habe das mit den b$ und b noch mal ausprobiert:
Code:
b$ = "asd"
b = 5
PRINT b
PRINT b$
SLEEP

Ausgabe:
Code:
 5
asd

Scheint also so zu funktionieren, wie ich es gewohnt bin.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.02.2007, 16:59    Titel: Antworten mit Zitat

Hmm, jetzt habe ich ein bisschen rumprobiert, alles auskommentiert und stückchenweise wieder in Betrieb genommen, und stelle fest:

Ich verwende eine Funktion st(x,y). Die scheint der Compiler nicht zu mögen. Wenn ich sie in stein(x,y) ändere, scheint es zu funktionieren. Hoffentlich freue ich mich nicht zu früh ...

Hat st eine besondere Bedeutung für den Compiler oder den Assembler?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 17:26    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Ich habe das mit den b$ und b noch mal ausprobiert:
Code:
b$ = "asd"
b = 5
PRINT b
PRINT b$
SLEEP

Ausgabe:
Code:
 5
asd

Scheint also so zu funktionieren, wie ich es gewohnt bin.
So eingesetzt sind das natürlich zwei verschiedene Variablen..
Da ich eingeschworener Fan der Anweisung 'Option Explicit' bin, habe ich aber auch keine Probleme damit. Außerdem liebe ich 'sprechende Variablen'..
Einbuchstabige Bezeichner verwende ich gern für Schleifen(i..n, liegt an meiner FORTRAN-Vergangenheit grinsen)
..eieiei, den Pinguin hatte ich übersehen grinsen
st ist afaik kein FreeBASIC-Schlüsselwort, bei ASM bin ich mir nicht sicher..
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.02.2007, 17:35    Titel: Antworten mit Zitat

Dürfte imho auch dort keines sein. neutral

Tjaja, Pascal (und die Vorgänger) hinterlässt Spuren im Style... lachen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.02.2007, 17:40    Titel: Antworten mit Zitat

Pascal habe ich nie gemocht ... könnte aber auch an den damaligen Schulrechnern liegen, die eine halbe Minute lang compilierten, bevor sie einem verkündeten: In Zeile 32 fehlt ein ';' mit den Augen rollen

Zitat:
..eieiei, den Pinguin hatte ich übersehen grinsen

Habe jetzt mal mein Rätsel-Avatar eingesetzt. Was ist das? Es hat Flügel, kann aber nicht fliegen ... lachen

Vielleicht ist der Funktionsname mit zwei Buchstaben auch einfach nur zu kurz?


Zuletzt bearbeitet von nemored am 22.02.2007, 17:41, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 17:40    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
Tjaja, Pascal (und die Vorgänger) hinterlässt Spuren im Style... lachen
..das hättste dir sparen können zwinkern lächeln happy
Ich hab mal ein Feld st gedim't und kompiliert, k.P.
Ich dachte vllt. liegt es an der linux-Version von FB, k.A.
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.02.2007, 17:50    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:

..das hättste dir sparen können

Y?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 17:54    Titel: Antworten mit Zitat

..Du hast vergessen, die ganzen Smilies mitzuzitieren, denn ich meinte es keineswegs böse grinsen
vllt. wäre deine Antwort dann auch etwas aussagekräftiger geworden lachen
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.02.2007, 18:21    Titel: Antworten mit Zitat

Oh, jo, die Smileys vergesse ich öfters. verlegen
Wollt mich auch nur erkundigen, wie das gemeint war. grinsen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 19:40    Titel: Antworten mit Zitat

Gut, nachdem diese Problem(was ja keins war grinsen) geklärt ist, wenden wir uns wieder dem eigentlichen zu:
Ich habe das Programm mal mit 'fbc - s gui -lang qb -w 1' übersetzt und..
..gestartet(Intro ist hübsch happy), ich kann wählen zwischen zwei Varianten,
Verschiedenes einstellen, nur spielen habe ich noch nicht geschafft..
Aus den obigen Optionen geht zweifelsfrei hervor, daß ich fb017b genommen habe(von vorgestern)..
Allerdings ist das die Windows-Version..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.02.2007, 19:48    Titel: Antworten mit Zitat

Ich habe alle st durch stein ersetzt, und damit lässt es sich schon mal fehlerlos compilieren und starten. Allerdings macht es noch nicht ganz genau das, was es soll (unter anderem rast der Timer viel zu schnell, weshalb es auch nicht mehr spielbar ist), muss noch eine Menge basteln.

Wenn ich weiter bin, sage ich Bescheid.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 19:58    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
(unter anderem rast der Timer viel zu schnell, weshalb es auch nicht mehr spielbar ist)
..und ich hatte schon auf langsam gestellt lachen
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 23.02.2007, 00:07    Titel: Antworten mit Zitat

Ich dachte, dass ich die Zeit mittels TIMER kontrolliere. Falls ich doch stattdessen eine Leerschleife verwendet habe (keine Ahnung, ist schon so lange her), dann wird das Spiel im compilierten Zustand wahrscheinlich ziemlich schnell grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 23.02.2007, 00:17    Titel: Antworten mit Zitat

Wie wär's mit
Code:
..
Const Dauer=1000 'entspricht ~1 sec
..
Sub Schlafe(byVal WieLange As Long=0)
  Sleep IIF(WieLange, WieLange, Dauer)
End Sub
..sollte eigentlich funktionieren..
..ansonsten schaumal in die Sig von Michael Frey zum Wiki, da gibts eine TimerRoutine als Thread, müßte auch funzen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 23.02.2007, 00:34    Titel: Antworten mit Zitat

Irgendwas finde ich schon, brauche nur Zeit, mich wieder mit dem Programm auseinander zu setzen. Aber danke schon einmal.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 23.02.2007, 01:08    Titel: Antworten mit Zitat

Schon klar..
..ich habe beim Stöbern im neuen Help-File übrigens etwas gefunden, was die Anwort auf dein st()-Problem sein könnte:
mit st(..) werden in FreeBASIC-Asm die FließkommaRegister des Prozessors bezeichnet.
Ob das die Antwort ist? grinsen
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 23.02.2007, 12:42    Titel: Antworten mit Zitat

Hi ytwinky,
bestimmt nicht, sonst gäbe es auch mit eax, ax, ah, al ... Probleme.
(Vermutet hatte ich es auch bei sub st(..) zwinkern )

st wird nur zwischen ASM ... END ASM nach FPU-Befehlen als Registerbezeichner beachtet.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz