Forum: Compiler & IDEs BASCOM wiederherstellen


von Andreas E. (andreas_e549)


Lesenswert?

Servus Community!

Vermutlich handelt es sich hier um eine ziemliche Noob Frage, aber sie 
treibt mich dennoch um:

In meinem beruflichen Umfeld bin ich derzeit konfrontiert mit der Arbeit 
eines ehemaligen Soft- und Hardware Entwicklers. Es geht um etliche 
Projekte, welche meines Wissens nach mit BASCOM umgesetzt wurden. Die 
Dateien, die mir vorliegen sind vermutlich der Output des BASCOM 
Compilers. Leider finde ich nirgends eine XY.bas Datei; zur Übersicht 
mal eine Aufstellung der vorhandenen Files:
- XY.bin
- XY.dbg
- XY.hex
- XY.main
- XY.obj
- XY.rpt

In der XY.main scheint der Quellcode zu stehen.

Mein Vorhaben ist es nun, den Code zu verstehen und bei Bedarf 
anzupassen. Reicht hierfür das XY.main File oder brauche ich ein .bas?

Danke im Voraus für Eure Unterstützung!

von Bauteiltöter (Gast)


Lesenswert?

"ich habe hier 100kg Hackfleisch, kann ich da wieder eine Kuh draus 
machen um danach die Kuh in ein saftiges Steak zu verwandeln?"

-> Is nicht. Du kannst das .hex oder .bin mit einem Disassembler in 
Assemlber verwandeln und dann den Assembler-Code verstehen und ändern.
Das geht mit viel Zeit für kleine Änderungen.

Zurück zu BASCOM ist unmöglich, das geht schon bei dem viel weiter 
verbreiteten c / c++ nicht.

Wenn es eine große Änderung sein soll: Schreib es neu und führ 
vernünftiges Versionsmanagment (Git!) in der Firma ein.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Wenn in der *.main tatsächlich der Quellcode steht sollte es laufen. 
Einfach umbenennen in *.bas

Nachtrag:
Wenn erlaubt, zeige doch mal einen Ausschnitt.

: Bearbeitet durch User
von Andreas E. (andreas_e549)


Lesenswert?

Hallo @feinmechaniker!

Supi, das mit dem Umbenennen scheint zu funktionieren! Habe mir zwar 
schon gedacht, dass es irgendwie möglich sein sollte - aber dass es so 
easy ist habe ich nicht erwartet ;)

@Bauteiltöter: ich wünsche Dir viel Erfolg mit Deinem Steak! Dass ich 
nur mit viel Aufwand les- und verstehbaren Code aus der .hex oder .bin 
machen kann, ist mir klar. Meine Frage war aber anders gelagert (es ist 
ja eine .main mit lesbarem Code vorhanden).

von Andreas E. (andreas_e549)


Lesenswert?

Joe G. schrieb:
> Wenn in der *.main tatsächlich der Quellcode steht sollte es laufen.
> Einfach umbenennen in *.bas
>
> Nachtrag:
> Wenn erlaubt, zeige doch mal einen Ausschnitt.

Natürlich darf ich hier nicht zu viel veröffentlichen, aber im Folgenden 
Abschnitt werden vermutlich die Variablen deklariert. Leider kenne ich 
mich mit BASCOM und der zugehörigen Syntax null aus, weshalb ich das 
noch nicht beurteilen kann...
1
dim red as byte: dim green as byte: dim blue as byte
2
dim cr as word:dim cg as word:dim cb as word
3
dim redth as byte: dim greenth as byte: dim blueth as byte
4
dim cred as dword: dim cgreen as  dWord :dim cblue as dword
5
dim vred as dword:dim vgreen as dword:dim vblue as dword :dim vpwm as dword :dim v2pwm as dword
6
dim vred2 as dword:dim vgreen2 as dword:dim vblue2 as dword
7
dim vr as word:dim vg as word:dim vb as word
8
dim vrr as word:dim vgg as word:dim vbb as word
9
dim vrx as word:dim vgx as word:dim vbx as word
10
dim ntc1 as dword:dim ntc2 as dword:dim offset as dword
11
dim x as byte: dim y as byte
12
dim t1max as byte:dim t2max as byte:dim v1max as byte:dim v2max as byte
13
dim diff1 as byte:dim diff2 as byte: dim freigabetemp as byte : dim ot1 as byte: dim ot2 as byte

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Die Syntax des von dir gezeigten Ausschnittes entspricht BASCOM. Mein 
Compiler hat bei diesem Abschnitt keine Felermeldung produziert.

von c-hater (Gast)


Lesenswert?

Andreas E. schrieb:

> In der XY.main scheint der Quellcode zu stehen.

Wenn das wirklich so wäre, bräuchtest du die nur umbenennen in *.bas und 
der Drops ist gelutscht...

> Mein Vorhaben ist es nun, den Code zu verstehen und bei Bedarf
> anzupassen. Reicht hierfür das XY.main File oder brauche ich ein .bas?

Das hängt einfach davon ab, ob die mit deiner Einschätzung dessen, was 
in *.main steht, richtig lagst. So einfach ist das.

von Andreas E. (andreas_e549)


Lesenswert?

Servus zusammen!

Also es war tatsächlich so, dass das einfache Umbenennen der *.main in 
*.bas den gewünschten Erfolg gebracht hat. Der Code ließ sich so ohne 
Weiteres kompilieren.

Vielen Dank für Eure Hilfe!

Thread kann geschlossen werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.