Posts by tulan

    Das kommt übrigens dabei raus, wenn Hardware Menschen ihre Layouts verschönern und die Input / Output Zuordnung auf die Software abwältzen.

    Da stellt sich aber schon die Frage, wieso das immer wieder in einer Adapterfunktion gemacht werden muss statt die Werte einmal an der Stelle anzupassen wo sie erzeugt werden.

    Das Ding ist eine Firmware für einen IO Controller.

    Der Controller liest Werte aus einem Shiftregister aus bzw. schiebt werte in ein Shiftregister.

    Die Anschlüsse an das Shiftregister wurden anders verdrahtet. Damit der neue Controller sich so verhält wie der alten (1:1 austauschbar) muss das nun in der Firmware angepasst werden.


    ALT:


    NEU:


    Fazit, das Layout war wohl im Fall neu einfacher zu routen.

    Das kommt übrigens dabei raus, wenn Hardware Menschen ihre Layouts verschönern und die Input / Output Zuordnung auf die Software abwältzen.

    Kostet ja alles keine Rechenzeit mehr heutzutage.

    Die ersten 9 Bits könnte man sogar 1:1 übernehmen

    Du hast da doch mehrere zusammenhängende Bit-Blöcke (die ersten 9 Bits, 11 bis ...). Wenn Du das ausnutzt, sollte das nahe am Optimum sein.


    also auf so ein Ergebnis komme ich nun:


    /*

    // Hardware-Anpassung

    if (bits & 0x00000001) out |= OUT00; // 0x00000001

    if (bits & 0x00000002) out |= OUT01; // 0x00000002

    if (bits & 0x00000004) out |= OUT02; // 0x00000004

    if (bits & 0x00000008) out |= OUT03; // 0x00000008

    if (bits & 0x00000010) out |= OUT04; // 0x00000010

    if (bits & 0x00000020) out |= OUT05; // 0x00000020

    if (bits & 0x00000040) out |= OUT06; // 0x00000040

    if (bits & 0x00000080) out |= OUT07; // 0x00000080

    if (bits & 0x00000100) out |= OUT08; // 0x00000100


    if (bits & 0x00000200) out |= OUT09; // 0x00001000

    if (bits & 0x00000400) out |= OUT10; // 0x00002000

    if (bits & 0x00000800) out |= OUT11; // 0x00004000

    if (bits & 0x00001000) out |= OUT12; // 0x00008000

    if (bits & 0x00002000) out |= OUT13; // 0x00010000

    if (bits & 0x00004000) out |= OUT14; // 0x00020000

    if (bits & 0x00008000) out |= OUT15; // 0x00040000

    if (bits & 0x00010000) out |= OUT16; // 0x00080000

    if (bits & 0x00020000) out |= OUT17; // 0x00100000

    if (bits & 0x00040000) out |= OUT18; // 0x00200000

    if (bits & 0x00080000) out |= OUT19; // 0x00400000

    if (bits & 0x00100000) out |= OUT20; // 0x00800000

    */


    // first 9 bits

    out |= (bits & 0x000001ff);

    // rest of the bits

    out |= (bits & 0x001ffe00) << 3;

    Also aufgelöst schaut das so aus, ist alles hart, also kein variables mapping:


    if (bits & 0x00000001) out |= 0x00000001;

    if (bits & 0x00000002) out |= 0x00000002;

    if (bits & 0x00000004) out |= 0x00000004;

    if (bits & 0x00000008) out |= 0x00000008;

    if (bits & 0x00000010) out |= 0x00000010;

    if (bits & 0x00000020) out |= 0x00000020;

    if (bits & 0x00000040) out |= 0x00000040;

    if (bits & 0x00000080) out |= 0x00000080;

    if (bits & 0x00000100) out |= 0x00000100;

    if (bits & 0x00000200) out |= 0x00001000;

    if (bits & 0x00000400) out |= 0x00002000;

    if (bits & 0x00000800) out |= 0x00004000;

    if (bits & 0x00001000) out |= 0x00008000;

    if (bits & 0x00002000) out |= 0x00010000;

    if (bits & 0x00004000) out |= 0x00020000;

    if (bits & 0x00008000) out |= 0x00040000;

    if (bits & 0x00010000) out |= 0x00080000;

    if (bits & 0x00020000) out |= 0x00100000;

    if (bits & 0x00040000) out |= 0x00200000;

    if (bits & 0x00080000) out |= 0x00400000;

    if (bits & 0x00100000) out |= 0x00800000;


    Die ersten 9 Bits könnte man sogar 1:1 übernehmen

    Man könnte die OUT00 bis OUT20 in ein Array packen, in einer Schleife ein Bit durchschieben und wenn das Bit in bits gesetzt es, über den Schleifenindex den OUT-Wert aus dem Array holen. Ich weiß nicht, ob das jetzt verständlich beschrieben ist.

    Ja ist verständlich, aber wohl auch nicht schneller. Überlegung wert, danke.

    ich hätte eine C Frage, vielleicht weiß jemand eine Optimierung dafür?


    Programm in C prüft auf Bits an einer bestimmten stelle und schreibt sie dann auf eine anderen Stelle:


    die OUTs sind dabei auch wieder einzelne Bits in einer Maske.


    Aber eigentlich bräuchte man die if () nicht, wenn man es irgendwie hart verdrahten könnte.


    Hat vielleicht jemand eine gute Idee dafür?

    Andererseits habe ich die Befürchtung, dass das OS (wie die meisten Versuche in ähnlicher Richtung) darunter leiden wird, dass es nur wenig "sinnvolle" 3rd-Party-Software dafür geben wird.

    Das ließe sich aber mit einer entsprechender Community sehr einfach ändern. In Zeiten von Internet und Coding Plattformen wie github sollte sich da so einiges machen lassen.


    Für mich persönlich hätte so ein OS nur dahingehend einen Nutzen, wenn man damit auch Standard Software verwalten könnte. Sprich als Ersatz für herkömmliche Oberflächen, als Startpunkt.

    Zum Kopieren von Files von A nach B usw.

    Also ich weiß nicht ob das etwas mit der Mechanik zu tun hat, die schaut ok aus. Ist auch noch gut geschmiert.

    Spiele auf DVDs liest er, Spiele auf CDs mag er nicht.

    Mal mit dem Focus spielen.

    also bei den Grundeinstellungen steht:

    Konsole: SCPH-30004 R

    Browser 1.20

    CD-Spieler 1.20

    PlayStation-Treiber 1.10

    DVD-Spieler 2.10E


    Das Laufwerk ist übrigens sehr langsam. Ich denke da ist die Linse etwas verstaubt. Es lädt die CD / DVD erst nach einer Weile.

    Ok, nachdem meine Nachbarn einen PS2 Controller zum Ausborgen für mich hatten konnte ich nun feststellen, dass es am Controller liegt.

    Hat jemand Vorschläge für einen guten Controller? Eventuell Wireless?

    Hallo Leute!


    Ich habe heute eine PS2 mit einigen Spielen geschenkt bekommen. Leider hat sich beim ersten Einschalten herausgestellt, dass der Controller (hab leider nur den) leider nicht funktioniert.

    Wenn man auf analog umschaltet, dann leuchtet die rote LED, also Saft scheint er zu bekommen.


    Der Bildschirm auf der PS2 zeigt am Anfang die Sony Animation, dann ist man in einem Menü wo steht: Scheint auch zu laufen.

    • Browse
    • Einstellungen


    und zwei Taste werden angezeigt, die durch das Menü führen sollen.


    Ist eine CD / DVD eingelegt tut sich gar nix.


    Vielleicht kann mir jemand von euch weiterhelfen? Die PS2 schein wohl lange herumgestanden zu sein. Gibt es bekannte Probleme? Battery für Uhr? Elkos?

    Es handelt sich noch um das große Modell, keine Slim.


    Vielen Dank,

    Tulan