Unterschiede Z80, 8051 und 6502/6510

Ja, genau. Letzten Mittwoch war eine Freundin meiner Freundin kurz bei uns. Ich hatte noch den Laptop mit den Ausgaben des a2dpd auf dem Sofa stehen, besagte Freundin sieht das zufällig und ruft mir "Du, da steht was auf Deinem Laptop!" zu. Scheint ihr wohl Angst gemacht zu haben. :-) Meine Freundin hat sich mittlerweile an sowas gewöhnt. Sogar, daß ich in der Werbepause mal eben das console-Plugin für meinen Linux-VDR starte, um dann vorm Fernseher sitzend mal eben auf meinen Desktoprechner im Nachbarzimmer zu sshen.

Gruß Henning

Reply to
Henning Paul
Loading thread data ...

Das hat nichts mit "schwachbrüstig" zu tun. Es gibt einfach Sprachkonstrukte, die fehlerträchtig sind. Und "Interpreterfehler", die sich über Jahrzehnte gerettet haben.

Da wäre zunächst mal die implizite Variablendeklaration die zu tollen Sache führt wir:

" For i = 1 to 100 next j "

Oder Gosub ohne zwingendes return, was schnell zum Stacküberlauf führt Oder Garbage Collection, was zu merkwürdigen Pausen im Programmablauf führte

und sicher noch so einiges mehr

Gruß

Stefan DF9BI

Reply to
Stefan Brröring

Rekursion geht schon. Ich hab mal in 5 Zeilen oder so den Lösungsalgorithmus von "Die Türme von Hanoi" in Basic programmiert. Was allerdings nicht so schön lesbar wie in Pascal oder C.

Gruß

Stefan DF9BI

Reply to
Stefan Brröring

Eher Wozniak, der hat auch Float für 6502 in DDJ veröffentlicht. Im Gegensatz zu Gates der anfangs bei Microsoft noch mitprogrammiert hat ist nicht bekannt daß Jobs überhaupt programmieren oder löten konnte.

MfG JRD

Reply to
Rafael Deliano

Einzelne Bits setzen oder löschen kann auch der Z80, allerdings nur Register bzw. Speicher. Indirekt kan es aber auch der 8051 nicht; ein "SET @R0" gibt es nicht.

--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de
HTML mails will be forwarded to /dev/null.
Reply to
Peter Heitzer

Psssst, Du sollst keine Geheimnisse ausplaudern, wie man schnell und erfolgreich zu Potte kommt :-) Besonders wenn man interaktiv in der HW rumstochern kann/muss.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
VoIP  02173 / 99 39 209   ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Am Thu, 04 Oct 2007 21:02:32 GMT schrieb Krallenwetzer:

Hi!

Wie wer wo was?

Ein char[0..n] ist ein Pointer. Deshalb muß das Teil auch immer als Beispiel für Pointerarithmetik bei strcpy herhalten.

Was? Eine Folge von Zeichen die eine Adresse bedeuten? Speicherst die deine Pointer als String?

Ein Integer ist eine Folge von Zeichen die eine Zahl darstellt?

Ein Integer ist eher eine Zahl. Als was du die Zahl dann interpretierst bleibt dir überlassen.

lg, Thorsten

Reply to
Thorsten Oesterlein

Erstens ist es eh nicht geheim und zweitens ist die Deppenhürde so hoch (Streber straucheln an der Freiheit), daß nix passiert.

MfG

--
"5 Köpfe denken in 1 h produktiver als 1 Kopf in 5 h".
Das sagen die 4 Köpfe mehrheitlich, die sich nach der
1-h-Besprechung mit dem 5-h-Einzeldenker selber
auch für Produktive halten.
Reply to
Franz Glaser
*Holger Bruns* wrote on Fri, 07-10-05 10:18:

Du kennst unter anderem GFA-BASIC auf dem Atari nicht. Es gab da einige Weiterentwicklungen nach dem BASIC für den Apple ][.

Reply to
Axel Berger

"Rafael Deliano" schrieb:

Ja, wird immer schlimmer mit meinem Gedächnis. pi und e kann ich offensichtlich auch nicht mehr auseinanderhalten... :\

Wozniak, Stephen: The Impossible Dream: Computing 'e' to 116,000 places with a personal computer. Byte magainze, June 1981. Discusses his effort to calculate 116,000 digits of 'e' (the natural logarithm) on a 48k byte Apple II. Not really relevant to pi, but interesting for his continued fraction method, and general technique.

Reply to
Ruediger Klenner

=DF

Bei Windows NT wurden definitiv Tastendr=FCcke unterschlagen, wenn man die Tasten zu sehr gleichzeitig gedr=FCckt hat. Beispiel der Smily ":)" Ich mach den bei meinem Tippsystem so, da=DF ich das rechte Shift dr=FCcke und mit dem rechten Zeigefinger den Doppelpunkt haue, w=E4hrend der linke Zeigefinger auf die 9 herabst=FCrzt. Treffen beide Finger ungef=E4hr gleichzeitig, erscheint nur ein Doppelpunkt oder die Klammer. Ich hab das auf vielen verschiedenen NT-Rechnern ausprobiert, immer dasselbe Ergebnis. Ab Windows 2000 tuts wieder. V=F6lliger Witz, selbst der C64 konnte Tasten schneller dekodieren als ein Mensch sie dr=FCckte. Ich vermute, Bill hat ab NT da was an der Tastaturtreiberei ge=E4ndert. Eigentlich senden die Controller doch so sch=F6ne Signale f=FCr Taste gedr=FCckt und sp=E4ter f=FCr losgelassen, und die durften sich fr=FCher au= ch beliebig =FCberschneiden.

Auf meinem lahmen 400er Pentium mit Windows 2000 hab ich daf=FCr das Problem, da=DF Maus- und Tastaturwarteschlange nicht synchronisiert sind. D.h. ich tippe im einen Browsertab mein Passwort+Enter und hole mit der Maus das n=E4chste Tab nach vorn. Ergebnis: das halbe Pa=DFwort wird verschluckt oder erscheint gar im neuen Fenster. Gruselig. Egal wie lahm die Kiste ist, bei 400 Millionen Zuckungen pro Sekunde sollte Zeit sein, die Benutzereingaben korrekt zu verarbeiten.

Reply to
Thomas Schreiber

"to point at something": Auf etwas hinweisen, auf etwas zeigen, auf etwas hinzeigen,.....

Eine Zeichenkette ist nicht notwendig ein Zeiger, der auf etwas hinzeigt.

Die Adresse mit der Nummer $fffe0000 besteht aus den Zeichen f,f,f,e,0,0,0,0 und ist damit eine Kette aus acht Zeichen, also eine Zeichenkette.

Eine Integervariable ist eine Folge von Zeichen, die jeweils als Ziffer interpretiert werden. Diese Ziffernfolge wird als Darstellung einer Zahl behandelt.

Eine Integervariable ist ein Datentyp mit einer Reihe von Operationen, die für den Datentyp "Integer" festgelegt wurden, Konkret sind dies

+,-, mod, div, und =. Eine Zahl ist ein Element des Vektorraumes, hier des R1, auf die alle Axiome angewendet werden können, die den Vektorraum definieren.

formatting link

Kralle

Reply to
Krallenwetzer

Naja, direkt geheim ist es nicht, ich kenne aber einige Firmen, die nicht nach aussen hin bekannt geben wollen, dass sie Forth benutzen. Sollen sich deren Mitbewerber die Augen ausweinen, weil sie die Funktionalität und/oder den Service nicht hinbekommen.

Das mit der Freiheit ist für mich das wichtigste geworden. Ansonsten diskutier ich nicht mehr mit den Leuten über Fort Einsatz. 99% begreifen eh nicht, was Forth ist. Komischerweise schnallen Maschinenbau Ings das schneller, als die Elektrickser (ich selbst bin mA-Männchen).

Meine Theorie dazu (auch wenn ich während dem Studium ganz anderer Meinung war) die M-Ings sind typischerweise die besseren Ings (im klassischen Sinn). Beim E-Studium kannste mit Fleiss und Formelpauken eine Abschluus kriegen, ohne dass Du nur einen Hauch von 'Ahnung' oder ein Gefühl für die Dinge bekommst.

Die M-Ings schaffen das nicht, sie müssen immer noch einen Daumenfaktor berücksichtigen und empirisches Verhalten erlernen. Demnach ein Gefühl für das machbare entwickeln, da sie mit den (Seitens der E-ings, ich war auch auf dem Trip) zugeschnittenen Größengleichungen etc. Leben (müssen).

Was nicht heißt, dass es nicht auch grottenschlechte M-Ings gibt.

Ich will jetzt keine E-Ing verärgen, aber Fingerspitzengefühl ist bei uns leider nicht (immer) erforderlich.

Aber die M-Ing sind es gewohnt, an Teilen rumzufrickeln, bis es passt und so eine try&error Methode wird durch Forth hervorragend unterstützt.

Die E-Ings sind IMHO einfach zu formelgläubig.

Ich tauf den Thread mal um, da kommt bestimmt noch viel popcorn dazu :-)

Saludos Wolfgang

Wenn ein E-Ing Mist baut, fliegen ein paar Chips oder Bauelemente durch die Gegend, es stinkt, qualmt und zischt und das wars dann.

Wenn der M-Ing Mist baut, kommt er ins Fernsehen und auf den Bild Titel. Im harmlosesten Fall, kann man seine Schande noch lange sehen.

Mal aus dem Nähkästchen (der Betreffende ist lange in Pension): Ich hatte 6-7 Ings in der Gruppe, einer davon M-Ing, da wir Prüfanlagen gebaut/entwickelt haben. Für irgendeinen Versuch brauchten wir eine runde Stahlplatte von ca. 10mm Dicke und 1500mm Durchmesser aus einem ganz bestimmten Stahl. Mein M-Ing hat alles abtelefoniert, keiner hatte sowas am Lager oder konnte es besorgen. Irgendeiner hatte dann aber ein

600mm dickes Teil am Lager, aber keine Möglichkeit da was abzumachen. Mein M-Ing: Egal, dann nehm ich das ganze Stück! In einem Abfall von geistiger Umnachtung, wie er später gestand.

Als dann 3 Tage später ein Sattelschlepper auf das Firmengelände kam, hörte ich nur ein: Ach Du Schexxx! hinter dem M-Ing Zeichenbrett :-o Das Teil konnte auf unseren Maschinen latürnich nicht bearbeitet werden. IIRC waren das um die 7to Schrott :-) die jahrelang in der Halle rumlagen und bei jeder Inventur durchgeschleppt wurden.

Irgendwann kam dann noch de Spruch: na grins Du nur, wenn Du 1000 verkehrte ICs bestellst, passen die locker in einen Papierkorb und keiner siehts, bloss ich werd mindestens einmal im Monat deswegen aufgezogen, weil man das nicht verschwinden lassen kann :-)

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
VoIP  02173 / 99 39 209   ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Am Sat, 06 Oct 2007 01:12:05 GMT schrieb Krallenwetzer:

Hi!

Ich hab geträumt, daß das nun kommt.

Ich wünsch dir noch viel Spaß beim Programmieren.

Bye, Thorsten

Reply to
Thorsten Oesterlein

Basic ist Pfusch, schon weil Variablen niemals ausdrücklich deklariert werden müssen, sondern immer zur Verfügung stehen, mit impliziter Deklaration. So ist eine Zahl gleich eine Zahl, Format immer dasselbe, meist so eine Realzahl, es sei denn, man hatte das Integer-Basic auf dem Apple II laufen. An boolsche Variablen kann ich mich nicht erinnern. Ebensowenig an lokale Variablen, wohl aber an Unterprogramme.

Dabei hat der 6502 einen Stack mit 256 Speicherstellen, zwischen den Adressen $0100 und $01ff, der später unter UCSD prima für lokale Prozeduren und ihre Parameter herhalten konnte.

Zur Laufzeit muß auch ein vom Compiler übersetztes Programm lauffähig sein.

Compiler scannen den Quelltext, bauen eine Repräsentation davon in Form eines Syntaxbaumes auf und generieren aus dem Syntaxbaum heraus den Code. Manchmal wird der erzeugte Code auch nachträglich noch optimiert.

Holger

Reply to
Holger Bruns

Am Sat, 06 Oct 2007 12:59:07 +0200 schrieb Holger Bruns:

Hi!

Vorweg: Ich bin auch nicht der größte Fan von Basic. Deine Vorwürfe stimmen so pauschal aber nicht mehr.

Das ist a.) vom Basic abhängig und b.) vom Entwickler

unter VB empfehle ich

option strict option explicit

an erster Stelle im Quellcode und schon ist das Problem keins mehr.

Is schon ein Zeitl her, gell? ;-)

Geht auch.

Liebe Grüße, Thorsten

Reply to
Thorsten Oesterlein

wie du siehst, interessiert das nicht hier in der .sci. Gruppe.

Ich habe FORTH an meine Bedürfnisse angepaßt (wie vermutlich die meisten, die es kommerziell nutzen).

  1. habe ich es ROM-fähig gemacht (EPROM) (in meiner eigenen Hardware)
  2. habe ich es interruptfähig gemacht, geschachtelt interruptfähig.
  3. die compilierten Wörter bleiben mitsamt den symbolischen Namen erhalten.

Das hat den Vorteil, daß ich die Variablen, Konstanten und die Prozeduren (das schreib ich hier°° den Nicht-FORTHern zuliebe) mit ihren symbolischen Namen auch im compilierten Programm noch aufrufen kann, abrufen, die Variablen ändern, auf dem Bild- schirm. Sogar beim Service am Telefon kann ich den Betriebs- elektriker anweisen, Variable abzufragen in Hex oder dezimal oder Prozeduren aufzurufen um Ausgänge zu setzen und Eingänge abzufragen oder ... - einfach alles - und das mit den symboli- schen Namen vom sourcecode.

Nur compilieren geht nicht mehr, sobald das Ding im EPROM ist.

MfG

--
"5 Köpfe denken in 1 h produktiver als 1 Kopf in 5 h".
Das sagen die 4 Köpfe mehrheitlich, die sich nach der
1-h-Besprechung mit dem 5-h-Einzeldenker selber
auch für Produktive halten.
Reply to
Franz Glaser

Diese Ausf=FChrungen h=E4tte ich jetzt gern mal ironie- und witzfrei. Was sind Floatbibliotheken und was meint "nicht skalieren k=F6nnen"?

Warum?

Wann nutzt man eigentlich eher Gleitkomma, wann eher nicht?

Gru=DF Torsten

Reply to
Torsten Junker

Floating point = Fließkomma. Unterprogrammsammlung die Float in Software realisiert.

Auf 8 Bit CPUs ist Float für übliche (Echtzeit-)Anwendungen meist zu langsam. Die Anwort in BASIC war oft kurze Wortlänge und dann hat man häufiger numerische Probleme. Manche Programmiersprachen z.B. FORTH haben auf Controllern keine Float, bei anderen wie C wird sie selten benutzt.

In Festkomma verändert sich Wortlänge: 8 Bit + 8 Bit -> 9 Bit Wortlänge ; 8 Bit * 8 Bit -> 16 Bit Wortlänge. Muß der Programmierer zu Fuß zurückskalieren. Es gäbe auch Integer-Formate wie Fractional die feste Länge haben (

formatting link
Heft 4 aber kostenpflichtig ).

Integrator bei dem man zu sehr grossem Wert sehr kleinen Wert addiert: bei kurzer Float-Wortlänge ändert sich die Summe nicht. Kein Problem bei Integer.

MfG JRD

Reply to
Rafael Deliano

Rafael Deliano schrieb:

Oder halt kostenlos

lesen. Es ist imho wenig sinnvoll, Inhalte im Internet nachträglich kostenpflichtig machen zu wollen. Irgendwo findet man immer noch eine Kopie der freien Version.

CU Christian

--
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://www.chzsoft.com.ar/
PGP/GnuPG-Key-ID: 0x6DA025CA
Reply to
Christian Zietz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.