diff --git a/out/index.html b/out/index.html index 9042c97..e9325fa 100644 --- a/out/index.html +++ b/out/index.html @@ -60,7 +60,7 @@
  • Instruction - Hiermit kannst du eine ganze Instruction ausführen lassen und musst nicht durch jeden µCode Schritt einzeln durchdrücken. + Hiermit kannst du eine ganze Instruktion ausführen lassen und musst nicht durch jeden µCode Schritt einzeln durchdrücken.
  • Reset PC @@ -72,7 +72,7 @@
  • Configs - Hier können sie die momentane Konfigration herunterladen, selber eine Hochladen oder aus einer Liste von Beispielen laden. + Hier können sie die momentane Konfiguration herunterladen, selber eine Hochladen oder aus einer Liste von Beispielen laden.
  • @@ -83,7 +83,7 @@

    RAM

    - Im Arbeitsspeicher wird das Programm gespeichert. Jeder Eintrag ist dabei in ein Low-Byte und ein High-Byte unterteilt. Dadurch kann man in einem Eintrag die Instruktion und Addresse einfacher unterscheiden.
    + Im Arbeitsspeicher wird das Programm gespeichert. Jeder Eintrag ist dabei in ein Low-Byte und ein High-Byte unterteilt. Dadurch kann man in einem Eintrag die Instruktion und Adresse einfacher unterscheiden.
    Siehe Befehle

    @@ -107,7 +107,7 @@

    Über den Datenbus können Daten und Befehle zwischen RAM, Control Unit und ALU übertragen werden.

    -

    Addressbus

    +

    Adressbus

    Über diesen Bus kann die Control Unit steuern, welcher Wert im RAM ausgewählt wird.
    Bei normalen Rechnern sind hier natürlich noch deutlich mehr Werte angeschlossen. @@ -116,14 +116,20 @@

    Befehle

    - Ein Befehl besteht aus einer Instruktion und einem Argument. Deshalb sind im RAM und im Instruction Register alle Werte separiert. + Ein Befehl besteht aus einer Instruktion und einem Argument. Deshalb sind im RAM und im Instruction Register alle Werte separiert. +

    +
    0 0 2   0 0 5 0 4
    +Instr   Argument
    +
    +

    + In den ersten 3 Stellen wird hier der OpCode der Instruction codiert. Wenn dieser Teil in der Control Unit in den µCode Counter geladen wird, dann wird der OpCode mit 10 multipliziert. +

    +

    + In den letzten 5 Stellen wird ein beliebiger Zahlenwert gespeichert. Dieser kann als Argument für einen Befehl genutzt werden. +

    +

    + In diesem Beispiel hier würden die µCodes ab Adresse 20 im µCode Speicher ausgeführt werden.

    -
    -          
    -            0 0 0   0 0 0 0 0
    -            Instr   Argument
    -          
    -        

    µCodes

    @@ -138,64 +144,64 @@ - ProgCounter -> AddrBus + ProgCounter -> AddrBus Lade den Wert des Programm Counters in den Adressbus - InstrReg -> ProgCounter + InstrReg -> ProgCounter Lade das Argument des Instruktionsregisters in den Programm Counter - ProgCounter ++ - Erhöhe den Wert des Programm Counter um 1 + ProgCounter ++ + Erhöhe den Wert des Programm Counter um 1 - Acc == 0 => InstReg -> ProgCounter - Wenn der Wert des Akkumulators 0 ist, dann lade das Arggument des Instruktionsregisters in den Programm Counter + Acc == 0 => InstReg -> ProgCounter + Wenn der Wert des Akkumulators 0 ist, dann lade das Argument des Instruktionsregisters in den Programm Counter - Ram -> DataBus - Schreibe den aktuellen Wert aus den RAM auf den Datembus + Ram -> DataBus + Schreibe den aktuellen Wert aus den RAM auf den Datenbus - DataBus -> Ram + DataBus -> Ram Schreibe den Wert des Datenbus in die momentane Stelle des RAM - DataBus -> InstReg + DataBus -> InstReg Lade den Befehl vom Datenbus in das Instruktionsregister - DataBus -> Acc + DataBus -> Acc Lade den Wert vom Datenbus in den Akkumulator der ALU - Acc -> DataBus + Acc -> DataBus Schreibe den Wert vom Akkumulator auf den Datenbus - Acc ++ - Erhöhe den Wert des Akkumulators um 1 + Acc ++ + Erhöhe den Wert des Akkumulators um 1 - Acc -- - Verringere den Wert des Akkumulators um 1 + Acc -- + Verringere den Wert des Akkumulators um 1 - InstReg -> µCounter + InstReg -> µCounter Nehme das Argument des Befehls im Instruktionsregister, füge am Ende eine 0 an und Lade ihn in den µCounter - InstReg -> AddrBus - Lade das Argument im Instruktionsregister in den Addressbus + InstReg -> AddrBus + Lade das Argument im Instruktionsregister in den Adressbus - µCounter = 0 + µCounter = 0 Setzte den µCounter zurück - Signal End of Program - Zeige ein Popup, dass das Ende des Programms signalisiert. + Signal End of Program + Zeigt ein Popup, dass das Ende des Programms signalisiert. @@ -249,7 +255,7 @@

    RAM

    - The current programm is stored in the RAM. Every entry is seperated as mentioned in entry. + The current program is stored in the RAM. Every entry is separated as mentioned in entry.

    Control Unit

    @@ -271,28 +277,33 @@

    Databus

    - Via the Databus values and entrys can be transported between RAM, Control Unit and ALU. + Via the databus values and entries can be transported between RAM, Control Unit and ALU.

    Addressbus

    - With the addressbus the Control Unit can control which value is selected in RAM. On a normal computer there are a lot mor things attached to this bus. + With the addressbus the Control Unit can control which value is selected in RAM. On a normal computer there are a lot more things attached to this bus.

    Entry

    - Each entry consits of a instruction and an argument. That's why the entrys in RAM and in µCodes are displayed seperatly. + Each entry consists of a instruction and an argument. That's why the entrys in RAM and in µCodes are displayed separately. +

    0 0 2   0 0 5 0 4
    +Instr   Argument
    +
    + +

    + Here, the first 3 digits are the opCode of the instruction. When you try to load this part into the µCode Counter of the Control Unit, it will be automatically multiplied by 10. +
    + In this example µCodes starting at the Address 20 will be executed. +

    +

    + The last 5 digits are a numerical value that can be used as an argument for the command.

    -
    -          
    -            0 0 0   0 0 0 0 0
    -            Instr   Argument
    -          
    -        

    µCodes

    - Every instruction consists of a list of µCodes. Here is an explanaition for all of them: + Every instruction consists of a list of µCodes. Here is an explanation for all of them:

    @@ -303,63 +314,63 @@ - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -367,7 +378,7 @@

    Source

    - This is a hobby projekt so please don't take my code as a "best-practice" implementation.
    + This is a hobby project so please don't take my code as a "best-practice" implementation.

    See Source Code

    @@ -382,7 +393,7 @@

    Made with ☕
    - © Christian, 2021 + © Christian, 2022

    Impressum

    ProgCounter -> AddrBusLoad the value from programm counter to addressbusProgCounter -> AddrBusLoad the value from program counter to addressbus
    InstrReg -> ProgCounterLoad the argument from instruction register to programm counterInstrReg -> ProgCounterLoad the argument from instruction register to program counter
    ProgCounter ++Increment programm counter by 1ProgCounter ++Increment program counter by 1
    Acc == 0 => InstReg -> ProgCounterIf the accumulator is 0 then write the argument from instruction register to programm counterAcc == 0 => InstReg -> ProgCounterIf the accumulator is 0 then write the argument from instruction register to program counter
    Ram -> DataBusRam -> DataBus Load selected value from RAM to databus
    DataBus -> RamDataBus -> Ram Write value from databus to selected value in RAM
    DataBus -> InstRegDataBus -> InstReg Write entry from databus to instruction register
    DataBus -> AccDataBus -> Acc Write value from databus to accumulator
    Acc -> DataBusAcc -> DataBus Load value from accumulator to databus
    Acc ++Acc ++ Increment accumulator by 1
    Acc --Acc -- Decrement accumulator by 1
    InstReg -> µCounterInstReg -> µCounter Take the instruction from instruction register, add a 0 at the tail and write it to µCounter
    InstReg -> AddrBusInstReg -> AddrBus Write the argument from instruction register to addressbus
    µCounter = 0µCounter = 0 Set µCounter to 0
    Signal End of ProgramSignal End of Program Show an alert that the end of program is reached.