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.
:
Bearbeitet durch User
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
Hast Du immer nocht nicht aufgegeben? Schade um die Zeit. Damit könnte etwas Sinnvolleres auf die Beine gestellt werden!
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.
Manfred F. schrieb: > Du dürftest wohl weltweit der einzige sein Das Projekt hat halt was Einzigartiges :)
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.
Es ist ein Projekt zum Selbermachen und Lernen. Da sind 8 Bit schon in Ordnung.
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
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, Du hast irgendwo ein
1 | delay(18_MONTHS); |
kommentier das mal aus, dann geht's schneller.
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.
:
Bearbeitet durch User
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
Super, dann müssen sich ja die Hersteller von ARM- und RISC-V-Prozessoren warm anziehen, weil sie von BO8 verdrängt werden!
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.
Wenn er einen 80er-Jahre 8-Bitter nachbauen will, kommt er um den Akku nicht herum:-)
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.
Beitrag #5581625 wurde vom Autor gelöscht.
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
@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
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.
:
Bearbeitet durch User
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.....
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. |
"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
:
Bearbeitet durch User
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.
Gu. F. schrieb: >> K ist Kurzbezeichnung für AB > > Genial! Hast du das Carry-Flag schon gefunden? ;-)
@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.
@A. K. (prx) >>> K ist Kurzbezeichnung für AB > >> Genial! >Hast du das Carry-Flag schon gefunden? ;-) Y?
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: > In deiner Doku habe ich nicht wirklich was gefunden... Das verwundert hier niemanden.
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.
Josef G. schrieb: > Du sprichst hier einen wunden Punkt an. Zum Glück ist das der einzige Wunde Punkt des Projekts.
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.
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.
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...
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
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.
Michael K. schrieb: > Da Du da aber vollkommen beratungsresistent bist, Immerhin habe ich die Befehlssatz-Beschreibung geändert.
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.
ehemaliger 8 Bitter schrieb: > Also ehrlich, ich kapiere nicht, was das ist oder sein soll. Hast du den Artikel schon angeschaut? 8bit-CPU: bo8
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.
Ich finde die CPU super, das ist endlich mal ein Ding für einen richigen Mann. Sind nur Waschweiber hier unterwegs, wie es scheint.
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
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.
Josef G. schrieb: > Projekt-Website: http://www.bomerenzprojekt.de Das Projekt ist nicht erreichbar. Seite geändert?
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.
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
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
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.
:
Bearbeitet durch User
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?
Beitrag #5722069 wurde von einem Moderator gelöscht.
Technikstudienstudent schrieb: > Uhu U. schrieb: >> den Programmierer > > Welchen Programmierer? Uhu hat doch völlig zutreffend den Singular verwendet.
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?
Willst du unseren lieben Josef jetzt auch noch in die Märtyrer-Rolle drängen?
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
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. -----------------------------------------------------------------
:
Bearbeitet durch User
@ Josef: In welchem Zahlensystem denkst/rechnest du eigentlich im täglichen Leben?
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.
:
Bearbeitet durch User
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. ;-)
Josef G. schrieb: > Ubrigens habe ich die Seite ein wenig überarbeitet, "Ein wenig" wird nicht reichen, um sie genießbar zu machen…
https://www.fu-berlin.de/presse/publikationen/fundiert/2012_02/04_brzoska/index.html http://www.taz.de/!643552/
Mampf F. schrieb: > Quatsch - das effizienteste Zahlensystem ist trinär. Kannst du mal genauer erklären, warum?
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
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 . . . ;-)
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.
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 :-)"
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
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
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
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...
Pennywise schrieb: >> aus der einfachen Formel ERFOLG = MÜHE × NUTZEN Nach langem Suchen habe ich die Quelle gefunden: Beitrag "Re: 8bit-Computing mit FPGA"
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
Josef G. schrieb: > Sonst fällt mir nichts ein. > Wurde sonst noch etwas kritisiert? Reicht das nicht?
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.