gelangweilt schrieb:> hey, soll ich hier zu meiner belustigung auch ein tagebuch meiner> eigenen projekte aufmachen? egal obs jemand interessiert? wenn das jeder> macht?!
Mach doch. Hauptsache dir machts Spaß.
Habe beim S3A und S3E Starter den Anschluss für die SD-Karte
verlegt an die untere Ecke des Boards. Dadurch ist jetzt der
Hirose-Stecker für die Erweiterungs-Karte besser zugänglich.
Die Schnittstelle für die Erweiterungskarte habe ich überarbeitet.
Ich meine, sie ist jetzt vorzeigbar. Siehe auf der Projekt-Website
Seite Hawa unten. Es besteht Pin-Kompatibilität zwischen den drei
Xilinx-Boards (S3A-Starter, S3E-Starter, Nexys2). Für Kompatibilität
mit dem DE1 Board bräuchte man lediglich einen mechanischen Adapter.
Es wurde mir in diesem Thread vorgehalten, dass mein Rechner-System
zu nichts zu gebrauchen sei. Ich meine, mit der jetzt vorhandenen
Erweiterungs-Schnittstelle kann es Hobby-Hardwerkern als Mittel
zur manuellen Ein/Ausgabe für ihr Produkt dienen.
Die Schnittstelle beruht auf dem IO-Befehl H.. der CPU. Dabei gibt
die CPU das kombinierte Register AB auf dem Adressbus aus und liest
den Datenbus nach A ein. Die untere Hälfte des Adressbus (Register B)
übernimmt die Rolle eines Kommandos an das IO-Gerät, die obere Hälfte
bildet die Ausgabe-Daten. Bei der realisierten Schnittstelle sind nur
5 Bit des Registers B verfügbar. Das IO-Gerät kann die Eingabedaten
sofort liefern, oder verzögert und dazu die CPU anhalten.
Für die Treiber-Software sind auf dem FPGA-Board 32KByte in
Slot7 reserviert, ausserdem 32 KByte privater RAM-Bereich.
@ Josef G. (bome) Benutzerseite
>zu nichts zu gebrauchen sei. Ich meine, mit der jetzt vorhandenen>Erweiterungs-Schnittstelle kann es Hobby-Hardwerkern als Mittel>zur manuellen Ein/Ausgabe für ihr Produkt dienen.
Das geht mit einem Picoblaze oder reinen UART + FSM 10mal einfacher und
durchschaubar. Been there, done that.
Du hast nur ein weiteres Kapitel im Buch "How to shoot yourself in the
foot" geschrieben.
@Falk... Der Josef ist nicht einsichtsfähig und will seinen Thread nur
oben sehen. Soviel sollte doch inzwischen wirklich klar sein. Man muss
ihn diesbezüglich nicht noch andauernd unterstützen, das macht er schon
alleine. Die Tragikkomödie wird schon irgendwann ihr Ende finden! Also
lasst ihn doch in Ruhe seinen Traum hier leben.
>Der Josef ist nicht einsichtsfähig und will seinen Thread nur>oben sehen.
Was für unverbesserliche Idioten hier. Josef pflegt sein Projekt und die
Unterbelichteten haben nix besseres zu tun als dumm rumzumaulen.
DANN KLICKT DOCH DEN THREAD EINACH NICHT AN.
Mannmannmann...
Joachim ... schrieb:> Josef pflegt sein Projekt
Josef pflegt sein Hirngespinst.
Joachim ... schrieb:> die Unterbelichteten
... sind die die das noch nicht erkannt haben :-)
Einiges über Gleitpunkt-Arithmetik
Bei Verwendung des Hexadezimalsystems entfallen die Rundungs-
fehler bei der Umwandlung zwischen Zahl und Zahlenstring.
Damit wird auch die Intervall-Arithmetik verstärkt interessant.
Ich möchte nun folgendes 8-Byte-lange Zahlenformat vorschlagen:
Die ersten 2 Byte bestehen aus 1sbb,bbbb,bbbb,bbbb.
s ist das Vorzeichen. bb,bbbb,bbbb,bbbb ist der Exponent e.
Die restlichen 6 Byte sind die vorzeichenlose Mantisse M.
Die Zahl stehe für das Intervall s*[M-1,M+2]*2^(e-1fff)
Wenn statt 1s am Anfang 0s steht, sollen die restlichen Bits
eine Integer-Zahl mit Vorzeichen s bedeuten. Ausnahme: Wenn
die 8 Byte komplett 00 sind, soll dies "unbestimmt" bedeuten.
(Man kann s als Vorzeichen ansehen und 6+7*8 Bits als Betrag.
Dann gibt es eine positive und eine negative Null, von denen
eine überflüssig ist und durch "unbestimmt" ersetzt wird.
Oder man fasst alle 7+7*8 Bits als positiven Wert W auf,
welcher für die Zahl W-4000,0000,0000,0000 steht. Dann
stünde W=0 für -4000,0000,0000,0000, was durch
"unbestimmt" ersetzt wird.)
Dieses Zahlenformat ist redundanzfrei, und es
gibt zu jeder Zahl auch die dazu negative Zahl.
Für den Hexadezimal-String eines Gleitpunkt-Intervalls
schlage ich folgende Notation vor: sUzzzUzzzUzzz.n:EEE
Dabei steht s für + oder -, U,z,n,E sind Hex-Ziffern
(U: Ziffern mit Überstrich). EEE-800 ist 10er-Exponent.
Die Nachkommastelle n darf nicht 0 sein. Die letzte 1
in n dient als Terminierungs-Zeichen.
Die Entsprechung zwischen Zahl und String ergibt sich so:
Der 2er-Exponent e sei 4*k+r mit r=0|1|2|3
Damit e-1fff = 4*k+r-4*800+1 = 4*(k+1-800)-(3-r)
Also 2^(e-1fff) = 10^(k+1-800)/2^(3-r)
Man erhält also EEE als k+1, wobei 000 für 1000 steht.
UzzzUzzzUzzz.n erhält man, indem man an M den Wert .8
anhängt und das Ergebnis 3-r Bits nach rechts schiebt.
Bei dem vorgeschlagenen Zahlenformat ist die Größe des Fehler-
Intervalls stets gleich 3 mal eine Zweierpotenz. Wenn sich bei
Rechenoperationen eine kleine Vergrößerung des Fehlerintervalls
ergäbe, führt dies im Rahmen des Zahlenformats gleich zu einer
Verdopplung des Fehlerintervalls. Um das zu vermeiden, wird man
für Zwischenrechnungen zusätzlich ein "internes" Zahlenformat
einführen, bei welchem wie in der üblichen Intervall-Arithmetik
untere und obere Grenze als zwei unabhängige Zahlen behandelt
werden. Nach Abschluss der Zwischenrechnungen wird das Ergebnis
dann in das vorgeschlagene Format konvertiert und abgespeichert,
wobei die dann auftretende Verschlechterung des Fehlerintervalls
entsprechend seltener vorkommt.
Das vorgeschlagene Zahlenformat ist auf meinem Rechnersystem
implementierbar. Für die 8-Byte-Zahlen gibt es die Datentypen
Data und DataConst. Die Angabe von Konstanten im Qelltext eines
Programms erfolgt durch einen unterstrichenen String, welcher
mit der Nummer der Steckkarte beginnt, auf welcher die String-
Wert-Konvertierungsroutine liegt. Die Verarbeitung der Zahlen
erfolgt durch Kommandos und Mikro-Operationen auf der Karte.
Übrigens: Der IO-Befehl H.. der CPU eignet sich auch zum
Beschreiben und Auslesen von Registern eines Coprozessors.
Zu einem "Warum einfach, wenns auch kompliziert gehen kann"-Computer
gehört natürlich auch ein komplexes, völlig überflüssiges neues
Zahlenformat. Sonst wärs ja nicht kompliziert genug...
Kann mir mal einer erzählen, welches Problem ihr hier habt?
Ihr seid doch exakt von der Fraktion: "Ich kann selber nichts, also
mache ich wenigstens irgendwas der anderen schlecht, Hauptsache ich habe
was geschrieben". Habt ihr schon mal irgendwas gepostet, was von
Interesse ist?
Das ist SEIN Thema und er kann dazu schreiben was er will. Wenn ihr das
Thema nicht von Interesse findet, gibt es dazu einen sehr einfachen
Mechanismus: EINFACH NICHT LESEN!
Ich praktiziere das schon seit 20 Jahren erfolgreich mit der
BILD-Zeitung.
90% der threads hier im Forum sind inhaltlich ganz grosses Kaka, da ist
die Vorstellung seines 8 Bit Computers wenigstens noch was Sinnvolles.
Josef G. schrieb:> Bei Verwendung des Hexadezimalsystems entfallen die Rundungs-> fehler bei der Umwandlung zwischen Zahl und Zahlenstring.
Deswegen arbeiten Gleitpunkt-Arithmetiken, die Wandlungsfehler vermeiden
wollen, intern mit BCD-Artihmetik.
> Dieses Zahlenformat ist redundanzfrei
Wen juckt die Redundanz in der BCD-Codierung bei den heutigen Preisen
für Digitalelektronik?
Diesen Hex-Scheiß, in den du dich da verrannt hast, braucht kein
Mensch...
Uhu Uhuhu schrieb:> du dich da verrannt hast
Leute, das bringt doch nix... Nun lasst ihm doch die Zeit, diese
Sackgasse geduldig und konsequent, mit aller unergründlichen Tiefe
Josefscher Phantasien bis zum bitteren Ende zu gehen -
Geschockter schrieb:> da ist> die Vorstellung seines 8 Bit Computers wenigstens noch was Sinnvolles
... zumal er doch immer noch Fans auf seiner Seite hat die das
"Sinnvoll"
finden und tatsächlich vom Rest annehmen,
Geschockter schrieb:> 90% der threads hier im Forum sind inhaltlich ganz grosses Kaka
!!!
Fpga Kuechle schrieb:> Könnte man bitte mit den Beleidigungen und Schmähungen aufhören!> Wenn es zur Sache nichts mehr zu sagen dann schweigt eben.
Richtig, ich schliesse mich an. Schlimm, was hier von Arroganten, die
die Grenzen nicht kennen, taktlos abgelassen werden darf.
Andreas S. schrieb:> Hi "M. Bär",>>> @Igel1: Zu einem ehrlichen Bericht hätte gehört, was dafür bezahlt wurde!>> Zunächst:>> Zu einer ehrlichen Kritik hätte gehört, sich im Forum anzumelden und zu> seinen Äußerungen mit seinem Namen und seiner Person zu stehen.
solch Getrolle ignoriert man einfach und konsequent. Alles andere
bedeutet, man nimmt sowas ernst.
Daumen hoch für Deinen und Josefs Einsatz! Mir fehlt es leider an Zeit.
LG Karl-Heinz
Autor von www.sharpmz.org
Habe das Projekt überarbeitet.
Die CPU brauchte ursprünglich zwei Taktsignale, welche jeweils
ein unsymmetrisches Tastverhältnis hatten. Jetzt sind die Takte
symmetrisch, und es gibt auch eine Version mit nur einem Takt.
Die CPU steht unter Creative-Commons-Lizenz zur Verfügung.
http://www.mikrocontroller.net/articles/8bit-CPU:_bo8
In der Gesamt-Konfiguration habe ich die Dauer
eines Halbzyklus von 360ns auf 320ns verkürzt.
CPU-Befehle dauern 2 oder 4 oder 6 Halbzyklen.
Die Verwendung des Parallel-Flash bei den Xilinx-Boards habe ich
aus der Konfiguration entfernt. Dadurch wurde die Dokumentation
auf der Seite Hawa der Projekt-Website übersichtlicher.
http://www.bomerenzprojekt.de
Hm, durch deinen neuen Post hier habe ich zufällig diesen Thread
gefunden. Lustig.
Ich habe mir mal das VHDL der CPU angesehen. Ich glaube ich habe noch
nie so kryptischen und unverständlichen Spaghetticode gesehen (Hunderte
Signale? WTF). Die Doku ist aber noch wirrer als der Code.
Das Ziel, eine Hardware zu entwerfen, die man ohne langes Studium leicht
verstehen und nutzen kann, hast du leider komplett verfehlt. Erstens ist
die Beschreibung und Dokumentation sehr wirr, stichwortartig und
(wahrscheinlich) unvollständig, zweitens brichst du mit allen
Konventionen und Standards.
Dein Rechner hat den Anspruch, modern zu sein, aber irgendwie kommt mir
nach kurzem Blick auf die Doku ein C64 eigentlich moderner und eleganter
vor. Uralte Konzepte in der Breite aufzubohren heißt nicht, dass es
modern wird.
Habe die Schnittstelle für die Hardware-Erweiterung geändert. Es
gibt jetzt einen 9bit-breiten Ausgangsport und einen 8bit-breiten
Eingangsport und zwei Handshake-Leitungen für asynchronen Betrieb.
Damit sollte der Anschluss eines Mikrocontrollers möglich sein.
Vielleicht hat ja jetzt jemand eine Verwendung für das Gerät.
Allerdings: Die Schnittstelle habe ich nicht getestet. Die
zugehörige vhdl-Entity hat aber nur ein paar Zeilen Code.
Wer daran denkt, Hardware dafür zu basteln, möge sich den
Code ansehen und sich von der Funktion überzeugen.
Siehe Projekt-Website / Seite Hawa ganz unten.
------------------------------------------------------
Beim S3A Starter Kit hat sich herausgestellt, dass die
Funktion nach Änderung des Takt-Routings nicht mehr
gegeben war. Dies lag wohl am Zusammenspiel des 50MHz-
Taktes mit dem für das DDR2-RAM gebrauchten 150MHz-Takt.
Ich habe die entsprechenden Teile der Konfiguration
geändert. Sie funktioniert jetzt stabil.
Hallo, guten Tag.
Ich habe als Anfänger mit 65 Jahren das DE1-Board.
Du hattest mal geschrieben das du den Rechner auch für das DE1-Board
geschrieben hast.
Wo kann man den bitte einmal laden?
Danke.
Gruss
Josef G. schrieb:> gibt jetzt einen 9bit-breiten Ausgangsport und einen 8bit-breiten> Eingangsport und zwei Handshake-Leitungen für asynchronen Betrieb.> Damit sollte der Anschluss eines Mikrocontrollers möglich sein.
Es gibt jetzt einen zusätzlichen Eingang, mit dem man 8 der
9 Ausgänge hochohmig schalten kann. Somit kann man diese mit den
8 Eingängen zusammenlegen. Dadurch reduziert sich die Anzahl der
benötigten GPIO-Pins des uC auf maximal 12.
Habe die Software für die SD-Karte, welche bisher eine eigene
virtuelle Steckkarte belegte, mit der Test-Steckkarte in Slot1
zusammengelegt. Man muss jetzt auch beim DE1 nur eine Karten-
Software nach dem Konfigurieren laden. Ausserdem habe ich die
Karten-Software überarbeitet und die Beschreibung verbessert.
Siehe Seite Hawa von http://www.bomerenzprojekt.de
Josef G. schrieb:> Man muss jetzt auch beim DE1 nur eine Karten-> Software nach dem Konfigurieren laden.
ENDLICH! Jetzt wird alles gut. Jetzt rollt Josef den Markt auf!
Das Programm zum Übertragen der Steckkarten-Software mittels RS232
vom PC zum Board gibt es bisher nur für Linux. Kann sein, dass das
ein Hindernis ist bei der Akzeptanz des Projekts. Vielleicht liest
hier jemand mit, der in der Lage und bereit ist, das Programm für
Windows umzuschreiben und das Ergebnis hier zu posten.
Der Quelltext sendcard.c des Programms für Linux findet sich auf der
Seite Downloads meiner Website. Die 32Kbyte der Steckkarten-Software
liegen vor als Hex-Text mit 1024 Zeilen zu je 64 Zeichen / 32 Byte.
Das Programm überträgt die Bytes aber als Bytes und nicht als je 2
Zeichen, so dass alle 256 Werte übertragen werden müssen und nicht
manche Werte als Steuerzeichen interpretiert werden dürfen. Die
Handshake-Leitungen werden nicht verwendet.
Realisierungen des Systems gab es bisher auf folgenden Boards:
Spartan-3A Starter, Spartan-3E Starter, Nexys2, Altera DE1
Es gibt nun auch eine Realisierung auf dem Altera DE0 Board.
Beim DE1 habe ich jetzt ebenfalls das SDRAM in Betrieb
genommen und die Konfiguration entsprechend geändert. Das
SRAM wird jetzt nur noch für die Video-Ausgabe verwendet.
Josef G. schrieb:> dass man ... informiert.
Nein, Du sprichst mit Dir selbst.
Vielleicht sollstest Du den Quotienten von Aufwand/Nutzen Deiner
Projekte ins Vorstellbare zurückführen um das zu ändern.
Puckel, lass Joseph hier seine Sachen posten, so wie er will. Im
Gegensatz zu Deinen Posts haben seine einen fachlichen Inhalt und er
bleibt sachlich.
Er hält sich an die Foren-Regeln. Wenn Dir diese Art Technik nicht
gefällt. beschreibe fachlich bessere Methoden, ansonsten halte bitte den
Mund.
Franz schrieb:> haben seine einen fachlichen Inhalt
Ja, als Beispiel dafür wie man sich möglichst kompliziert von hinten
durch die Brust ins Auge schießt. Hast du dir mal sein Projekt
angesehen? Dann solltest du eigentlich verstehen warum ihn hier niemand
wirklich ernst nimmt.
Ulrich B. schrieb:> falls du noch Anregungen für einen schöneren Zeichensatz suchst
Auf meiner Website wird der Zeichensatz vergrößert dargestellt
und sieht dadurch sehr unschön aus. Am realen System auf einem
kleinen Monitor sieht er etwas besser aus.
Franz schrieb:> Puckel, lass Joseph hier seine Sachen posten, so wie er will. Im> Gegensatz zu Deinen Posts haben seine einen fachlichen Inhalt und er> bleibt sachlich.
So ist es. Entweder sinnvollen Beitrag zum Projekt oder Klappe!
Lars schrieb:> Ja, als Beispiel dafür wie man sich möglichst kompliziert von hinten> durch die Brust ins Auge schießt. Hast du dir mal sein Projekt> angesehen?
Ich arbeite seit 15 Jahren mit FPGAs und sehe fast jede Woche ein neues
Design irgendeines Experten. Und ich darf Dir versichern: Josef liegt
mit der Qualität seiner Arbeit voll in der Mitte!
Und dass das Ganze hier kein grosses Interesse findet, hat Gründe:
8-Bit Systeme sind etwas für Retrotypen, die sich dafür interessieren
(das tue ich z.b. ausdrücklich), die aber auch Zeit für sowas haben,
denn die Einarbeitung insowas in aufwändig. Ich z.B. habe keinen Tropfen
Zeit dafür. Wenn ich in Rente wäre, würde ich mich draufstützen.
Andererseits gibt es mmit den FPGA-Arcade-Sachen schon genau das, was
ich selber brauche.
Josefs Bastelprojekt ist also bemerkenswert - aber für viele nutzlos.
Trotzdem bleibt es beachtenswert, besonders, wenn man sich reinzieht,
was sonst noch so alles hier an "Projekten" veröffentlicht wird.
FPGA-Spezi schrieb im Beitrag #3813079:
> nutzlos> beachtenswert
Schließt sich für meine Begriffe aus.
> Ich z.B. habe keinen> Tropfen Zeit dafür.
Muß nicht wirklich verwundern.
> Wenn ich in Rente wäre, würde ich mich draufstützen.
Noch keinen Rentner hier gesehen der das täte. Auch sonst niemanden.
Ohne Bezahlung ;-)
Anders als bei den historischen 8bit-Computern erfolgt die
Zeichen-Ausgabe nicht durch eine Zeichengenerator-Hardware,
sondern die Pixelmuster der Zeichen werden durch die CPU
ins Video-RAM geschrieben. Man kann also auch Grafiken
programmieren. Das Video-RAM ist zwischen zwei Seiten
umschaltbar, das ermöglicht bewegte Grafiken.
Vielleicht denkt ja doch noch jemand darüber nach,
Software für das System zu schreiben, nachdem sich
jetzt durch ein weiteres FPGA-Board der Kreis der
potentiellen Anwender nochmal vergrößert hat.
Es gibt eine kleine Änderung der CPU: Bei Code-Folge H.. H..
wird auf dem Adressbus jetzt P statt K ausgegeben, und das
Einlesen des Datenbus nach A entfällt.
@Josef G. (bome) Benutzerseite
>Es gibt eine kleine Änderung der CPU: Bei Code-Folge H.. H..>wird auf dem Adressbus jetzt P statt K ausgegeben, und das>Einlesen des Datenbus nach A entfällt.
Das ist ja eine FUNDAMENTALE Neuerung, die dem Projekt sicher zum
Durchbruch verhelfen wird . . . !!!
Puckel schrieb:> FPGA-Spezi schrieb im Beitrag #3813079:>>> nutzlos>> beachtenswert
Beachtenswert nutzlos- für den Aufwand.
Josef G. schrieb:> Es gibt eine kleine Änderung der CPU:Falk Brunner schrieb:> Das ist ja eine FUNDAMENTALE Neuerung,
Das sind Thread-Blähungen. Viel Luft um nix ;-)
Falk Brunner schrieb:> @Josef G. (bome) Benutzerseite>>>Es gibt eine kleine Änderung der CPU: Bei Code-Folge H.. H..>>wird auf dem Adressbus jetzt P statt K ausgegeben, und das>>Einlesen des Datenbus nach A entfällt.>> Das ist ja eine FUNDAMENTALE Neuerung, die dem Projekt sicher zum> Durchbruch verhelfen wird . . . !!!
Falk,
ich bezweifle mal das DU verstehst was er da geschrieben hat! Ich finde
es toll das gemand anderen seiner Arbeit zu nichte mach, nur weil der
eine nicht versteht was dahinter steckt!
Wenn ich verstehen würde was Josef da zusammenbastelt wäre ich wohl der
FPGA-Crack schlechthin. Er hat halt spaß daran soetwas zu machen, also
bitte unterlasse es ihn deswegen blöd anzumachen! Oder gehst du zu nem
Golfspieler hin und pöpelst nur weil du keinen sinn in diesem sport
siehst?
Alex W. schrieb:> Er hat halt spaß daran soetwas zu machen,
Den kann er doch - für sich - haben.
Wer aber hier was reinschreibt bekommt Rückmeldungen.
Ob diese gefallen oder nicht.
Die vielen negativen, z.T. sehr ironischen sind dabei noch die
ehrlichsten, weil sie dem TO tatsächlich die Sackgasse aufzeigen, in der
er sich befindet.
Ganz im Gegensatz zu einigen leeren Absichtserklärungen weniger
"Unterstützer" , die m.M. nach aus ach so hehren moralischen Motiven nur
Interesse heucheln und ihn letztlich damit nur in jener Sackgasse
bestärken.
Es ist nun mal so: viel Arbeit, Zeit und Einsatz in ein Projekt zu
stecken gibt diesem nicht per se Sinn- jedenfalls für einen praktischen
Einsatz. Den sollte man sich, so wie hier beabsichtigt, tunlichst vorher
überlegen. Viel Arbeit, Zeit und Einsatz führen sonst nur zu einer
blinden emotionalen Bindung, von der man sich, so wie hier demonstriert,
kaum noch lösen kann. Jammerschade eigentlich wenn man bedenkt, was mit
dieser Zeit und den vorhandenen Fähigkeiten womöglich sonst sinnvolleres
angestellt werden könnte.
M.Bär schrieb:> Es ist nun mal so: viel Arbeit, Zeit und Einsatz in ein Projekt zu> stecken gibt diesem nicht per se Sinn- jedenfalls für einen praktischen> Einsatz. Den sollte man sich, so wie hier beabsichtigt, tunlichst vorher> überlegen. Viel Arbeit, Zeit und Einsatz führen sonst nur zu einer> blinden emotionalen Bindung, von der man sich, so wie hier demonstriert,> kaum noch lösen kann. Jammerschade eigentlich wenn man bedenkt, was mit> dieser Zeit und den vorhandenen Fähigkeiten womöglich sonst sinnvolleres> angestellt werden könnte.
Da sieht man, wie die Menschen sind:
Nur Leidenschaft und kein Gewissen!
Hintergrund der letzten CPU-Änderung:
Die IO-Operation H.. gibt K auf dem Adressbus aus und liest
den Datenbus nach A ein. K ist die Kurzbezeichnung für AB.
Der Sprungbefehl J.. lädt K in den Programmzähler P. Somit
ist die Folge H.. J.. eine unsinnige Code-Folge, weil dabei
das Highbyte des Sprungziels über eine IO-Operation geladen
würde. Diese Code-Folge erhält einen Sinn dadurch, dass in
diesem Fall H.. nicht als IO-Befehl wirkt, sondern bewirkt,
dass J.. mit einer Memory-Page-Umschaltung kombiniert wird.
Es bleibt aber jetzt die unschöne Situation, dass H.. H.. J..
eine sinnlose Folge darstellen würde, da der Sprung H.. J..
mit Seitenumschaltung auf die IO-Operation H.. folgen würde.
Deshalb erhält die Folge H.. H.. eine spezielle Funktion.
Die Folge wird auf den Steuerleitungen angezeigt, wobei P
auf dem Adressbus ausgegeben wird. Dies kann per externer
Hardware zB. ein Anhalten der CPU auslösen. Da K erhalten
bleibt, kann unter Umständen ein nachfolgendes J.. eine
sinnvolle Funktion haben.
Hallo Joseph,
gerade wenn der Weg das Ziel ist, lass dich nicht abhalten. Ansonsten
hätte ich schon eine Anwendung. Die alten Spiele haben sehr viel Spass
gemacht. Da kam es auf clevere Spielkonzepte und nicht nur auf
aufgepumpte Grafik an. Versuche doch Tetris, Blockout, Packman und wie
sie alle hiessen zu programmieren.
Und du bist nicht allein. Es gibt genug Verrückte die sich mit demn
Thema Retro-Computer befassen.
siehe hier:
http://www.zx81.de/
:-P
@ Alex W. (a20q90)
>ich bezweifle mal das DU verstehst was er da geschrieben hat!
Das darfst du, wenn gleich du auf dem Holzweg bist.
>Ich finde>es toll das gemand anderen seiner Arbeit zu nichte mach, nur weil der>eine nicht versteht was dahinter steckt!
Ich verstehes ausreichend, um zu versthen, dass es eher unverständlich
ist.
Verstehst du? ;-)
>Wenn ich verstehen würde was Josef da zusammenbastelt wäre ich wohl der>FPGA-Crack schlechthin.
Und ein 2. Rainman, neudeutsch, Nerd.
> Er hat halt spaß daran soetwas zu machen, also>bitte unterlasse es ihn deswegen blöd anzumachen!
Welche wie auch immer sinnvollen oder sinnfreien Hobbys andere Leute
haben, ist mir relativ egal. Aber wie schon mehrfach geschrieben, geht
es Josef darum, sein Projekt anzupreisen und Anwender zu finden. Er hat
sogar schon mal Tester BEZAHLT, damit sie sich das antun!
Also geht es um eine sachliche Bewertung des Projekts. Leider fällt die
meist weniger gut aus. Such im Forum nach Josef und meinem Namen, dort
findest du ausreichend Aussagen, warum das Projekt nix taugt.
> Oder gehst du zu nem>Golfspieler hin und pöpelst nur weil du keinen sinn in diesem sport>siehst?
Nö, die Golfspieler preisen aber auch nicht ständig ihr Spiel in einem
Forum an. Ausserdem bin ich Minigolfspieler! ;-)
Beispiel: OpCode 69: XRMX
Weiter unten steht: % stehe für X|Y|Z und
XRM% | XR.B A wird A xor op mit op = (%) | B
Die letzte Zeile steht also für
XRMX A wird A xor (X)
XRMY A wird A xor (Y)
XRMZ A wird A xor (Z)
XR.B A wird A xor B
XRMX bewirkt also, dass A mit dem Inhalt jener Speicherzelle,
auf welche das Adress-Register X zeigt, xor-verknüpft wird.
Natürlich könnte man zu jedem der 256 OpCodes eine mehrzeilige
Beschreibung angeben, aber das wäre halt entsprechend lang.
Josef G. schrieb:> Hintergrund der letzten CPU-Änderung:>> Die IO-Operation H.. gibt K auf dem Adressbus aus und liest> den Datenbus nach A ein. K ist die Kurzbezeichnung für AB.> Der Sprungbefehl J.. lädt K in den Programmzähler P. Somit> ist die Folge H.. J.. eine unsinnige Code-Folge, weil dabei> das Highbyte des Sprungziels über eine IO-Operation geladen> würde. Diese Code-Folge erhält einen Sinn dadurch, dass in> diesem Fall H.. nicht als IO-Befehl wirkt, sondern bewirkt,> dass J.. mit einer Memory-Page-Umschaltung kombiniert wird.>> Es bleibt aber jetzt die unschöne Situation, dass H.. H.. J..> eine sinnlose Folge darstellen würde, da der Sprung H.. J..> mit Seitenumschaltung auf die IO-Operation H.. folgen würde.>> Deshalb erhält die Folge H.. H.. eine spezielle Funktion.> Die Folge wird auf den Steuerleitungen angezeigt, wobei P> auf dem Adressbus ausgegeben wird. Dies kann per externer> Hardware zB. ein Anhalten der CPU auslösen. Da K erhalten> bleibt, kann unter Umständen ein nachfolgendes J.. eine> sinnvolle Funktion haben.
Also spätestens nach diesem Beitrag kann man doch das Projekt nicht mehr
ernst nehmen.
Du kannst doch nicht allen Ernstes verlangen, dass sich jemand sowas
antut...
Um etwas Konstruktives beizutragen: schreib doch einen C-Compiler für
deine CPU, dann besteht immerhin die theoretische Möglichkeit das jemand
was zum Projekt beiträgt.
bal schrieb:> Also spätestens nach diesem Beitrag kann man> doch das Projekt nicht mehr ernst nehmen.
Inwiefern?
> Um etwas Konstruktives beizutragen: schreib> doch einen C-Compiler für deine CPU
Abgesehen davon, dass ich das gar nicht könnte:
Der Befehlssatz der CPU ist so Programmierer-freundlich, dass
es nicht nötig ist, ihn hinter einem Compiler zu verstecken.
Bei dieser CPU macht Assembler-Programmierung Spass.
Josef G. schrieb:> Bei dieser CPU macht Assembler-Programmierung Spass.
Wem denn? Nenne einen Namen außer Josef G.
Mir würde sie jedenfalls keinen Spaß machen. Du präsentierst dieses
Thema derart trocken, dass ich flüchten würde, müsste ich mir einen
Vortrag von Dir zu diesem Thema anhören.
Allein Dein obiges Gestammel zu K, A, H, J (was ist das überhaupt?!?)
ist absolut unverständlich. Gibts das irgendwie auch systematisch?
Bitte nicht so:
"Die IO-Operation H.. gibt K auf dem Adressbus aus und liest
den Datenbus nach A ein."
Es gibt also eine IO-Operation H.. mit zwei Pünktchen hinter dem H? Was
ist K? Warum sind da keine zwei Pünktchen? Ist das ein Register? Wie
breit ist das Register und warum heisst es K? Wird da eine Adresse
ausgegeben? Wie breit ist denn der Adressbus? Und wieso wird der
Datenbus eingelesen? Du unterscheidest also nicht zwischen RAM und I/O
Operationen beim Zugriff auf den Datenbus? Und der Datenbus wird einfach
so eingelesen? Ohne einen Strobe oder ein sonstiges Signal? Wo gibt es
Timing-Diagramme dazu? Was ist denn A? Ein Akkumulator? Oder einfach ein
Register, welches nicht K(onrad), sondern A(nton) heisst?
Das sind jetzt schon zig Fragen zu einem einzigen Satz von Dir. Wenn ich
mir jetzt weitere 9 Sätze von Dir anschaue, bin ich bei weit über 100
Fragen, ohne irgendwas zu kapieren.
Wenn ich mir Deine vollständige Befehlssatz-Tabelle anschaue, dann
stellen sich mir viele weitere Fragen. Wie breit ist der Opcode? Etwa 3
Nibble? Für SVMX ergibt sich der Opcode nach Deiner Tabelle mit Hex 684.
Kannst Du Nibbles (also 4 Bit) adressieren oder wie liest Deine CPU
diesen Opcode ein? Oder füllst Du den Opcode mit einem 0-Nibble auf, so
dass der Opcode dann 0684 ist und damit glatte 2 Byte lang ist? Wenn ja,
hältst Du dieses nicht auch für ineffizient, 1/4 aller nötigen Daten
umsonst eingelesen zu haben und dabei auch noch 1/4 des Speicherplatzes
zu verschenken? Oder steckt in dem überzähligen Nibble ein weiterer
Operator?
Fragen über Fragen.... und nichts ist ausreichend erklärt.
Und jetzt nochmal zurück zu Deiner Aussage:
> Bei dieser CPU macht Assembler-Programmierung Spass.
Definitiv nicht. Das kann keinen Spaß machen.
Falk Brunner schrieb:> Such im Forum nach Josef und meinem Namen, dort> findest du ausreichend Aussagen, warum das Projekt nix taugt.
Wenn ich nur nach Deinem Namen such komm ich auch zu einer eigenen
Meinung :-D
scnr
Frank M. schrieb:> Allein Dein obiges Gestammel zu K, A, H, J (was ist das überhaupt?!?)> ist absolut unverständlich. Gibts das irgendwie auch systematisch?
A ist der Akku, das steht auf der Seite CPU-doku. A ist 8bit breit,
das steht nirgendwo explizit, ist aber bei einer 8bit-CPU klar.
K ist eine Kurzbezeichnung für das Doppelregister AB. Das
steht auf der Seite CPU-doku, und nochmals in obigem Beitrag.
> Es gibt also eine IO-Operation H.. mit zwei Pünktchen hinter dem H?
Die Operation H.. wird auf der Seite CPU-doku beschrieben.
Der Punkt steht für den von mir eingeführten auf der Grundlinie
liegenden Bindestrich. Das steht auch auf der Seite CPU-doku.
Dieses Zeichen gehört nach der Systematik des Zeichensatzes zu
den Großbuchstaben.
> Was ist K? Warum sind da keine zwei Pünktchen?> Ist das ein Register? Wie breit ist das Register
Siehe oben.
> und warum heisst es K?
Warum nicht?
> Wird da eine Adresse ausgegeben?
Bei IO-Operationen wird K ausgegeben. Welche
Funktion das hat, entscheidet die periphere Hardware.
> Wie breit ist denn der Adressbus?
16bit. Steht auf der Seite CPU-doku (A0..Af)
> Und wieso wird der Datenbus eingelesen?
Weil die CPU so gemacht ist.
> Du unterscheidest also nicht zwischen RAM und> I/O Operationen beim Zugriff auf den Datenbus?
Doch, natürlich. Wie kommst du darauf?
> Und der Datenbus wird einfach so eingelesen?> Ohne einen Strobe oder ein sonstiges Signal?
Die CPU gibt keine WE, RD -Signale oder so etwas aus.
Stattdessen gibt es die Typleitungen. Dort wird der Halbzyklus-Typ
angezeigt. Siehe Seite CPU-doku. Die WE, RD -Signale müssen daraus
per externer Hardware erzeugt werden.
> Wo gibt es Timing-Diagramme dazu?
Stehen auf der Seite CPU-doku.
> Was ist denn A? Ein Akkumulator?
A ist der Akku, das steht auf der Seite CPU-doku.
> Wie breit ist der Opcode? Etwa 3 Nibble?
OpCodes sind 8bit breit. Das ergibt sich zB. aus der Tabelle.
> Für SVMX ergibt sich der Opcode nach Deiner Tabelle mit Hex 684.
Nein. Der OpCode ist 68+4 = 6c. Sollte aus der Tabelle klar sein.
> Kannst Du Nibbles (also 4 Bit) adressieren oder wie liest Deine CPU> diesen Opcode ein? Oder füllst Du den Opcode mit einem 0-Nibble auf, so> dass der Opcode dann 0684 ist und damit glatte 2 Byte lang ist? Wenn ja,> hältst Du dieses nicht auch für ineffizient, 1/4 aller nötigen Daten> umsonst eingelesen zu haben und dabei auch noch 1/4 des Speicherplatzes> zu verschenken? Oder steckt in dem überzähligen Nibble ein weiterer> Operator?
Ist nach dem oben gesagten hinfällig.
> Fragen über Fragen.... und nichts ist ausreichend erklärt.
Ich bin bei all meinen Beiträgen hier im Forum immer davon
ausgegangen, dass die Mitleser die Seite CPU-doku kennen.
> Und jetzt nochmal zurück zu Deiner Aussage:>> Bei dieser CPU macht Assembler-Programmierung Spass.> Definitiv nicht. Das kann keinen Spaß machen.
Vielleicht überdenkst du das nach dieser Antwort nochmal.
Josef G. schrieb:> Vielleicht überdenkst du das nach dieser Antwort nochmal.
Was hälst Du von dem Gedanken daß eher Du was überdenken solltest?
Nämlich nichts weniger als den kompletten Sinn Deiner ganzen FPGA-CPU
Technikstudie? Nicht alles was machbar ist ist auch sinnvoll.
Josef G. schrieb:> Der vollständige Befehlssatz ist diese Tabelle:>> +0 +1 +2 +3 +4 +5 +6 +7>> 00- H.. SL.S SW.X SL.X SW.Y SL.Y SW.Z SL.Z>>> Beispiel: OpCode 69: XRMX>> Weiter unten steht: % stehe für X|Y|Z und> XRM% | XR.B A wird A xor op mit op = (%) | B>> Die letzte Zeile steht also für>> XRMX A wird A xor (X)> XRMY A wird A xor (Y)> XRMZ A wird A xor (Z)> XR.B A wird A xor B>> XRMX bewirkt also, dass A mit dem Inhalt jener Speicherzelle,> auf welche das Adress-Register X zeigt, xor-verknüpft wird.
Nun, dann schreib es doch auch so in deine Web-page!
>Natürlich könnte man zu jedem der 256 OpCodes eine mehrzeilige>Beschreibung angeben, aber das wäre halt entsprechend lang.
Entschuldigung aber ich verstehe deine Befehlsabkürzungen so nicht,
und es geht anscheinend anderen Lesern deiner Seite hier genauso!
Mach die die Mühe der Doku mit Beispielen!
(also nicht als Antwort in diesem Forum sondern auf
deiner WEB-Seite)
-> lies doch mal ein paar CPU-Datenblätter oder Webseiten, und
lerne daraus wie andere Dokumentieren;
im Anhang habe ich mal ein paar Anregungen so zum Start....
>Abgesehen davon, dass ich das gar nicht könnte:>Der Befehlssatz der CPU ist so Programmierer-freundlich, dass>es nicht nötig ist, ihn hinter einem Compiler zu verstecken.>Bei dieser CPU macht Assembler-Programmierung Spass.
Assembler, und ist er noch so schön, ist halt nicht portierbar.
Also ich empfehle dir dich dochmal mit "forth" auseinanderzusetzen,
hier z.B.: http://www.forth-ev.de/
gibt es eine deutschsprachige forth Gemeinde, hier hat jemand forth
selbst portiert:
http://www.forth-ev.de/wiki/doku.php/projects:r8c:r8c_forth
was bei forth nicht zu schwer zu sein scheint!
Josef G. schrieb:> A ist der Akku, das steht auf der Seite CPU-doku. A ist 8bit breit,> das steht nirgendwo explizit, ist aber bei einer 8bit-CPU klar.> K ist eine Kurzbezeichnung für das Doppelregister AB. Das> steht auf der Seite CPU-doku, und nochmals in obigem Beitrag.
"ist aber bei einer 8bit-CPU klar."
Merkst Du eigentlich, dass Du dich mit solchen Aussagen selbst weit ins
Abseits stellst und Du nur ein Diskussionspartner für andere Anfänger
sein kannst.
Zur Verdeutlichung:
8bit-CPU 6809: X- und Y-Register sind 16 Bit breit.
8bit-CPU Z80: HL-, IX- und IY-Register sind 16 Bit breit.
Warum auch nicht...
Und da gibt es noch einige Beispiele mehr, auch bei anderen CPUs. Für
DICH ist es vielleicht klar, dass der Akku nur 8 Bit breit ist, Du
kennst es offensichtlich nicht anders. Andere jedoch, mit einer ungleich
größeren Erfahrung in Bezug auf 8 Bit-CPUs weisen Dich letztlich nur auf
Deine mangelnde Dokumentation hin. Warum nur schreibt z.B. Rodnay Zaks
hunderte Seiten nur für eine einzige CPU?
Warum nennst Du dein Doppelregister AB denn K? Warum heist es nicht AB?
Sich mit so einer CPU zu beschäftigen, kommt wirklich einer Folter nahe!
Mal ein anderes praktisches Beispiel:
Eine kurze Verzögerungsschleife in 6502-Assembler:
1
LDX #$FF ;LoaD X mit $FF (255 dezimal)
2
Loop: DEX ;DEkrementiere X
3
BNE Loop ;Branch if Not Equal to zero
Sowas kann man fließend lesen und es ist nahezu selbsterklärend!
Zeige doch mal ein praktisches Beispiel mit Deiner CPU! Zum Beispiel
eine Schleife, um den Bildschirm zu löschen. Also ein
Allerweltsproblem...
Schliessen möchte ich mit einem Zitat von Wilhelm Busch:
Wenn einer, der mit Mühe kaum
Gekrochen ist auf einen Baum,
Schon meint, daß er ein Vogel wär,
So irrt sich der.“
Schönen Abend,
Thomas
PS: Die erste Seite im "Forum: FPGA, VHDL & Co." umfasst bei mir 51
Threads. Im Moment sind 14 davon (das sind 27%!) von "peter" geöffnet
worden. Wäre es nicht sinnvoll für ihn ein eigenes Unterforum zu
eröffnen, damit man nicht so oft über seine Fragen stolpern muss?
Thomas T. schrieb:> 8bit-CPU 6809: X- und Y-Register sind 16 Bit breit.> 8bit-CPU Z80: HL-, IX- und IY-Register sind 16 Bit breit.
Aber die beiden Akkus des 6809 und der Akku des Z80 sind nur
8bit breit. Also keine Widerlegung meiner Aussage "ist klar".
> Warum nennst Du dein Doppelregister AB denn K?
Damit man bei den Mnemonics nicht soviel schreiben muss.
> Eine kurze Verzögerungsschleife in 6502-Assembler:>> LDX #$FF ;LoaD X mit $FF (255 dezimal)> Loop: DEX ;DEkrementiere X> BNE Loop ;Branch if Not Equal to zero
Die Dauer des BNE falls gesprungen wird hängt davon ab, ob das
BNE und das Sprungziel im selben 256Byte-Bereich liegen. Die
Dauer der Schleife ist also bei Code-verschiebung nicht fix.
Das ist Mist. So etwas gibt es bei meiner CPU nicht.
Beitrag "Re: 8bit-Computing mit FPGA"
Bei meiner CPU:
GTA ff 2 Zyklen
LOOP DC.K 1 Zyklus
B.KS LOOP 3 Zyklen / letzter Durchlauf 2 Zyklen
Dauer: 2 + 255*(1+3)-1 Zyklen
> Zeige doch mal ein praktisches Beispiel mit Deiner CPU!> Zum Beispiel eine Schleife, um den Bildschirm zu löschen.
Löschen von Seite E des Text-RAM: Bereich a000..bfff
in Memory-Page 1. Das Schatten-Pageregister für Y
zeigt standardmäßig auf diese Memory-Page (das ist
keine Eigenschaft der CPU, sondern des Gesamtsystems)
GTA a0 Lade AB mit 00a0
EX.B Tausch A <> B
ST.Y Speichere AB in Y
SW.Y Memory-Page-Umschaltung für Y
GTA ff Lade AB mit 00ff
AD. 1f Addiere 1f zu A
ST.S Speichere AB in S
ZO.A Setze A <= 00 (bei mir ist 00 das Leerzeichen)
S.RP Setze Schleifenstartadresse
STMY Speichere A in (Y)
R.IY Falls S > 0000 : S <= S-1, Y <= Y+1 , repeat
SW.Y Memory-Page-Wiederherstellung für Y
Josef G. schrieb:> GTA a0 Lade AB mit 00a0> EX.B Tausch A <> B> ST.Y Speichere AB in Y> SW.Y Memory-Page-Umschaltung für Y> GTA ff Lade AB mit 00ff> AD. 1f Addiere 1f zu A> ST.S Speichere AB in S> ZO.A Setze A <= 00 (bei mir ist 00 das Leerzeichen)> S.RP Setze Schleifenstartadresse> STMY Speichere A in (Y)> R.IY Falls S > 0000 : S <= S-1, Y <= Y+1 , repeat> SW.Y Memory-Page-Wiederherstellung für Y
UM GOTTES WILLEN! Wem soll dieses kryptische unlogische Kauderwelsch
bloß Spaß machen? ... fragt ein entsetzter Assemblerfan
Michael schrieb:>> SW.Y Memory-Page-Wiederherstellung für Y> ist ja noch schlimmer als der allererste PIC-Assembler
Da werden ganze 64KByte-Seiten umgeschaltet,
das ist etwas anderes als bei PIC.
@ Josef G. (bome) Benutzerseite
>> kryptische unlogische Kauderwelsch>Bitte um nähere Begründung.
Du bist ein Autist. Kein Vorwurf, reine Feststellung.
Beitrag "Re: 8bit-Computing mit FPGA"
Du kannst nicht vernünftig kommunizieren, sprichst in kryptischen
Abkürzungen, die ausser dir KEINER versteht!
Auch Assemblerbefehle sollte ansatzweise an einer "menschlichen"
Sprache, oft Englisch, angelehnt sein.
Load a, 0xAB
ist 100 mal Verdaulicher und verständlicher, als beispeilsweise
xf k, ab
So in etwa sind deine Befehle kodiert bzw. abgekürzt. GRAUSAM!
Falk Brunner schrieb:> Auch Assemblerbefehle sollte ansatzweise an einer "menschlichen"> Sprache, oft Englisch, angelehnt sein.>> Load a, 0xAB>> ist 100 mal Verdaulicher und verständlicher, als beispeilsweise>> xf k, ab
Load a, 0xAB würde bei mir heissen
GT. ab
GT steht für "get".
ab sind die von mir eingeführten Hex-Ziffern.
Ein Präfix braucht man nicht.
Falk Brunner schrieb:> xf k, ab
Eine solche Operation gibt es bei mir nicht.
PS: Sorry, eigentlich eine überflüssige Aussage, aber man
weiss ja nie, am Ende liest einer nur das aber nicht
meine Beiträge und glaubt es auch noch.
Josef G. schrieb:> GTA ff Lade AB mit 00ff> AD. 1f Addiere 1f zu A
GTA steht für "get absolute". In Kombination mit AD. wie hier
kann man damit eine absolute Adresse laden, um sie anschließend
in ein Adressregister zu übertragen oder mittels J.. zu dieser
Adresse zu springen.
Daneben gibt es auch GTR. Das steht für "get relative".
GTR nn lädt P+nn+3 nach AB. Damit kann man eine relative Adresse
im Nahbereich des Programmzählers laden. In Kombination mit AD.
entfällt die Beschränkung auf den Nahbereich.
Für
GTA 34
AD. 72
gibt es das Assembler-Makro
/GTA 7234
Entsprechend für GTR.
Der auf der Grundlinie liegende Bindestrich zB. in AD.
(hier repräsentiert durch den Punkt) hat keine andere
Funktion, als den Namen auf 3 Zeichen zu verlängern.
Josef G. schrieb:> Falk Brunner schrieb:>> Auch Assemblerbefehle sollte ansatzweise an einer "menschlichen">> Sprache, oft Englisch, angelehnt sein.>>>> Load a, 0xAB>>>> ist 100 mal Verdaulicher und verständlicher, als beispeilsweise>>>> xf k, ab>> Load a, 0xAB würde bei mir heissen>> GT. ab>> GT steht für "get".>> ab sind die von mir eingeführten Hex-Ziffern.> Ein Präfix braucht man nicht.
ja warum denn das?
Wieso machst Du für
Loead a, 0xAB nicht einfach
LD für Load?
Das wäre ja noch sinnvoller als ais "Load" ein "Get" zu machen?
Bei Verzweigungen mit 8bit-Distanz wird zwischen
Vorwärts- und Rückwärts-Sprüngen unterschieden.
B.xx sind Rückwärts-Sprünge ("back")
O.xx sind Vorwärts-Sprünge ("omit").
Josef G. schrieb:> S.RP Setze Schleifenstartadresse> STMY Speichere A in (Y)> R.IY Falls S > 0000 : S <= S-1, Y <= Y+1 , repeat
Für schnelle Schleifen gibt es die Schleifenstartadresse R.
S.RP
operation1
operation2
operation3
R.xx
S.RP ("start of repeat") setzt R auf operation1.
Die Operation R.xx ("repeat") springt zurück nach R.
In C-Terminologie handelt es sich hier um eine do-while-
Schleife. Es sind aber auch while-Schleifen möglich.
Dazu verwendet man O.RP statt S.RP.
O.RP MARKE
operation1
operation2
operation3
MARKE operation4
operation5
R.xx
O.RP MARKE setzt R auf operation1 und springt zu MARKE.
operation1/2/3 sind das Innere der while-Schleife,
operation4/5 bilden zusammen mit R.xx den
Entscheidungs- und Wiederhol-Ablauf.
Anmerkung (hat nichts mit der CPU zu tun):
In der im ROM eingebauten Hochsprache des Gesamtsystems
wird nach gleichem Muster die "Schleife mit Hineinsprung"
zur Realisierung von while-Schleifen verwendet.
pork schrieb:> Ich fände es praktischer
Nach meinen Erfahrungen mit Verzweigungen im Bereich -128..+127
ist dieser Bereich sehr knapp bemessen. Mit 256 Byte in jede
Richtung sieht das schon wesentlich besser aus.
gustl schrieb:> Josef G. schrieb:>> Der Programmierer muss dann halt nicht darauf achten, welcher>> Operand zuerst im Akku stehen muss, das erleichtert ihm die Arbeit.>> Akku? Ach herje. Das ist zwar ein interessantes Konzept, war aber früher> eher dadurch etabliert, dass man mit der geringen Anzahl an verfügbaren> Transistoren noch kein richtiges Registerfile bauen konnte. Seit Ende> der 70er Jahre besteht dazu keine Notwendigkeit mehr. Außer zu evtl.> Forth ist eine Akkumulatorarchitektur auch zu keine Hochsprache> kompatibel.
Vergleiche hierzu:
Beitrag "Re: Motorola 68HC11"> Die Akkumaschinen sind (im Gegensatz zu manch Behauptung) noch nicht> tot. Ua haben Freescale, ST(bsp STM8, sehr schnell, 8bit), Fujitsu,> (auch M16C wäre möglich) noch welche im Programm.> In vielen Fällen sind die sogar schneller als RISC, weil nicht so> viele LDs/STs nötig sind. (Und ContextSwitch ist auch schneller)
Die Schreibweise für bedingte Anweisung und Verzweigung
in der im ROM eingebauten Compilersprache wurde geändert
und entspricht jetzt dem üblichen if und if-else.
Josef G. schrieb:> Kannst du das .... begründen?
Wozu? Aufwand ohne Nutzen, so wie das ganze Projekt.
Josef G. schrieb:> Die Schreibweise für bedingte Anweisung und Verzweigung> in der im ROM eingebauten Compilersprache wurde geändert> und entspricht jetzt dem üblichen if und if-else.
Das interessiert jetzt ... WEN ???
Josef G. schrieb:> In der im ROM eingebauten Hochsprache des Gesamtsystems> wird nach gleichem Muster die "Schleife mit Hineinsprung"> zur Realisierung von while-Schleifen verwendet.
*L.JP / springt zu *HERE
oper1
oper2
*HERE
oper3
oper4 / weist VAR einen Wert zu
*RP.Z VAR / springt zu oper1 falls VAR = zero
In C würde man hier eine function definieren, welche
oper3/4 ausführt und den Rückgabewert VAR erhält.
Und man würde eine while-Schleife verwenden, welche
oper1/2 ausführt, solange die function Null liefert.
Die Schleife mit Hineinsprung erfüllt den gleichen
Zweck auf einfachere Weise. Die Hochsprache braucht dann
auch nicht das Konstrukt einer function mit Rückgabewert,
sondern es reichen einfache Unterprogramme, bei welchen
alle Übergabe-Parameter gleichberechtigt sind.
Josef G. schrieb:> In C würde man hier eine function definieren, welche> oper3/4 ausführt und den Rückgabewert VAR erhält.
Da kein C-Compiler für Deine CPU existiert, ist Deine Abhandlung hier
rein akademisch.
oper3/4 oder oper1/2... sagt mir überhaupt nichts. Solange Deine
Mnemonics nicht wenigstens etwas selbsterklärend sind, damit man etwas
damit verbinden kann, kommt damit keiner auf einen grünen Zweig. Du
könntest auch chinesisch schreiben.
Frank M. schrieb:> oper3/4 oder oper1/2... sagt mir überhaupt nichts.
Das sind keine Mnemonics. oper1 usw. habe ich hier
geschrieben als Platzhalter für irgendwelche Operationen.
Frank M. schrieb:> Da kein C-Compiler für Deine CPU existiert, ist Deine Abhandlung hier> rein akademisch.
Meine Aussage war, dass die von mir kreierte Hochsprache in wenigstens
einem Punkt, nämlich der Schleife mit Hineinsprung, besser ist als C.
Und das ist unabhängig davon, ob für die CPU ein C-Compiler existiert.
Josef G. schrieb:> *L.JP / springt zu *HERE> oper1> oper2> *HERE> oper3> oper4 / weist VAR einen Wert zu> *RP.Z VAR / springt zu oper1 falls VAR = zero>> In C würde man hier eine function definieren, welche> oper3/4 ausführt und den Rückgabewert VAR erhält.> Und man würde eine while-Schleife verwenden, welche> oper1/2 ausführt, solange die function Null liefert.>> Die Schleife mit Hineinsprung erfüllt den gleichen> Zweck auf einfachere Weise. Die Hochsprache braucht dann> auch nicht das Konstrukt einer function mit Rückgabewert,
Wenn Du diese Assemblersyntax schon als Hochsprache bezeichnest,
wie sieht bei Dir dann eine maschinennahe Sprache aus? Bits?
Sind Deine Bits eigentlich trinär oder quaternär?
> sondern es reichen einfache Unterprogramme, bei welchen> alle Übergabe-Parameter gleichberechtigt sind.
Oder aber auch in C:
1
for(VAR=0;!VAR;oper1,oper2)
2
{
3
oper3;
4
oper4;
5
}
oder umordnen:
1
for(;;)
2
{
3
oper3;
4
oper4;
5
if(VAR)
6
break;
7
oper1;
8
oper2;
9
}
oder identisch zu Deinem Kram mit goto ...
Ich weiß, es ist müßig, Dir daß zu erzählen, aber da Du so nett gefragt
hast ...
Viele Grüße
8Bit und n Korn schrieb:> for (VAR = 0; !VAR; oper1, oper2)> {> oper3;> oper4;> }
Ist das überhaupt dasselbe wie bei mir?
Ich meine, die for-Schleife macht das:
VAR = 0
Test !VAR ==> Abbruch
oper3
oper4
oper1
oper2
Test !VAR ==> Abbruch
oper3
...
Das ist etwas anderes als bei mir:
oper3
oper4
Test !VAR ==> Abbruch
oper1
oper2
oper3
oper4
Test !VAR ==> Abbruch
oper1
...
Josef G. schrieb:> dasselbe wie bei mirJosef G. schrieb:> etwas anderes als bei mir
Wen interessiert das?
Jeder mit ein paar mehr Latten am Zaun hätte diesen Katastrophentread
längst dichtgemacht!
Josef G. schrieb:> Bei meiner Lösung> sieht man halt unmittelbar, was ausgeführt wird.
Nee. Das ist ja das Problem: Bei deiner Lösung sieht niemand außer dir
irgendwas unmittelbar. Dein ganzes Projekt ist für den Rest der Welt
völlig sinnfrei.
Ach... so ganz sinnfrei ist das Projekt nun auch wieder nicht.
Ist doch ein geiler Thread - So als unterhaltende Entspannung
zwischendurch oder wenn man sich eh nicht mehr konzentrieren kann.
Und als Studentenübung für Kryptoanalytiker ist die Doku durchaus
geeignet.
Josef G. schrieb:> 8Bit und n Korn schrieb:>> for (VAR = 0; !VAR; oper1, oper2)>> {>> oper3;>> oper4;>> }>> Ist das überhaupt dasselbe wie bei mir?
Hubsdi, da hast Du natürlich völlig recht.
Ich bessere nach:
1
for(oper3,oper4;!VAR;oper3,oper4)
2
{
3
oper1;
4
oper2;
5
}
Allerdings auch nicht wirklich schön ...
ich präferiere die while Version.
Hast Du eigentlich schon einen TCP/IP Stack für Deine CPU?
Viele Grüße und Prost
Josef G. schrieb:> Zur Schleife mit Hineinsprung und anderen Aspekten der Hochsprache:> Beitrag "Gibt es eine Programmiersprache mit diesem Schleifentyp?"
Das wollte gar keiner wissen.
Josef G. schrieb:> wird vielleicht auch einer eine ernsthafte> Anwendung dafür finden. Ich selber weiß derzeit keine.
Die wär viel eher interessant.
Diese Äußerung stammt noch vom Juni 2013.
Ich nehme an, der Erfinder hat nun wenigstens selbst eine ernsthafte
Anwendung !!!???
Angeregt durch diesen Thread
Beitrag "Conways Game of Live zu langsam auf Z80"
habe ich Conway's Game of Life für meinen Rechner programmiert.
Das Spielfeld hat Torus-Topologie und 128*128 Zellen.
Jede Iteration dauert 1 Sekunde. Das Startbild kann ausgewählt
werden, die bisher zur Verfügung stehenden Startbilder sind noch
vorläufig. Als Entwicklungs-Regel gibt es bisher nur die bekannte
Standard-Regel. Die Auswertung der Regel erfolgt mittels einer
Tabelle, für andere Regeln wäre nur diese Tabelle zu ändern.
Siehe Seite Hawa meiner Website.
Hier noch der Wikipedia-Artikel zum Thema:
http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens
peter schrieb:> Hast du das mit deiner Sprache
Nein. Das Programm ist unmittelbar in Maschinencode geschrieben
und Teil der Software der Test-Steckkarte in Steckplatz 1.
Josef G. schrieb:> Das Programm ist unmittelbar in Maschinencode geschrieben> Jede Iteration dauert 1 Sekunde.
Hast du das absichtlich so lansam gemacht?
Selbst auf dem guten alten PET2001 lief das wesentlich schneller.
X. schrieb:> Hast du das absichtlich so lansam gemacht?
Nein, geht nicht schneller.
> Selbst auf dem guten alten PET2001 lief das wesentlich schneller.
Wieviele Zellen hatte das Spielfeld?
Christian J. schrieb:> Hast du mal einen Quelltext?
Den Assembler-Quelltext habe ich leider nur handgeschrieben
auf Papier. Der Code macht Gebrauch davon, wie die Pixel des
Bildschirms ins RAM gemapped sind, und wird deshalb
für eine andere Hardware kaum von Interesse sein.
Habe das Emulations-Programm für Linux-PC geändert. Es kann
nun auch einen Teil der Software der Datei teca ausführen.
Man kann Conway's Game of Life auf einem Linux-PC testen.
Falls jemand daran denkt, das Programm auszuprobieren:
Es muss damit gerechnet werden, dass während der Iteration
die Anzeige flackert, jedenfalls ist das an meinem PC so.
Auf der Seite Emul meiner Website wird das Emulationsprogramm
beschrieben. Nach dem Starten des Emulationsprogramms startet
man Game of Life mit 1.CGL (zur Eingabe des Zeichens 1 die
Tasten 6 1 drücken). Nach Auswahl des Startbildes (0..7) und
der Entwicklungs-Regel (bisher nur 0 verfügbar) startet die
Iteration. Anders als am FPGA-Board ist das Gedrückt-Halten
der Leertaste erforderlich. Die Iteration stoppt nach dem
Loslassen der Taste, wenn alle aufgelaufenen Leerzeichen
abgearbeitet sind. Das Drücken einer beliebigen anderen
Taste beendet das Programm.
Die 8 Startbilder liegen in der Datei teca ab Adresse 0x4000.
Jedes Bild belegt 2 KByte. Wer andere Startbilder testen
möchte, kann sie in die Datei teca kopieren. Das Bitmapping
würde ich hier mitteilen, falls Interesse besteht.
Josef G. schrieb:> PS: Bei Bild 5 interessantes Detail
Sorry, falsche Aussage. Offenbar habe ich das Startbild
versehentlich überschrieben, ich finde es nicht mehr.
Josef G. schrieb:> Es muss damit gerechnet werden, dass während der Iteration> die Anzeige flackert, jedenfalls ist das an meinem PC so.
Das gilt natürlich nur für die Emulation am PC.
Am realen System flackert nichts.
X. schrieb:>> Jede Iteration dauert 1 Sekunde.> Hast du das absichtlich so lansam gemacht?
Inzwischen habe ich eine Lösung mit nur 0.75 Sekunden.
Habe ich aber noch nicht auf der Website. Ich bin noch
am Nachdenken über Änderungen der Startbild-Auswahl.
Der Neue schrieb:> Ich sehe im Bild diesen Pollin TV Decoder.
Hab ich nicht, kenn ich nicht. Muss ein Irrtum sein.
Josef G. schrieb:> Inzwischen habe ich eine Lösung mit nur 0.75 Sekunden.> Habe ich aber noch nicht auf der Website.
Ist jetzt auf meiner Website verfügbar (Datei teca).
Ausserdem gibt es eine neue Version des Emulationsprogramms
mit verbesserter Eingabemöglichkeit für Ziffernfolgen.
Josef G. schrieb:> Ist jetzt auf meiner Website verfügbar (Datei teca).> Ausserdem gibt es eine neue Version des Emulationsprogramms> mit verbesserter Eingabemöglichkeit für Ziffernfolgen.Falk Brunner schrieb:> Das ist ja eine FUNDAMENTALE Neuerung, die dem Projekt sicher zum> Durchbruch verhelfen wird . . . !!!
Furchtbar aufregende Neuerungen ohne Ende, nur der Nutzen bleibt stur
bei Null,Nichts. Tipp: Mal ein anderes Projekt versuchen.
Marius schrieb:> der Erfinder hat nun wenigstens selbst eine ernsthafte> Anwendung:Josef G. schrieb:> habe ich Conway's Game of Life für meinen Rechner programmiert
Da sage noch einer es gäbe keine ernsthafte Anwendung :-)))
Bei Startbild 0..3 hat jetzt das Spielfeld nur noch 64*64 Zellen.
Jede Iteration dauert nur noch 0.27 Sekunden. Bei Startbild 4..7
gilt wie bisher 128*128 Zellen / 0.75 Sekunden.
Peter schrieb im Beitrag #3959749:
> Bei mir braucht das FPGA Board ungefähr 0,35 ns pro Berechnung
Wie hast du das gemessen? Ich habe es so gemacht:
60 Sekunden laufenlassen und aus dem Zählerstand die Anzahl
der Iterationen ablesen. 60 Sekunden durch diese Zahl dividieren.
> Reicht das für genügend Iterationen bevor das Bild ruckelt?
Die Frage verstehe ich nicht.
Der Video-Generator liest die aktive Seite des Video-RAM aus.
Die CPU erzeugt das nächste Bild in der inaktiven Seite des
Video-RAM. Wenn das Bild fertig ist, schaltet die CPU die
Video-Ausgabe um. Die vorher inaktive Seite wird jetzt zur
aktiven Seite. Der Video-Generator übernimmt diese Umschaltung
verzögert während der Austast-Lücke zwischen zwei Bildern.
Die CPU beginnt mit dem Aufbau des nächsten Bildes in der jetzt
inaktiv gewordenen Seite des Video-RAM erst eine Sechzigstel
Sekunde, nachdem sie die Video-Ausgabe umgeschaltet hat.
Spätestens ab diesem Zeitpunkt liest der Video-Generator
nicht mehr aus der inaktiv gewordenen Seite.
Hier ist ein ziemlich interessanter Artikel von 1982 über die "Erfindung
des Diamanten" durch das De Beers-Kartell:
http://www.theatlantic.com/magazine/archive/1982/02/have-you-ever-tried-to-sell-a-diamond/304575/
Es ist schon ziemlich unglaublich, wie sich Märkte durch Werbung
manipulieren und "schaffen" lassen. In den Köpfen der meisten Menschen
von Heute ist das ja eher eine neue Entwicklung, aber De Beers hat es in
der 1930ern schon sehr effektiv praktiziert.
Abgesehen davon möchte ich anmerken, dass es generell ziemlich schwierig
ist, Zeiten von weniger als 1 ns auf einem FPGA zu messen. Ohne weitere
Tricks, würde man dafür Taktfrequenzen von über einem GHz benötigen. Das
erscheint auf einem Spartan 3 doch sehr unwahrscheinlich.
Es ist also davon auszugehen, dass Peter (Gast), uns hier einen Bären
aufbinden will.
Eine andere Frage ist natürlich, welche Geschwindigkeit man von einem
Game-Of-Life zellulären Automaten erwarten würde.
Josef G. erwähnt, dass seine Implementierung für ein 64x64 Feld mit 4096
Elementen 0.27s (270 000 µs) Sekunden für die Berechnung benötigt.
Das sind 270 000 / 4096 = 65.9 µs pro Element.
Für die Bewertung der Programmeffizienz wäre die Anzahl der benötigten
Taktzyklen pro Element die ausschlaggebende größe. Leider kenne ich die
Taktfrequenz des Bomerenzcomputers nicht. Dem Ansatz, diese Information
aus der Dokumentation zu entnehmen, stehen in diesem Thread schon
häufiger dargestellte Hürden gegenüber. Aus diesem Grund will ich zur
Vereinfachung einmal annehmen, dass der Prozessor ca. 1 MIPS erreicht.
Auf Basis dieser Annahme kommt man zu dem Schluss, das die Berechnung
eines Elements in der Implementation von Josef G. ca 65 Befehle
benötigt.
Wie viele Befehle benötigt eine Idealisierte Implementierung? Der Regeln
des Zellulären Automatens lassen sich Wikipedia entnehmen:
https://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens
Auf den ersten Blick lässt sich dieses durch einen population Count der
acht benachbarten Zellen und zwei Vergleiche erledigen.
Je nach Art der verfügbaren Adressmodes des Prozessors sind dieses
zwischen 8 und 24 Befehle. Die zwei Vergleiche benötigen 4-6 weitere
Befehle. Zum Darstellen des Ergebnisses und Schleifenzähler würde ich
Pauschal 10 weitere Befehle annehmen.
Damit komme ich auf 22-40 Befehle. Dieses lässt also annehmen, dass sich
gegenüber einer Implementation mit 65 Befehlen noch einiges Optimieren
lässt.
Hier übrigens eine Seite mit GOL Implementation in vielen
unterschiedlichen Sprachen:
http://rosettacode.org/wiki/Conway%27s_Game_of_Life
Man scheint sich Mühe gegeben zu haben, die Varianten möglichst
ineffizient und schwer verständlich darzustellen. Wie z.B. an der
C-Implementiert ersichtlich.
Zelluläre Automaten sind etwas tolles. Wer erinnert sich nicht an
Stephen Wolframs Buch "A New Kind of Science" vor 10 Jahren? Im Vorfeld
wurde erzählt, er könne an Hand bestimmer zellulärer Automaten die
Enstehung intelligenten Lebens nachweisen. Wie wir jetzt wissen, ist ihm
dieses aber nicht gelungen. Stephen Wolfram ist übrigens der
Entwickler/Erfinder der Mathematiksoftware "Mathematika" und hat mit 20
Jahren am Caltech promoviert.
Eine interessante, neuere, Entwicklung im Bereich der Automaten ist
Microns Automata-Prozessor.
http://www.micron.com/~/media/documents/products/other-documents/automata_processing_technical_paper.pdf?la=en
Hierbei handelt es sich aber wiederum um etwas völlig Anderes. Micron
hat einen Prozessor entwickelt, der nichtdeterministische finite
Automaten evaluieren kann. Hiermit lassen sich z.B. sehr komplexe
Pattern matching Probleme lösen.
Spannend ist dieses, weil es sich eigentlich um ein sehr akademisches
Konzept handelt, dass jetzt tatsächlich von einer Firma mit den
entsprechenden Mitteln zur Umsetzung gebracht wird. Natürlich ist dieses
auch den Aufgabenstellung der aktuellen Zeit geschuldet. Denn gerade für
Anwendungen im Bereich der Homeland Security ist es notwendig, Muster in
sehr großen Datenmengen zu erkennen.
Sollte Micron am Aufbau des neuen NSA Datacenter beteiligt sein?
http://www.forbes.com/sites/kashmirhill/2013/10/07/the-nsas-hugely-expensive-utah-data-center-has-major-electrical-problems-and-basically-isnt-working/
Man könnte es sich vorstellen, denn Micron hat eine große
Fertigungsstätte in Lehi, in der diese Prozessoren gefertigt werden
können.
FPGAs sind übrigens auch interessant. Allerdings sind Soft-Cores
inzwischen ein relativ alter Hut. Zu frühen Implementierungen kann man
in Jan Gray Blog Viel nachlesen.
Trillian ist ein Cybernaut schrieb:> Leider kenne ich die Taktfrequenz ... nicht.Josef G. schrieb:> habe ich die Dauer eines Halbzyklus ... auf 320ns verkürzt.> CPU-Befehle dauern 2 oder 4 oder 6 Halbzyklen.
Ist richtig, dass die Information auf meiner Website nicht leicht
zu finden ist. Die Dauer 320ns für einen Halbzyklus steht auf der
Seite Hawa, und man muss erst auf der Seite CPU-doku nachschauen,
was das bedeutet. Vielleicht sollte ich da was ändern.
Sehe ich genauso wie Holm.
Klasse Projekt. Gute Doku.
Wichtig ist aber auch, 2x mal die Woche ein Zeichen im Wikiartikel zu
ändern, oder hier etwas zu posten (wie ich es gerade mache), damit der
Thread gepusht wird. Wir verfolgen das alle mit Spannung.
Josef G. schrieb:> Trillian ist ein Cybernaut schrieb:>> Leider kenne ich die Taktfrequenz ... nicht.>> Josef G. schrieb:>> habe ich die Dauer eines Halbzyklus ... auf 320ns verkürzt.>> CPU-Befehle dauern 2 oder 4 oder 6 Halbzyklen.>> Ist richtig, dass die Information auf meiner Website nicht leicht> zu finden ist. Die Dauer 320ns für einen Halbzyklus steht auf der> Seite Hawa, und man muss erst auf der Seite CPU-doku nachschauen,> was das bedeutet. Vielleicht sollte ich da was ändern.
Das ist alles, was Dir auf meinen konstruktiven und gut recherchierten
Beitrag einfällt? Ich bin enttäuscht!
640ns pro Taktzyklus ist aber nicht sehr schnell. Da muss sich ein 6502
nicht verstecken.
Trillian ist ein Cybernaut schrieb:> Das ist alles, was Dir auf meinen ... Beitrag einfällt?
Der Beitrag hat mich durchaus beeindruckt.
Josef G. schrieb:> Ist richtig, dass die Information auf meiner Website nicht> leicht zu finden ist... Vielleicht sollte ich da was ändern.
Die Information zur Taktfrequenz der CPU ist jetzt hervorgehoben.
-----------------------------------------------------------------
Wegen der Torus-Topologie des Spielfeldes beim Game of Life sind
manchmal interessante Muster schlecht zu erkennen, weil sie auf
gegenüberliegende Ränder verteilt sind. Deshalb habe ich jetzt
eine Möglichkeit zum vertikalen und horizontalen Scrollen des
Bildes mittels Cursortasten programmiert. Siehe Seite Hawa.
Zur geänderten Bedienung bei Verwendung des
Emulationsprogramms am PC siehe Seite Emul.
Josef G. schrieb:> peter schrieb:>> Hast du das mit deiner Sprache>> Nein. Das Programm ist unmittelbar in Maschinencode geschrieben> und Teil der Software der Test-Steckkarte in Steckplatz 1.
Wieso nicht?
Das wär doch mal eine Gelegenheit gewesen, die Benutzbarkeit deiner
Sprache (den größten Kritikpunkt deiner Gegner hier) zu demonstrieren.
Stattdessen giest du das ganze wieder in die Firmware.
Masl schrieb:> den größten Kritikpunkt deiner Gegner hier
Wenn das schon der größhte Kritikpunkt wär dann wär das ganze Projekt
bereits als Erfolg zu werten.
Masl schrieb:> Das wär doch mal eine Gelegenheit gewesen, die Benutzbarkeit deiner> Sprache (den größten Kritikpunkt deiner Gegner hier) zu demonstrieren.> Stattdessen giest du das ganze wieder in die Firmware.
Eben.
So wie ich das sehe gibt es keine richtige Beispielapplikation, die in
deiner Sprache verfasst wurde.
Wenn sogar der Erfinder der Sprache es einfacher findet, Assembler aufn
Papier zu schreiben und direkt Maschinencode einzuhacken, dann spricht
das nicht unbedingt für die Sprache.
Oder welchen Grund hatte diese Entscheidung?
part1.png und part2.png zeigen den per 1.DEMO abrufbaren Quelltext
des Beispiel-Programms, darunter steht nochmal der Text im Ganzen.
run.png zeigt den Ablauf beim Compilieren und Testen.
Kondensator-Paul schrieb:> direkt Maschinencode einzuhacken, dann spricht das nicht unbedingt> für die Sprache. Oder welchen Grund hatte diese Entscheidung?
Die Sprache ist nicht dafür gemacht, Assembler-Programmierung
oder direkte Hexcode-Programmierung zu ersetzen. Der vom
Compiler erzeugte Code ist kein Maschinencode.
An der Stelle von zB. 1INPUTN /d1 AA. steht im Compilat die Nummer
der Steckkarte, die Nummer des Kommandos INPUTN auf der Steckkarte,
das Format der übergebenen Parameter (1 const-Byte, 1 Variable),
das const-Byte selber und der Zeiger auf die Variable.
Bei Ausführung des Programms durch den Interpreter des Compilats
dauert allein das Aufrufen des Kommandos INPUTN 40 Vollzyklen.
Hinzu kommt die Ausführungszeit des auf der Steckkarte
befindlichen Maschinencodes des Kommandos.
Die Sprache ist dazu konzipiert, solche Steckkarten-Kommandos
aufzurufen. Dazu stellt sie Variablen und Kontrollstrukturen bereit.
Wollte man etwa Game of Life in dieser Spache programmieren, müsste
eine Steckkarte Kommandos wie zB. Setzen von Bildpunkten anbieten.
Und alles wäre furchtbar langsam.
Ausserdem ist die Handhabung von Arrays noch nicht zufriedenstellend
gelöst. Die Test-Steckkarte habe ich ursprünglich nur dazu erstellt,
die Software der Haupt-Platine testen zu können, insbesondere die
Einbindung von Steckkarten durch diese Software der Hauptplatine.
Die Test-Steckkarte ist nicht als endgültige Lösung gedacht.
> So wie ich das sehe gibt es keine richtige Beispielapplikation,
Dazu wäre eine umfangreiche Steckkarten-Sortware erforderlich.
Ich hatte mal gehofft, dass andere Leute Steckkarten-Software
entwickeln und anbieten. Alle dazu erforderlichen Informationen
über Schnittstellen sind auf meiner Website verfügbar.
In der Hochsprache gibt es neue Operationen, welche die
Berechnung von komplexen Sprungbedingungen erleichtern.
Schaut mal auf die Seite SYS-doku meiner Website.
Josef G. schrieb:> In der Hochsprache gibt es neue Operationen, welche die> Berechnung von komplexen Sprungbedingungen erleichtern.> Schaut mal auf die Seite SYS-doku meiner Website.
In der heutigen Zeit ist Konsequenz leider ein seltener Charakterzug,
vor allem bei Politikern und Managern.
Zumindest Josef G. kann man dies aber nicht vorwerfen.
Konsequenz heißt, auch Holzwege zu Ende zu gehen.
Masl schrieb:> Holzwege zu Ende zu gehen
Holzwege, die in erster Linie Spaß machen sind keine Holzwege, sondern
gehören just gerade zum Sinn des Lebens. Bestes Holz ist allenfalls
Josefs Erwartung von der Zweckmäßigkeit und den großen
Einsatzmöglichkeiten seiner Technik-Machbarkeitsstudie für andere.
Hm, interessantes Projekt, bin gerade über den Thread gestolpert. Im
Gegensatz zu all den du-bist-Scheisse-Sagern muss ich doch zugeben, dass
das Ganze ziemlich faszinierend ist, auch wenn ich den praktischen
Nutzen nicht ganz sehe. Aber ich finde es schön, wenn sich jemand so
etwas erschafft und sich tiefgreifend mit einem Thema beschäftigen kann,
und selbstgebaut ist sowieso zehnmal geiler. (Na gut, die Idee mit der
Ablösung des Dezimalsystem durch Hex ist dann vielleicht doch etwas
lustig^^). Aber wie viele Elektronikbasteleien sind 100% nützlich und
bringen die Menschheit weiter? (und sind nicht nur deshalb geil, weil
man sie selbst gebastelt hat?
...
Lass dich nicht aufhalten ;)
Josef G. schrieb:> Realisierungen des Systems gab es bisher auf folgenden Boards:> Spartan-3A Starter, Spartan-3E Starter, Nexys2, Altera DE1>> Es gibt nun auch eine Realisierung auf dem Altera DE0 Board.
Die Konfiguration für das Spartan-3A Starter Kit
funktioniert auch auf dem Spartan-3AN Starter Kit.
Beitrag "Re: xilinx xucks!"Andreas S. schrieb:> Du hast eine eher seltene Tastatur mit Power/Sleep/Wakeup-Tasten> verwendet. Ich konnte ... nirgendwo auftreiben und habe auf> meiner Tastatur keine Power/Sleep/Wakeup-Tasten. Watt nu?
Die Tastatur-Belegung wurde geändert. Die Tasten
Power/Sleep/WakeUp werden nicht mehr verwendet.
Josef G. schrieb:> In dem genannten Thread gibt es neue Beiträge.
Wie schauts mal mit neuen Projekten Deinerseits aus? Wird langsam
langweilig. Mußt Du diesen Thread hier nun schon mit Verweisen auf
andere oben halten ???
Felix schrieb:> Na gut, die Idee mit der Ablösung des Dezimalsystem> durch Hex ist dann vielleicht doch etwas lustig^^
Sorry wg. OT, aber kann's mir nicht verkneifen, da ich
gerade diesen aktuell gesperrten Thread gesehen habe:
Beitrag "Re: Algorithmus Pi-Berechnung">> http://de.wikipedia.org/wiki/Bailey-Borwein-Plouffe-Formel> Ganz nett, hatte ich mal auf nem C64 um π auf 1024 Binärstellen zu> bestimmen. Allerdings bekommt man damit nur die Stellen im 16er-System,> die mühsam ins Dezimalsystem umgerechnet weren müssen.
Josef G. schrieb:> Sorry wg. OT, aber kann's mir nicht verkneifen, da ich> gerade diesen aktuell gesperrten Thread gesehen habe:
Und wieder ein weiterer peinlicher Beitrag um den todgeweihten Thread
hier ein erneutes Mal zu pushen.
Gerade gefunden:
Beitrag "Re: Z80 Einplatinencomputer für Lernzwecke">> Speicherbanking muß nicht zwangsläufig 64 K sein> Das kann es garnicht, man braucht ja einen Speicherbereich, der> in beiden Bänken gültig ist für das gemeinsame Programm - z.B.> das Programm, das zwischen den Bänken umschaltet. Nur so kann> man Unterprogramme in verschiedenen Bänken aufrufen und so> Programme mit mehr als 64k realisieren.
Tja, meine CPU kann das, von einer 64K-Seite in eine
andere springen, ohne gemeinsamen Speicherbereich.
Josef G. schrieb:> Tja, meine CPU kann das, von einer 64K-Seite in eine> andere springen, ohne gemeinsamen Speicherbereich.
Tja, schade, dass Deine CPU überhaupt nicht praxistauglich und damit nur
für den Müll ist.
Josef G. schrieb:> Inwiefern ist sie nicht praxistauglich?> Sehe ich ganz und gar nicht so.
Dann nenne bitte die praxisrelevanten Anwendungen, die für Deine CPU
existieren - und die Werkzeuge für den Programmierer. Welche
Standard-Hochsprachen kann man nutzen?
Josef G. schrieb:> Inwiefern ist sie nicht praxistauglich?
Praxistauglich ist etwas subjektiv. Für dich ist mag sie praxistauglich
sein, aber andere Leute sehen das anders.
Frank M. schrieb:> Welche Standard-Hochsprachen kann man nutzen?
Dieses Thema hatten wir in einem anderen Thread:
Beitrag "Gibt es eine Programmiersprache mit diesem Schleifentyp?"
Auch da gingen die Ansichten deutlich auseinander. Für das, was ihm hoch
erscheint, müssen sich andere ziemlich tief bücken. Und für ihn ist das
bestimmt die Standardsprache seines Rechners.
Josef G. schrieb:> Inwiefern ist sie nicht praxistauglich?> Sehe ich ganz und gar nicht so.
Du schreibst ja deine eigenen Anwendungen nicht mit deiner Sprache.
Vor kurzem hast du doch irgendeine Beispielapplikation vorgestellt. Was
war das noch? Game of Life? Hab jetzt nicht gesucht.
Das Teil ist auf einer deiner Steckkarten implementiert, allerdings in
Maschinencode.
Es wird schon einen Grund haben, wenn der Entwickler lieber rohen
Maschinencode hakt anstatt seine eigene Sprache zu benutzen.
Erklärung kam damals imho keine von dir.
A. K. schrieb:> Und für ihn ist das> bestimmt die Standardsprache seines Rechners.
Das ist mir ja klar. Aber "Standard" sieht anders aus. ;-)
Was soll ich mit einer Programmiersprache, in der man keine Programme
schreiben kann? Mit einer Schleife mit "Hineinsprung" ist es nicht
getan. Ausserdem muss man bei dieser "Programmiersprache" Masochist
sein, um sie sich anzutun - und zwar einer von der harten Sorte.
Solange Josef keine ernstzunehmenden Anwendungen vorweisen kann, ist
sein "Rechner" für die Katz. Also nicht praxistauglich.
@ A. K. (prx)
>Auch da gingen die Ansichten deutlich auseinander. Für das, was ihm hoch>erscheint, müssen sich andere ziemlich tief bücken.
HAHAHA ;-)
YMMD!
Gab's da nicht mal ne Firma HochTief?
Benjamin schrieb:> Vor kurzem hast du doch irgendeine Beispielapplikation vorgestellt. Was> war das noch? Game of Life? Hab jetzt nicht gesucht.
Ja, Game of Life habe ich auch in Erinnerung. Aber soweit ich das noch
im Kopf habe, war die Refresh-Rate pro Generation dermaßen tief im
Keller, dass ein Z80 (mit dem Josef jetzt hier seinen Rechner
vergleicht) wesentlich schneller war.
> Erklärung kam damals imho keine von dir.
Wenn Josef keine Antwort weiß, dann gibt er das nicht zu, sondern
schweigt einfach.
Kopf in den Sand...
Frank M. schrieb:> Aber soweit ich das noch> im Kopf habe, war die Refresh-Rate pro Generation dermaßen tief im> Keller, dass ein Z80 (mit dem Josef jetzt hier seinen Rechner> vergleicht) wesentlich schneller war.
Es ist genau umgekehrt.
Beitrag "Re: 8bit-Computing mit FPGA"
Bei weniger Zellen geht es noch schneller.
Beitrag "Re: 8bit-Computing mit FPGA"Beitrag "Re: 8bit-Computing mit FPGA"Frank M. schrieb:> Dann nenne bitte die praxisrelevanten Anwendungen,> die für Deine CPU existieren
Abgesehen von Conway's Game of Life und dem in der
Hochsprache geschriebenen Demo-Arithmetikprogramm
Beitrag "Re: 8bit-Computing mit FPGA"
gibt es bisher keine. Aber inwiefern
folgt daraus, dass die CPU nichts taugt?
> und die Werkzeuge für den Programmierer.> Welche Standard-Hochsprachen kann man nutzen?
Die CPU ist so gemacht, dass sie sehr leicht
in Assembler zu programmieren ist.
Frank M. schrieb:> Solange Josef keine ernstzunehmenden Anwendungen> vorweisen kann, ist sein "Rechner" für die Katz.
Mag sein. Aber gerade deshalb werbe ich ja hier dafür,
dass Hobbyisten mit dem Rechner experimentieren, damit
vielleicht einer eine ernsthafte Anwendung findet.
... vielleicht findet
der Josef nun nach jahrelangem Mißerfolg endlich seinen Realitätssinn?
Ok, wir leben in einer werbebetonten Zeit.
Aber Werbung allein kann doch keine Zweckmäßigkeit erzwingen!
Ernsthafte Anwendung ausgeschlossen by Design.
Josef G. schrieb:> Es ist genau umgekehrt.> Beitrag "Re: 8bit-Computing mit FPGA"
Unsinn, 1 Sek. für 128x128 ist absolut lachhaft. Das hab ich 1982 mit
dem ZX-Spectrum (Z80 bei 3,5MHz) bei 256x192 in Farbe(!) besser
hinbekommen.
> Bei weniger Zellen geht es noch schneller.
Ist ja logisch. Sonst hast Du nichts zu bieten?
> Abgesehen von Conway's Game of Life und dem in der> Hochsprache geschriebenen Demo-Arithmetikprogramm> Beitrag "Re: 8bit-Computing mit FPGA"> gibt es bisher keine.
Du hast also NICHTS zu bieten.
Conways Game of Life habe ich damals in den 70ern schon auf einem TI-59
Taschenrechner programmiert. Jede Generation wurde dann ausgedruckt,
weil es sonst ausser der 13-stelligen 7-Segment-Anzeige kein anderes
Gerät gab. Das gab ganz lange Papierstreifen...
Deine Sprache, die wie Assembler aussieht, ist auch keine Hochsprache.
Eine Hochsprache kann mehr als nur Assembler. Eine Schleife mit
Hineinsprung macht auch noch lange keine Hochsprache aus.
> Aber inwiefern folgt daraus, dass die CPU nichts taugt?
Wenn sie etwas taugen würde, gäbe es Anwendungen dafür. Entweder von Dir
oder den begeisterten Anhängern - welche es bis heute NICHT gibt. Warum
wohl? Weil Deine CPU nichts taugt. In den 60er Jahren hättest Du
vielleicht jemanden begeistern können. Aber das ist mittlerweile 55
Jahre her! Das war damals STEINZEIT.
Du willst uns wirklich einen Neandertalerknochen als modernstes
Essbesteck verkaufen? Sag mal, merkst Du eigentlich noch was?
> Die CPU ist so gemacht, dass sie sehr leicht> in Assembler zu programmieren ist.
Die Sprache Deines Assemblers ist absolut kryptisch und unverständlich.
Ich kene KEINEN Assembler der kryptischer wäre. Und ich kenne eine Menge
davon. Und Du verkaufst uns das als "sehr leicht ... zu programmieren"?
In welcher Parallel-Welt lebst Du eigentlich?
> Mag sein. Aber gerade deshalb werbe ich ja hier dafür,> dass Hobbyisten mit dem Rechner experimentieren, damit> vielleicht einer eine ernsthafte Anwendung findet.
Ja, schon seit Jahren. Meinst Du, dass plötzliche Hunderte von Leuten
vom Blitz getroffen werden und plötzlich ganz geil auf Deinen Rechner
werden?
Sorry, Josef. Begrabe das Ding. Das braucht kein Mensch. Noch nichtmals
Du.
Frank M. schrieb:> Unsinn, 1 Sek. für 128x128 ist absolut lachhaft. Das hab ich 1982 mit> dem ZX-Spectrum (Z80 bei 3,5MHz) bei 256x192 in Farbe(!) besser> hinbekommen.
Meine Aussage "Es ist genau umgekehrt" bezog sich auf den
Vergleich mit der Lösung in dem von mir verlinkten Thread.
Nach neuestem Stand sind es nur 0.75 Sekunden
Beitrag "Re: 8bit-Computing mit FPGA"
Dabei wird jede der 128*128 Zellen mit 2*2 Pixel dargestellt.
Mit 1 Pixel pro Zelle ginge es vermutlich schneller.
Die Angabe 256*192 bei deiner Lösung: Ist das die Zahl der
Zellen, oder lediglich die Zahl der Pixel, wobei jede Zelle
mehrere Pixel belegt? Wie lange dauert eine Iteration?
Josef G. schrieb:> Nach neuestem Stand sind es nur 0.75 Sekunden
Immer noch zu lahm.
> Die Angabe 256*192 bei deiner Lösung: Ist das die Zahl der> Zellen, oder lediglich die Zahl der Pixel, wobei jede Zelle> mehrere Pixel belegt?
1 Pixel = 1 Zelle.
> Wie lange dauert eine Iteration?
Es muss heissen "dauerte". Das war 1982, meinst Du, ich spiele noch mit
solchen Leichen rum?
Dein "Rechner" hingegen ist 50 Jahre hinter dem aktuellen Stand und ist
ineffizienter als ein Z80 von vor über 30 Jahren. Merkst Du noch irgend
etwas? Hör doch auf, hier 50 Jahre alte Technik anzubieten. Und für wen?
Für Retro-Fans? Die bauen lieber einen Z80 nach, der ist wenigstens alt.
Aber um auf Deine Frage zurückzukommen:
Es war weit weniger als eine halbe Sekunde - bei 3,5MHz. Da bist Du noch
meilenweit entfernt. Mit wieviel MHz läuft denn Dein "Rechner"?
Klasse, wie Du Fragen immer wieder ignorierst und Dir immer das
rauspickst, wo Du (fälschlicherweise) meinst, einfach genialisch zu
sein....
Frank M. schrieb:> Mit wieviel MHz läuft denn Dein "Rechner"?
Ein Vollzyklus dauert 640 ns.
CPU-Befehle dauern 1 oder 2 oder 3 Vollzyklen.
> wie Du Fragen immer wieder ignorierst
Welche sachliche Frage habe ich ignoriert?
Frank M. schrieb:> Das hab ich 1982 mit dem ZX-Spectrum (Z80 bei 3,5MHz)> bei 256x192 in Farbe(!) besser hinbekommen.Frank M. schrieb:> Josef G. schrieb:
...
>> Die Angabe 256*192 bei deiner Lösung: Ist das die Zahl der>> Zellen, oder lediglich die Zahl der Pixel, wobei jede Zelle>> mehrere Pixel belegt?>> 1 Pixel = 1 Zelle.
Aus dem Wikipedia-Artikel zum ZX-Spectrum:
http://de.wikipedia.org/wiki/Sinclair_ZX_Spectrum> Im Gegensatz zum ZX81 übernimmt die ULA sämtliche Aufgaben der> Bilddarstellung, so dass der Prozessor damit nicht belastet wird.
Weiss zwar nicht, was das genau bedeutet, aber vielleicht kann
es die hohe Geschwindigkeit deiner Lösung teilweise erklären.
Weiter heisst es in dem Wikipedia-Artikel:
> Die Grafikauflösung beträgt 256 × 192 Bildpunkte (Pixel).> Für die Farbdarstellung werden jeweils 8 × 8 Pixel in Blöcke> zusammengefasst, so dass effektiv nur ein Farbraster von> 32 × 24 Blöcken zur Verfügung steht.
Das steht im Widerspruch zu deiner Aussage.
Eins von beiden ist falsch.
Frank M. schrieb:> Josef G. schrieb:>> Nach neuestem Stand sind es nur 0.75 Sekunden>> Immer noch zu lahm.>> Es muss heissen "dauerte".> Das war 1982, meinst Du, ich spiele noch mit> solchen Leichen rum?> Dein "Rechner" hingegen ist 50 Jahre hinter dem aktuellen Stand> Merkst Du noch irgend> etwas? Hör doch auf, hier 50 Jahre alte Technik anzubieten. Und für wen?> Für Retro-Fans?
Joseph's Rechner lotet mit Hobbymittel die Architektur von 8bit
Prozessoren aus. Das hat es vor 50 Jahren sicher nicht gegeben.
Ich finde es gut sich unvereingenommen mit Computertechnik zu
beschäftigen. Manche wie beispw. der CCC bezeichnen das als Hacker-ethos
( http://en.wikipedia.org/wiki/Hacker_ethic ):
Teilen was man hat, respektvoll zu Mitstreitern und im positiven Sinne
repektlos vor der Technik.
Liegt vielleicht am mittleren Alter, ich mag Retro, ist supergut
Hardware von der Pike auf zu lernen und zu verstehen:
Retrocomputing auf FPGA
Kann man in der Lehre als Beispiel verwenden. Vielleicht hat ja das auch
Anteil an der Preizuerkennung.
Beleidigende Kommentare wie die da oben gehören sicher nicht zum
Hacker-ethos - also lass das bitte.
MfG,
Josef hat einen eigenen Rechner entworfen. Sehr viel Arbeit
reingesteckt. Er stellt das Konzept hier und auf seiner Webseite allen
zur Verfügung.
Sehr toll, mein Respekt vor der Arbeit und sehr löblich, dass er es
offen legt.
Aber er hat die Dokumentation auf seiner Webseite sehr sehr schlecht
gestaltet. Anstatt vom Groben in's Detail zu gehen wird man sofort mit
Hieroglyphen erschlagen. Mein erster Eindruck war: Man will nicht zeigen
wie es geht, sondern beeindrucken, wie komplex das doch ist.
Dann ging es aber los, dass die Beiträge zum Thema immer wieder
künstlich gepusht werden. Genau wie der Wiki-Artikel. Mir scheint, er
will, dass man jeden Tag über sein Projekt redet. Weil es ja das
wichtigste von allen hier ist.
Und dann fing es an, mich immer mehr zu nerven ....
Softworker schrieb:> Dann ging es aber los, dass die Beiträge zum Thema immer wieder> künstlich gepusht werden. Genau wie der Wiki-Artikel. Mir scheint, er> will, dass man jeden Tag über sein Projekt redet. Weil es ja das> wichtigste von allen hier ist.>> Und dann fing es an, mich immer mehr zu nerven ....
Das ist menschlich aber kein Grund Umgangsformen zu vergessen.
Produktwerbung ist penetrant, Wahlwerbung ist ebenfall penetrant und
geht manchen richtig an die Eier. Nachbars Geprotze mit dem Porsche, der
laptop des Kollegen, Loddars Frauenverschleiß ...
Tägliches Gepushe trifft auch nicht zu, IMHO läuft das projekt seit 4
Jahren und aller paar Monate kommt ein Update. Das ist bei anderen
Hobby-projekten auch nicht anders.
Wer weis das das seinem Puls nicht gut tut soll sich das auch nicht
antun. Das schont die Gesundheit aller Beteiligten.
MfG,
Fpga Kuechle schrieb:> Beleidigende Kommentare wie die da oben gehören sicher nicht zum> Hacker-ethos - also lass das bitte.
Heute hält sich jeder für einen Hacker, der weiß dass man den Lötkolben
nicht vorne anfasst. Du musst nicht glauben, einen irgendwie gearteten
Ethos vertreten zu müssen, also lass das bitte.
Zum Retro-Computing gibt's genügend Projekte, die vernünftig
dokumentiert sind. Insofern ist nicht Retro-Computing an sich zu
kritisieren, sondern die äußerst mangelhaften und kryptischen Sourcen,
welche dem erklärten Ziel des TS, etwas für eine breite Schicht machen
zu wollen, völlig entgegenstehen.
Des TSs Penetranz sein verkorkstes Projekt der ungeneigten Leserschaft
aufzudrängen und seine eigenen Beiträge mit Banalitäten und
weitestgehend sinnfreien Links zu pushen, ist doch das, was ihm negative
Reaktionen beschert.
Würde das Projekt dem Credo seines Schöpfers entsprechen, dann würde es
die Community annehmen und dann entstünde von selbst die vom TS
gewünschte Diskussion. Dass dem nicht so ist und der TS selbst pusht,
zeigt doch was das für 'ne Krücke ist.
Softworker schrieb:> Mir scheint, er will, dass man jeden Tag über sein Projekt redet.
Natürlich, sein Projekt hat ihn immense Anstrengungen und Teile seines
Lebens gekostet, das wurde zu seinem Leben. Der hält mit Zähnen und
Klauen daran fest, egal wie die Wirklichkeit aussieht.
MWS schrieb:> Des TSs Penetranz sein verkorkstes Projekt der ungeneigten Leserschaft> aufzudrängen und seine eigenen Beiträge mit Banalitäten und> weitestgehend sinnfreien Links zu pushen, ist doch das, was ihm negative> Reaktionen beschert.
Nö ich seh hier eher die Lust am Beleidigen und Erniedrigen als Ursache
mancher Kommantare hier.
Auch die Auffassung zu "Penetranz", "Banalität" und "sinnfreien Links"
teile ich mit Bezug auf Joseph's Projekt nicht. Bei "ungeneigten
Leserschaft" neige ich aber stark zu Zustimmung. Was aber das Problem
der Leserschaft ist und nicht Josephs.
MfG,
Fpga Kuechle schrieb:> Was aber das Problem der Leserschaft ist und nicht Josephs
Doch, das ist sein Problem, denn er erzeugt diese Reaktion.
> Nö ich seh hier eher die Lust am Beleidigen und Erniedrigen als Ursache> mancher Kommantare hier.
Irgendwann geht's jedem auf den Zeiger, dann wird der Ton schärfer.
Frank M. schrieb:> Josef G. schrieb:
...
>> Die CPU ist so gemacht, dass sie sehr leicht>> in Assembler zu programmieren ist.>> Die Sprache Deines Assemblers ist absolut kryptisch und unverständlich.> Ich kene KEINEN Assembler der kryptischer wäre. Und ich kenne eine Menge> davon. Und Du verkaufst uns das als "sehr leicht ... zu programmieren"?
Mit "sehr leicht in Assembler zu programmiern" meine ich zB.:
Es gibt keine Flags ausser dem Carry-Flag. Der Programmierer muss
nicht ständig nachschauen, wie welche Flags beeinflusst werden.
Die Adressregister X,Y,Z sind vollständig gleichberechtigt.
Es gibt bei den Daten ausser "immediate" nur eine einzige
Adressierungsart: Ein Adressregister zeigt auf die Speicherstelle.
Auch wenn ich zu 100% sicher bin, dass es sinnlos ist, hier mal zum
Vergleich, wie eine GESCHEITE Darstellung so eines Projekts aussehen
kann, mit der ein normaler Mensch was anfangen kann! Und dort gibt es
soger richtig viele, GUTE Demos!
https://www.mikrocontroller.net/articles/16/32Bit_Computer/Konsole
SO wollen wir das sehen!
Keule schrieb:> Gab ja schon lange nichts Neues mehr. Jetzt ist das sinnlose> Projekt wohl doch eingeschlafen?
Weck mal hier keine schlafenden Hunde!
"Sinn" war ja gerade diesen sinnlosen Thread am Leben zu erhalten.
Kammon schrieb:> Zuverlässig wie ein Hardware-Watchdog hält Josef diesen Thread am Leben.
Und das ist auch gut so.
Gäbe es es hier die Rubrik 'Psychologie' so wäre dieser Thread da
natürlich bestens aufgehoben.
Über Sinn und Unsinn des Projektes und der begleitenden
Grundüberzeugungen zu diskutieren ist natürlich nur insofern nützlich
als das man die Reaktion des Testsubjektes auf äußere Einflussnahme
beobachten kann.
Ich denke das hier passt ganz gut zum Thema:
http://www.spiegel.de/einestages/die-drei-jesusse-von-ypsilanti-a-947782.html
Michael K. schrieb:> so wäre dieser Thread da natürlich bestens aufgehoben.> Über Sinn und Unsinn des Projektes und der begleitenden> Grundüberzeugungen zu diskutieren ist natürlich nur> insofern nützlich
Eine Aussage, welche "natürlich" zutrifft, hat
den Vorteil, dass man sie nicht begründen muss.
Josef G. schrieb:> Eine Aussage, welche "natürlich" zutrifft, hat> den Vorteil, dass man sie nicht begründen muss.
Ja doch Josef, manches kommentierst Du durchaus plausibel.
Nur nicht wieder in die alten Muster a'la "Mein 8-Bit Computing mit FPGA
hat praktischen Nutzwert" zurückfallen ;-)
Michael K. schrieb:> Und das ist auch gut so.> Gäbe es es hier die Rubrik 'Psychologie' so wäre dieser Thread da> natürlich bestens aufgehoben.
Insbesondere auch deshalb, weil die meisten anderen hier weder ähnliches
anzubieten haben noch bereit sind, es auszustellen. Dies hier ist eine
Bastelei, die sicher aus der Reihe tanzt und unter modernen
Gesichtspunkten unnötig ist, aber das sind LED-Cubes, USB-Kaffewärmer
und Drohnenortungsgeräte auch.
T. W. schrieb:> unter modernen> Gesichtspunkten unnötig ist, aber das sind LED-Cubes, USB-Kaffewärmer> und Drohnenortungsgeräte auch
Ob der Josef mit dieser Einordnung einverstanden ist?
Susi schrieb:> T. W. schrieb:> Ob der Josef mit dieser Einordnung einverstanden ist?
Na jedenfalls ist "Susi" mit dem ersten Teil der Einordnung:
T. W. schrieb:> Insbesondere auch deshalb, weil die meisten anderen hier weder ähnliches> anzubieten haben noch bereit sind, es auszustellen.
in der richtige Schublade gelandet.
MfG,
Fpga K. schrieb:> Susi schrieb:>> T. W. schrieb:>> Ob der Josef mit dieser Einordnung einverstanden ist?>> Na jedenfalls ist "Susi" mit dem ersten Teil der Einordnung:>> T. W. schrieb:>> Insbesondere auch deshalb, weil die meisten anderen hier weder ähnliches>> anzubieten haben noch bereit sind, es auszustellen.>> in der richtige Schublade gelandet.>> MfG,
Ob 'äunliches' vielleicht auch wegen erkannter Nutzlosigkeit nicht
angeboten, nicht ausgestellt wird ?
Josef G. schrieb:> Eine Aussage, welche "natürlich" zutrifft, hat> den Vorteil, dass man sie nicht begründen muss.
Okay, dann mit Begründung.
Wie in dem von mir verlinkten Artkel haben wir es hier mit
Glaubensbekundungen von Menschen zu tun die allem Anschein nach garnicht
in der Lage sind ihre Überzeugung zu ändern.
Das hat nichts mit Logig, Vernunft oder Überzeugungskraft zu tun.
Es ist vollkommen unerheblich was da gesagt wird, der Zähler springt
einfach auf Null und die ganze Schei**e geht von vorn los.
Was da in der Summe an Entwicklungsleistung herausgekommen ist, da ziehe
ich den Hut vor Dir Joseph.
Was da aber an Überzeugungen herauskommt was den Nutzen dieses Systemes
im Jahre 2015 angeht und die kurz bevor stehende weltweite Einführung
des Hexadezimalsystemes da spare ich mir jede Diskussion weil ohnehin
niemand diesen Wahn durchbrechen kann.
Du glaubst was Du glauben willst und anscheind macht es Dir Spaß.
Gut so, weiter so, aber trotzdem bleibe ich bei meiner Kernaussage das
die nützlichste Information die man aus diesem Thread noch ziehen kann
die ist welch verschlungene Pfade das Gehirn gehen kann um eine bereits
gefasste Überzeugung nicht mehr revidieren zu müssen.
Mal ehrlich, es ist Dir doch vollkommen Wurst ob die große Mehrheit der
Menschen Augenkrebs bei Deiner Seite bekommt, oder wie gering das
Interesse ist Dein System produktiv einzusetzen oder als wie abwegig die
Idee bewertet wird beim discounter CF,A3 Euro zu bezahlen.
Nichts davon ändert irgend etwas in Dir und das wird meines erachtens
auch so bleiben.
Beispiel wie dieses gibt es viele:
http://www.golem.de/news/templeos-goettlicher-hardcore-1508-115081.html
Deine Verbohrtheit hat Dich weit gebracht mit Deinem System aber da
stehst Du nun in der Sackgasse und das Lob all der anderen bleibst aus
weil Du etwas gebaut hast was ausser Dir niemand gut findet.
Mir ist das egal, auch wenn ich das schade für Dich finde weil da viel
Arbeit und Herzblut drinsteckt.
Du hättest meiner Meinung nach mehr erreicht wenn Du Deine
offensichtliche Intelligenz etwas sozialverträglicher eingesetzt
hättest, aber das ist allein Deine Sache.
Leider wirkt die Webseite als wäre es eine Ansammlung persönlicher
Notizen.
Bestenfalls blickt da der Author durch.
Aber für einen Dritten ist das alles völlig undurchsichtig.
Matthias W. schrieb:> Aber für einen Dritten ist das alles völlig undurchsichtig.
Kannst du mal eine konkrete Stelle nennen, wo etwas unverständlich ist?
Oder besser: Wenn man die Seiten der Reihe nach jeweils von oben nach
unten liest, an welcher Stelle setzt die Verstehbarkeit aus?
Josef G. schrieb:> Kannst du mal eine konkrete Stelle nennen, wo etwas unverständlich ist?
Beispielsweise das Carry-Flag partout V nennen zu müssen. So ziemlich
jeder ausser dir wird darunter Overflow verstehen.
Derart aggressiv Platz im Quellcode zu sparen lohnte sich das letzte Mal
ungefähr zur jener Zeit, in der ich noch Windeln trug. Seither arbeitet
man eher an der Lesbarkeit von Quellcode als an der optischen
Verschlüsselung durch kryptische Formulierungen über 1-2 Buchstaben
statt lesbarer Abkürzungen.
So hat sich auch die noch aus jener Zeit stammende Gewohnheit von IBM,
Additionen einfach nur mit "A" abzukürzen, ausserhalb dieser Sphäre
nicht durchsetzen können. Praktisch jeder sonst schreibt ADD.
Im Zeitalter von Disks mit Terabytes pro Stück und
Cross-Assemblern/Compilern, die Quellcode von Megabyte-Grösse in
Nullkommanix durchpfeifen, ist diese Kryptik nur noch grotesk.
NB: Das schreibt dir jemand, dessen ersten Programmiersprache APL war.
Die wohl kryptischste ernst gemeinte Programmiersprache, die je erfunden
wurde. Nennt man mit Recht eine "write only language", weil man nicht
sicher sein kann, auch nur die eigenen Programme nach ein paar Jahren
wieder zu verstehen, wenn man nicht noch alles im Kopf hat. Von den
Programmen andere Leute ganz zu schweigen.
A. K. schrieb:> Derart aggressiv Platz im Quellcode zu sparen
Es geht nicht um das Einsparen von Speicherplatz,
sondern um das Einsparen von Tipp-Arbeit.
Josef G. schrieb:> Es geht nicht um das Einsparen von Speicherplatz,> sondern um das Einsparen von Tipp-Arbeit.
Was du an Tipparbeit im Programm einsparst, das investierst du doppelt
und dreifach in Form von Kommentaren. Oder solltest du zumindest, was du
aber wahrscheinlich nicht tust.
Der Aufwand bei der Programmierung wird nicht durch die Zeit bestimmt,
die man benötigt um den Quelltext einzutippen. Ausser vielleicht, wenn
du körperlich erheblich behindert bist. Das dürfte sogar auf das
äusserst geschwätzige COBOL zutreffen.
Michael K. schrieb:> Was da aber an Überzeugungen herauskommt was den Nutzen dieses Systemes> im Jahre 2015 angeht und die kurz bevor stehende weltweite Einführung> des Hexadezimalsystemes
Wenn man die heutige Situation bei den PCs betrachtet mit der
vollständigen Entmündigung der Anwender und der Verseuchung mit
Malware: Vielleicht gibt es ja doch eine größer werdende Zahl von
Leuten, zunächst im Hobby-Bereich, welche sich nach Alternativen
umsehen, zB. nach einem Computer, den die Anwender vollständig
durchschauen und selber programmieren, auch in Maschinensprache
oder Assembler, der aber einen größeren Adressraum hat als die
historischen 8bit-Computer. Und dieselben Leute werden vermutlich
auch die Verbreitung des Hexadezimalsystems unterstützen wollen.
Argumente zum Hexadezimalsystem habe ich da zusammengestellt:
http://www.bomerenzprojekt.de/Website/Hexadezimalsystem.html
Ist an diesen Argumenten etwas falsch? Es geht auch nicht um die
"kurz bevorstehende weltweite Einführung des Hexadezimalsystems",
sondern darum, durch Einführung des hexadezimalen Ziffernsatzes
bei Hobby-Computern dessen allmähliche Verbreitung zu fördern.
Josef G. schrieb:> zB. nach einem Computer, den die Anwender vollständig> durchschauen und selber programmieren, auch in Maschinensprache> oder Assembler, der aber einen größeren Adressraum hat als die> historischen 8bit-Computer.
Wenn du damit nicht nur abstraktes Verstehen meinst, sondern auch,
solche Geräte nicht nur spielerisch sondern real zu nutzen, dann ist
diese Zeit vorbei. Ich hatte sie persönlich erlebt (*). Fast alle
Menschen wollen Computer heute einfach nur benutzen. Manche wollen sie
verstehen. Aber ein real nützliches Gerät selber bauen?
Nicht mal Leute, die sich für die konkrete Technik von Autos
interessieren, bauen sich die Dinger inklusive Motor, Getriebe und
Reifen selber. Obwohl es anfangs welche gab, die es taten (weils nix
fertig gab). Fast alle Menschen wollen sich einfach nur reinsetzen und
fahren. Auch da ist die Zeit der Pioniere rum, schon etwas länger.
> Und dieselben Leute werden vermutlich> auch die Verbreitung des Hexadezimalsystems unterstützen wollen.
Während die Amis mit dezimalen Rechnern anfingen nutzte Zuse von Anfang
an binäre Darstellung intern und dezimale Darstellung nach aussen.
Bereits auf einer derart einfachen Maschine war das also kein ernstes
Problem. Case closed, schon damals.
Übers Hex-System können wir mal drüber reden, wenn du es geschafft hast,
die Briten davon zu überzeugen, rechts zu fahren. Oder den Rest der Welt
davon, links zu fahren. Und dabei hat es sehr viel solidere Gründe, sich
da irgendwann mal zu einigen, als Hex/Dez.
*: Einschliesslich der nicht immer einfach zu beantwortenden Frage
"Junge, was kann man damit eigentlich wirklich anfangen?" ;-)
Josef G. schrieb:> Wenn man die heutige Situation bei den PCs betrachtet mit der> vollständigen Entmündigung der Anwender und der Verseuchung mit> Malware:
Da siedelst Du Dein System an ?
Dein System sehe ich eher auf der Leistungsebene 'stark kastrierter
8051' mit extrem schlechter Doku und rudimentärster Software. Bei
derartigen Systemen hatte ich noch nie Probleme mit Malware.
Womit verfasst Du eigentlich Deine Beiträge hier, womit entwickelst Du
Dein System ?
Ich tippe mal auf einen handelsüblichen und 'unmündigen' PC.
Du bist doch nicht mal selber in der Lage Dein System zu etwas anderem
zu verwenden als ein paar Register hin und herzuschieben und sich an
'blinky' Programmen zu erfreuen.
Das ist zu nichts nütze als zum Spielen und das kann ich mit jeder
kleinen MCU für ein paar Cent haben.
Die sind dann aber sauber dokumentiert, haben eine funktionierende
Community, Compiler, IDEs etc. pp.
Eine der Definitionen von Wahnsinn ist, immer wieder das gleiche zu tun
und dabei ein anderes Ergebniss zu erwarten.
Deswegen höre ich jetzt auch auf.
@A. K. (prx)
>Nicht mal Leute, die sich für die konkrete Technik von Autos>interessieren, bauen sich die Dinger inklusive Motor, Getriebe und>Reifen selber.
Du hast echt Ausdauer. Immer noch nicht verstanden, wo das Problem von
Josef liegt? Kleiner Tip.
https://de.wikipedia.org/wiki/Autismushttps://de.wikipedia.org/wiki/ELIZA
Michael K. schrieb:> Du bist doch nicht mal selber in der Lage Dein System zu etwas anderem> zu verwenden als ein paar Register hin und herzuschieben und sich an
Es müsste in der Tat noch einiges an Steckkarten-Software geschrieben
werden. Die von mir erstellte Test-Steckkarte ist nur zur Demonstration
der prinzipiellen Funktionsweise einer Steckkarte gedacht.
Die Software der Hauptplatine ist fertig, inclusive der
Schnittstelle zu Einbindung von Steckkarten-Software.
Zur Entwicklung von Steckkarten-Software ist jedermann eingeladen,
und er kann diese Software in Eigenregie anbieten.
> und das kann ich mit jeder kleinen MCU für ein paar Cent haben.
Die ist aber nicht zu einem richtigen Computer ausbaubar.