Forum: Projekte & Code 8bit-Computing mit FPGA


von Eddy C. (chrisi)


Lesenswert?

Protomax schrieb:
> [ ] du weist wie ein Timer funktioinert
> [x] du weist nicht wie ein Timer funktioniert

[ ] du weist nicht wie ein Timer funktioniert
[x] du weist garnicht nicht wie ein Timer funktioniert

...sonst wüsstest Du, dass Timer- und Prozessortakt nicht 
notwendigerweise aneinander gekoppelt sind. Abgesehen davon:

https://de.wikipedia.org/wiki/Turbo-Taste

Stichwort "Verzögerungsschleife"

> Nur ein Hardware Timer wäre (einmal eingestellt)
> 1. nicht CPU blockierend

Ahso? Braucht es dazu vielleicht noch mehr? Einen Interrrupt z.B.?

> 2. unabhängig von der Befehls Ausführungs-Geschwindigkeit
> (wenn ein Opcode Befehl durch Optimierung schneller wird, stimmt
> das zuvor berechnete Pausentiming nicht mehr)

Hammer!

> 3. per VHDL leicht parallel vervielfachbar

In Nutella sind zur Zeit Keks-Stempel zum sammeln!

> Eine Software-UART in einem FPGA macht ja wohl gar keinen Sinn

Der OP hat schon keine Lust auf Timer. Da willst Du eine UART in den 
FPGA giessen?

> (außer für Lernzwecke)

Bingo ;-)

von Gustl B. (-gb-)


Lesenswert?

Eddy C. schrieb:
> ...sonst wüsstest Du, dass Timer- und Prozessortakt nicht
> notwendigerweise aneinander gekoppelt sind. Abgesehen davon:

Na klar nicht notwendigerweise, aber es macht Sinn die zu koppeln.

Eddy C. schrieb:
> Der OP hat schon keine Lust auf Timer. Da willst Du eine UART in den
> FPGA giessen?

Also das ist in etwa gleich vom Aufwand her. Hat man Beides an einem 
Nachmittag geschrieben.

von Eddy C. (chrisi)


Lesenswert?

Gustl B. schrieb:
> Eddy C. schrieb:
>> ...sonst wüsstest Du, dass Timer- und Prozessortakt nicht
>> notwendigerweise aneinander gekoppelt sind. Abgesehen davon:
>
> Na klar nicht notwendigerweise, aber es macht Sinn die zu koppeln.

Beim PC aber schon und darum ging es hier ;-)

> Eddy C. schrieb:
>> Der OP hat schon keine Lust auf Timer. Da willst Du eine UART in den
>> FPGA giessen?
>
> Also das ist in etwa gleich vom Aufwand her. Hat man Beides an einem
> Nachmittag geschrieben.

Na klar Mann, aber Josef ∉ "man". Immer schön auf der Spur bleiben ;-)

von Josef G. (bome) Benutzerseite


Lesenswert?

Thema Timer:

Die CPU hat zwar keine Interrupts, aber es wäre ohne weiteres
möglich, dass die CPU mittels einer H..-Operation einen externen
Zähler startet, dann irgendwelche Programmschritte ausführt, und
wenn sie damit fertig ist mittels einer weiteren H..-Operation
wartet, bis der Zähler abgelaufen ist, bevor sie weitermacht.

Thema UART:

Die in der aktuellen Konfiguration des Geräts implementierte
RS232-Schnittstelle bewerkstelligt das Senden und Empfangen
eines Bytes in der Hardware, die CPU selber gibt nur ganze
Bytes aus oder empfängt ganze Bytes.

Ist aber kein UART (U = universell), weil die Baudrate fest
ist und die Handshake-Leitungen nicht verwendet werden.

von Tr (Gast)


Lesenswert?

Josef G. schrieb:
> Die CPU hat zwar keine Interrupts

OK jetzt nehme ich deine CPU und baue damit einen Küchenwecker.

Wie mache ich sowas ohne Interrupts? Ich kann einen externen (wo ist 
der? NE555?) Timer starten und darauf warten. Was mache ich in der 
Zwischenzeit, z.B. wenn der Anwender doch eine andere Zeit einstellen 
will?

Muss ich ständig in einer Schleife laufen bis die Zeit um ist oder 
jemand einen Knopf drückt? Kann ich dabei Strom sparen?

Ich kann also nur
a) polling machen (ohne Pause, Sleep etc. also voller Stromverbrauch)
b) den gesamten Core anhalten und auf ein Ereignis warten.

Stimmt das?!
Wie soll ich damit sinnvolle Anwendungen programmieren? Multitasking auf 
einer normalen CPU ist schon schwer genug, du machst es nochmal extra 
schwierig. Hat das einen Grund? Vorteile hats keine.

von Le X. (lex_91)


Lesenswert?

Tr schrieb:
> Wie soll ich damit sinnvolle Anwendungen programmieren? Multitasking auf
> einer normalen CPU ist schon schwer genug, du machst es nochmal extra
> schwierig. Hat das einen Grund? Vorteile hats keine.

Da fällt dem Josef sicher was ein.

Aber nehmen wir doch ein realistischeres Beispiel, z.B. die Wordclock, 
die vielen hier ja ein Begriff sein sollte.
Die zeigt eigentlich ziemlich gut wie ein typisches ATmega-Projekt so 
aussieht und spricht recht viel Hardware an.

- Timer für den Systemtakt
- Parsen/Auswerten eines IR-Sensors für Fernbedienungen
- Auswerten der DCF77-Information
- Kommunikation mit externer RTC via I2C
- (hab bestimmt noch was vergessen)
- meine macht zusätzlich noch 6-Kanal Soft-PWM damit das Ambilight eine 
andere Farbe haben kann als die Schrift
- Protokollparser samt Kommandointerpreter der auf der UART lauscht 
(Bluetooth-Fernbedienung, nur Spielerei ;-) )

Da ist jetzt nichts wildes dabei, alles eher Standardzeugs für 8-Bitter.
OK die hochfrequente Soft-PWM ist eher ungewöhnlich und erfordert 
natürlich ein bestimmtes Zeitverhalten, sonst flackerts.

Josef, kann deine CPU das vernünftig und zuverlässig? Deterministisch?

von Josef G. (bome) Benutzerseite


Lesenswert?

Tr schrieb:
> b) den gesamten Core anhalten und auf ein Ereignis warten.

Es können auch mehrere Ereignisse sein. Die externe Hardware,
welche bei H.. das Repeat-Signal zum Anhalten der CPU erzeugt,
kann mit Ende des Repeat die Nummer des beendenden Ereignisses
auf den Datenbus legen, und die CPU kann die Nummer einlesen
und mit der Nummer eine Sprungtabelle auswerten.

Le X. schrieb:
> kann deine CPU das vernünftig und zuverlässig?

Von den aufgelisteten Anforderungen verstehe ich zwar nichts,
aber ich glaube nicht, dass eine einzelne CPU ohne Interrupts
das kann. Aber warum sollte meine CPU das können, dafür ist
sie nicht gemacht. Man kann mit ihr einen Computer bauen
mit Tastatur und Bildschirm, dafür ist sie gemacht.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Von den aufgelisteten Anforderungen verstehe ich zwar nichts,
> aber ich glaube nicht, dass eine einzelne CPU ohne Interrupts
> das kann.

Und deswegen sind CPUs ohne Interrupts auch ausgestorben bzw. haben sich 
nicht durchgesetzt. Es gibt zwar durchaus auch Ausnahmen wie z.B. 
Parallax Propeller, die auch ohne Interrupts auskommen, aber dafür 
andere sehr geschickte Merkmale in ihrer Architektur haben. Parallax 
erhebt aber auch überhaupt nicht den Anspruch, Universalprozessoren zu 
entwickeln, sondern schränkt die Anwendungsbereiche deutlich ein.

> Aber warum sollte meine CPU das können, dafür ist
> sie nicht gemacht. Man kann mit ihr einen Computer bauen
> mit Tastatur und Bildschirm, dafür ist sie gemacht.

Deine CPU ist aber auch nicht hierfür gemacht. Schon bei dem Versuch, 
eine diskret aufgebaute Tastaturmatrix zu verwenden, deren Tastendrücke 
im Hintergrund erfasst werden, scheitert Dein Konzept. Und die 
Unmöglichkeit, eine halbwegs zur normalen Uhrzeit passende Systemuhr zu 
realisieren, verhindert nicht nur Projekte mit expliziter Ausgabe der 
Uhrzeit (siehe o.a. Wordclock), sondern auch so etwas wie Zeitstempel 
bei Datei(system)zugriffen, Netzwerkprotokolle, usw..

Auch wenn Du viel Spaß an Deinem Projekt hast, finden sich immer mehr 
Gründe gegen die weitere Verbreitung Deiner CPU. In den letzten Jahren 
wurden immer mehr Schwächen Deiner Architektur aufgedeckt, und Du 
unternimmst nicht einmal den Hauch einer Anstrengung, diese Schwächen zu 
analysieren und Deine CPU entsprechend zu überarbeiten bzw. zu 
erweitern. Stattdessen bestrafst Du die wenigen Leute, die tatsächlich 
Deine CPU ausprobieren, damit, dass Du irgendwelche weitgehend nutzlose 
Änderungen am Befehlssatz durchführst und für Inkompatibilitäten mit 
bestehenden Programmen sorgst.

von Michael K. (Gast)


Lesenswert?

Josef:
  Ich habe etwas tolles gebaut mit dem man sich einen rostigen Nagel ins 
Knie schlagen kann wenn man schlimmen Kopfschmerz loswerden will.

Forum:
  Das tut aber weh und warum sollte man das machen wenn das Knie dann 
viel mehr wehtut als der Kopf.

Josef:
  Ich habe ein paar andere Hämmer ausprobiert und es geht auch damit.
  Nun man los, so einen Hammer hat doch jeder Zuhause.

Forum:
  Dein Konzept taugt nicht, das will doch niemand.

Josef:
  Geht auch mit langen Nägeln und man kann auch Schrauben einschlagen 
wenn man schön fest zuhaut.

Forum:
  Das Prinzip Gegenschmerz ist seit 100 Jahren tot weil es ungefähr eine 
million bessere Wege gibt.

Josef:
  Ich hab die Nägel schön poliert jetzt kann es doch keinen Grund mehr 
geben das nicht zu wollen.

Forum: (Wird sich bis zum jüngsten Tag in dieser Endlosschlefe bewegen)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef:
Seit heute kann man Schrauben mit Linksgewinde verwenden. Die sind 
genauso schön poliert wie die Nägel. Allerdings benötigt man einen 
Linksgewindeschraubenhammer.

von Mark B. (markbrandis)


Lesenswert?

Ich darf diesen Beitrag zitieren, der einen sehr vernünftigen Vorschlag 
enthält:

Andreas S. schrieb:
> Eigentlich wäre doch jetzt der richtige Zeitpunkt gekommen, an dem Du
> Deine Erfahrungen in Sachen Prozessorentwurf, die hier aufgeführten
> Kritiken und Anmerkungen sowie den aktuellen Stand der Technik
> zusammenführen und noch einmal ganz von vorne einen neuen Prozessor
> entwerfen könntest. Und zwar ohne auch nur eine einzige Zeile des alten
> Entwurfs wiederverwenden zu wollen.

Warum nicht so?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Mark B. schrieb:
> Warum nicht so?

Weil auch ich mittlerweile aufgegeben habe, davon auszugehen, dass Josef 
wirklich irgendwann auf solche Vorschläge eingehen wird.

von Frank (Gast)


Lesenswert?

Andreas S. schrieb:
> Deine CPU ist aber auch nicht hierfür gemacht. Schon bei dem Versuch,
> eine diskret aufgebaute Tastaturmatrix zu verwenden, deren Tastendrücke
> im Hintergrund erfasst werden, scheitert Dein Konzept.
Das sind doch alles keine Argumente für unseren Wozniak2:
https://de.wikipedia.org/wiki/Apple_II#Timing

1
Der Apple II verfügte von Haus aus nicht über Zeitgeber (Timer)
2
und Unterbrechungen (Interrupts). Wozniak nannte als Grund dafür,
3
dass er das Design möglichst einfach halten wollte. Außerdem
4
hatte ein interruptgetriebener Tastaturtreiber versagt, so
5
dass er für diesen auf ein „Polling“-Verfahren zurückgriff.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dann solltest Du aber auch noch schreiben, dass diese Einsparung 
durchaus als Ärgernis angesehen wurde und es für den Apple ][ auch 
etliche Anbieter von Einsteckkarten mit Uhren- und/oder Timer-Funktionen 
gab. Der 6502 war nämlich durchaus interruptfähig, und auch Apple hat 
den Erweiterungsslots sowohl einen gemeinsamen NMI (non-mascable 
Interrupt) als auch einen normalen Interrupt mit Daisy Chaining 
spendiert. Somit kann man also gerade den Apple ][ nicht als Referenz 
für eine interruptfreie Rechnerfamilie anführen.

Man sollte es aber bei solchen Rechnern tunlichst unterlassen, einen im 
Hintergrund laufenden Interrupthandler zu realieren, der auch dann aktiv 
ist, wenn das eigene Hauptprogramm verlassen wurde. Da bei Apple ][ auch 
das gesamte Timing für Audioausgabe, Kassettenrekorder und sogar 
Diskettenlaufwerke in Software realisiert wurde, hätte man sich üble 
Fehler beim Schreiben auf externe Datenträger oder lästiges Knistern im 
Lautsprecher einhandeln können.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Update zum Stand des Projekts:

Die drei Xilinx-Boards Spartan-3A/3AN-Starter-Kit,
Spartan-3E-Starter-Board, Nexys2-Board werden nicht
mehr produziert und sind neu nicht mehr erhältlich.

Die drei Altera-Boards DE1, DE0, DE0-nano gibt es noch neu.
Die letzte Quartus-Version zu DE1 und DE0 ist 13.0 Sp1.

Falls jemand über den Kauf eines neuen Boards nachdenkt,
empfehle ich das DE0. Einziger Nachteil des Boards:
Die Buchse für RS232 muss man selber anschließen.

---

Die selbstgestrikte parallele Erweiterungs-Schnittstelle
habe ich wieder entfernt. Stattdessen habe ich jetzt den
VHDL-Code so umgeschrieben, dass Anwender leicht eigene
Schnittstellen einbauen können.

---

Die Domain bomerenzprojekt.de habe ich aufgegeben.

Neue Website zum Projekt ist http://www.bo8h.de

Auf der neuen Website steht das gesamte Projekt in
einer einzigen zip-Datei zum Download zur Verfügung.


Der Vollständigkeit halber hier nochmal der
Link zum Wiki-Artikel: 8bit-Computer: bo8h

von Falk B. (falk)


Lesenswert?

Man könnte auch versuchen, Kühlschränke an Eskimos zu verkaufen . . .

von Josef G. (bome) Benutzerseite


Lesenswert?


von Jonas (Gast)


Lesenswert?

Hast Du immer nocht nicht aufgegeben?
Schade um die Zeit. Damit könnte etwas Sinnvolleres auf die Beine 
gestellt werden!

von Manfred F. (manfred_f)


Lesenswert?

Josef G. schrieb:
> Habe die Konfiguration der vier FPGA-Boards geändert.

Toll. Hast du das ganze endlich auf ein nachvollziehbares und vor allem 
sinnvolles Konzept geändert?

Josef G. schrieb:
> Die Start-Prozedur nach dem  Konfigurieren erfordert nun nur
> noch das Drücken eines einzigen Tasters (CPU-Reset aufheben).

Och nee. Zu früh gefreut. Schade.

Josef G. schrieb:
> Man kann nun (selbstgebaute) Zusatzhardware anschließen.

Nicht man sondern du. Du dürftest wohl weltweit der einzige sein der 
Zusatzhardware dafür bauen will.

von Jonas (Gast)


Lesenswert?

Manfred F. schrieb:
> Du dürftest wohl weltweit der einzige sein

Das Projekt hat halt was Einzigartiges :)

von Mario (Gast)


Lesenswert?

Toll, es geht weiter, jupiii. Schnell Cola und Knabberzeug holen.
Habt Ihr schon Josef gefragt, was man mit dem ACHT-Bit-Computer alles 
tolles machen kann, wo er den Markt sieht für seinen 
Super-8-Bit-Computer. Acht Bit in einer Reihe. Wow. Mit einem 
300€-FPGA-Board einen Computer bauen der weniger kann als ein 
EIN-EURO-Board aus der Bucht. Das muss doch was sein. Macht weiter. 
Danke.

von Eddy C. (chrisi)


Lesenswert?

Es ist ein Projekt zum Selbermachen und Lernen. Da sind 8 Bit schon in 
Ordnung.

von Dieter (Gast)


Lesenswert?

Mario schrieb:
> Habt Ihr schon Josef gefragt, was man mit dem ACHT-Bit-Computer alles
> tolles machen kann

Er kann damit Kurt auf der Suche nach den Seitenbändern behilflich sein:
https://groups.google.com/d/msg/de.sci.electronics/G8I-j6x2Gdc/wf5ARaTABwAJ

von Steve (Gast)


Lesenswert?

Eddy C. schrieb:
> Es ist ein Projekt zum Selbermachen und Lernen. Da sind 8 Bit
> schon in
> Ordnung.

Ja, aber nicht in Form dieser eigenwilligen Machbarkeitsstudie.
Zum Lernen nimmt man einen kleinen AVR.
Positiver Nebeneffekt: Damit sind sogar ernsthafte Anwendungen möglich.

von Eddy C. (chrisi)


Lesenswert?

Steve schrieb:
> Zum Lernen nimmt man einen kleinen AVR.

Es hängt davon ab, was Du lernen willst. Wenn Du Dir selbst Deine 
Traum-CPU bauen willst inkl. Entwicklungsumgebung, würdest Du sicher 
nicht AVR nehmen, sondern prinzipbedingt etwas entwickeln, was so noch 
nicht existiert.

Man muss ja froh sein, dass es eine 8-Bit-Maschine ist und nicht 7. Oder 
9 ("Oktal rulz!)

Wobei ich die Wortbreite der Maschinenbefehle nicht kenne.

von K. L. (Gast)


Lesenswert?

Frank M. schrieb:
> Ich schlage stattdessen WE.G, DA.M, I.T vor. Das passt besser.

Auch wenn viele diese Meinung teilen, ist das doch etwas fern einer 
guten Moderation, denn "moderieren" heisst "abschwächen" und nicht etwa 
die Diskussion befeuern.

Das kannst Du mit Deinem privaten account tun. Als Moderator sollte man 
da zurückhaltender sein mit seinen Meinungen.

So schlimm ist jetzt das Projekt von Josef auch wieder nicht.

Es gibt Projekte im Internet, die haben nicht mal die Hälfte an Doku und 
die ist in chinesich!

Auch Hardwaremodule, die Ich beruflich einsetze und die aus China 
kommen, sind schlimmer und lückenhafter beschrieben.

von Delaykiller (Gast)


Lesenswert?

Klaus, Du hast irgendwo ein
1
delay(18_MONTHS);
kommentier das mal aus, dann geht's schneller.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Klaus L. schrieb:
> Auch wenn viele diese Meinung teilen, ist das doch etwas fern einer
> guten Moderation, denn "moderieren" heisst "abschwächen" und nicht etwa
> die Diskussion befeuern.

Die Kamelle, die Du hier ausgepackt hast, ist vom April 2016. Damals war 
ich noch überhaupt kein Moderator. Dass es trotzdem über dem Beitrag 
steht, liegt daran, dass das Forum immer den IST- und nicht den 
momentanen Zustand zeigt.

Und jetzt beam Dich mal wieder in die Gegenwart ;-)

von Josef G. (bome) Benutzerseite


Angehängte Dateien:

Lesenswert?

Habe das Emulations-Programm überarbeitet.

Die farbliche Gestaltung entspricht jetzt dem realen System.
Die Tastaturbelegung ist komplett neu, jetzt sind auch
die Cursortasten eingebunden.

Und es gibt jetzt eine ausführliche Anleitung
zur Bedienung des Programms.

http://www.bo8h.de/Downloads/

von Manfred F. (manfred_f)


Lesenswert?

Josef G. schrieb:
> Die farbliche Gestaltung entspricht jetzt dem realen System.

Echt jetzt? Schwarze Schrift auf knallgelben Hintergrund?
Bei dir darf man sich wirklich über gar nichts mehr wundern.
Ich hatte eigentlich gehofft das du nach nunmehr fünf Jahren Unsinn 
endlich zur Vernunft kommst und das ganze einstampfst.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Einige aktuelle Beiträge in einem Thread im FPGA-Forum betreffen auch
die Qualität meines VHDL-Codes, deshalb möchte ich sie hier zitieren.
Es geht um die Erzeugung eines Taktsignals aus einem Master-Clock.

Josef G. schrieb:
> Achim S. schrieb:
>> Deine Ausgangssignale werden zwar mit 2MHz bzw. 1MHz hin und her
>> schalten. Aber du solltest dir im Klaren darüber sein, dass das dann
>> kein Taktsignal ist in dem Sinn, dass du damit eine Logik im FPGA
>> vernünftig takten kannst. Es wird nicht von den Clock-Treibern des
>> FPGA auf dem Clock-Tree verteilt sondern ist ein normales Logiksignal.
>
> Bei Spartan3, CycloneII/III/IV geht das aufschalten auf Clockleitungen
> durchaus, siehe mein Projekt. Man muss nur im Clock-Report nachschauen,
> ob die Synthese das von sich aus macht. Andernfalls kann man es durch
> Instantierung eines Clockbuffers erzwingen.

Josef G. schrieb:
> Lothar M. schrieb:
>> Trotzdem wird die Toolchain irgendwas zum Thema "skew" ausgeben...
>
> Nein, bei mir nicht.
>
> Der erzeugte Takt kommt ja an allen Flipflops gleichzeitig an,
> weil er über das Clock-Leitungssystem verteilt wird.
>
> Nur gegenüber der erzeugenden Flanke des Master-Clocks besteht
> ein kleiner Zeitversatz, dessen genaue Größe unbekannt ist.
> Das muss man halt im Auge behalten bei Übergängen
> zwischen den Taktdomainen.

Da D. schrieb:
> Klingt jetzt vielleicht gemein ... : Josef ist auch kein FPGA Experte.

Gustl B. schrieb:
> Aber er hat hier schon Recht. Wenn man den Takt mit einem FF teilt und
> wieder in ein Taktnetzwerk einspeist, dann ist das OK. Man hat einen
> Versatz zwischen dem ursprünglichen Takt und dem neuen Takt, aber wenn
> man das ordentlich behandelt passt das.

von Josef G. (bome) Benutzerseite


Lesenswert?

Da manche FPGA-Fachleute Vorbehalte gegen asynchrone Resets haben,
habe ich den CPU-Reset in einen synchronen Reset umgeschrieben.

Ausserdem habe ich die Wirkung der Code-Folge  H.. H..
nochmal geändert. Sie führt jetzt zum Anhalten der CPU.

8bit-CPU: bo8

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Super, dann müssen sich ja die Hersteller von ARM- und 
RISC-V-Prozessoren warm anziehen, weil sie von BO8 verdrängt werden!

von Michael K. (Gast)


Lesenswert?

Josef G. schrieb:
> nochmal geändert

Ich niemand merkt es ...
Du sorgst seit langem mit aller Kraft dafür das keiner das Teil mit der 
Kneifzange anfassen mag.
Weiter so, bleib Dir treu ...

Gäbe es Auszeichnungen für schlechteste Dokumentation, intransparenteste 
Entwicklung, permanente unangekündigte Designänderungen, schlechteste 
Codebasis und mutwillige Vertreibung jeglicher Interessenten, Du würdest 
sie alle einheimsen.

Vor 30 Jahren habe ich in der Ausbildung mit dem MFA Lehrsystem 
gearbeitet.
8085 Steckkartensystem im 19' Gehäuse.
Um an die Übersichtlichkeit, Erweiterbarkeit und den Bedienkompfort 
dieses längst ausgestorbenen Dinosaurieres heranzukommen müssten Du noch 
ein paar Jahre intensiver Arbeit in das BO8 System stecken.

So nützlich wie ...
https://de.wikipedia.org/wiki/Familienbenutzer

von jemand (Gast)


Lesenswert?

Michael K. schrieb:
> Josef G. schrieb:
>> nochmal geändert
> ...

Sag mal, wenn dich das hier nicht interessiert, hör wenigstens auf so 
agressiv herumzumäkeln.

Es gibt einen Unterschied zwischen Kritik und Beleidigungen. Deine Posts 
gehen eher in die Zweite Richtung.

Kritik ist ja ok, aber sowas?

Leute wie du sind der Grund, warum dieses Forum so ekelhaft ist.

von Josef G. (bome) Benutzerseite


Lesenswert?

Michael K. schrieb:
> permanente unangekündigte Designänderungen

Der aktuelle Befehlssatz der CPU unterscheidet sich
von der ersten hier veröffentlichten Version neben
der Codefolge  H.. H..  lediglich in einem Befehl:

Subtrahiere A von Null mit Carry wurde ersetzt durch
Lade K mit Null. Und die Befehle sind neu angeordnet.

Ausserdem haben ein paar Operationen neue Mnemonics.

von Gu. F. (mitleser)


Lesenswert?

Josef G. schrieb:
> Ausserdem haben ein paar Operationen neue Mnemonics.

Mist, jetzt nachdem ich endlich fehlerfrei in Bom8 Assembler 
programmieren gelernt habe.

von Josef G. (bome) Benutzerseite


Lesenswert?

Gu. F. schrieb:
> Josef G. schrieb:
>> Ausserdem haben ein paar Operationen neue Mnemonics.

Meine Aussage war missverständlich.

Mit "neu" war nicht gemeint aktuell neu, sondern neu gegenüber
der ersten Version. Die letzte Änderung liegt schon lange zurück.

Beitrag "Re: 8bit-Computing mit FPGA"

von Alca Pone (Gast)


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
> Ich schlage stattdessen WE.G, DA.M, I.T vor. Das passt besser.
> Eben, Du kannst auch EX.U ND.H O.PP verwenden, das merkt keine Sau.

Sag mal Frank, eine Frage:

Was hat dein Gehetze gegen Josef mit deiner Funktion des Moderierens 
gemein? Laut Wiki bedeutet Moderieren eigentlich "abschwächen", d.h. 
Diskussionen zu kanalisieren und zu besänftigen, statt sie zu befeuern!

Du bist kein Moderator sondern Stänkerer! Und weil Dir Kritik nicht 
gefällt, wirst Du deine Modetatorenrechte misbrauchen und diese Kritik 
an dir weglöschen.

Wetten das?


jemand schrieb:
> Michael K. schrieb:
>> Josef G. schrieb:
>>> nochmal geändert
>> ...
>
> Sag mal, wenn dich das hier nicht interessiert, hör wenigstens auf so
> agressiv herumzumäkeln.
>
> Es gibt einen Unterschied zwischen Kritik und Beleidigungen. Deine Posts
> gehen eher in die Zweite Richtung.
>
> Kritik ist ja ok, aber sowas?
>
> Leute wie du sind der Grund, warum dieses Forum so ekelhaft ist.

Dem ist nichts hinzuzufügen!


Andreas S. schrieb:
> Super, dann müssen sich ja die Hersteller von ARM- und
> RISC-V-Prozessoren warm anziehen, weil sie von BO8 verdrängt werden!

Den B8 knackt wenigstens keiner, falls jemand auf die Idee kommt, ihn 
einzusetzen. Es gibt dafür keinen Disassembler, keinen richtigen 
Compiler und keine Doku. Besser hätten es die Russen auch nicht 
hinbekommen können :-)

Zu den Farben, wäre sowas vielleicht angehmer, als das grelle Gelb:

von Josef G. (bome) Benutzerseite


Lesenswert?

Alca Pone schrieb:
> Frank M. schrieb:
>> Ich schlage stattdessen WE.G, DA.M, I.T vor. Das passt besser.
>> Eben, Du kannst auch EX.U ND.H O.PP verwenden, das merkt keine Sau.
>
> Sag mal Frank, eine Frage:

Als Frank M. das schrieb, war er noch nicht Moderator.
Hat er weiter oben schon richtiggestellt.
Beitrag "Re: 8bit-Computing mit FPGA"

> Es gibt dafür keinen Disassembler,

Doch. Siehe im Download-File im Verzeichnis info die Datei Emul.

> keinen richtigen Compiler

Ist richtig.

> und keine Doku.

Doch, und sie ist vollständig.
Siehe die Datei CPU-doku oder 8bit-CPU: bo8.

> Zu den Farben, wäre sowas vielleicht angehmer, als das grelle Gelb:

Wie hat du das Bild erzeugt?

von Josef G. (bome) Benutzerseite


Lesenswert?

Gu. F. schrieb:
> Mist, jetzt nachdem ich endlich fehlerfrei in Bom8 Assembler
> programmieren gelernt habe.

Obwohl das sicher ironisch gemeint ist, scheinst du
doch irgendwie Interesse an der CPU zu haben.

Hast du den Assembler schon ausprobiert?

Siehe im Download-File im Verzeichnis info die Seite Emul.

Da steht zwar, der Assembler beruht auf dem Emulationsprogramm,
aber er ist ohne Grafik, deshalb gelten die möglicherweise
abschreckenden Sicherheitshinweise zum Emulationsprogramm
hier nicht. Und es ist eine Beispiel-Sourcedatei dabei.

von Falk B. (falk)


Lesenswert?

@Josef G. (bome) Benutzerseite

>> Mist, jetzt nachdem ich endlich fehlerfrei in Bom8 Assembler
>> programmieren gelernt habe.

>Obwohl das sicher ironisch gemeint ist,

WOW! Joseph erkennt Ironie! Ist Heilung in Sicht?

> scheinst du
>doch irgendwie Interesse an der CPU zu haben.

Ohh, doch nicht . . .

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Alca Pone schrieb:
> Du bist kein Moderator sondern Stänkerer!

Wie Josef schon richtigstellte, war ich damals noch kein Moderator. 
Leider wird im Beitrags-Kopf immer der aktuelle Ist-Zustand angezeigt 
und nicht der damalige Zustand, als der Beitrag entstand. Ich bin mir 
der Aufgabe als Moderator durchaus bewusst - auch wenn ich heute noch 
als normaler Teilnehmer des Forums manche Beiträge als User und nicht 
als Moderator verfasse. Schließlich sind wir Moderatoren auch noch 
"nebenbei" normale Anwender des Forums.

> Und weil Dir Kritik nicht
> gefällt, wirst Du deine Modetatorenrechte misbrauchen und diese Kritik
> an dir weglöschen.
> Wetten das?

Die Wette hast Du leider verloren. Dein Beitrag bleibt natürlich der 
Nachwelt erhalten. Kritik kann ich durchaus annehmen, wenn sie 
gerechtfertigt ist.

von MaWin (Gast)


Lesenswert?

Josef G. schrieb:
>> und keine Doku.
> Doch, und sie ist vollständig.

Das glaube ich dir. Aber sie ist kaum zu gebrauchen, weil sie 
unverständlich ist, wenn man das System noch nicht kennt.

Eine Doku ist keine einfache Aneinanderreihung von technischen Fakten.

von Mark B. (markbrandis)


Lesenswert?

MaWin schrieb:
> Josef G. schrieb:
>>> und keine Doku.
>> Doch, und sie ist vollständig.
>
> Das glaube ich dir. Aber sie ist kaum zu gebrauchen, weil sie
> unverständlich ist, wenn man das System noch nicht kennt.
>
> Eine Doku ist keine einfache Aneinanderreihung von technischen Fakten.

Exakt.

Eine Doku soll, wenn sie gut geschrieben ist, jemandem das System 
erklären der es eben (noch) NICHT kennt.

von Computer-Ex-Perte (Gast)


Lesenswert?

Mark B. schrieb:
> Eine Doku soll, wenn sie gut geschrieben ist, jemandem das System
> erklären der es eben (noch) NICHT kennt.

Habe die Doku mal überflogen. Sie ist wirklich nicht zu gebrauchen. Wenn 
ich es nicht besser wüsste, hätte ich spontan gesagt, der Josef ist mein 
Kollege vom Nachbarbüro, der bei uns die firmware macht. Der 
dokumentiert auch so.

von Josef G. (bome) Benutzerseite


Lesenswert?

Computer-Ex-Perte schrieb:
> Habe die Doku mal überflogen. Sie ist wirklich nicht zu gebrauchen.

Wer sie verstehen will und sich Zeit nimmt, der versteht sie auch.

Wer sie nur überfliegt, der will sie gar nicht verstehen.

von MaWin (Gast)


Lesenswert?

Josef G. schrieb:
> Wer sie verstehen will und sich Zeit nimmt, der versteht sie auch.
> Wer sie nur überfliegt, der will sie gar nicht verstehen.

Das ist nicht, wie Dokumentation funktioniert.
Wenn man es will und genug Zeit reinsteckt, braucht man gar keine Doku 
und kann sich alles aus dem Code Reverse-Engineeren.

Eine Dokumentation muss problemlos les- und verstehbar sein. Sonst ist 
sie unbrauchbar.

von Falk B. (falk)


Lesenswert?

Der Wurm muß dem Fisch schmecken und nicht dem Angler!

von Mark B. (markbrandis)


Lesenswert?

Falk B. schrieb:
> Der Wurm muß dem Fisch schmecken und nicht dem Angler!

So einfach und so wahr.

Erstaunt mich immer wieder, dass manche Menschen solch einfache Dinge 
nicht verstehen können oder wollen.

von TriHexagon (Gast)


Lesenswert?

Josef G. schrieb:
> Wer sie verstehen will und sich Zeit nimmt, der versteht sie auch.

Also wenn ich sehe, dass man mir gleich technische Details, schnöde 
Textdateien ohne große Strukturierung und Abkürzungen aka 
Buchstabensalat ohne Erklärung vor die Schnauze knallt, hat man die Lust 
eigentlich sofort verloren. Bei einer Doku sieht man sofort wie viel 
Mühe sich derjenige gemacht hat, da sehe ich hier schwarz.

Von einer Doku erwarte ich heutzutage Dokumente im PDF-Format, richtige 
Abbildungen (kein 80er Jahre ASCII Quatsch) und eine ordentliche 
Strukturierung mit Inhaltsverzeichnis. Bei einer Doku zu einer CPU 
erwarte ich eine schöne Übersicht, welche Architektur, welche Features, 
Aufbau etc.. Die Details kommen da erst ganz hinten. Ein Abschnitt über 
die ISA mit einem Unterkapitel pro Instruktion. Für Programmbeispiele in 
Assembler gibts Bonuspunkte. Das ist mal was mir so spontan einfällt.

Hier ein gutes Beispiel: 
https://www.st.com/content/ccc/resource/technical/document/programming_manual/6c/3a/cb/e7/e4/ea/44/9b/DM00046982.pdf/files/DM00046982.pdf/jcr:content/translations/en.DM00046982.pdf

Vom VHDL-Code will ich eigentlich keine Worte verlieren, so was 
unlesbares habe ich noch nicht gesehen. Wie wärs mit Kommentaren und 
aussagekräftigen Namen statt kryptische Namensgebung wie bei einem 
Code-Obfuscation-Contest?

Das hochgesteckte Ziel Anfängern zu erklären wie CPUs funktionieren, 
hast du damit kolossal verfehlt, wenn man als studierter Informatiker 
mit großen Interesse zu Rechnerarchitekturen keinen Zugang findet.

Also nimm die Kritik an, mach es besser, Profit.

BTW Architektur mit Akkumulator ist ziemlich out und macht es Anfängern 
auch nicht einfacher. Anfänger sollte man eine einfache, moderne 0815 
RISC Architektur vorlegen.

von Analoger (Gast)


Lesenswert?

Wenn er einen 80er-Jahre 8-Bitter nachbauen will, kommt er um den Akku 
nicht herum:-)

von Florian (Gast)


Lesenswert?

Instrukteur schrieb:
> Josef G. schrieb:
> Bin zur Zeit am überlegen, anstelle von NA.K und NA.A
> die Befehle SZ.A und AZ.A wieder einzuführen
>
> Nein. Viel dringender wird
> SE.LF.DES.TRUC.TI.ON
> gebraucht.
> Dann bitte 1x ablaufen lassen...

Ein ganz schön blöder Kommentar

von Meister E. (edson)


Lesenswert?

Falk B. schrieb:
> @Josef G. (bome) Benutzerseite
>
>>> Mist, jetzt nachdem ich endlich fehlerfrei in Bom8 Assembler
>>> programmieren gelernt habe.
>
>>Obwohl das sicher ironisch gemeint ist,
>
> WOW! Joseph erkennt Ironie! Ist Heilung in Sicht?

Die wirklich lernresistenten Akteure in diesem Forum sind doch die, die 
noch heute eine gefällige Dokumentation von Josef erwarten und denken, 
ihn dazu bekehren zu können.

Instrukteur schrieb:
> Josef G. schrieb:
> Bin zur Zeit am überlegen, anstelle von NA.K und NA.A
> die Befehle SZ.A und AZ.A wieder einzuführen
>
> Nein. Viel dringender wird
> SE.LF.DES.TRUC.TI.ON
> gebraucht.
> Dann bitte 1x ablaufen lassen...

Vielleicht braucht kein Mensch den B08, aber es brauchte einen Menschen 
um ihn zu erschaffen. Das sollte man zumindest respektieren.

Beitrag #5581625 wurde vom Autor gelöscht.
von Josef G. (bome) Benutzerseite


Lesenswert?

Hier eine Beschreibung des Befehlssatzes, ausgeschrieben ohne
Platzhalterzeichen. Ist die Beschreibung so besser lesbar?

1
nn sei das zweite Byte eines 2-Byte-Befehls
2
3
AN.B    A wird   A and B
4
NR.B    A wird   A nor B
5
XR.B    A wird   A xor B
6
AV.B    A wird   A+B+V          V erhält Übertrag
7
SV.B    A wird   A-B-V          V erhält Übertrag
8
LV.B    A wird   B-A-V          V erhält Übertrag
9
GT.B    A erhält B
10
ST.B    B erhält A
11
12
AN. nn    A wird   A and nn
13
NR. nn    A wird   A nor nn
14
XR. nn    A wird   A xor nn
15
AV. nn    A wird   A+nn+V          V erhält Übertrag
16
SV. nn    A wird   A-nn-V          V erhält Übertrag
17
LV. nn    A wird   nn-A-V          V erhält Übertrag
18
GT. nn    A erhält nn
19
AD. nn    A wird   A+nn
20
21
ANMX    A wird   A and (X)
22
ANMY    A wird   A and (Y)
23
ANMZ    A wird   A and (Z)
24
25
NRMX    A wird   A nor (X)
26
NRMY    A wird   A nor (Y)
27
NRMZ    A wird   A nor (Z)
28
29
XRMX    A wird   A xor (X)
30
XRMY    A wird   A xor (Y)
31
XRMZ    A wird   A xor (Z)
32
33
AVMX    A wird   A+(X)+V          V erhält Übertrag
34
AVMY    A wird   A+(Y)+V          V erhält Übertrag
35
AVMZ    A wird   A+(Z)+V          V erhält Übertrag
36
37
SVMX    A wird   A-(X)-V          V erhält Übertrag
38
SVMY    A wird   A-(Y)-V          V erhält Übertrag
39
SVMZ    A wird   A-(Z)-V          V erhält Übertrag
40
41
LVMX    A wird   (X)-A-V          V erhält Übertrag
42
LVMY    A wird   (Y)-A-V          V erhält Übertrag
43
LVMZ    A wird   (Z)-A-V          V erhält Übertrag
44
45
GTMX    A erhält (X)
46
GTMY    A erhält (Y)
47
GTMZ    A erhält (Z)
48
49
STMX    (X) erhält A
50
STMY    (Y) erhält A
51
STMZ    (Z) erhält A
52
53
AD.S       K wird   K+S
54
AD.X       K wird   K+X
55
AD.Y       K wird   K+Y
56
AD.Z       K wird   K+Z
57
58
SD.S       K wird   K-S
59
SD.X       K wird   K-X
60
SD.Y       K wird   K-Y
61
SD.Z       K wird   K-Z
62
63
LD.S       K wird   S-K
64
LD.X       K wird   X-K
65
LD.Y       K wird   Y-K
66
LD.Z       K wird   Z-K
67
68
AV.S       K wird   K+S+V          V erhält übertrag
69
SV.S       K wird   K-S-V          V erhält übertrag
70
LV.S       K wird   S-K-V          V erhält übertrag
71
72
GT.S       K erhält S
73
GT.X       K erhält X
74
GT.Y       K erhält Y
75
GT.Z       K erhält Z
76
77
ST.S       S erhält K
78
ST.X       X erhält K
79
ST.Y       Y erhält K
80
ST.Z       Z erhält K
81
82
RS.X       S erhält X
83
RS.Y       S erhält Y
84
RS.Z       S erhält Z
85
86
SS.X       X erhält S
87
SS.Y       Y erhält S
88
SS.Z       Z erhält S
89
90
SL.K       B erhält A ,  A wird 0
91
92
SL.S       S LowByte erhält A ,  S HighByte wird 0
93
SL.X       X LowByte erhält A ,  X HighByte wird 0
94
SL.Y       Y LowByte erhält A ,  Y HighByte wird 0
95
SL.Z       Z LowByte erhält A ,  Z HighByte wird 0
96
97
GL.S       A erhält LowByte von S
98
GL.X       A erhält LowByte von X
99
GL.Y       A erhält LowByte von Y
100
GL.Z       A erhält LowByte von Z
101
102
GH.S       A erhält HighByte von S
103
GH.X       A erhält HighByte von X
104
GH.Y       A erhält HighByte von Y
105
GH.Z       A erhält HighByte von Z
106
107
EX.S       Austausch  K<>S
108
EX.X       Austausch  K<>X
109
EX.Y       Austausch  K<>Y
110
EX.Z       Austausch  K<>Z
111
112
ES.X       Austausch  S<>X
113
ES.Y       Austausch  S<>Y
114
ES.Z       Austausch  S<>Z
115
116
ZO.S     S wird 0
117
ZO.X     X wird 0
118
ZO.Y     Y wird 0
119
ZO.Z     Z wird 0
120
121
NE.V     V   wird logisch negiert
122
NE.U     U   wird logisch negiert
123
NE.A     A   wird logisch negiert
124
NE.B     B   wird logisch negiert
125
NE.K     K   wird logisch negiert
126
127
ZO.V     V   wird 0
128
ZO.U     U   wird 0
129
ZO.A     A   wird 0
130
ZO.B     B   wird 0
131
ZO.K     K   wird 0
132
133
SE.V     V   wird 1
134
SE.U     U   wird 1
135
136
IV.A     A wird  A+V          V erhält Übertrag
137
DV.A     A wird  A-V          V erhält Übertrag
138
139
IC.A     A wird  A+1
140
IC.K     K wird  K+1
141
IC.S     S wird  S+1
142
143
DC.A     A wird  A-1
144
DC.K     K wird  K-1
145
DC.S     S wird  S-1
146
147
PV.A     A wird 8-fache Kopie von V ,  V wird 0
148
PV.B     B wird 8-fache Kopie von V ,  V wird 0
149
150
TZ.A     wenn nicht ( A=0 )   dann   ( V wird 1 )
151
TZ.B     wenn nicht ( B=0 )   dann   ( V wird 1 )
152
153
RD.A     A wird abwärts  durch V rotiert
154
          Resultat V7654321    V erhält Bit0
155
RD.B     B wird abwärts  durch V rotiert
156
          Resultat V7654321    V erhält Bit0
157
158
RU.A     A wird aufwärts durch V rotiert
159
          Resultat 6543210V    V erhält Bit7
160
RU.B     B wird aufwärts durch V rotiert
161
          Resultat 6543210V    V erhält Bit7
162
163
CP.V     V wird  V xor U
164
CR.V     U wird  V xor U  , dann wird ein RU.A ausgeführt
165
166
TAs  mit s= 1..7      A wird s Bitstellen aufwärts verdreht
167
                      Resultat von TA3 ist 43210765
168
169
TKs  mit s= 1..f      K wird s Bitstellen aufwärts verdreht
170
171
IXs  mit s= 0..7      X wird  X+s+1
172
IYs  mit s= 0..7      Y wird  Y+s+1
173
IZs  mit s= 0..7      Z wird  Z+s+1
174
175
DXs  mit s= 0..7      X wird  X-s-1
176
DYs  mit s= 0..7      Y wird  Y-s-1
177
DZs  mit s= 0..7      Z wird  Z-s-1
178
179
IXE      X wird X+1 , und Austausch A<>B
180
IYE      Y wird Y+1 , und Austausch A<>B
181
IZE      Z wird Z+1 , und Austausch A<>B
182
183
DXE      X wird X-1 , und Austausch A<>B
184
DYE      Y wird Y-1 , und Austausch A<>B
185
DZE      Z wird Z-1 , und Austausch A<>B
186
187
IKL nn     K wird  K+nn+1
188
IXL nn     X wird  X+nn+1
189
IYL nn     Y wird  Y+nn+1
190
IZL nn     Z wird  Z+nn+1
191
192
DKL nn     K wird  K-nn-1
193
DXL nn     X wird  X-nn-1
194
DYL nn     Y wird  Y-nn-1
195
DZL nn     Z wird  Z-nn-1
196
197
GTA nn      K wird     00nn
198
GTR nn      K wird     P+nn+3
199
ADR nn      K wird   K+P+nn+3
200
201
NO1    no operation    1  Zyklus
202
NO2    no operation    2  Zyklen
203
204
NON nn      no operation    2+nn Zyklen   falls nn > 0
205
NON 00      K erhält R      2    Zyklen
206
207
GT.Q        K erhält Q
208
209
S.RP        R erhält P+1
210
O.RP nn     R erhält P+2   P wird P+nn+3
211
212
Bedingung cc ist    WY   always
213
                    VZ   V ist 0
214
                    VS   V ist nicht 0
215
                    UZ   U ist 0
216
                    US   U ist nicht 0
217
                    AZ   A ist 0
218
                    AS   A ist nicht 0
219
                    KZ   K ist 0
220
                    KS   K ist nicht 0
221
222
O.cc nn   wenn cc   dann ( P wird P+nn+3 )
223
B.cc nn   wenn cc   dann ( P wird P-nn-1 )
224
B.CN nn   wenn S >0 dann ( P wird P-nn-1 , S wird S-1 )
225
226
R.cc    wenn cc   dann ( P erhält R )
227
R.CN    wenn S >0 dann ( P erhält R , S wird S-1 )
228
R.IX    wenn S >0 dann ( P erhält R , S wird S-1 , X wird X+1 )
229
R.IY    wenn S >0 dann ( P erhält R , S wird S-1 , Y wird Y+1 )
230
R.IZ    wenn S >0 dann ( P erhält R , S wird S-1 , Z wird Z+1 )
231
R.DX    wenn S >0 dann ( P erhält R , S wird S-1 , X wird X-1 )
232
R.DY    wenn S >0 dann ( P erhält R , S wird S-1 , Y wird Y-1 )
233
R.DZ    wenn S >0 dann ( P erhält R , S wird S-1 , Z wird Z-1 )
234
235
Bei  O.VZ, O.VS, B.VZ, B.VS, R.VZ, R.VS   wird stets  V = 0.
236
237
Alle O-,B- Operationen dauern 3 Zyklen | 2 Zyklen   wenn der
238
              Sprung ausgeführt wird | nicht ausgeführt wird
239
240
J..     P und R erhalten K ,  Q und K erhalten P+1
241
242
SW.X    nach dem folgenden FE-Halbzyklus wird statt eines BN
243
        ein BX ausgegeben. Dies soll extern eine memory-page-
244
        Umschaltung für X auslösen. Das Resultat muss bereits
245
        beim folgenden tA zur Verfügung stehen.
246
247
SW.Y    nach dem folgenden FE-Halbzyklus wird statt eines BN
248
        ein BY ausgegeben. Dies soll extern eine memory-page-
249
        Umschaltung für Y auslösen. Das Resultat muss bereits
250
        beim folgenden tA zur Verfügung stehen.
251
252
SW.Z    nach dem folgenden FE-Halbzyklus wird statt eines BN
253
        ein BZ ausgegeben. Dies soll extern eine memory-page-
254
        Umschaltung für Z auslösen. Das Resultat muss bereits
255
        beim folgenden tA zur Verfügung stehen.
256
257
H..     wenn ein J.. folgt: J.. wird modifiziert, indem nach
258
           dem FE des J..-Codes statt eines BN ein BP ausge-
259
           geben wird. Dies soll extern eine memory-page-
260
           Umschaltung für P auslösen. Das Resultat muss
261
           bereits beim folgenden tA zur Verfügung stehen.
262
           Gesamtdauer  H..  J..  2 Zyklen.
263
264
        sonst:   nach diesem folgenden (FE/BN) wird ein (HA/BN)
265
           eingefügt.  Anzurechnen sind 2 Zyklen allein für H..
266
267
           Ausnahme: Wenn die auf H.. folgende Operation wieder
268
           ein H.. ist, wird (KA/BN) statt (HA/BN) ausgeführt,
269
           und die CPU bleibt im Zustand BN bis Reset erfolgt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Josef G. (bome)

>Hier eine Beschreibung des Befehlssatzes, ausgeschrieben ohne
>Platzhalterzeichen. Ist die Beschreibung so besser lesbar?

Nein. Dein Problem ist und bleibt das gleiche. Alles schon mal 
dagewesen, es gibt nichts neues unter der Sonne.

Beitrag "Re: Warum ist das Zoll als Maßstab für Elektronikbauteile im Elektronikbereich immer noch dominieren"

Beitrag "Re: Ein 8bit-Rechner auf dem Spartan-3A-Starterkit"

Beitrag "Re: Warum ist das Zoll als Maßstab für Elektronikbauteile im Elektronikbereich immer noch dominieren"

Beitrag "Re: 8bit-Computing mit FPGA"

: Bearbeitet durch User
von Michael K. (Gast)


Lesenswert?

Josef G. schrieb:
> Hier eine Beschreibung des Befehlssatzes, ausgeschrieben ohne
> Platzhalterzeichen. Ist die Beschreibung so besser lesbar?

Nicht wirklich.
Nehm Dir doch einfach mal die Doku eines alterwürdigen 8051, 8085, 6502, 
Z80 in die Hand und schau wie die Architektur und Befehlssatz 
dokumentiert haben.

Du ballerst das alles unsortiert auf eine Seite Fließtext und wunderst 
Dich das sich da niemand durchrackern mag.
Statt 'telling names' für die Mnemonics wie z.B. LDI = Load Immediately, 
verwendest Du einen Wust von Kürzeln die Knoten im Gehirn auslösen beim 
Versuch da durchzusteigen.
Josef G. schrieb:
> SW.Z    nach dem folgenden FE-Halbzyklus wird statt eines BN
>         ein BZ ausgegeben. Dies soll extern eine memory-page-
>         Umschaltung für Z auslösen. Das Resultat muss bereits
>         beim folgenden tA zur Verfügung stehen.

Aha, ja bitte was?
Das meine ich, das mag sich doch niemand antun.
Dir ist das alles klar, Du hast den ja auch gebaut.
Nur lebst Du da echt in Deiner eigenen Welt und kaum jemand hat Lust da 
einzutauchen weil die BO8 nichts kann was nicht schon 100mal woanders 
besser gelöst worden wäre.
Als Lernsystem vielleicht, aber das einzige was man da lernt ist eine 
hohe Frustrationstoleranz gegenüber grauenhafter Doku.

Ich höre auf zu lesen wenn sich mir kein zwingender Architekturvorteil 
erschliesst und sich der Autor noch nicht mal Mühe gibt eine saubere, 
lesbare und vernünftig formatierte Dokumentation zu liefern.

Deinen Hang zum nackten Purismuss teilt kaum jemand.
Ich erwarte ein strukturiertes, revisioniertes, PDF mit 
Inhaltsverzeichnis für ein Produkt mit dem ich mich beschäftigen soll.

Du steckst da so viel Arbeit rein und weigerst Dich seit einer Ewigkeit 
auch nur einen gutgemeinten Rat anzunehmen was Farbwahl, Struktur, 
Datenformat etc. pp. angeht.
Auch dieser Post wird so überhaupt garnichts bringen bei Dir.
Du wirst weiter Dein Ding machen, vorbei an allen anderen, obwohl Du 
eigentlich gerne Mitstreiter hättest.

von Mark B. (markbrandis)


Lesenswert?

Michael K. schrieb:
> Als Lernsystem vielleicht, aber das einzige was man da lernt ist eine
> hohe Frustrationstoleranz gegenüber grauenhafter Doku.

Oh, oh, oh! Da kenn ich aber so einige Industrieprojekte, bei denen man 
das als Skill sehr gut gebrauchen kann.

:-)

von Michael K. (Gast)


Lesenswert?

Auch wieder wahr ;-)

von TriHexagon (Gast)



Lesenswert?

Josef G. schrieb:
> Hier eine Beschreibung des Befehlssatzes, ausgeschrieben ohne
> Platzhalterzeichen. Ist die Beschreibung so besser lesbar?

Nein. So wie im Anhang sollte es ungefähr aussehen (aus Datenblättern 
von Atmel entnommen).

von (prx) A. K. (prx)


Lesenswert?

Analoger schrieb:
> Wenn er einen 80er-Jahre 8-Bitter nachbauen will, kommt er um den Akku
> nicht herum:-)

Der 8-Bit Mikrocontroller Z8 von Zilog 1979 hat keinen Akku, sondern 16 
Register.

Der 8-Bit Mikroprozessor 2650 von Signetics aus den 70ern hatte 
ebenfalls keinen Akku, sondern 4 Register.

: Bearbeitet durch User
von Chris B. (dekatz)


Lesenswert?

A. K. schrieb:
> Der 8-Bit Mikroprozessor 2650 von Signetics aus den 70ern

OMG, erinnert mich an meine ersten "Gehversuche", war in einem 
INSTRUCTOR 50 verbaut....Handassemblierung mit Bleistift und Radiergummi 
auf toten Holz etc.....

von Josef G. (bome) Benutzerseite


Lesenswert?

Noch ein Versuch:
1
nn ist zweites Byte eines 2-Byte-Befehls ,  % ist  X|Y|Z
2
3
AN.B      A <=  A and B
4
NR.B      A <=  A nor B
5
XR.B      A <=  A xor B
6
AV.B      A <=  A+B+V            V <= Carry
7
SV.B      A <=  A-B-V            V <= Carry
8
LV.B      A <=  B-A-V            V <= Carry
9
GT.B      A <=  B
10
ST.B      B <=  A
11
12
AN. nn    A <=  A and nn
13
NR. nn    A <=  A nor nn
14
XR. nn    A <=  A xor nn
15
AV. nn    A <=  A+nn+V           V <= Carry
16
SV. nn    A <=  A-nn-V           V <= Carry
17
LV. nn    A <=  nn-A-V           V <= Carry
18
GT. nn    A <=  nn
19
AD. nn    A <=  A+nn
20
21
ANM%      A <=  A and (%)
22
NRM%      A <=  A nor (%)
23
XRM%      A <=  A xor (%)
24
AVM%      A <=  A+(%)+V          V <= Carry
25
SVM%      A <=  A-(%)-V          V <= Carry
26
LVM%      A <=  (%)-A-V          V <= Carry
27
GTM%      A <=  (%)
28
STM%     (%) <=  A
29
30
AV.S      K <=  K+S+V            V <= Carry
31
SV.S      K <=  K-S-V            V <= Carry
32
LV.S      K <=  S-K-V            V <= Carry
33
34
AD.S      K <=  K+S
35
SD.S      K <=  K-S
36
LD.S      K <=  S-K
37
38
AD.%      K <=  K+%
39
SD.%      K <=  K-%
40
LD.%      K <=  %-K
41
42
GT.S      K <=  S
43
ST.S      S <=  K
44
GT.%      K <=  %
45
ST.%      % <=  K
46
47
RS.%      S <=  %
48
SS.%      % <=  S
49
50
SL.K      B <=  A ,    A <= 0
51
52
SL.S      S LowByte <= A ,  S HighByte <= 0
53
SL.%      % LowByte <= A ,  % HighByte <= 0
54
55
GL.S      A <= LowByte  von S
56
GH.S      A <= HighByte von S
57
GL.%      A <= LowByte  von %
58
GH.%      A <= HighByte von %
59
60
EX.S      Austausch  K <> S
61
EX.%      Austausch  K <> %
62
ES.%      Austausch  S <> %
63
64
ZO.S      S <= 0
65
ZO.%      % <= 0
66
67
NE.V      V  wird logisch negiert
68
NE.U      U  wird logisch negiert
69
NE.A      A  wird logisch negiert
70
NE.B      B  wird logisch negiert
71
NE.K      K  wird logisch negiert
72
73
ZO.V      V <= 0
74
ZO.U      U <= 0
75
ZO.A      A <= 0
76
ZO.B      B <= 0
77
ZO.K      K <= 0
78
79
SE.V      V <= 1
80
SE.U      U <= 1
81
82
IV.A      A <=  A+V              V <= Carry
83
DV.A      A <=  A-V              V <= Carry
84
85
IC.A      A <=  A+1
86
IC.K      K <=  K+1
87
IC.S      S <=  S+1
88
89
DC.A      A <=  A-1
90
DC.K      K <=  K-1
91
DC.S      S <=  S-1
92
93
PV.A      A <=  8-fache Kopie von V ,  V <= 0
94
PV.B      B <=  8-fache Kopie von V ,  V <= 0
95
96
TZ.A      wenn nicht  A=0   dann   ( V <= 1 )
97
TZ.B      wenn nicht  B=0   dann   ( V <= 1 )
98
99
RD.A      A wird nach unten durch V rotiert
100
           Resultat V7654321      V <= Bit0
101
RD.B      B wird nach unten durch V rotiert
102
           Resultat V7654321      V <= Bit0
103
104
RU.A      A wird nach oben  durch V rotiert
105
           Resultat 6543210V      V <= Bit7
106
RU.B      B wird nach oben  durch V rotiert
107
           Resultat 6543210V      V <= Bit7
108
109
CP.V      V <=  V xor U
110
CR.V      U <=  V xor U , dann wird ein RU.A ausgeführt
111
112
TAs  mit s= 1..7      A wird s Bitstellen nach oben verdreht
113
                      Resultat von TA3 ist 43210765
114
115
TKs  mit s= 1..f      K wird s Bitstellen nach oben verdreht
116
117
I%s  mit s= 0..7      % <=  %+s+1
118
D%s  mit s= 0..7      % <=  %-s-1
119
120
I%E       % <= %+1 ,  und Austausch  A <> B
121
D%E       % <= %-1 ,  und Austausch  A <> B
122
123
IKL nn    K <=  K+nn+1
124
DKL nn    K <=  K-nn-1
125
I%L nn    % <=  %+nn+1
126
D%L nn    % <=  %-nn-1
127
128
GTA nn    K <=     00nn
129
GTR nn    K <=     P+nn+3
130
ADR nn    K <=   K+P+nn+3
131
132
NO1       no operation       1 Zyklus
133
NO2       no operation       2 Zyklen
134
135
NON nn    no operation    2+nn Zyklen   falls nn > 0
136
NON 00    K <=  R            2 Zyklen
137
138
GT.Q      K <=  Q
139
140
S.RP        R <= P+1
141
O.RP nn     R <= P+2 ,   P <= P+nn+3
142
143
Bedingung cc ist    WY   always
144
                    VZ   V ist 0
145
                    VS   V ist nicht 0
146
                    UZ   U ist 0
147
                    US   U ist nicht 0
148
                    AZ   A ist 0
149
                    AS   A ist nicht 0
150
                    KZ   K ist 0
151
                    KS   K ist nicht 0
152
153
O.cc nn    wenn cc         dann ( P <= P+nn+3 )
154
B.cc nn    wenn cc         dann ( P <= P-nn-1 )
155
B.CN nn    wenn nicht S=0  dann ( P <= P-nn-1 , S <= S-1 )
156
157
R.cc    wenn cc         dann ( P <= R )
158
R.CN    wenn nicht S=0  dann ( P <= R , S <= S-1 )
159
R.I%    wenn nicht S=0  dann ( P <= R , S <= S-1 , % <= %+1 )
160
R.D%    wenn nicht S=0  dann ( P <= R , S <= S-1 , % <= %-1 )
161
162
Bei  O.VZ, O.VS, B.VZ, B.VS, R.VZ, R.VS   wird   V <= 0
163
164
Alle O-,B- Operationen dauern  3 Zyklen | 2 Zyklen
165
           wenn der Sprung erfolgt | nicht erfolgt
166
167
J..     P und R erhalten K ,  Q und K erhalten P+1
168
169
SW.%    nach dem Einlesen des folgenden OpCodes mit FE
170
        wird statt eines BN ein B% ausgegeben. Das soll
171
        extern eine memory-page-Umschaltung bewirken.
172
        Das Resultat muss beim folgenden tA bereitstehen.
173
174
H..     wenn ein J.. folgt:   Nach dem Einlesen dieses OpCodes
175
           mit FE wird statt eines BN ein BP ausgegeben.  Das
176
           soll extern eine memory-page-Umschaltung bewirken.
177
           Das Resultat muss beim folgenden tA bereitstehen.
178
           Gesamtdauer  H.. und  J..  2 Zyklen.
179
180
        sonst:   Nach dem Einlesen dieses OpCodes mit (FE/BN)
181
           folgt ein (HA/BN).    Allein H.. dauert 2 Zyklen.
182
183
           Ausnahme:  Wenn die auf  H..  folgende Operation
184
           wieder ein H.. ist, erfolgt (KA/BN) statt (HA/BN),
185
           und die CPU bleibt im Zustand BN bis Reset erfolgt.

von Falk B. (falk)


Lesenswert?

@Josef G. (bome)

>Noch ein Versuch:

Und wieder grandios gescheitert.

von Marktwächter (Gast)


Lesenswert?

"Zu erreischen Gluckseligkeit unter finstrem Tann, ganz einfach 
Handbedienung von GWK 9091: 1. Auspack und freu. 2. Slippel A kaum 
abbiegen und verklappen in Gegenstippel B fuer Illumination von GWK 
9091. 3. Mit Klamer C in Sacco oder Jacke von Lebenspartner einfraesen 
und laecheln fuer Erfolg mit GWK 9091. 4. Fuer eigens Weihnachtsfeierung 
GWK 9091 setzen auf Tisch."

-Bedienungsanleitung für Weihnachtskerzen Typ GWK 9001.

"Stellen Sie die Gerte des Singweisen Griffers Zur EINSTELLUNG. Eine 
nette Singstimme wird verbeugen den anderen Teil auf denn Telephon von 
hörender Yhrer geheimer Unterredung."

-Gebrauchsanleitung für dein Handy eines asiatischen Herstellers.
Beide Beispiele von 
https://www.sueddeutsche.de/digital/kuriose-bedienungsanleitungen-teutonische-gemuetlichkeit-fuers-heim-1.11310

Jetzt ein Beispiel von  Josef G.:

A wird nach unten durch V rotiert
A wird s Bitstellen nach oben verdreht
Nach dem Einlesen dieses OpCodes
mit FE wird statt eines BN ein BP ausgegeben.

Vielleicht sollten wir Josefs Projekt mal den Chinesen zum Übersetzen 
geben. Wäre vielleicht sogar verständlicher...

von Hans-Georg L. (h-g-l)


Lesenswert?

Marktwächter schrieb:
> Vielleicht sollten wir Josefs Projekt mal den Chinesen zum Übersetzen
> geben. Wäre vielleicht sogar verständlicher...

Bitteschön ;-)

Josefisch

A wird nach unten durch V rotiert
A wird s Bitstellen nach oben verdreht
Nach dem Einlesen dieses OpCodes
mit FE wird statt eines BN ein BP ausgegeben.

Chinesisch

A xiàng xià xuánzhuǎn tōngguò V.
A xiàngshàng xuàn zhuǎn s wèi
kàn wán zhège OpCode zhīhòu
yǔ FE yīqǐ fāxíng BP ér bùshì BN

und zurück auf Deutsch

A dreht sich nach unten durch V.
A dreht sich ein bisschen nach oben
Nach dem Lesen dieses OpCode
Release BP statt BN mit FE.

Ich hoffe jetzt ist alles viel verständlicher ;-)

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Noch ein Versuch:

Aber man muss zumindest so ehrlich sein, dass die Richtung stimmt. Das 
ist schon wesentlich lesbarer wie die kryptische Doku die du sonst so 
hast. Der Weg ist der richtige, aber am Ziel bist du noch nicht 
angekommen ;-)

von Sepp (Gast)


Lesenswert?

Ich habe gerade das FPGA-Erklärungsvideo vom EEV-Blog angeschaut und ich 
muss sagen man muss schon Respekt vor Leuten haben die damit etwas 
zustande bringen :-)

von 2⁵ (Gast)


Lesenswert?

Ich habe hier ein paar Bücher zum 6502. Der ist jetzt wirklich nicht so 
kompliziert. Das MOS Programmier Handbuch dafür hat immerhin 140 Seiten 
plus ca 40 Seiten Anhang. Rodnay Zaks hat immerhin ca 430 Seiten 
gebraucht. Der Kurs vom 64er "Assembler ist keine Alchemie" braucht auch 
so um die 70 Seiten. Da könntest du schon ein bisschen mehr 
dokumentieren.

Beispiele: Erkläre mal alle Register. Ich musste in den in den CPU Code 
schauen (nicht sehr übersichtlich) um zu begreifen, dass X, Y und Z 
Register 16 Bit haben... habe sie doch, oder? Und Akku A und B (jeweils 
8-Bit) sind zusammen D (16 Bit), wie beim HC11, oder?

Also:

1) Register erklären (mir ist z.B. unklar, welches der Stackpointer ist)

2) Erkläre dann man die grundlegenden Befehle, also:

AN - And
NR - Nor
XR - Xor
AV - Add mit Carry, V ist das Carry-Flag (warum nicht C?)
SV - Substract mit Carry (A-B)
LV - Substract mit Carry (andersherum B - A)
GT - Get, Wert in Akku A laden
ST - Store, Wert vom Akku in Register oder im Speicher/RAM abspeichern.

3) Dann erkläre die Adressierungsarten, anhand eines Befehls, also:

GT.B - Lade den Akku A mit Inhalt von Akku B
GT. 01 - Lade den Wert 01 in den Akku (Unklar: Dezimal, Hex, ...), also 
unmittelbar
GTMX - Lade Akku A mit dem Inhalt der Speicheradresse, auf die das 
X-Register zeigt
GTMY - GTMX - Lade Akku A mit dem Inhalt der Speicheradresse, auf die 
das Y-Register zeigt
[...]
(%) bedeutet wohl, den Inhalt auf den das Register % zeigt (indirekt)
% ist der Inhalt des Registers selbst (direkt)

Gibt es neben unmittelbar, Register direkt und Register indirekt noch 
weitere Adressierungsarten? Speicher direkt scheint es ja nicht zu 
geben.
Wie läd' man eine 16-bit Adresse in das X, Y oder Z Register?
Also z.B. 0x1234 ins X Register?

Ich halte IX0, um das X-Register um eines zu erhöhen, übrigens auch für 
suboptimal... warum nicht IX1 bis IX8?

Was ist K und P?

GTA nn    K <=     00nn
GTR nn    K <=     P+nn+3
ADR nn    K <=   K+P+nn+3

von 2⁵ (Gast)


Lesenswert?

2⁵ schrieb:
> (Unklar: Dezimal, Hex, ...)

Wobei das ja zum Assembler gehört.

von Josef G. (bome) Benutzerseite


Lesenswert?

2⁵ schrieb:
> ...

Die neue Beschreibung der Befehle habe ich inzwischen
auch in den Artikel eingebaut: 8bit-CPU: bo8
Die meisten Fragen werden im Artikel beantwortet.

Eine erläuternde Beschreibung zur CPU findet sich auch
im Artikel zum Gesamt-Projekt: 8bit-Computer: bo8h

> um zu begreifen, dass X, Y und Z Register 16 Bit haben
> Und Akku A und B (jeweils 8-Bit) sind zusammen D (16 Bit)

Steht zwar nicht explizit im Artikel zur CPU, aber dort
findet sich die Breite von Adressbus und Datenbus. Und
es ergibt sich aus der Pseudo-Grafik zu den Registern.
Was du hier D nennst, heisst bei mir K.

> mir ist z.B. unklar, welches der Stackpointer ist

Gibt es nicht. Siehe hierzu die Arbeitsweise des Sprungbefehls J..

> (%) bedeutet wohl den Inhalt auf den das Register % zeigt

So ist es.

> Gibt es neben unmittelbar, Register direkt und
> Register indirekt noch weitere Adressierungsarten?

Nein.

> Wie läd' man eine 16-bit Adresse in das X, Y oder Z Register?
> Also z.B. 0x1234 ins X Register?
1
GTA  34
2
AD.  12
3
ST.X

> Was ist K und P?

K ist Kurzbezeichnung für AB,  P ist der Programmzähler

: Bearbeitet durch User
von Marie (Gast)


Lesenswert?

Josef G. schrieb:
> Die meisten Fragen werden im Artikel beantwortet.

Dass etwas irgendwo steht reicht nicht.
Es muss in einer sinnvollen Strukturierung vorhanden sein, damit es 
verständlich ist.

> Steht zwar nicht explizit im Artikel zur CPU

Du erkennst das Problem?

> Siehe hierzu die Arbeitsweise des Sprungbefehls J..

Gäbe es ein Kapitel mit dem Namen "Arbeitsweise des Sprungbefehls J..", 
wäre das einfach.

>K ist Kurzbezeichnung für AB

Totaler Unsinn, der nur Verwirrung stiftet.
Es spart nur ein einziges Zeichen. Lass es weg und nenne es AB.

von Josef G. (bome) Benutzerseite


Lesenswert?

2⁵ schrieb:
> Unklar: Dezimal, Hex, ...

Hex. Sollte klar sein durch die Zweistelligkeit von nn.

Würde im übrigen der hinter dem Projekt stehenden
Philosophie widersprechen, Dez zu verwenden.

von Marie (Gast)


Lesenswert?

Josef G. schrieb:
> Sollte klar sein durch die Zweistelligkeit von nn.

nein?

> Würde im übrigen der hinter dem Projekt stehenden
> Philosophie widersprechen, Dez zu verwenden.

Und wo ist das dokumentiert?
Ist es so dokumentiert, dass man es liest, bevor man mit diesen Zahlen 
in Kontakt kommt?

von Route_66 H. (route_66)


Lesenswert?

Hallo, liebe Leute.
Hört doch endlich auf, auf Josef herumzutrampeln. Er will und kann 
Eure Einlassungen nie verstehen. Das ist typisch für diese Krankheit.

Beim Autismus gibt es verschiedene Ausprägungen. Die Asperger-Variante 
ist es offensichtlich nicht. Da würde Josef Alles in der dunklen Ecke 
des Kellers für sich allein machen, und nie an die Öffentlichkeit 
treten.

Eure Versuche, ihn zu belehren oder anzuleiten müssen ins Leere 
laufen.
Autisten haben ein vorgegebenes Denkmuster. Davon abweichen geht nicht. 
Fremde Einlassungen dazu kommen bei den Kranken überhaupt nicht an - als 
ob sie nie geäußert wurden.
Wenn man solche Menschen umstimmen könnte, dann wären es nur 
Ungebildete, die noch etwas Lernen können.
Bei Autisten geht das aber nicht, denn es ist eine (noch?) unheilbare 
Krankheit!

Mein Vorschlag: ein Moderator hängt das Schloß uter den Thread oder es 
antworten nur noch Jene, die dieselbe Krankheit haben und Josef deshalb 
verstehen können.

von Falk B. (falk)


Lesenswert?

Meine Rede seit Jahren. Aber auch mich versteht anscheinend keiner 8-0

von Gu. F. (mitleser)


Lesenswert?

Josef G. schrieb:
>> Was ist K und P?
>
> K ist Kurzbezeichnung für AB

Genial!

von Radler (Gast)


Lesenswert?

Route 6. schrieb:
> Autisten haben ein vorgegebenes Denkmuster. Davon abweichen geht nicht.
> Fremde Einlassungen dazu kommen bei den Kranken überhaupt nicht an - als
> ob sie nie geäußert wurden.

Findest Du es angemessen über Autismus zu reden und Leute hier zu 
beleidigen? Der Josef kriegt eben einfach keine Doku hin und arbeitet 
chaotisch. Zudem ist das sicher kein Profiprojekt sondern Bastelei. 
Schau Dir lieber mal den Scheissdreck an, den man auf Github findet: 
Hingerotze Codes ohne Doku at all! Da gibt es überhaupt nichts dazu. Das 
Gleiche auf anderen open source Plattformen.

Die meisten Entwickler sind unfähig eine schlüssig Doku zu liefern. 
Selbst in beruflichen Projekten.


Gu. F. schrieb:
> Josef G. schrieb:
>>> Was ist K und P?
>>
>> K ist Kurzbezeichnung für AB
>
> Genial!

Da muss man erst mal drauf kommen. Ich z.B. hätte jetzt vermutet, das K 
die Kurzform für K und A ist als den Komponentenakku, den man mit dem 
Triple-Load-Befehl in die Ultra-Ionen-Register schreibt.

von (prx) A. K. (prx)


Lesenswert?

Gu. F. schrieb:
>> K ist Kurzbezeichnung für AB
>
> Genial!

Hast du das Carry-Flag schon gefunden? ;-)

von Falk B. (falk)


Lesenswert?

@Radler (Gast)

>> Autisten haben ein vorgegebenes Denkmuster. Davon abweichen geht nicht.
>> Fremde Einlassungen dazu kommen bei den Kranken überhaupt nicht an - als
>> ob sie nie geäußert wurden.

>Findest Du es angemessen über Autismus zu reden und Leute hier zu
>beleidigen?

Das ist keine Beleidigung sondern eine sachliche Feststellung, auch wenn 
sie von medizinischen Laien kommt.

> Der Josef kriegt eben einfach keine Doku hin und arbeitet
>chaotisch.

Er ist auch kommunikationsbehindert.

> Zudem ist das sicher kein Profiprojekt sondern Bastelei.

Mag sein.

>Schau Dir lieber mal den Scheissdreck an, den man auf Github findet:
>Hingerotze Codes ohne Doku at all! Da gibt es überhaupt nichts dazu. Das
>Gleiche auf anderen open source Plattformen.

Das steht gar nicht zur Debatte.

>Die meisten Entwickler sind unfähig eine schlüssig Doku zu liefern.
>Selbst in beruflichen Projekten.

Stimmt. Macht die Sache aber nicht besser.

von Falk B. (falk)


Lesenswert?

@A. K. (prx)

>>> K ist Kurzbezeichnung für AB
>
>> Genial!

>Hast du das Carry-Flag schon gefunden? ;-)

Y?

von (prx) A. K. (prx)


Lesenswert?

Falk B. schrieb:
>>Hast du das Carry-Flag schon gefunden? ;-)
>
> Y?

Vast.

von Sepp (Gast)


Lesenswert?

Ich kenne das: das Projekt ist im Kopf schon ziemlich fertig, nur 
Details und Doku sind eine schwere Nummer. Man muss es nicht nur 
notieren sondern auch noch schön formatieren ...

von Route_66 H. (route_66)


Lesenswert?

Radler schrieb:
> Findest Du es angemessen über Autismus zu reden und Leute hier zu
> beleidigen?

Findest du es beleidigend, wenn ich sage meine Frau ist grippekrank?
Seit wann ist Krankheit ein Beleidigungstatbestand.
Ich bin zwar kein Mediziner, hatte aber beruflich und im privaten Umfeld 
mit verschiedensten Formen und Ausprägungen des Autismis zu tum.

Josef ist eindeutig dort einzuordnen.

Die Frage der Dokumentation ist ja nur ein Bruchteil der Symtome...

von Marie (Gast)


Lesenswert?

Route 6. schrieb:
> Findest du es beleidigend, wenn ich sage meine Frau ist grippekrank?

Wenn sie nicht grippekrank ist, dann ja.
Es ist einfach unverschämt jemanden "behindert" zu nennen, wenn man 
nicht weiß, ob das eine Tatsache ist.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Route 6. schrieb:
> Seit wann ist Krankheit ein Beleidigungstatbestand.
> Ich bin zwar kein Mediziner, hatte aber beruflich und im privaten Umfeld
> mit verschiedensten Formen und Ausprägungen des Autismis zu tum.

Das wundert doch etwas, dass du dann von „Krankheit“ sprichst.

von Stephan N. (someone_like_you)


Lesenswert?

Gibt es eigentlich irgendwo Angaben, wie gross deine CPU ist? Also FFs, 
LUTs, etc.? Und wie sieht es mit maximaler Taktfrequenz und 
Instruktionen/Sekunde aus?

In deiner Doku habe ich nicht wirklich was gefunden...

von Marktwächter (Gast)


Lesenswert?

Stephan N. schrieb:
> In deiner Doku habe ich nicht wirklich was gefunden...

Das verwundert hier niemanden.

von Josef G. (bome) Benutzerseite


Lesenswert?

Stephan N. schrieb:
> Gibt es eigentlich irgendwo Angaben, wie gross deine CPU ist?

Habe ich vor langer Zeit mal herauszufinden versucht:
Beitrag "Re: Ein 8bit-Rechner auf dem Spartan-3A-Starterkit"

Die Zahlen sind nicht mehr aktuell, da ich seitdem vieles
am Code geändert habe. Neue Zahlen habe ich nicht parat.

> Und wie sieht es mit maximaler Taktfrequenz
> und Instruktionen/Sekunde aus?

Das weiss ich nicht. Du sprichst hier einen wunden Punkt an.
Ich habe bisher um die Beschäftigung mit Timing-Constraints
einen großen Bogen gemacht, das ist mir alles zu kompliziert.
Das Projekt ist halt ein Bastler-Projekt.

Natürlich habe ich versucht, in den Kombinatorik-Netzen
die Zahl der Ebenen in etwa abzuschätzen und alles
einigermaßen ausgewogen zu verteilen.

In meiner aktuellen Realisierung dauert ein Vollzyklus,
bestehend aus den Halbzyklen tA und tB, 640 Nanosekunden.
Befehle dauern 1 oder 2 oder 3 Vollzyklen.

von Marie (Gast)


Lesenswert?

Josef G. schrieb:
> Du sprichst hier einen wunden Punkt an.

Zum Glück ist das der einzige Wunde Punkt des Projekts.

von bko (Gast)


Lesenswert?

Marie schrieb:
> Josef G. schrieb:
>> Die meisten Fragen werden im Artikel beantwortet.
>
> Dass etwas irgendwo steht reicht nicht.
> Es muss in einer sinnvollen Strukturierung vorhanden sein, damit es
> verständlich ist.
>
>> Steht zwar nicht explizit im Artikel zur CPU
>
> Du erkennst das Problem?
@Marie: erkennst du das Problem?
vor 4 Jahren schon ähnliche Vorschläge und hat Josef seine Doku 
geändert?....
Beitrag "Re: 8bit-Computing mit FPGA"

>
>> Siehe hierzu die Arbeitsweise des Sprungbefehls J..
>
> Gäbe es ein Kapitel mit dem Namen "Arbeitsweise des Sprungbefehls J..",
> wäre das einfach.

von Xilinx Synthesedienst (Gast)


Angehängte Dateien:

Lesenswert?

Stephan N. schrieb:
> Gibt es eigentlich irgendwo Angaben, wie gross deine CPU ist? Also FFs,
> LUTs, etc.? Und wie sieht es mit maximaler Taktfrequenz und
> Instruktionen/Sekunde aus?
Siehe Anhang.
Ob das Design (noch) läuft, kann ich gerade mangels Hardware nicht 
testen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Xilinx Synthesedienst schrieb:
> Siehe Anhang.

Der gezeigte Ressourcen-Verbrauch gilt natürlich
für das Gesamtsystem, nicht für die CPU allein.

Das lokal geroutete cl2 im Clock-Report hatte ich
auch. Das führt jedoch nicht zu Fehlern, weil die
mit cl2 getakteten Flipflops nicht gleichzeitig
geschrieben und gelesen werden und deshalb
nicht genau gleichzeitig takten müssen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Das CPU-Timing:
1
    0     1 2     3 0     1 2     3 0
2
    |     | |     | |     | |     | |
3
4
    |  tA   |  tB   |  tA   |  tB   |

Typleitungen ändern ihren Zustand zu Zeitpunkten   0 und 2.
Adressen und Write-Daten sind gültig von Zeitpunkt 0 bis 2.

Einlesen von REP zu Zeitpunkten 1 und 3.
Einlesen von Read-Daten zum Zeitpunkt 1.

In einer ASIC-Realisierung der CPU als Einzelbaustein würde
man Adressbus und Datenbus bereits zum Zeitpunkt 1 hochohmig
schalten. Dann stünden die Busse während der tB-Phasen für DMA
oder einen Coprozessor zur Verfügung, und Treiberkonflikte an
den Übergängen von tA und tB wären zuverlässig ausgeschlossen.
Innerhalb eines FPGA ist das nicht nötig, da es dort keine
Tristate-Busse gibt und diese durch Logik ersetzt werden.

Vielleicht fände es jemand deshalb besser, im FPGA auch
Read-Daten erst zum Zeitpunkt 2 einzulesen. Dann stünde
für lesende Speicherzugriffe mehr Zeit zur Verfügung.

Dabei ergäbe sich jedoch folgendes Problem:

Der Befehl H.. liest zunächst den folgenden OpCode ein.
Falls das ein J.. ist, wird während tB statt BN ein BP
ausgegeben, was eine memory-page-Umschaltung für P
bewirkt, und das nachfolgende HA/BN unterbleibt.

Würde H.. den folgenden OpCode erst zum Zeitpunkt 2 einlesen,
dann könnte H.. nicht bereits ab Zeitpunkt 2 statt BN ein BP
ausgeben. Die Entscheidung müsste etwas später erfolgen. Für
die memory-page-Umschaltung bliebe immer noch genug Zeit.
Jedoch würde das Konzept der Typleitungen durchbrochen,
welche sich nur zu Zeitpunkten 0 und 2 ändern.

Als Alternative habe ich mir folgende Lösung überlegt:

H.. gibt nach dem Einlesen des folgenden Opcodes in jedem Fall
statt BN ein BP aus. Zusätzlich wird auch nach HA stets ein BP
statt BN ausgegeben. Falls also auf H.. kein J..  folgt, hebt
das zweite BP die page-Umschaltung des ersten BP wieder auf.

Ob ich selber noch dazu komme, diese Idee umzusetzen,
weiss ich nicht. Deshalb habe ich sie hier mitgeteilt.

von Marktwächter (Gast)


Lesenswert?

Josef G. schrieb:
> H.. gibt nach dem Einlesen des folgenden Opcodes in jedem Fall
> statt BN ein BP aus. Zusätzlich wird auch nach HA stets ein BP
> statt BN ausgegeben. Falls also auf H.. kein J..  folgt, hebt
> das zweite BP die page-Umschaltung des ersten BP wieder auf.

Und noch ein Teil für die Sammlung der kuriosesten Sätze aller Zeiten.

von Ulf (Gast)


Lesenswert?

Marktwächter schrieb:
> Und noch ein Teil für die Sammlung der kuriosesten Sätze aller Zeiten.
:-)

Josef G. schrieb:
> Ob ich selber noch dazu komme, diese Idee umzusetzen,
> weiss ich nicht.
Wer, wenn nicht Du?

von adam (Gast)


Lesenswert?

Josef.
Ob da ein "<=" oder "wird zu" steht macht keinen Unterschied. Darum geht 
es auch nicht.


Josef G. schrieb:
> O.cc nn    wenn cc         dann ( P <= P+nn+3 )

Was bedeutet das O?
Wie merke ich mir, dass bei diesem Befehl "P" verändert wird?
und warum wird 3 addiert? warum nicht 2? oder 69?
Der Befehl könnte auch einfach heißen:

AddToP.cc nn

Und wenn man dann eine 3 hinzuaddiert haben möchte schreibt man noch:

AddToP.cc 3

und fertig. Das wäre schön leserlich.


> B.cc nn    wenn cc         dann ( P <= P-nn-1 )

B... wofür steht das?
Wie merke ich mir, dass hier subtrahiert wird?
Und wo kommt die -1 her?

Warum nicht: SubFromP.cc nn


> B.CN nn    wenn nicht S=0  dann ( P <= P-nn-1 , S <= S-1 )

Ach du meine Güte...
Wofür steht B? Wofür C und wofür N?
Und für was benötigt man solch einen Befehl?
Kann man nicht einfach einen bedingten Sprung zu einer Stelle ausführen,
wo dann P <= P-nn-1 und S <= S-1 gemacht wird?

Also quasi so:
JMP.SNZ label             # Jump if S Not Zero
...
label:
DEC P                     # Decrement P
SUB P, nn                 # Subtract nn from P
DEC S                     # Decrement S

Wäre doch viel besser lesbar und übersichtlicher.

von Josef G. (bome) Benutzerseite


Lesenswert?

adam schrieb:
> ...
> Josef G. schrieb:
>> O.cc nn    wenn cc         dann ( P <= P+nn+3 )
>
> Was bedeutet das O?
> Wie merke ich mir, dass bei diesem Befehl "P" verändert wird?
> und warum wird 3 addiert? warum nicht 2? oder 69?

O.cc nn   omit  Vorwärtssprung falls cc

P ist der Programmzähler

P    Adresse des OpCodes
P+1  Adresse des Distanzbytes nn
P+2  erstes nachfolgendes Byte
P+3  zweites nachfolgendes Byte

Der Offset 3 ist so gewählt, dass mindestens 1 nach-
folgendes Byte übersprungen wird (wenn also nn = 0 ist).

>
>> B.cc nn    wenn cc         dann ( P <= P-nn-1 )
>
> B... wofür steht das?
> Wie merke ich mir, dass hier subtrahiert wird?
> Und wo kommt die -1 her?

B.cc nn   back   Rückwärtssprung falls cc

P-1  ist die Adresse des letzten Bytes vor dem OpCode.

Der Offset -1 ist so gewählt, dass mindestens dieses
eine Byte wiederholt wird (wenn also nn = 0 ist)

>
>> B.CN nn    wenn nicht S=0  dann ( P <= P-nn-1 , S <= S-1 )
>
> Wofür steht B? Wofür C und wofür N?

B.CN   back  ,  counting

> Und für was benötigt man solch einen Befehl?

Zur Beschleunigung von Zählschleifen. S ist der Schleifenzähler.

Vergleiche hierzu auch den Befehl DJNZ des Z80.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Hallo Josef,

es geht nicht darum, dass Du in diesem Thread die offenen Fragen und 
missverständlichen Themen erklärst, sondern all diese Informationen 
gehören in die strukturierte Projektdokumentation. Jemand, der diesem 
Thread nicht folgt und nur Deine Projektdateien kennt, wird die 
Informationen nicht erhalten.

Nimm Dir doch einfach ein normales Lehrbuch für eine der etablierten 
Prozessorarchitekturen als Vorlage, d.h. gerne etwas aus der 8-Bit-Ära 
der 1980er Jahre. In solchen Büchern findet man immer eine 
zusammenhängende Beschreibung aller Register, d.h. mit dem jeweiligen 
Verwendungszweck, der Breite usw.. Dann werden die Adressierungsarten 
definiert und im Detail erklärt. Und zuguterletzt folgt dann der 
eigentliche Befehlssatz, bei dem jeder einzelne Befehl erklärt wird, und 
zwar unter Zuhilfenahme der vorherigen Erläuterungen zu Registern und 
Adressierungsarten.

Genauso bedarf es auch noch Kapitel über die Hardwarearchitektur, d.h. 
Busse, Timing, Adressräume, Taktung, usw..

Wenn man einen Prozessor mit vielen Registern und recht orthogonalem 
Befehlssatz (also nicht bo8) hat, sollten auch Konventionen für die 
Registernutzung festgelegt werden. Bei "klassischen" ARM-Prozessoren im 
32-Bit-Modus wurden z.B. R13 für den Stackpointer und R14 als 
Linkregister definiert, obwohl eigentlich alle Register (außer dem PC 
R15) hierfür hätten verwendet werden können. ARM hat diese Konventionen, 
die insbesondere für Compilerhersteller von allergrößter Wichtigkeit 
sind, als APCS bzw. ATPCS (ARM(/Thumb) procedure calling standard) 
benannt.

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Jemand, der diesem
> Thread nicht folgt und nur Deine Projektdateien
> kennt, wird die Informationen nicht erhalten.

Auf bo8h.de ist meine mikrocontroller.net-Benutzerseite
verlinkt. Dort finden sich Links zu den Forenbeiträgen.
Und in den beiden Artikeln zum Gesamtsystem und
zur CPU wird auf die Forenbeiträge verwiesen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Das ist doch absoluter Murks. Alle Grundlagen MÜSSEN in der 
Dokumentation an einer Stelle stehen, und zwar in sinnvolle Kapitel 
eingeteilt. Nur ergänzende Informationen dürfen extern verlinkt sein. 
Ansonsten wird sich niemand die Mühe machen, alles durchzuarbeiten.

Stelle Dir doch vor, Xilinx würde Deine Vorgehensweise umsetzen. Statt 
der sehr umfangreichen Handbücher zu so ziemlich jeder Kleinigkeit der 
Bausteine und Toolchain (und noch etliche andere Dinge) stünde dort nur 
noch ein kleiner Teil. Und den Rest findet man nur noch als Diskussion 
in irgendwelchen Elektronikforen. Na super.

Aber irgendwie hat Xilinx das anders gemacht, d.h. sie haben erkannt, 
dass die sehr umfangreichen Handbücher eine übergreifende Verwaltungs- 
und Suchfunktion benötigen. Folglich gibt es den DocNav. Das ist also 
genau das Gegenteil der von Dir propagierende Zerfledderung der 
Dokumentation.

Wie viele Leute würden einen Microblaze einsetzen, wenn sie sich dessen 
Dokumentation zwingend in Internetforen zusammensuchen müssten?

von Michael K. (Gast)


Lesenswert?

Josef G. schrieb:
> Dort finden sich Links zu den Forenbeiträgen.

Also wie bei den Ludolfs.
Ist alles da, irgendwo in dem großen Haufen, unter all dem Schrott der 
sich so angesammelt hat.

Ja, hört sich nach einem tollen System an.
Die Doku ist zwar Müll, dafür ist der Code aber unleserlich.
Das System macht zwar nichts besser als hervorragend dokumentierte MCUs, 
dafür gibt es aber wenigstens keine erkennbare Codebasis, keinen 
Compiler und kryptische ASM Mnemonics.
Der einzige Entwickler ist zwar vollkommen unsteuerbar und 
beratungsresistent, dafür gibt es aber eine riesige Community die das 
Teil nicht mit der Kneifzange anfassen würde.

Ich frage mich nur warum Du so viel Zeit darin investierst wenn es Dir 
doch offensichtlich vollkommen egal ist das es in diesem Zustand von 
niemanden verwendbar ist und auf dieser Basis auch niemand bereit sein 
wird sich an diesem Projekt zu beteiligen.

Noch nicht mal als Referenzprojekt für Bewerbungen taugt es.
Jeder Personaler wird die Hände über den Kopf zusammenschlagen wenn er 
Deine isolierte Arbeitsweise sieht und Deine fehlende Bereitschaft auf 
Feedback einzugehen.

Als Spaßprojekt das niemanden ausser Dir gefallen muss, sicher ganz 
tauglich.

von Falk B. (falk)


Lesenswert?

@ Michael K. (Firma: Knoelke Elektronik) (knoelke)

>Ich frage mich nur warum Du so viel Zeit darin investierst wenn es Dir
>doch offensichtlich vollkommen egal ist das es in diesem Zustand von
>niemanden verwendbar ist und auf dieser Basis auch niemand bereit sein
>wird sich an diesem Projekt zu beteiligen.

Ich frage mich, warum DU noch nicht kapiert hast, wo das grundlegende 
Problem WIRKLICH liegt?

Beitrag "Re: 8bit-Computing mit FPGA"

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Natürlich habe ich versucht, in den Kombinatorik-Netzen
> die Zahl der Ebenen in etwa abzuschätzen und alles
> einigermaßen ausgewogen zu verteilen.

Bei heutigen FPGA wird Kombinatorik in LUTs realisiert, d.h. bereits das 
Synthesetool fasst sehr vieles zusammen, sofern LUTs mit der 
entsprechenden Anzahl von Eingängen verfügbar sind. Um also den 
Ressourcenverbrauch und/oder die Signallaufzeiten zu optimieren, sollte 
man sich eher anschauen, wie die eigene Logik durch das Synthesetool 
abgebildet wird. Und hierbei hilft ein Blick in den generierten 
Schaltplan ganz ungemein. Lothar Miller hat auf seiner Homepage auch ein 
paar schöne Beispiele aufgeführt.

von Michael K. (Gast)


Lesenswert?

Falk B. schrieb:
> Ich frage mich, warum DU noch nicht kapiert hast, wo das grundlegende
> Problem WIRKLICH liegt?

Och Falk, das habe ich schon lange kapiert.
Ich schreibe hier aus dem gleichen Grund wie Du: Zerstreuung...

von Sepp (Gast)


Lesenswert?

Pssst...der Meister reflektiert gerade ...

von Josef G. (bome) Benutzerseite


Lesenswert?

Das bisherige CPU-Timing:
1
    0     1 2     3 0     1 2     3 0
2
    |     | |     | |     | |     | |
3
4
    |  tA   |  tB   |  tA   |  tB   |

Typleitungen ändern ihren Zustand zu Zeitpunkten   0 und 2.
Adressen und Write-Daten sind gültig von Zeitpunkt 0 bis 2.

Einlesen von REP zu Zeitpunkten 1 und 3.
Einlesen von Read-Daten zum Zeitpunkt 1.

Josef G. schrieb:
>
> ...
> ...
>
> Vielleicht fände es jemand deshalb besser, im FPGA auch
> Read-Daten erst zum Zeitpunkt 2 einzulesen. Dann stünde
> für lesende Speicherzugriffe mehr Zeit zur Verfügung.
>
> Dabei ergäbe sich jedoch folgendes Problem:
>
> Der Befehl H.. liest zunächst den folgenden OpCode ein.
> Falls das ein J.. ist, wird während tB statt BN ein BP
> ausgegeben, was eine memory-page-Umschaltung für P
> bewirkt, und das nachfolgende HA/BN unterbleibt.
>
> Würde H.. den folgenden OpCode erst zum Zeitpunkt 2 einlesen,
> dann könnte H.. nicht bereits ab Zeitpunkt 2 statt BN ein BP
> ausgeben. Die Entscheidung müsste etwas später erfolgen. Für
> die memory-page-Umschaltung bliebe immer noch genug Zeit.
> Jedoch würde das Konzept der Typleitungen durchbrochen,
> welche sich nur zu Zeitpunkten 0 und 2 ändern.
>
> Als Alternative habe ich mir folgende Lösung überlegt:
>
> H.. gibt nach dem Einlesen des folgenden Opcodes in jedem Fall
> statt BN ein BP aus. Zusätzlich wird auch nach HA stets ein BP
> statt BN ausgegeben. Falls also auf H.. kein J..  folgt, hebt
> das zweite BP die page-Umschaltung des ersten BP wieder auf.


Habe das jetzt so umgesetzt. Das Einlesen von
Read-Daten erfolgt jetzt erst zum Zeitpunkt 2.

8bit-CPU: bo8

von Josef G. (bome) Benutzerseite


Lesenswert?

Eigentlich habe ich mir angewöhnt, negative Bewertungen
zu ignorieren. Aber bei meinem vorherigen Beitrag würde
es mich schon interessieren, woran es liegt.

Gibt es etwa hier jemanden, der das Einlesen
der Read-Daten zum Zeitpunkt 1 besser fand?

von Josef G. (bome) Benutzerseite


Lesenswert?

PS: Als ich das schrieb, stand die Bewertung auf -3.

von MWS (Gast)


Lesenswert?

Josef G. schrieb:
> PS: Als ich das schrieb, stand die Bewertung auf -3.

Der Umstand sollte Dir zu denken geben, dass der Fankreis für die 
Zwangsstörung größer zu sein scheint, als der Fankreis für die Sache 
selbst.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Eigentlich habe ich mir angewöhnt, negative Bewertungen
> zu ignorieren. Aber bei meinem vorherigen Beitrag würde
> es mich schon interessieren, woran es liegt.
>
> Gibt es etwa hier jemanden, der das Einlesen
> der Read-Daten zum Zeitpunkt 1 besser fand?

Nein, es interessiert hier niemanden auch nur die Bohne, zu welchem 
Zeitpunkt das Einlesen stattfindet, weil sich niemand außer Dir selbst 
mit den Interna des bo8 beschäftigt. Die wenigen Leute, die vor langer 
Zeit daran interessiert waren, hast Du mittlerweile sehr erfolgreich 
vergrault.

Wir haben hier schon Unmengen an Ratschlägen gegeben, wie du das 
Interesse steigern könntest. Statt auf diese einzugehen, bügelst Du sie 
nur ab und frickelst weiter an dem Prozessor herum. Spätestens mit den 
immer wieder stattfindenden Befehlssatzänderungen vertreibst Du nicht 
nur die Leute, die an der Hardware interessiert wären, sondern jeden, 
der für den bo8 Software schreibt. Solche Änderungen bedeuten im 
Zweifelsfall, vorhandene Programme Zeile für Zeile durchgehen zu müssen, 
um zu schauen, wo es inkompatibel wurde.

Dein Projekt ist und bleibt also nichts anderes als eine 
Modelleisenbahnanlage, an der nur Du herumbastelst. Als Bastler kann man 
damit sehr viel Spaß haben, und wenn man solch eine Anlage alle paar 
Monate oder Jahre seiner Familie oder Bekannten vorführt, bekommt man 
für eine schöne Anlage auch viel durchaus ernstgemeintes Lob. Niemand 
käme jedoch auf die Idee, mitbasteln zu wollen (, außer z.B. meiner 
Frau, die mit größter Begeisterung Häuser zusammenbaut), sondern würde 
lieber eine eigene Anlage aufbauen wollen. Natürlich kann man auch an 
einer Clubanlage herumbasteln, aber das ist nur etwas für ganz 
hartgesottene Waldschrate.

Erfolgreiche große Modellbahnen werden nicht von Leuten aufgebaut und 
betrieben, die eigentlich nur im eigenen stillen Kämmerchen basteln 
wollen, sondern von Profis, die aus den verschiedensten Gewerken 
stammen. Und das sind nicht nur Handwerker, sondern auch Kaufleute, 
Marketingleute, usw..

https://www.miniatur-wunderland.de/

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> es interessiert hier niemanden auch nur die Bohne,

Wäre schön, wenn die Leute, die an der Sache nicht
interessiert sind, hier einfach wegbleiben würden.

Dann würde der Thread nicht durch sachfremde
Beiträge so aufgebläht, und die sachlichen
Beiträge wären leichter zu finden.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Wäre schön, wenn die Leute, die an der Sache nicht
> interessiert sind, hier einfach wegbleiben würden.

MWS hat das schon sehr zutreffend formuliert.

von Florian (Gast)


Lesenswert?

Josef G. schrieb:
> Wäre schön, wenn die Leute, die an der Sache nicht
> interessiert sind, hier einfach wegbleiben würden

Dir ist schon klar, dass es hier das uC.net ist?
Wenn du sachlich willst, musst du in ein Forum gehen bei dem
Mods unsachliche Beiträge löschen. Und mit unsachliche Beiträge meine
ich nicht Kritik an den Mods (die hier gelöscht wird) sondern 
unsachliche Beiträge
die nichts mit dem Titel zu tun hat (die hier stehen gelassen werden).

von der_clone (Gast)


Lesenswert?

Josef G. schrieb:
> Wäre schön, wenn die Leute, die an der Sache nicht
> interessiert sind, hier einfach wegbleiben würden.

Dann würde außer dir aber keiner schreiben...

von Josef G. (bome) Benutzerseite


Lesenswert?

Beitrag "Re: Gibt es eine Programmiersprache mit diesem Schleifentyp?"

>> du hingegen hast hier Arbeit auf 2 Befehle aufgeteilt (S.RP  und  R.IY)
>> d.h. man muss fairerweise auch die Zeit von beiden addieren..
>
> Nein, man muss die Zeiten nicht addieren. Das S.RP steht
> ausserhalb der Schleife und wird nur 1-mal ausgeführt.


Habe gerade im Artikel zum Gesamtsystem im Abschnitt zur CPU
eine missverständliche Formulierung entdeckt. Da stand, die
Schleifenstartadresse R werde gesetzt am Schleifenanfang.
Tatsächlich wird sie gesetzt vor dem Schleifenanfang.

Möchte hier darauf hinweisen für den Fall, dass
die Falschinformation jemanden vergrault hat.

8bit-Computer: bo8h

von Michael K. (Gast)


Lesenswert?

Josef G. schrieb:
> Wäre schön, wenn die Leute, die an der Sache nicht
> interessiert sind, hier einfach wegbleiben würden.

Du suchst Die Öffentlichkeit und Du findest sie auch, nur nicht die 
Öffentlichkeit die Du gerne hättest.
Es wurde sowohl inhaltlich über die BO8 (teilweise sehr fachlich 
fundiert) als auch über die Art Deiner Dokumentation gesprochen.

Da man bei Dir aber das Gefühl hat mit einer Parkuhr zu sprechen und 
keine der Rückmeldungen zu wesentlichen Änderungen geführt hat, wird 
nunmal überwiegend darüber gesprochen warum keiner mehr Bock hat sich 
das weiter anzutun.

Du möchtest Anwender und Mitstreiter, aber es gelten ausschliesslich 
Deine Regeln dabei.
Das funktioniert schon im Job nicht und es funktioniert auch ganz 
bestimmt nicht hier.
Da Du da aber vollkommen beratungsresistent bist, unterhalten wir uns 
über den Grad der Behinderung.
Verständlich für die meisten, für Dich natürlich nicht, was ja wiederum 
Teil der Diskussion ist.

Wenn Dir das nicht gefällt, ist das hier ganz bestimmt das falsche 
Forum.
Anarchie bedeutet die Diktatur der Masse.
Leb damit oder nicht.

von Josef G. (bome) Benutzerseite


Lesenswert?

Michael K. schrieb:
> Da Du da aber vollkommen beratungsresistent bist,

Immerhin habe ich die Befehlssatz-Beschreibung geändert.

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Spätestens mit den immer wieder stattfindenden
> Befehlssatzänderungen vertreibst Du nicht nur
> die Leute, die an der Hardware interessiert wären,
> sondern jeden, der für den bo8 Software schreibt.

Hier eine Zusammenstellung aller durchgeführten Änderungen

Ursprünglich gab es die Operationen
1
AZ.A    A <= A+V        V <= Carry
2
SZ.A    A <= A-V        V <= Carry
3
LZ.A    A <= 0-A-V      V <= Carry

Sie wurden für kurze Zeit ersetzt durch
1
NA.A    A wird arithmetisch negiert
2
NA.K    K wird arithmetisch negiert
3
ZO.K    K <= 0

Die ersten zwei Ersetzungen wurden rückgängig gemacht,
AZ.A und SZ.A heissen jetzt IV.A und DV.A
1
IV.A    A <= A+V        V <= Carry
2
DV.A    A <= A-V        V <= Carry
3
ZO.K    K <= 0

Und die Befehle wurden neu angeordnet.

Hinzu kommen folgende Änderungen bei den Mnemonics:

Die logischen Negationen NG.* heissen jetzt NE.*
EX.B (Austausch von A und B) heisst jetzt TK8

Das ist der Stand seit Juni 2016.
Beitrag "Re: 8bit-Computing mit FPGA"

Es gab noch eine Änderung bei der Codefolge H.. H..
Beitrag "Re: 8bit-Computing mit FPGA"

von Michael K. (Gast)


Lesenswert?

Josef G. schrieb:
> Immerhin habe ich die Befehlssatz-Beschreibung geändert.

Ja ...
Im Josef Style.
Die Anregung die BO8 so zu dokumentieren wie es jeder andere MCU 
Hersteller tut ist aber wirkungslos an Dir abgeprallt.
Du siehst die Notwendigkeit nicht und damit hat es auch für keinen 
anderen notwendig zu sein.
Die Leute die Du versuchst anzusprechen verlangen aber eine bestimmte 
Form der Dokumentation.
Die sind sie gewohnt, mit sowas können sie schnell und effizient 
arbeiten.
Die bekommen sie nicht von Dir und daher bekommst Du nicht ihre 
Mitarbeit.

Wie sagte Falk: Der Wurm muss dem Fisch schmecken, nicht dem Angler.

Ist ja okay, das kannst Du so machen, ist ja Dein Projekt.
Jetzt bleibt es aber auch Deins, weil die ernsthaft interessierten 
längst weitergezogen sind.
Der Drops ist gelutscht.

von ehemaliger 8 Bitter (Gast)


Lesenswert?

Josef G. schrieb:
> Typleitungen ändern ihren Zustand zu Zeitpunkten   0 und 2.
> Adressen und Write-Daten sind gültig von Zeitpunkt 0 bis 2.
Also ehrlich, ich kapiere nicht, was das ist oder sein soll.

Ein Diagramm braucht eine Überschrift, eine Einleitung und einen Bezug.
Wenn man sich alles zusammensuchen muss, ist das nix.

von Josef G. (bome) Benutzerseite


Lesenswert?

ehemaliger 8 Bitter schrieb:
> Also ehrlich, ich kapiere nicht, was das ist oder sein soll.

Hast du den Artikel schon angeschaut?
8bit-CPU: bo8

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Nein, es interessiert hier niemanden ..., zu welchem
> Zeitpunkt das Einlesen stattfindet, weil sich niemand
> außer Dir selbst mit den Interna des bo8 beschäftigt.

Der Einlese-Zeitpunkt ist keine interne Eigenschaft,
sondern durchaus von Bedeutung für die Anwendung.

Und die Verlegung von Zeitpunkt 1 auf Zeitpunkt 2
ist eine deutliche Verbesserung, durch welche es
vielleicht doch einmal Anwender geben wird.

von udok (Gast)


Lesenswert?

Ich finde die CPU super, das ist endlich mal ein Ding
für einen richigen Mann.
Sind nur Waschweiber hier unterwegs, wie es scheint.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Und die Verlegung von Zeitpunkt 1 auf Zeitpunkt 2
> ist eine deutliche Verbesserung, durch welche es
> vielleicht doch einmal Anwender geben wird.

Allmählich glaube ich nicht mehr daran, dass bei Dir eine autistische 
Störung vorliegt, sondern dass es sich um ein von Dir betriebenes 
psychologisches Experiment handelt, bei dem Du die Reaktionen anderer 
Forenmitglieder auf (vorgetäuschtes) autistisches Handeln beobachten 
willst.

: Bearbeitet durch User
von udok (Gast)


Lesenswert?

Früher gab es für echte 8-bit CPUs DIN-A4 grosse Beschreibungen
aller wesentlichen Register und Befehle, um damit arbeiten zu können.
War echt praktisch.

Meine erste 8-Bit CPU war noch mit Low Power Schottky TTL Logik 
aufgebaut,
und die kompletten Schaltpläne passten auf eine Handvoll Seiten.
Ist ja nicht so kompliziert so eine winzige CPU...

Die Doku ist bei so einem Projekt ohnehin nicht so wichtig, wer sich 
dafür
interessiert, muss halt mal reinbeissen, oder solls bleiben lassen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Gerade gefunden, interessant auch wegen des Autors:
Beitrag "Re: Flankenerkennung schlägt fehl (VHDL)"

> this_is_the_external_signal_that_should_be_evaluated_and_counted

> merkst du, dass diese Unterstrichorgie extrem schlecht lesbar ist?

Tja, mein auf der Grundlinie liegender
Bindestrich ist wohl doch eine gute Idee.

von Josef G. (bome) Benutzerseite


Lesenswert?


von Poldi (Gast)


Lesenswert?

Josef G. schrieb:
> Projekt-Website: http://www.bomerenzprojekt.de

Das Projekt ist nicht erreichbar. Seite geändert?

von Josef G. (bome) Benutzerseite


Lesenswert?

Poldi schrieb:
> Das Projekt ist nicht erreichbar. Seite geändert?

Ja, schon vor langer Zeit.
Neue Website ist http://www.bo8h.de
Beitrag "Re: 8bit-Computing mit FPGA"

Siehe auch meine Benutzerseite, rechts neben dem Benutzernamen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Beitrag "Re: Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen"

In dem Thread geht es auch um das Projekt.

> Ich meine, ein als Fertiggerät erhältlicher
> Hobby-Computer mit einem kompletten Zeichensatz,
> der einen echten Hex-Ziffernsatz enthält, würde
> jedenfalls Neugier und Aufmerksamkeit erregen.
> Schon allein wegen der Optik der Tastatur.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Beitrag "Re: AVR Assembler besser strukturieren (ohne Precompiler)"
> die Referenzierungen zeigen direkt an, ob es nach
> vorne oder hinten geht und man muß nicht lange suchen,

Ein Vorteil meiner O- und B-Befehle für kurze Sprünge:
Man erkennt beim Lesen von Quelltext am Mnemonic,
in welcher Richtung man das Ziel-Label suchen muss.

Aber das sehen nicht alle so:
Beitrag "Re: Befehlssatz der bo8-CPU - was ist gut, was ist schlecht"
> Kein Vorteil, sondern Nachteil. Wenn du deinen
> Code umstrukturierst, musst du Befehle ändern.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Es gibt nochmal eine kleine Änderung der CPU:

Das Einlesen des Datenbus in den Akku bei Reset habe ich
verschoben vom ersten Zeitpunkt 1 nach Reset-Ende auf den
ersten Zeitpunkt 2 nach Reset-Ende.  Damit erfolgen jetzt
alle Lesezugriffe der CPU auf den Datenbus zum Zeitpunkt 2.

von Uhu U. (uhu)


Lesenswert?

Josef G. schrieb:
> Ein Vorteil meiner O- und B-Befehle für kurze Sprünge:
> Man erkennt beim Lesen von Quelltext am Mnemonic,
> in welcher Richtung man das Ziel-Label suchen muss.

Das ist kein Vorteil, sondern höchstens lästig. Die Suchfunktion 
gehört in die IDE, nicht in den Assembler oder gar den Befehlssatz des 
Prozessors.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Uhu U. schrieb:
> Die Suchfunktion gehört in die IDE, nicht in den
> Assembler oder gar den Befehlssatz des Prozessors.

In der Tat, wenn es nur um das Erkennen der Richtung beim
Suchen eines Ziellabels ginge, dann gehörte das nicht in den
CPU-Befehlssatz. Das war aber nicht der Grund für die O- und
B-Befehle, sondern es ging mir darum, in beiden Richtungen
die volle maximale 256-Byte-Distanz zur verfügung zu haben.
Ausserdem entfällt so der bei vorzeichenbehafteter Distanz
mögliche unsinnige Sprung auf das Distanz-Byte.

von Uhu U. (uhu)


Lesenswert?

Josef G. schrieb:
> Ausserdem entfällt so der bei vorzeichenbehafteter Distanz
> mögliche unsinnige Sprung auf das Distanz-Byte.

Das ist ein sehr schwaches Argument, denn Sprünge mitten in andere 
Befehle sind trotzdem möglich.

von Josef G. (bome) Benutzerseite


Lesenswert?

Uhu U. schrieb:
> denn Sprünge mitten in andere Befehle sind trotzdem möglich.

Ja. Aber es ist kein möglicher Wert des Distanz-Bytes von vornherein
unsinnig, weil je nach Programm am Zielort ein gültiger OpCode stehen
kann. Bei vorzeichenbehafteter Distanz ist dagegen ein bestimmter Wert
des  Distanz-Bytes immer unsinnig, ausser für irgendwelche Tricks,
wenn dieser Wert zufällig zB. ein NOP codiert.

von Uhu U. (uhu)


Lesenswert?

Warum baust du die Erzeugung des passendenden OP-Codes nicht in die 
Codegenerierung deines Assemblers ein, statt den Programmierer mit 
solchem unmöglich zu pflegenden Mist zu behelligen?

von Technikstudienstudent (Gast)


Lesenswert?

Uhu U. schrieb:
> den Programmierer

Welchen Programmierer?

Beitrag #5722069 wurde von einem Moderator gelöscht.
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Technikstudienstudent schrieb:
> Uhu U. schrieb:
>> den Programmierer
>
> Welchen Programmierer?

Uhu hat doch völlig zutreffend den Singular verwendet.

von Falk B. (falk)


Lesenswert?

Uhu U. schrieb:
> Josef G. schrieb:
>> Ein Vorteil meiner O- und B-Befehle für kurze Sprünge:
>> Man erkennt beim Lesen von Quelltext am Mnemonic,
>> in welcher Richtung man das Ziel-Label suchen muss.
>
> Das ist kein Vorteil, sondern höchstens lästig. Die Suchfunktion
> gehört in die IDE, nicht in den Assembler oder gar den Befehlssatz des
> Prozessors.

Du kannst wohl auch nicht von Josefs Krankheit lassen?

von Route_66 H. (route_66)


Lesenswert?

Falk B. schrieb:
> Du kannst wohl auch nicht von Josefs Krankheit lassen?

Millionen Menschen haben sich für Geld den Film "Rain Man" angesehen...
Es ist die befriedigende Lust am Kranken/Exotischen/Anormalen.

von Falk B. (falk)


Lesenswert?


von Michael K. (Gast)


Lesenswert?

'Und täglich grüßt das Bometier'

So spannend wie das Telefonbuch durchzulesen, um mal bei dem Rainman 
Vergleich zu bleiben.

Ein Drama in 783 Akten ...
Fortsetzung folgt, ob wir wollen oder nicht.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Michael K. schrieb:
> Fortsetzung folgt, ob wir wollen oder nicht.

Du kannst doch einfach für Dich selbst entscheiden, diese Fortsetzung 
nicht bzw. nur sehr eingeschränkt mitzubekommen. Hierfür gibt es den 
Link "Thread nicht mehr beobachten". Von Josefs Arbeit und Mitteilungen 
geht doch keine Gefahr aus, die man im Auge behalten müsste.

von Mark B. (markbrandis)


Lesenswert?

Andreas S. schrieb:
> Du kannst doch einfach für Dich selbst entscheiden, diese Fortsetzung
> nicht bzw. nur sehr eingeschränkt mitzubekommen. Hierfür gibt es den
> Link "Thread nicht mehr beobachten". Von Josefs Arbeit und Mitteilungen
> geht doch keine Gefahr aus, die man im Auge behalten müsste.

Im Prinzip ja, aber diesen Thread hier (oder andere) bekommt man nicht 
mehr aus der Liste "Threads mit meinen Beiträgen" entfernt. Oder? Also 
wird man immer wieder, ob man will oder nicht, daran erinnert dass hier 
jemand etwas Neues gepostet hat.

von Hansjörg W. (Firma: --) (winielektronik)


Lesenswert?

Hi bin bein stöbern auf deinem Forum gelandet. Hört sich ja interesand 
an. ich mache auch kleine Projekte mit dem Z80 -> Z84c15 und bastle mit 
Hardware herum. Könnte mir vorstellen einiges zusammen erarbeiten. Ideen 
mit neuer Technik verbinden. Aus einfacher überschaubarer Hardware. Wenn 
das Thema noch
interesand ist, würde ich mich gerne anschliesen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Hallo Hansjörg,

hast Du Dir eigentlich die relevanten bo8-Threads im 
Mikrocontroller-Forum einmal komplett durchgelesen? In aller 
Unbescheidenheit verweise ich auf meinen folgenden Diskussionsbeitrag:

Beitrag "Re: 8bit-Computing mit FPGA"

Willst Du wirklich mit Josef zusammenarbeiten?

von Uhu U. (uhu)


Lesenswert?

Willst du unseren lieben Josef jetzt auch noch in die Märtyrer-Rolle 
drängen?

von Josef G. (bome) Benutzerseite


Lesenswert?

Hansjörg W. schrieb:
> Könnte mir vorstellen einiges zusammen erarbeiten.

Zu Z80-Projekten kann ich leider nichts beitragen.

> Ideen mit neuer Technik verbinden.

Vielleicht könntest du einen Z80-Rechner bauen mit einem
hexadezimalen Ziffernsatz, so wie bei meinem Computer?

Hansjörg W. schrieb:
> würde ich mich gerne anschliesen.

Hast du eines der FPGA-Boards, für die es bisher eine
Realisierung meines Rechners gibt? Oder du könntest
das System auf ein neueres aktuelles Board portieren.

---
Oder wäre das vielleicht etwas für ein Z80-Projekt?
https://www.mikrocontroller.net/topic/462616#5812687

: Bearbeitet durch User
von Hansjörg W. (Firma: --) (winielektronik)


Lesenswert?

Hi zusammen
Mein CPU Board habe ich selbst gemacht.
Ich habe die letzen Jahre Computer zur Sternenverfolgung gebaut und 
beschlossen mir mal einen eigenen zu bauen. Der besteht aus 4x Z84c15 
und einem eZ80F90 und einer FPU MC68882, mit MMC-Karte, IDE HD. Nach 4 
Jahren tüfteln läuft er jetzt.
Die Details der projekte "hexadezimalen Ziffernsatz" müsste ich mir erst 
mal anschauen. Einiges in der Art habe ich schon bei LCD-Displays 
gemacht.
An sonsten ist mein System Z80... lastig, läst sich durch C, C++ auch 
importien. In Asembler geht auch. An sonsten müsste ich wissen wir 
gerade der Stand es Projekt ist. Hartware läst sich auch realisieren. 
usw........

von Josef G. (bome) Benutzerseite


Lesenswert?

Hansjörg W. schrieb:
> Ich habe die letzen Jahre

Schon beeindruckend. Das könnte ich alles nicht.

Hast du schon daran gedacht, dein Projekt in einem
eigenen Thread hier vorzustellen? Sehr wahrscheinlich
würdest du hier mehr Zuspruch erfahren als ich.

Nur verstehe ich nicht, wie das mit
meinem Projekt zusammengehen könnte.

> An sonsten müsste ich wissen wir gerade der Stand
> es Projekt ist. Hartware läst sich auch realisieren.

Wäre natürlich schön, wenn du dich mit meinem Projekt
befassen würdest. Klicke mal auf meine Benutzerseite,
rechts neben dem Benutzernamen. Da findest du alle
Links. Neueres zum Stand des Projekts gibt es nicht.

von Hansjörg W. (Firma: --) (winielektronik)


Lesenswert?

Hi, ich muss noch ein Projekt zu ende bringen um mich dann hier im 
einzelnen
enzubrinen. Vorab mache ich noch mein System startklar. Ich mache mir 
eine Terminal Task frei um über Monitor Internet zuzugreifen. So kann 
ich besser von Aussen arbeiten und muss nicht Zuhause sein. Es soll aber 
mit geringster Hardware laufen mit maximalem Ergebniss. Ich würde 
evetual eine FPU einbinden
somit auch Rechenleistung mit 72Bit(50MHz) zur verfügung steht.

von Josef G. (bome) Benutzerseite


Lesenswert?

Josef G. schrieb:
> ---
> Oder wäre das vielleicht etwas für ein Z80-Projekt?
> https://www.mikrocontroller.net/topic/462616#5812687

Der Thread mit dem verlinkten Beitrag wurde gelöscht.
Das war der Inhalt des verlinkten Beitrags:

-----------------------------------------------------------------
Taschenrechner mit Nachkommastellen in nicht-dezimalen
Zahlensystemen scheint es tatsächlich nicht zu geben.

Da gibt es immerhin noch jemanden, der das für einen Mangel hält:

> Doch sogar bis heute ist die Implementierung der verschiedenen
> Zahlensysteme immer noch lückenhaft: Sobald man das Dezimalsystem
> verläßt, zeigt der Taschenrechner keine Nachkommastellen mehr an,
> kennt keine Exponentialschreibweise mehr, keine Bruchrechnung und
> es sind sämtliche trigonometrischen Funktionen (Sinus, Cosinus),
> Logarithmen und Exponentialfunktionen gesperrt.

http://zahlen.hoerde.net/

Das wäre doch mal eine Anregung für die Taschenrechner-Bauer
im Forum Projekte und Code.
-----------------------------------------------------------------

: Bearbeitet durch User
von Uhu U. (uhu)


Lesenswert?

@ Josef:
In welchem Zahlensystem denkst/rechnest du eigentlich im täglichen 
Leben?

von Route_66 H. (route_66)


Lesenswert?

Uhu U. schrieb:
> @ Josef:
> In welchem Zahlensystem denkst/rechnest du eigentlich im täglichen
> Leben?

Denken kann man das wohl nicht nennen. Eher passt träumen oder 
phantasieren.

von Opernfan (Gast)


Lesenswert?

Wieviele Akte hat diese Seifenoper hier noch?

von Uhu U. (uhu)


Lesenswert?

Route 6. schrieb:
> Denken kann man das wohl nicht nennen. Eher passt träumen oder
> phantasieren.

Die Frage an Josef ist exakt so gemeint, wie ich sie gestellt habe und 
die kann auch kein anderer beantworten.

von Josef G. (bome) Benutzerseite


Lesenswert?

Uhu U. schrieb:
> ...
> Die Frage an Josef ist exakt so gemeint, ...

Da du so freundlich gefragt hast:

Meistens denke ich dezimal, so wie alle, die das als Kind
so gelernt haben und in dieser dezimal geprägten Gesellschaft
leben. Aber zB. bei runden Geburtstagen denke ich hexadezimal.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Aber zB. bei runden Geburtstagen denke ich hexadezimal.

Das macht einen auf jeden Fall jünger. Außerdem fällt dann ein runder 
Geburtstag nur alle 16 Jahre an. Ähem 0x10 Jahre meinte ich.

von Uhu U. (uhu)


Lesenswert?

Frank M. schrieb:
> Das macht einen auf jeden Fall jünger.

Aber nur, wenn man insgeheim eben doch dezimal denkt…

Josef G. schrieb:
> Aber zB. bei runden Geburtstagen denke ich hexadezimal.

Also eigentlich gar nicht, denn so nutzt du ja die wichtigste 
Eigenschaft von Hex-Zahlen, nämlich dass man damit rechnen kann, 
überhaupt nicht.

Man kann Zahlen natürlich auch als Piktogramme ohne weitere Bedeutung 
betrachten, dann muss man sich mit Zahlensystemen und ihren 
mathematischen Eigenschaften nicht befassen - womit aber auch jegliche 
Argumentation Hex versus Dec in sich zusammen bricht.

Es bleibt die Frage: Wozu willst du eigentlich den ganzen Aufwand mit 
hex im Alltag treiben, wo doch für den Alltag das Zahlensystem, in dem 
man denkt und rechnet im Wesentlichen egal ist? Es kommt nur darauf 
an, dass man es kann und dass man sich damit mit seiner Umgebung 
verständigen kann.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Uhu U. schrieb:
> Es bleibt die Frage: Wozu ...

Weil ich einfach sicher bin, dass das Hex-System
früher oder später kommen wird. Die Argumente
habe ich auf meiner Website zusammengestellt.

Ubrigens habe ich die Seite ein wenig überarbeitet,
nachdem du früher schon einmal daraus zitiert hast.

Aber diese Diskussion haben wir schon in mehreren Threads
geführt. Mir fallen momentan keine neuen Argumente ein.

Beitrag "Einführung des Hexadezimalsystems"
Beitrag "Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen"

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Weil ich einfach sicher bin, dass das Hex-System

Quatsch - das effizienteste Zahlensystem ist trinär.

Das ist mathematisch bewiesen und dort geht die Zukunft hin. ;-)

von Uhu U. (uhu)


Lesenswert?

Josef G. schrieb:
> Ubrigens habe ich die Seite ein wenig überarbeitet,

"Ein wenig" wird nicht reichen, um sie genießbar zu machen…

von Falk B. (falk)


Lesenswert?


von Sinus T. (micha_micha)


Lesenswert?

Mampf F. schrieb:
> Quatsch - das effizienteste Zahlensystem ist trinär.

Kannst du mal genauer erklären, warum?

von Route_66 H. (route_66)


Lesenswert?

Mampf F. schrieb:
> Quatsch - das effizienteste Zahlensystem ist trinär.

> Das ist mathematisch bewiesen und dort geht die Zukunft hin. ;-)

Da braucht man keine Ziffern: links, rechts, geradeaus genügen.
Das kann man auch sehr einfach auf kleinen Displays darstellen.

Josef hat da bestimmt schon für die häßlichen Siebensegmentanzeigen 
Alternativen...

Mein Vorschlag: Duo-LEDs mit Aus, Rot, Grün

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Route 6. schrieb:
> Mein Vorschlag: Duo-LEDs mit Aus, Rot, Grün

Und was machen die Rot/Grün Blinden? Das sind mehr als du denkst!

https://de.wikipedia.org/wiki/Rot-Grün-Sehschwäche#Häufigkeit

Das könnte so manches politische Wahlergebnis erklären . . . ;-)

von Josef G. (bome) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Route 6. schrieb:
>> Mein Vorschlag: Duo-LEDs mit Aus, Rot, Grün
>
> Und was machen die Rot/Grün Blinden?

Binär Aus/Ein ist halt doch besser.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Und was machen die Rot/Grün Blinden? Das sind mehr als du denkst!
>
> https://de.wikipedia.org/wiki/Rot-Grün-Sehschwäche#Häufigkeit

Dazu fällt mir doch ein:
Beitrag "Re: Fehler zum nachbauen :-)"

von Uhu U. (uhu)


Lesenswert?

Andreas S. schrieb:
> Dazu fällt mir doch ein:
> Beitrag "Re: Fehler zum nachbauen :-)"

Bei den Verkehrsampeln hat sich das Problem durch die Geometrie und die 
früheren technischen (Un)Möglichkeiten gelöst…

: Bearbeitet durch User
von Michael W. (Gast)


Lesenswert?

Na ja, es gibt schon Zahlensysteme, die einen Unterschied machen, z.B. 
in der Physik. Ich empfehle jedenfalls, lieber Octonionen (nein, das 
sind keine Oktal-Zahlen...) fuer den Computer der Zukunft einzusetzen:

https://www.quantamagazine.org/the-octonion-math-that-could-underpin-physics-20180720/

https://en.wikipedia.org/wiki/Octonion

von Josef G. (bome) Benutzerseite


Lesenswert?

Michael W. schrieb:
> Octonionen

https://de.wikipedia.org/wiki/Divisionsalgebra

Immerhin bemerkenswert, dass auch auf diesem Gebiet
der Mathematik Zweierpotenzen eine Rolle spielen.

1- Reelle Zahlen
2- Komplexe Zahlen
4- Quaternionen
8- Oktaven

von Michael W. (Gast)


Lesenswert?

Genau, vielleicht eine schoene Idee fuer das naechste Projekt.

von Josef G. (bome) Benutzerseite


Lesenswert?

Michael W. schrieb:
> vielleicht eine schoene Idee fuer das naechste Projekt.

Welche Idee? Ich sehe da keine Idee.

Die Idee für dieses Projekt war der hexadezimale Ziffernsatz.

von Jens (Gast)


Lesenswert?

Wann wird der Unsinn hier endlich gesperrt?
Soll der Threadersteller seine Fantasien doch in Offtopic diskutieren.
Ums Projekt gehts doch hier schon lang nicht mehr!

von Aufgemerkt (Gast)


Lesenswert?

Über soetwas wie die Einführung des Hexadezimalsystems im Alltag hab ich 
bisher noch nie nachgedacht. Jedoch hab ich über das altbabylonische 
Sexagesimalsystem gelesen, das es sich sehrwohl mit den Fingern abzählen 
lässt. 
https://de.wikipedia.org/wiki/Sexagesimalsystem#Einh%C3%A4ndiges_Z%C3%A4hlen_bis_12 
und 
https://de.wikipedia.org/wiki/Sexagesimalsystem#Zweih%C3%A4ndiges_Z%C3%A4hlen_bis_60

Mit einer leicht modifiziereten Methode würde man mit der einen Hand 
ganz normal bis fünf zählen und dann mit dem Daumen der selben die drei 
Hohlräume zwischen den Fingern. Macht acht. Dann an der rechten Hand das 
gleiche und schon sinds 16.

Die Idee die Kompatibiltät mit dem Dezimalsystem zu erhöhen finde ich 
gut. Neue Zeichen für 0-9a-fh einzuführen, das wär vor allem bei kleinen 
Zahlen echt hilfreich.

An all die Hater: Ihr seids die das ganze bekannt machen und damit 
beschleunigen.

von Bernd (Gast)


Lesenswert?

Aufgemerkt schrieb:
> Ihr seids die das ganze bekannt machen und damit
> beschleunigen.
Was wird beschleunigt? Die allgemeine Einführung des Hexadezimalsystems 
oder die Verschiebung ins Offtopic?

von Uhu U. (uhu)


Lesenswert?

Aufgemerkt schrieb:
> Mit einer leicht modifiziereten Methode würde man mit der einen Hand
> ganz normal bis fünf zählen und dann mit dem Daumen der selben die drei
> Hohlräume zwischen den Fingern. Macht acht. Dann an der rechten Hand das
> gleiche und schon sinds 16.

Zudem hat das den Vorteil, dass sich damit Hand- und Kopfarbeit auf 
natürliche Weise auf zwei Personen verteilen lassen: der eine zählt (und 
trägt die Verantwortung), der andere schuftet…

von Pennywise (Gast)


Lesenswert?

>... lässt sich dieses Projekt nun nicht gerade werten. Das ergibt sich
>aus der einfachen Formel ERFOLG = MÜHE × NUTZEN

Ich würde eher
ERFOLG = NUTZEN/MÜHE
als richtig einschätzen

Sonst würde man ja mit ewig + 3 Tage viel Mühe und minimalstem Nutzen 
viel Erfolg erzielen...

von Josef G. (bome) Benutzerseite


Lesenswert?

Pennywise schrieb:
>> aus der einfachen Formel ERFOLG = MÜHE × NUTZEN

Nach langem Suchen habe ich die Quelle gefunden:
Beitrag "Re: 8bit-Computing mit FPGA"

von Josef G. (bome) Benutzerseite


Lesenswert?

Beitrag "Re: Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen"

Michael K. schrieb:
> Josef G. schrieb:
> ...
>> Leider hat sich bisher niemand gemeldet.
>
> Verdammt, woran könnte das nur liegen?
> Seit Jahren wird Dir erzählt was alles daran nicht stimmt.

-- memory-paging
-- fehlende Interrupts
-- 8-bit nicht mehr zeitgemäß
-- Akku-Architektur nicht mehr zeitgemäß
-- unkonventionelle Assembler-Mnemonics
-- unverständliche Dokumentation

Sonst fällt mir nichts ein.
Wurde sonst noch etwas kritisiert?

: Bearbeitet durch User
von Le X. (lex_91)


Lesenswert?

Josef G. schrieb:
> Sonst fällt mir nichts ein.
> Wurde sonst noch etwas kritisiert?

Reicht das nicht?

von Frank (Gast)


Lesenswert?

Josef G. schrieb:
> Wurde sonst noch etwas kritisiert?

-- uneinsichtigkeit des Verfassers

von S. R. (svenska)


Lesenswert?

Josef G. schrieb:
> Wurde sonst noch etwas kritisiert?

Ein weiterer Kritikpunkt war die unverständliche Implementation.

Aber ja, die wesentlichen Punkte hast du gut zusammengefasst. Jetzt 
musst du da nur noch Abhilfe schaffen. :-)

von Michael K. (Gast)


Lesenswert?

S. R. schrieb:
> Jetzt
> musst du da nur noch Abhilfe schaffen. :-)

Das wird wohl nicht gelingen.
Selbst bei guter Dokumentation hat das System doch einfach für niemanden 
irgendeinen Nutzen.
Die alten voluminösen Steckkartensysteme waren den sehr begrenzten 
Fähigkeiten damaliger Halbleiter und veralteter Leiterplattentechnik 
geschuldet.
In Schulungssystemen haben die noch eine Weile überlebt, gerade weil sie 
sehr funktionsbeschränkt und relativ übersichtlich waren.

Joseph verfolgt ein Konzept das seit Jahrzehnten ausgestorben ist.
Mit einem aktuellen Mikrocontroller kann ich wohl wirklich jedes Detail 
dieses systems locker in die Tasche stecken, mit einer mächtigen 
Toolchain, debug port etc.

Warum sollte irgendjemand sich 30Jahre zurück in der Zeit bewegen 
wollen, wenn er nicht aus nostalgischen Gründen ein Uraltsystem neu 
beleben will.

Wenn ich ein System haben will das alles auf die möglichst 
komplizierteste Weise tut, ohne Compiler und Debugger, dann krame ich 
mein altes 8085 System raus, das ich in der Lehre gebaut habe.
Das kann wirklich nur der interessant finden der die Zeiten nicht erlebt 
hat.
Der 8051 + Macro Assembler war damals eine Erlösung aus finsterer Zeit.

Wenn ich was mit FPGAs machen will, dann baue ich doch nicht etwas nach 
was jeder MC 100 mal besser kann.

von Josef G. (bome) Benutzerseite


Lesenswert?

Michael K. schrieb:
> ...
> Die alten voluminösen Steckkartensysteme

Die Steckkarten sind bei mir Teil des Software-Konzepts.
In der Hardware können sie auch Teil der Hauptplatine sein.

> Mit einem aktuellen Mikrocontroller kann ich wohl wirklich
> jedes Detail dieses systems locker in die Tasche stecken,

Taktgenau berechenbare Laufzeiten, Codeausführung
aus dem RAM, Flexibilität bei der Peripherie?

> dann krame ich mein altes 8085 System raus,

Nur 64K Adressraum. Meine CPU unterstützt Paging.

> Wenn ich was mit FPGAs machen will,

Es muss nicht für immer beim FPGA bleiben, vielleicht gibt
es die CPU und einige Zusatzbausteine ja irgendwann als ICs.

von MWS (Gast)


Lesenswert?

Josef G. schrieb:
> vielleicht gibt
> es die CPU und einige Zusatzbausteine ja irgendwann als ICs.

Würde es die geben, dann hätten die entsprechend dieses wunderbaren 
Projektes zweimal einen Pin 1, die restlichen Pins wären zufällig 
nummeriert und zwar bei jedem IC der Serie zufällig anders. Dafür würde 
es dann eine Liste geben, in der man anhand der Seriennummer des IC 
nachsehen müsste, welche Nummerierung genau vorliegt.

von Michael K. (Gast)


Lesenswert?

Josef G. schrieb:
> Taktgenau berechenbare Laufzeiten,
Braucht wer ?
Das haben wir vor 30J in ASM gemacht, weil der 8051 zu langsam war.
Heute gibt es saubere Timings über Timer und IRQs, die Deine CPU nicht 
kann.
Bei der Vorstellung wieder stundenlang Maschinenzyclen zu zählen und die 
passende Anzahl NOPs einzufügen, kommt mir das Frühstück hoch.

> Codeausführung
> aus dem RAM,
Als Selbstzweck, weil man es kann oder ist das auch zu was gut?
Und jetzt komm mit nicht mit selbstmodifizierenden Code.
Obwohl das passen würde, denn auch das Konzept wurde aus sehr guten 
Gründen schon vor langer Zeit beerdigt.
Ausserdem können selbst 20Cent MCUs wie der STM8 Code aus dem RAM 
ausführen.

> Flexibilität bei der Peripherie?
Da versteh ich noch nicht mal die Frage.
Hey, ich programmiere die MCUs und schliesse daran an was immer mir 
gefällt.
Welche Einschränkung sollte es wohl dabei geben?

>> dann krame ich mein altes 8085 System raus,
> Nur 64K Adressraum. Meine CPU unterstützt Paging.
Oh, wow!
Eine furchtbare Krücke die dem kleinen Adressraum geschuldet war, wurde 
von Dir als Mega Highlight wiederentdeckt. Ist ja ganz Toll.
Was glaubst Du eigentlich passiert, wenn ich mit irgendeiner beliebigen 
MCU die externes RAM unterstützt, mit ein paar IOs die oberen Adressbits 
eines RAMs umschalte? Hey, Paging ist geboren.
Das ist doch nichts worauf man stolz sein kann.

Der 8085 war bereits veraltet und am Aussterben als ich vor 30J in die 
Lehre kam. Internet gab es nicht, Datenbücher wurden noch in 
Landessprache gedruckt und wir erbettelten uns die alten Schinken die in 
der Entwicklung ausgemustert wurde.
Und Du kannst mir EINEN Punkt nennen den Dein System Deiner Meinung nach 
besser macht?
Schau Dir mal die Doku zum 8085 an.
Damit kann man arbeiten.
Es gibt macro assembler und einen ausgezeichnet dokumentierten 
Befehlssatz.

> Es muss nicht für immer beim FPGA bleiben, vielleicht gibt
> es die CPU und einige Zusatzbausteine ja irgendwann als ICs.
Ja klar, sicher sicher.
Bisher hast Du in den letzen Jahren nicht einen einzigen Mitstreiter 
gefunden. Wenn das in dem Tempo so weitergeht hast Du in 1,8 Millionen 
Jahren genügent Interessenten um die Stückzahlen für eine Asic 
Entwicklung zu rechtfertigen.
Wovon träumst Du da eigentlich?
Hast Du auch nur den Hauch einer Vorstellung über welche Initialkosten 
und Mengen Du da sprichst?

Selbst wenn man das Systemk als Lehrsystem gebrauchen könnte, was weiß 
Gott nicht der Fall ist, wären die Erkenntnisse die man sammelt 
vollkommen nutzlos, weil man nichts davon später verwenden kann.
Denn in der realen Welt baut man Geräte und die müssen kompakt, 
leistungsfähig, stromsparend und billig sein.
Dein Kram ist zu nichts kompatibel, macht nichts besser, nichts 
billiger, nichts stromsparender oder Kompakter.
Es gibt keine zumutbare Doku, keine Toolchain, keine community, nichts, 
absolut nichts.

Also wenn mir extrem langweilig wäre und ich mich brennend für uralte 
und zu recht vergessene Technik interessieren würde und wenn ich ein 
Faible für Kryptografie hätte und Deine Dokumentation als Ansporn für 
detektivischen Spürsinn verstehen würde, ja dann würde ich mich 
vieleicht mal ein bis zwei Wochen damit beschäftigen bevor ich mich 
wieder ernsthaften Themen zuwende.

von Uhu U. (uhu)


Lesenswert?

Josef G. schrieb:
>> dann krame ich mein altes 8085 System raus,
>
> Nur 64K Adressraum. Meine CPU unterstützt Paging.

Paging ist kein Hexenwerk. Ob das jetzt im µC-Chip selbst integriert, 
oder aus peripheren Chips aufgebaut ist, ist völlig egal.

>> Wenn ich was mit FPGAs machen will,
>
> Es muss nicht für immer beim FPGA bleiben, vielleicht gibt
> es die CPU und einige Zusatzbausteine ja irgendwann als ICs.

Das nenne ich Optimismus… Hat jemand Zeit, Josefs sinn-, zweck- und 
nutzloses System in Silicium zu gießen?

von Lona (Gast)


Lesenswert?

Uhu U. schrieb:
>>> Wenn ich was mit FPGAs machen will,
>>
>> Es muss nicht für immer beim FPGA bleiben, vielleicht gibt
>> es die CPU und einige Zusatzbausteine ja irgendwann als ICs.
>
> Das nenne ich Optimismus… Hat jemand Zeit, Josefs sinn-, zweck- und
> nutzloses System in Silicium zu gießen?

Ein Kunde von uns hat sein Code benutzt um Nachahmer zu verwirren. 
Riesen Code aber macht im Endeffekt nichts wirklich. Ist eine 
Sensorkombination die ihren Wert als seriellen Stream versendet. Dort 
wurde wohl zum Spaß der Bo-8 integriert.

von Michael K. (Gast)


Lesenswert?

Lona schrieb:
> Ein Kunde von uns hat sein Code benutzt um Nachahmer zu verwirren.

JOSEPH!!!
Dein System hat es in eine kommerzielle Anwendung geschafft.
Der Durchbruch!

Ein neuer Markt.
Software die scheinbar etwas tut, in ihrer Funktion aber völlig Sinnfrei 
ist.
Security by obscurity in Reinkultur.
Dafür ist Deine Doku allerdings perfekt.

Jetzt ab zum Anwalt und auf 12 Milliarden Entschädigung klagen.

von Lona (Gast)


Lesenswert?

Nur mal so,

wer für sein Hobby auch noch eine kostenpflichtige Anzeige schaltet, ist 
schon echt cool drauf:
https://issuu.com/benediktsauter/docs/epj_12_web/34

von Josef G. (bome) Benutzerseite


Lesenswert?

Uhu U. schrieb:
> Ob das jetzt im µC-Chip selbst integriert, oder
> aus peripheren Chips aufgebaut ist, ist völlig egal.

Bei mir braucht das Paging auch externe Logik, aber
man kann den 64K-Adressraum als Ganzes umschalten,
die Adressregister können unabhängig voneinander in
unterschiedliche Seiten zeigen, und das Programm kann
problemlos von einer 64K-Seite in eine andere springen.

von Uhu U. (uhu)


Lesenswert?

Josef G. schrieb:
> das Programm kann problemlos von einer 64K-Seite in eine andere springen.

Dazu braucht man maximal 3 Maschinenbefehle, wenn der µC das nicht 
hardwaremäßig unterstützt.

Das ist nicht der Rede wert…

von Josef G. (bome) Benutzerseite


Lesenswert?

Uhu U. schrieb:
> Dazu braucht man maximal 3 Maschinenbefehle,

Mittels Umweg über einen nicht umgeschalteten Adressbereich?

Oder ohne Sprungbefehl, nur mit Seitenumschaltung, wenn das
Programm in der neuen Seite an gleicher Adresse weiterläuft?

von MaWin (Gast)


Lesenswert?

Warum nimmst du keinen ATxMega?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Bei mir braucht das Paging auch externe Logik, aber
> man kann den 64K-Adressraum als Ganzes umschalten,
> die Adressregister können unabhängig voneinander in
> unterschiedliche Seiten zeigen, und das Programm kann
> problemlos von einer 64K-Seite in eine andere springen.

Es ist unglaublich, dass Du diesen Murks immer noch als Stärke feierst, 
nachdem Du zwischenzeitlich schon fast so weit warst, meine 
entsprechende Argumentation dagegen anzuerkennen. Solche 
Bankumschaltungen bereiten extrem große Probleme, wenn man mit 
Interrupts arbeiten, aber die hast Du ja in Deinem Konzept vergessen. Wo 
soll denn z.B. ein Interrupthandler die Register des unterbrochenen 
Konextes sichern, wenn gerade die falsche Bank aktiv ist und er 
Registerinhalte überschreiben müsste, um auf die richtige Bank 
umzuschalten? Und auch der Interrupthandler selbst müsste ja in jeder 
Bank zu finden sein, damit nicht in "fremden" Code gesprungen wird.

Ggf. könnte man das mit einer separaten Interrupt-Bank lösen, was 
eigentlich keine so schlechte Idee wäre. Aber letztendlich bekämpft man 
damit auch wieder nur ein Symptom eines von vornherein gescheiterten 
Konzeptes.

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.