Hallo,
ich stehe hier vor einen kleinen Rätsel und hoffe einer von euch kann mir dabei helfen...
Ich habe vor mir einen Binärcode in 8er Blöcken (10101101 00011000 11010000 00001001 00001000 10001101 00011000 11010000 10101101 00010001...) und soll diesen ins RAM ab $c000 bringen und dann ausführen. Leider habe ich überhaupt keine Ahnung wie ich dies machen soll, geschweige den mit was...
Grüße Ralf85
Hallo Besucher, der Thread wurde 8,4k mal aufgerufen und enthält 39 Antworten
letzter Beitrag von therealdrcreep am
-
-
Als was liegt dir denn der Binärcode vor, als String?
-
Ist im Prinzip ganz einfach:
10 for x=0 to ANZAHL_BLOECKE-1
20 read y: poke 49125+x,y
30 next
40 data BLOCK1_ALS_DEZIMALZAHL, BLOCK2_ALS DEZIMALZAHL.....
50 data BLOCKX_ALS_DEZIMALZAHLund nach einem RUN starten wir das Ganze mit sys 49152.
-
Als was liegt dir denn der Binärcode vor, als String?
Ja, es ist eine ewig lange Anreihung dieser bereits als Beispiel genannten Blöcke.... -
Ist im Prinzip ganz einfach:
10 for x=0 to ANZAHL_BLOECKE-1
20 read y: poke 49125+x,y
30 next
40 data BLOCK1_ALS_DEZIMALZAHL, BLOCK2_ALS DEZIMALZAHL.....
50 data BLOCKX_ALS_DEZIMALZAHLund nach einem RUN starten wir das Ganze mit sys 49152.
Das muss ich in einen Basic emulator eingeben? Und danach die ganzen Blöcke abtipppen? -
Da fehlt aber noch die Zeile:
31 sys 49152
Umrechnung der Binärzahlen in Dezimal:
x = n7*2^7 + n6*2^6 + n5*2^5 + n4*2^4 + n3*2^3 + n2*2^2 + n1*2^1 + n0*2^0
nnnnnnnn
76543210Beispiel:
10101101
x = 1*2^7 + 0*2^6 + 1*2^5 + 0*2^4+ 1*2^3 + 1*2^3 + 0*2^1 + 1*2^0
x = 1*128 + 0*64 + 1*32 + 0*16 + 1*8 + 1*4 + 0*2 + 1*1
x = 128 + 0 + 32 + 0 + 8 + 4 + 0 + 1
x = 173 -
Liegt der Binär-Code schon im PC-lesbaren Format vor? Dann würde ich einen Cross-Assembler dafür nutzen. Für Acme würde das dann etwa so aussehen:
Um die Kommas und Prozentzeichen in den Text zu bekommen empfiehlt sich ein Editor, der Suchen und Ersetzen kann, z.B. Notepad++ -
Um mal kurz dazwischenzuhauen:
$c000 ist doch 49152, nicht 49125. -
Um mal kurz dazwischenzuhauen:
$c000 ist doch 49152, nicht 49125.Stimmt, war ein Tippfehler. Weiter unten hab ich's dann ja richtig stehen.
Abhängig von der Anzahl der Blöcke kann man diese noch bequem in Dezimalzahlen umrechnen. Wenn es jetzt aber hunderte sind, dann sollte man sich tatsächlich eine Routine zum Konvertieren basteln. Das ist aber auch kein wirkliches Problem.
-
Stimmt, war ein Tippfehler. Weiter unten hab ich's dann ja richtig stehen.
Abhängig von der Anzahl der Blöcke kann man diese noch bequem in Dezimalzahlen umrechnen. Wenn es jetzt aber hunderte sind, dann sollte man sich tatsächlich eine Routine zum Konvertieren basteln. Das ist aber auch kein wirkliches Problem.
Ich wusste doch, dass mit der Adresse was nicht stimmte... habs in Zeile 31 korrigiert.
-
Gibts das immer noch?
GEO-Caching...
-
Riecht direkt nach Geochaching in der Tat.
Denen soll man nicht helfen! Die wollen das so! -
Riecht direkt nach Geochaching in der Tat.
Denen soll man nicht helfen! Die wollen das so!Naja, wenn er sich schon extra dafür hier registriert...
-
Gibts das immer noch?
GEO-Caching...
Ja gibt es noch, leider werden die Rätsel langsam immer spezieller, so das man hilfe von Experten braucht. -
Riecht direkt nach Geochaching in der Tat.
Denen soll man nicht helfen! Die wollen das so!
Das versteh ich jetzt aber nicht. Ich habe von niemanden verlangt das er mir mein Rätsel löst, das möchte ich schon selber machen. Leider fehlt es mir jedoch an den nötigen Grundkenntnissen, weshalb ich um Hilfe gebeten habe. -
Ei.
Hallo,
ich stehe hier vor einen kleinen Rätsel
Manchmal sind die Dinge eben sehr wörtlich zu nehmen. -
Eventuell wäre es auch einfach mal interessant, das Rätsel - oder zumindest den kompletten Binärcode - hier zu posten.
-
Zitat
Das versteh ich jetzt aber nicht. Ich habe von niemanden verlangt das er mir mein Rätsel löst, das möchte ich schon selber machen. Leider fehlt es mir jedoch an den nötigen Grundkenntnissen, weshalb ich um Hilfe gebeten habe.
schreibt ein byte in den speicher
startet das program
die binärwerte nach dezimal umzurechnen solltest du hinkriegen. der rest ist fleissarbeit -
Oha, ich sehe schon wieder wütende GeoCacher (war nicht schwer zu erraten) Bosse hier rumtrollen mit Drohungen uns alle an die Wand zu stellen, wenn wir es noch einmal wagen sollten, irgend(!)eine Frage zu beantworten...
-
Geht mir am Arsch vorbei.
Hier die Lösung:
10 for x=0 to 5
20 read y: poke 49152+x,y
30 next
40 data 173, 24, 208, 9, 8Nach dem Start mit RUN
dann Sys 49152 eingeben. (wie schon vorher von eismann64 gepostet !)
Die Umrechnung von Binär nach Dezimal machst Du hier:
Dann halt die anderen Werte in Data-Zeilen hinzufügen und die Schleife for x= 0 to ... = Anzahl der DATA Werte ändern.