Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » BASIC-Zombie » Themenansicht

Autor Thread - Seiten: -1-
000
29.09.2008, 22:46 Uhr
Rüdiger
Administrator
Avatar von Rüdiger

Auf meinem Messcomputer läuft ein BASIC-Programm, das einen seltsamen Fehler hat und beim Ausführen den Rechner zum Absturz bringt.
Das Programm ist im ERPROM gespeichert, wird beim Start des Rechners in den RAM kopiert und dann dort ausgeführt.

Die betreffende Zeile habe ich durch den Einzelbefehls-Modus bereits geortet.
Es ist eine Zeile mit einem sinnlosen/falschen/kaputten Befehl.
Das kuriose ist, die Zeilennummer dieser Zeile entspricht nicht der Sortier-Reihenfolge (aufsteigende Zeilennummern beim LIST-Befehl)

Hier der betreffende Abschnitt:

Quellcode:
2010 CMD ADR:EC40
2020 CALL 16078
2030 PRINT " EINGABE: ANZAHL N DER SCHWINGUNGEN AUF BS"
1874 S ?? N
2033 CALL 16
2034 PRINT " EINGABE: AMPLITUDE U1= 0.1 -- 4.5 V"
2036 INPUT U1

Zeile 1874 ist falsch und müsste eigentlich

Quellcode:
2032 INPUT N

heißen

Der Versuch, die Zeile durch eine Leereingabe ihrer Zeilennummer zu löschen (was bei allen anderen Zeilen geht), bringt keinen Erfolg.
Ein DELETE-Befehl auf diese Zeile bringt auch keine Verbesserung.
Einen RENUMBER-Befehl kennt der Interpreter nicht.

Einen RAM-Defekt kann ich ausschließen.

Hat jemand eine Idee, wie ich diese Zeile weg bzw. repariert bekomme?
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 29.09.2008 um 22:53 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
30.09.2008, 06:48 Uhr
Mobby5



Da sind ein paar Bytes im Speicher falsch. Das bekommst Du wohl nur mit direktem Speicherzugriff repariert. Was passiert eigentlich mit dem Listing wenn Du die richtige Zeile 2032 eingibst?
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
30.09.2008, 11:26 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
Mobby5 schrieb
Was passiert eigentlich mit dem Listing wenn Du die richtige Zeile 2032 eingibst?

Dann erstelle er mir die Zeile 2032 neu, die kaputte bleibt aber stehen und er stolpert weiter drüber.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
30.09.2008, 12:14 Uhr
Deff



Steht das fehlerbehaftete Proggi so im EPROM oder nach dem Spiegeln falsch im RAM?
Gibt es offiziell keine Zeile 1874 und kann man, wenn schon nicht gänzlich löschen, wenigstens einen "sinnlosen" Befehl reinschreiben?
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
30.09.2008, 13:55 Uhr
Gerhard



@Rüdiger

ich hab ja schon einige Erfahrung mit dem Innenleben von Basicprogs gesammelt; schick mir doch den Patienten mal rüber, vielleicht kriege ich den chirurgischen Eingriff hin...

Gruß
Gerhard

Dieser Beitrag wurde am 30.09.2008 um 13:55 Uhr von Gerhard editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
30.09.2008, 17:00 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
Deff schrieb
Steht das fehlerbehaftete Proggi so im EPROM oder nach dem Spiegeln falsch im RAM?

Steht so im EPROM.
Das kuriose ist, dass die Programme CRC-geschützt sind und die CRC nicht angemeckert wird.
Anscheinend ist das Problem dem Programmierer damals passiert, ohne dass er es gemerkt hatte.


Zitat:
Gibt es offiziell keine Zeile 1874 und kann man, wenn schon nicht gänzlich löschen, wenigstens einen "sinnlosen" Befehl reinschreiben?

Es gibt keine offizielle Zeile 1874.
Wenn ich eine beliebigen Befehl auf die Zeilennummer 1874 schreibe, habe ich dann (an der korrekten Stelle einsortiert) diese Zeile.
Die kaputte bleibt weiterhin da (ich habe dann also 2 Zeilen mit dieser Nummer).
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 30.09.2008 um 17:02 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
30.09.2008, 17:13 Uhr
Mobby5



Steht die "neue" Zeile 2032 vor oder hinter der kaputten? Wenn davor, was wäre mit "2032 INPUT N:GOTO 2033" ? oder die Zeile 2030 mit ":INPUT N:GOTO 2033" ergänzen"
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
30.09.2008, 20:30 Uhr
ambrosius



Zu Zeiten des C64 gab es so etwas als Kopierschutz, um ein Basic-Programm gegen kopieren zu schützen. Die entsprechenden, anscheinlich fehlerhaften Zeilen, waren eigentlich Maschinenroutinen, die auch aus dem Basic-Programm heraus (oder davor) angesprungen wurden, beim Listing-Befehl aber nur unsinnige Ausgaben erzeugten. Könnte es etwa so etwas sein?

mfg
Holger
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
30.09.2008, 21:50 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
ambrosius schrieb
Zu Zeiten des C64 gab es so etwas als Kopierschutz, um ein Basic-Programm gegen kopieren zu schützen. Die entsprechenden, anscheinlich fehlerhaften Zeilen, waren eigentlich Maschinenroutinen, die auch aus dem Basic-Programm heraus (oder davor) angesprungen wurden, beim Listing-Befehl aber nur unsinnige Ausgaben erzeugten. Könnte es etwa so etwas sein?

Unwahrscheinlich.
Ich habe ja keine Kopie, sondern das Original.
Außerdem fehlt ja die betreffende INPUT-Anweisung...
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
01.10.2008, 10:10 Uhr
Deff



Wäre es nicht für alle willigen Tüftler ´ne Idee, den ROM-Abzug nach hier zu verlinken, Rüdiger?
Was für ´ne BASIC-Variante steckt den eigentlich dahinter?
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
01.10.2008, 11:00 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
Deff schrieb
Wäre es nicht für alle willigen Tüftler ´ne Idee, den ROM-Abzug nach hier zu verlinken, Rüdiger?

Hier ist er: http://www.robotrontechnik.de/ablage/JH103.ROM


Zitat:
Was für ´ne BASIC-Variante steckt den eigentlich dahinter?

Keine Ahnung.
Wie bekomme ich das raus?
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
01.10.2008, 11:40 Uhr
Deff



@Rüdiger

Ich vermute mal, dass sich um ein ROM-BASIC bei dem Messcomputer handelt, und dann sollte man sich das auch mal auslesen, um ggf. Näheres zu erfahren.
Ist der verlinkte ROM-Abzug eigentlich das gesamte Proggi oder nur´n Teil?
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)

Dieser Beitrag wurde am 01.10.2008 um 11:41 Uhr von Deff editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
01.10.2008, 13:40 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
Deff schrieb
@Rüdiger
Ich vermute mal, dass sich um ein ROM-BASIC bei dem Messcomputer handelt, und dann sollte man sich das auch mal auslesen, um ggf. Näheres zu erfahren.

Hier ist es: http://www.robotrontechnik.de/ablage/SYSPSA.ROM
Hilft das irgendwie weiter?


Zitat:
Ist der verlinkte ROM-Abzug eigentlich das gesamte Proggi oder nur´n Teil?

Zum Programm gehören noch 3 weitere ROMs.
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 04.10.2008 um 11:30 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
01.10.2008, 17:38 Uhr
Mobby5



@Rüdiger
Probiere dieses bearbeitete mal bitte aus (muss aber noch entpackt werden): http://dragnet2000.serveftp.com/download/JH103NEU.RAR
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden

Dieser Beitrag wurde am 01.10.2008 um 17:41 Uhr von Mobby5 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
04.10.2008, 18:15 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
Mobby5 schrieb
@Rüdiger
Probiere dieses bearbeitete mal bitte aus (muss aber noch entpackt werden): http://dragnet2000.serveftp.com/download/JH103NEU.RAR

Danke für die Datei.
Der Befehl wird beim LIST damit korrekt angezeigt, ist also offenbar richtig.

Allerdings verweigert das Programm jetzt die Ausführung wegen falscher CRC.
Aber das kriege ich auch noch irgendwie hin...

Wir sind zumindest auf dem richtigen Weg.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
04.10.2008, 18:51 Uhr
Mobby5



Wo wird denn die CRC berechnet? Im BASIC-Programm oder hat dieser ROM irgendwo seine eigene Prüfsumme? Vielleicht könnte man ja die Prüfsummenberechnung irgendwie überspringen wenn sie nicht so einfach zu korrigieren ist.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
04.10.2008, 19:20 Uhr
Deff




Zitat:
Mobby5 schrieb:
Wo wird denn die CRC berechnet? Im BASIC-Programm oder hat dieser ROM irgendwo seine eigene Prüfsumme? Vielleicht könnte man ja die Prüfsummenberechnung irgendwie überspringen wenn sie nicht so einfach zu korrigieren ist.

Dazu sollte der Inhalt aller ROMs bekannt sein, um das abschliessend zu beurteilen bzw. gleichfalls zu bereinigen. Ich vermute die Routine zur CRC-Berechnung aber eher an "zentraler Stelle" und eventuell sogar in Form einer masch.-geschriebenen Routine. Die CRC-Bytes selber werden wohl am Ende des Proggis im dazugehörigen ROM oder eben auch an der "zentralen Stelle" sein.
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
04.10.2008, 19:27 Uhr
Mobby5



@Deff

Ich hätte wohl in 015 "@Rüdiger" an den Anfang setzen sollen. Weil nur Rüdiger das komplette Listing hat und eventuell sagen kann, ob im Basic was von der Prüfsumme steht.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
04.10.2008, 19:30 Uhr
Deff



Wieso? Bestehst Du auf einen Mobby5<->Rüdiger-Dialog?
Dann hättest Du in der Tat so schreiben müssen, um andere Interessierte auszuklammern!
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
04.10.2008, 19:35 Uhr
Mobby5



@Deff
Ich klammere niemanden aus, sonst hätte ich ihm eine PN geschickt.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
04.10.2008, 19:37 Uhr
Deff



Na ja, wie bitteschön, soll ich dann das hier interpretieren:

Zitat:
Ich hätte wohl in 015 "@Rüdiger" an den Anfang setzen sollen.


--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
04.10.2008, 20:02 Uhr
Mobby5



@Deff
Leg Dich schlafen!
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
04.10.2008, 20:16 Uhr
Deff



@Mobby5

Und Du wärst wohl lieber besser im Bett geblieben, Ingo!
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
04.10.2008, 20:19 Uhr
Mobby5



@Deff
Tob Dich wo anders aus, hier gehts um technische Probleme!
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
04.10.2008, 20:25 Uhr
Deff



@Mobby5

Das ist der einzigste Punkt, in dem ich Dir Recht gebe, aber das nicht nur im Duett!
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek