Michael schrieb: > Und auch vollkommen nutzlos, wie selbst der TO erkennt. Nutzlos sind nicht die Befehle CP.V und CP.U. Verzichtbar ist vielmehr die vorher bestehende Kombination von CP.U mit einem nachfolgenden RU.A, welche zwar vielleicht nützlich wäre, aber das Prinzip der Einfachheit verletzte.
Josef G. schrieb: > Symmetrisch zum > Befehl CP.V (V wird V xor U) gibt es jetzt den Befehl CP.U (U wird V xor > U). Das ist ja höchst sonderbar ... CP.V und CP.U sollten Assembler-Makros sein für einen Befehl CP, der zwei beliebige deiner Register als Parameter bekommt (CP dst srt -> dst = dst xor src) Und wofür steht CP überhaupt - wieso kann man das nicht XOR nennen, wenn es zwei Register verXORt? 🤔
Josef G. schrieb: > das Prinzip der Einfachheit Josef, Du solltest wissen das ich Dich nur veräppel. Niemand außer Dir benutzt die BO8 oder will daran mitwirken. Niemand außer Dir hält die Doku für irgendwie akzeptabel. Über die Gründe wurde lang sinniert. Ist Dein Projekt, Du machst das wie Du meinst. Nur ist überschreitet dann Entwicklercrew + Userbasis nie den Wert 1. Alle paar Monate kommt mal: 'Oh, ich habe das was geändert, was gerade alles hinfällig gemacht hat was jemals jemand dafür geschrieben haben könnte.' Okay. Aber welcher Userbasis erzählst Du das?
Mampf F. schrieb: > Befehl CP, der zwei beliebige deiner Register als Parameter bekommt In der Notation meines Assemblers sind Register-Operanden Teil des Mnemonic-Namens. So wie es auch beim 6502 war. Das ist möglich, weil es nur wenige Register gibt. > Und wofür steht CP überhaupt - wieso kann man das nicht XOR nennen, CP steht für Compare. Habe ich gewählt wegen des besseren Kontrasts zu den 8bit-XR-Befehlen des Akkus.
Michael schrieb: > Aber welcher Userbasis erzählst Du das? Ich erzähle das den potentiellen Mitstreitern, die ich damit gewinnen möchte.
Josef G. schrieb: > damit gewinnen Hm. Du meinst bevor die Sonne zum Schneeball wird? Woran könnte das nur liegen?
Josef G. schrieb: > CP steht für Compare. Also ein Befehl, der CP heißt, das zwar wie "copy" klingt, aber für die Abkürzung von Compare steht, und schließlich ein XOR ausführt. Kann man sich nicht ausdenken sowas.
Josef G. schrieb: > Im VHDL-Code habe ich die internen Tristates entfernt. Das reduziert > die Anzahl der Warnungen bei der Synthese, bei Quartus sogar drastisch. Da es auf der vorherigen Seite steht, hier nochmal zitiert, damit es nicht untergeht. Vielleicht hat ja jemand versuchsweise das Projekt in Quartus compiliert und war von den vielen Warnungen abgeschreckt. Wäre sehr schön, wenn sich hier jemand meldet, der das Projekt auf DE0 oder DE0-nano oder DE0-CV realisiert hat. Merkwürdigerweise ist das DE0-CV mit Cyclone V nicht mehr neu erhältlich, wohl aber das DE0 mit dem alten Cyclone III, für den man das alte Quartus 13.0 SP1 braucht. Neu erhältlich ist nach wie vor das DE0-nano mit Cyclone IV, welcher auch vom aktuellen Quartus unterstützt wird. Erfordert für mein Projekt aber Lötarbeit.
Michael schrieb: > Aber welcher Userbasis erzählst Du das? Jeder der ein gewisses Maß an Arbeit in ein Projekt gesteckt und weiter daran Freude hat wird nur schwer davon ablassen. Da wird sich die (potentielle) Nutzerbasis dieses großen Forums halt begeistert hinzufantasiert. Alles ganz menschlich. Viel Spaß Josef an allen weiteren geplanten Änderungen. Wichtig ist nur, daß sie für Dich Sinn ergeben!
Josef G. schrieb: > Im VHDL-Code habe ich die internen Tristates entfernt. Das reduziert > die Anzahl der Warnungen bei der Synthese, bei Quartus sogar drastisch. Das ist ein guter Zug, Dinge aus den Beschreibungen zu werfen, die etwas beschreiben, was es nicht geben kann. Man glaubt gar nicht, wieviele Leute es gibt, die sowas im FPGA Code haben. Inklusive Buffer-Konstrukte.
J. S. schrieb: > Das ist ein guter Zug, Dinge aus den Beschreibungen zu werfen, die etwas > beschreiben, was es nicht geben kann. Naja, früher(tm) zu seeligen Xilinx Spartan und 4000er Zeiten Mitte der 1990er Jaghre gab es interne Tristate Buffer. Ist aber lange her und aus gutem Grund nicht mehr vorhanden. Zu groß, zu langsam.
J. S. schrieb: > Josef G. schrieb: >> Im VHDL-Code habe ich die internen Tristates entfernt. Das reduziert >> die Anzahl der Warnungen bei der Synthese, bei Quartus sogar drastisch. > > Das ist ein guter Zug, Dinge aus den Beschreibungen zu werfen, die etwas > beschreiben, was es nicht geben kann. looool, das gleiche hab ich mir auch gedacht 😂😂😂 Ich meine wie alt ist das Projekt schon ... 10+ Jahre? Und immer noch war da sowas eingebaut? 🤔 Und nach soooooo langer Zeit ist nicht mal der Instruction-Set stable ...
:
Bearbeitet durch User
Klaus schrieb: > Josef G. schrieb: >> CP steht für Compare. > > Also ein Befehl, der CP heißt, das zwar wie "copy" klingt, aber für die > Abkürzung von Compare steht, […] Das ist üblich: Es fallen mir spontan Z80 (und Derivate), STM8, HC08/S08, 6502 ein, bei denen "cp" mnemonic für "compare" ist.
Philipp Klaus K. schrieb: > Das ist üblich: Es fallen mir spontan Z80 (und Derivate), STM8, > HC08/S08, 6502 ein, bei denen "cp" mnemonic für "compare" ist. Und die führen dann auch eine xor-Operation aus statt einem compare? Dann nehme ich meine Kritik zurück....
Klaus schrieb: > Und die führen dann auch eine xor-Operation aus statt einem compare? Ein 1-Bit-Compare ist nichts anderes als ein XOR.
Josef G. schrieb: > Ein 1-Bit-Compare ist nichts anderes als ein XOR. Ein compare vergleicht zwei Operanden und stellt das Ergebnis in einem Flag zur Verfügung. Die Operanden selbst bleiben dabei unverändert.
Josef G. schrieb: > Ein 1-Bit-Compare ist nichts anderes als ein XOR. Jedenfalls dann, wenn man auf Gleichheit testen will. Man könnte natürlich auch auf kleiner-gleich testen. Das wäre etwas anderes. Klaus schrieb: > Ein compare vergleicht zwei Operanden und stellt das Ergebnis in einem > Flag zur Verfügung. Die Operanden selbst bleiben dabei unverändert. Ausser wenn das Flag einer der Operanden ist.
Josef G. schrieb: > Klaus schrieb: >> Und die führen dann auch eine xor-Operation aus statt einem compare? > > Ein 1-Bit-Compare ist nichts anderes als ein XOR. du hast 1bit Register? 😳
Mampf F. schrieb: > du hast 1bit Register? 😳 Natürlich! Und zwar ganz Viele! Wirklich! Und die sind genauso intuitiv benannt, wie die OpCodes:
1 | signal outa, outk, outp, outr, outx, outy, outz, outd, |
2 | wnn, ennpp, ennrr, ennkk, |
3 | we2, wopb, wccc, nccc, eccvs, eccus, eccas, eccks, eccss, |
4 | wtab, nta, ntb, etabs, etaa, etab, etava, etaav, etae1, etat, |
5 | etba, etbb, etbvb, etbbv, etbe1, etbop, wcd, ncd, ecdt, |
6 | ecds, ecdk, ecdx, ecdy, ecdz, ecdp, ecdr, ecdq, |
7 | wtw, ntw, etwv, etwa0, etwa7, etwb0, etwb7, |
8 | |
9 | t1et1, t1et2, t1et3, t1et4, t1et5, t1et6, t1et7, |
10 | t1eaa, t1ebb, t2ebb, t1eab, t1eba, t1eava, t1eaav, t1ebvb, t1ebbv, |
11 | t1eat, t1ebop, t2eae1, t2ebe1, t1eabs, t1na, t2na, t1nb, t2nb, |
12 | t1ecdk, t2ecdk, t1ecdx, t2ecdx, t1ecdy, t2ecdy, t1ecdz, t2ecdz, |
13 | t1ecdt, t1ecds, t1ecdp, t2ecdp, t1ecdq, t2ecdr, t1ncd, t2ncd, |
14 | t1ewv, t1ewu, t1nw, t2nw, |
15 | t1ncc, t1eccv, t1eccu, t1ecca, t1ecck, t1eccs, |
16 | t1oup, t1oupo, t1our, t1ouro, t1ouk, t1oux, t1ouy, t1ouz, t1oua, |
17 | t1sn2, t2sn2, t3sn2, t1sn1, t1sn0, thsn0, |
18 | |
19 | p1eaa, p1ebb, p2ebb, p1eab, p1eba, p1eava, p1eaav, p1ebvb, p1ebbv, |
20 | p1eat, p1ebop, p2eae1, p2ebe1, p1eabs, p1na, p2na, p1nb, p2nb, |
21 | p1ecdk, p2ecdk, p1ecdx, p2ecdx, p1ecdy, p2ecdy, p1ecdz, p2ecdz, |
22 | p1ecdt, p1ecds, p1ecdp, p2ecdp, p1ecdq, p2ecdr, p1ncd, p2ncd, |
23 | p1ewv, p1ewu, p1nw, p2nw, |
24 | p1ncc, p1eccv, p1eccu, p1ecca, p1ecck, p1eccs, |
25 | p1oup, p1our, p1ouk, p1oux, p1ouy, p1ouz, p1oua, |
26 | p1sn2, p2sn2, p3sn2, p1sn1, p1sn0, phsn0 : std_logic; |
27 | |
28 | signal wpp, epsum, wrr, wqq, |
29 | we1, we3, wopa, wfa, wha, |
30 | wvv, evvw, evvzo, evvcy, evvcn, |
31 | wka, ekaa, ekac, ekad, ekasu, ekant, ekaxr, ekaw, |
32 | wkb, ekbb, ekbc, ekbd, ekbsu, |
33 | wss, essdab, essiab, essab, esscd, |
34 | wxx, wyy, wzz, exztab, exzdcd, exzicd, exzsum, |
35 | |
36 | f1kaa, f2kaa, f1kac, f1kad, f1kasu, f2kasu, f1kant, f2kant, |
37 | f1kaxr, f2kaxr, f1kaw, f1kbb, f1kbc, f1kbd, f1kbsu, f2kbsu, |
38 | f1vw, f1vnz, f1vcy, f2vcy, f1vcn, f2vcn, |
39 | f1wx, f2wx, f1wy, f2wy, f1wz, f2wz, |
40 | f1xzab, f1xzdc, f1xzic, f1xzsu, f2xzsu, |
41 | f1ssda, f3ssda, f1ssia, f1ssab, f1sscd, |
42 | f1pin, f1psu, f2psu, f1rn, f2rn, f1qcd, |
43 | f1opa, |
44 | f1sef, f2sef, f3sef, f1opz, |
45 | f1sn2, f1sn1, f1sn0, |
46 | |
47 | q1kaa, q2kaa, q1kac, q1kad, q1kasu, q2kasu, q1kant, q2kant, |
48 | q1kaxr, q2kaxr, q1kaw, q1kbb, q1kbc, q1kbd, q1kbsu, q2kbsu, |
49 | q1vw, q1vnz, q1vcy, q2vcy, q1vcn, q2vcn, |
50 | q1wx, q2wx, q1wy, q2wy, q1wz, q2wz, |
51 | q1xzab, q1xzdc, q1xzic, q1xzsu, q2xzsu, |
52 | q1ssda, q3ssda, q1ssia, q1ssab, q1sscd, |
53 | q1pin, q1psu, q2psu, q1rn, q2rn, q1qcd, |
54 | q1opa, |
55 | q1sef, q2sef, q3sef, q1opz, |
56 | q1sn2, q1sn1, q1sn0 : std_logic; |
Und keiner der über 400 Signalnamen ist länger als sechs Zeichen, damit man nicht soviel tippen muß...
Bei vielen Prozessoren werden keine separaten Komparatoren o.ä. genutzt, sondern die entsprechenden Befehle müssten eigentlich als "ALU-Operation ohne Schreiben des Ergebnisses" bezeichnet werden. Lediglich die Auswirkungen auf die Statusbits (Zero, Carry, usw.) werden berücksichtigt. im klassischen ARM-Befehlssatz ist der Befehl BEQ (Branch if equal) eigentlich BZ (Branch if zero). Auch die anderen bedingten Sprünge sind nach den Vergleichsergebnissen benannt, werten aber eigentlich die Rechenergebnisse aus.
Das Projekt an sich finde ich eigentlich gar nicht mal so schlecht. Also, es ist sicher unbenutzbar, es enthält viele kuriose Dinge und mit an Sicherheit grenzender Wahrscheinlichkeit wird er aus diesen Gründen keine "Mitstreiter" finden. Aber als Bastelprojekt für den Spaß? Absolut legitim! Da habe ich schon dümmere Bastelprojekte gemacht. Ein Hobby muss keinen Sinn ergeben.
MaWin O. schrieb: > Aber als Bastelprojekt für den Spaß? Absolut legitim! > Da habe ich schon dümmere Bastelprojekte gemacht. Du hast eine komische Definition von "Spaß". Da ramm ich mir lieber den Lötkolben ins Knie!
Falk B. schrieb: > Du hast eine komische Definition von "Spaß". Da ramm ich mir lieber den > Lötkolben ins Knie! Du hast eine komische Definition von "Spaß". Ich könnte mir durchaus bessere Tätigkeiten vorstellen, z.B. einen Softcore mit zugehörigem Experimentierbrett zu entwerfen.
Josef G. schrieb: > Wäre sehr schön, wenn sich hier jemand meldet, der das Projekt auf DE0 > oder DE0-nano oder DE0-CV realisiert hat. Wichtig ist die Neubeschriftung der Tastatur, damit man nicht dauernd die Belegung nachschauen muss. Papierstückchen mit Tesafilm aufkleben, die kann man problemlos wieder ablösen. Als erstes das Kommando =WARE eingeben.
Falk B. schrieb: > Da ramm ich mir lieber den Lötkolben ins Knie! Jeder halt so, wie er möchte. Viel Spaß mit dem Lötkolben, Falk.
MaWin O. schrieb: > Jeder halt so, wie er möchte. > Viel Spaß mit dem Lötkolben, Falk. https://www.youtube.com/watch?v=B4YtnXXYlAo#t=1m55s ;-)
Klaus schrieb: > Kann man sich nicht ausdenken sowas. Ach komm, das geht schon. Etwa wenn der eigentliche Sinn von SA1 A1+1 darin besteht, das Register X1 aus dem Speicher zu laden. Von Adresse in A1 mit Preinkrement. Aber Vorsicht, bei SA6 A6+1 wird X6 nicht geladen, sondern gespeichert. Man sieht hier auch schön, dass Registerbezeichnungen als Teil des Menmonics eine sehr alte Übung sind. Weit älter als 6502. Andere wiederum fanden es praktisch. ein XOR mit AUT zu bezeichnen, abgeleitet von Antivalenz (frag mich nicht nach dem U ;-): AUT n ist bei der 6502: EOR n Ist aber irgendwie logisch, wenn sich AND/OR als ET/VEL schreiben.
:
Bearbeitet durch User
Josef G. schrieb: > Wichtig ist die Neubeschriftung der Tastatur, damit man nicht dauernd > die Belegung nachschauen muss. Papierstückchen mit Tesafilm aufkleben, > die kann man problemlos wieder ablösen. Als erstes das Kommando =WARE > eingeben. Wenn es ein Satiremagazin für Elektronikprojekte gäbe, du könntest es im Alleingang mit Inhalten füllen.
>> Viel Spaß mit dem Lötkolben, Falk. Ja das deutsche Kinopublikum liebt seine Übersetzungsfehler, im Original heisst es "blowtorch" (Lötlampe) und nicht "solder iron" (Lötkolben): https://youtu.be/57RCd87Naf4?t=105 https://en.wikipedia.org/wiki/Blowtorch
Rick schrieb: > Und keiner der über 400 Signalnamen ist länger als sechs Zeichen, damit > man nicht soviel tippen muß... Vermutlich entstammt Josef der Generation der Fortran-Programmierer von vor 1990: http://web.stanford.edu/class/me200c/tutorial_77/05_variables.html ;-)
Rick schrieb: > Und keiner der über 400 Signalnamen ist länger als sechs Zeichen, damit > man nicht soviel tippen muß... Sind alles interne Steuersignale, die für den Programmierer unsichtbar sind.
Josef G. schrieb: > die für den Programmierer unsichtbar sind. Lustig. :) Nein, sie sind nicht unsichtbar. Sie sind nicht unsichtbar für die "Mitstreiter", die du ja so dringend suchst. Einer der größten Gründe, weshalb du keine "Mitstreiter" finden wirst, ist die Unlesbarkeit der Quellcodes.
MaWin O. schrieb: > Einer der größten Gründe, weshalb du keine "Mitstreiter" finden wirst, > ist die Unlesbarkeit der Quellcodes. Nicht nur der Quellcode. Auch die Bedienung/Programmierung ist für einen normalen Menschen absolut unmöglich, das fängt mit der Tastenbelegung an, und hört bei solchen Dingen noch lange nicht auf: > Da alle Codes für darstellbare Zeichen vergeben sind, sind > besondere Vereinbarungen erforderlich. > Zur Realisierung von Strings mit variabler Länge und fester > reservierter Länge vereinbare man, dass abschließende Leer- > zeichen nicht zum String gehören. > Bei Textdateien haben die Zeilen eine konstante Länge > (dh. werden durch Leerzeichen aufgefüllt). > Zur seriellen Übertragung bietet sich ein 5-Bit-Code an. > Das erste Bit zeigt an, ob es sich um ein Daten-Nibble > oder einen Steuercode handelt. Un. Fass. Bar. Wenn ich es nicht selbst heruntergeladen hätte würde ich nicht glauben, dass es so etwas gibt. Sowas passiert wohl, wenn jemand https://mister-devel.github.io/MkDocs_MiSTer und https://programmingwiki.de/Brainfuck in einen Topf wirft uns sehr kräftig umrührt.
:
Bearbeitet durch User
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.