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 ;-)
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.
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 ;-)
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.
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.
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?
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.
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.
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)
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.
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?
Mark B. schrieb:> Warum nicht so?
Weil auch ich mittlerweile aufgegeben habe, davon auszugehen, dass Josef
wirklich irgendwann auf solche Vorschläge eingehen wird.
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.
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.
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
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.
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.
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.
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.
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.
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 ;-)
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/
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.
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.
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
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
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.
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.
Josef G. schrieb:> Ausserdem haben ein paar Operationen neue Mnemonics.
Mist, jetzt nachdem ich endlich fehlerfrei in Bom8 Assembler
programmieren gelernt habe.
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"
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:
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?
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.
@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 . . .
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
:-)
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).
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.
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.....
"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...
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 ;-)
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 ;-)
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 :-)
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
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
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.
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.
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?
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.
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.
@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.
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 ...
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...
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.
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.
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...
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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?
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.
@ 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"
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.
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...
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
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?
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.
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/
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.
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.
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).
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...
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
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.
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"
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?
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?
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.
'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.
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.
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.
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.
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?
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
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........
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.
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.
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.
-----------------------------------------------------------------
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.
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.
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.
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.
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.
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"
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. ;-)
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
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.
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…
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.
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!
Ü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.
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?
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…
>... 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...
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?
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. :-)
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.
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.
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.
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.
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?
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.
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.
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.
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…
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?
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.