fixed a bug in the interrupt controller of the example processor

This commit is contained in:
hneemann 2016-12-21 19:35:56 +01:00
parent 399d1b3ff4
commit e435ccd025
5 changed files with 299 additions and 117 deletions

View File

@ -4,7 +4,8 @@
<attributes>
<entry>
<string>Description</string>
<string>Element für ein allgemeines Ausgaberegister.</string>
<string>Element für ein allgemeines Ausgaberegister.
Seine Adresse ist 0x15</string>
</entry>
</attributes>
<visualElements>

View File

@ -39,7 +39,7 @@ erneut Interrupts ausgelöst werden können.</string>
<int>1</int>
</entry>
</elementAttributes>
<pos x="180" y="340"/>
<pos x="220" y="340"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
@ -57,7 +57,7 @@ erneut Interrupts ausgelöst werden können.</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="740" y="260"/>
<pos x="700" y="260"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
@ -71,7 +71,7 @@ erneut Interrupts ausgelöst werden können.</string>
<string>ioR</string>
</entry>
</elementAttributes>
<pos x="180" y="400"/>
<pos x="220" y="400"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
@ -95,7 +95,7 @@ erneut Interrupts ausgelöst werden können.</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="180" y="280"/>
<pos x="220" y="280"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
@ -113,22 +113,25 @@ erneut Interrupts ausgelöst werden können.</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="180" y="240"/>
<pos x="220" y="240"/>
</visualElement>
<visualElement>
<elementName>Register</elementName>
<elementAttributes>
<entry>
<string>valueIsProbe</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Label</string>
<string>intRet</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="540" y="240"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="420" y="260"/>
<pos x="520" y="240"/>
</visualElement>
<visualElement>
<elementName>JK_FF</elementName>
@ -146,7 +149,7 @@ erneut Interrupts ausgelöst werden können.</string>
<string>intLock</string>
</entry>
</elementAttributes>
<pos x="460" y="0"/>
<pos x="460" y="20"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
@ -165,7 +168,7 @@ erneut Interrupts ausgelöst werden können.</string>
<string>iEn</string>
</entry>
</elementAttributes>
<pos x="740" y="120"/>
<pos x="780" y="120"/>
</visualElement>
<visualElement>
<elementName>Comparator</elementName>
@ -190,7 +193,7 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<string>imm</string>
</entry>
</elementAttributes>
<pos x="180" y="140"/>
<pos x="220" y="140"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
@ -214,7 +217,7 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="680" y="260"/>
<pos x="640" y="260"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
@ -234,7 +237,7 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<string>abs</string>
</entry>
</elementAttributes>
<pos x="180" y="180"/>
<pos x="220" y="180"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
@ -254,7 +257,7 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<string>rel</string>
</entry>
</elementAttributes>
<pos x="180" y="100"/>
<pos x="220" y="100"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
@ -273,7 +276,7 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<string>intr</string>
</entry>
</elementAttributes>
<pos x="180" y="60"/>
<pos x="220" y="60"/>
</visualElement>
<visualElement>
<elementName>D_FF</elementName>
@ -283,53 +286,126 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<string>Sync</string>
</entry>
</elementAttributes>
<pos x="260" y="60"/>
<pos x="680" y="120"/>
</visualElement>
<visualElement>
<elementName>/home/hneemann/Dokumente/Java/digital/src/main/dig/processor/Rising.dig</elementName>
<elementAttributes/>
<pos x="260" y="20"/>
</visualElement>
<visualElement>
<elementName>D_FF</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
</elementAttributes>
<pos x="600" y="60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="240" y="280"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="480" y="260"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="3"/>
</entry>
<entry>
<string>NetName</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="620" y="80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="480" y="0"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>C</string>
</entry>
</elementAttributes>
<pos x="660" y="140"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="460" y="0"/>
<p2 x="500" y="0"/>
<p1 x="380" y="0"/>
<p2 x="400" y="0"/>
</wire>
<wire>
<p1 x="200" y="160"/>
<p1 x="460" y="0"/>
<p2 x="480" y="0"/>
</wire>
<wire>
<p1 x="260" y="160"/>
<p2 x="300" y="160"/>
</wire>
<wire>
<p1 x="340" y="160"/>
<p2 x="400" y="160"/>
</wire>
<wire>
<p1 x="360" y="260"/>
<p2 x="420" y="260"/>
</wire>
<wire>
<p1 x="600" y="260"/>
<p2 x="660" y="260"/>
</wire>
<wire>
<p1 x="700" y="260"/>
<p2 x="740" y="260"/>
</wire>
<wire>
<p1 x="460" y="260"/>
<p2 x="520" y="260"/>
</wire>
<wire>
<p1 x="520" y="260"/>
<p2 x="540" y="260"/>
</wire>
<wire>
<p1 x="340" y="100"/>
<p2 x="400" y="100"/>
</wire>
<wire>
<p1 x="180" y="100"/>
<p2 x="200" y="100"/>
<p1 x="220" y="100"/>
<p2 x="260" y="100"/>
</wire>
<wire>
<p1 x="460" y="-40"/>
<p2 x="640" y="-40"/>
<p1 x="580" y="260"/>
<p2 x="620" y="260"/>
</wire>
<wire>
<p1 x="660" y="260"/>
<p2 x="700" y="260"/>
</wire>
<wire>
<p1 x="480" y="260"/>
<p2 x="520" y="260"/>
</wire>
<wire>
<p1 x="320" y="40"/>
<p2 x="340" y="40"/>
</wire>
<wire>
<p1 x="320" y="360"/>
@ -340,7 +416,7 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<p2 x="500" y="360"/>
</wire>
<wire>
<p1 x="180" y="140"/>
<p1 x="220" y="140"/>
<p2 x="300" y="140"/>
</wire>
<wire>
@ -348,43 +424,55 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<p2 x="400" y="140"/>
</wire>
<wire>
<p1 x="640" y="300"/>
<p2 x="680" y="300"/>
<p1 x="660" y="140"/>
<p2 x="680" y="140"/>
</wire>
<wire>
<p1 x="360" y="80"/>
<p1 x="600" y="300"/>
<p2 x="640" y="300"/>
</wire>
<wire>
<p1 x="380" y="80"/>
<p2 x="400" y="80"/>
</wire>
<wire>
<p1 x="240" y="80"/>
<p2 x="260" y="80"/>
<p1 x="220" y="240"/>
<p2 x="520" y="240"/>
</wire>
<wire>
<p1 x="180" y="400"/>
<p1 x="220" y="400"/>
<p2 x="500" y="400"/>
</wire>
<wire>
<p1 x="180" y="240"/>
<p2 x="540" y="240"/>
</wire>
<wire>
<p1 x="460" y="-20"/>
<p2 x="520" y="-20"/>
<p2 x="600" y="-20"/>
</wire>
<wire>
<p1 x="360" y="-20"/>
<p2 x="400" y="-20"/>
</wire>
<wire>
<p1 x="180" y="180"/>
<p2 x="200" y="180"/>
</wire>
<wire>
<p1 x="180" y="340"/>
<p1 x="220" y="340"/>
<p2 x="340" y="340"/>
</wire>
<wire>
<p1 x="200" y="120"/>
<p1 x="240" y="20"/>
<p2 x="260" y="20"/>
</wire>
<wire>
<p1 x="460" y="20"/>
<p2 x="500" y="20"/>
</wire>
<wire>
<p1 x="220" y="180"/>
<p2 x="260" y="180"/>
</wire>
<wire>
<p1 x="500" y="280"/>
<p2 x="520" y="280"/>
</wire>
<wire>
<p1 x="220" y="280"/>
<p2 x="240" y="280"/>
</wire>
<wire>
<p1 x="260" y="120"/>
<p2 x="300" y="120"/>
</wire>
<wire>
@ -395,48 +483,40 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<p1 x="340" y="120"/>
<p2 x="400" y="120"/>
</wire>
<wire>
<p1 x="740" y="120"/>
<p2 x="760" y="120"/>
</wire>
<wire>
<p1 x="760" y="120"/>
<p2 x="780" y="120"/>
</wire>
<wire>
<p1 x="500" y="120"/>
<p2 x="740" y="120"/>
<p2 x="680" y="120"/>
</wire>
<wire>
<p1 x="500" y="280"/>
<p2 x="540" y="280"/>
</wire>
<wire>
<p1 x="180" y="280"/>
<p2 x="240" y="280"/>
</wire>
<wire>
<p1 x="240" y="280"/>
<p2 x="360" y="280"/>
</wire>
<wire>
<p1 x="180" y="60"/>
<p2 x="260" y="60"/>
</wire>
<wire>
<p1 x="320" y="60"/>
<p2 x="340" y="60"/>
<p1 x="240" y="-60"/>
<p2 x="760" y="-60"/>
</wire>
<wire>
<p1 x="560" y="380"/>
<p2 x="640" y="380"/>
<p2 x="600" y="380"/>
</wire>
<wire>
<p1 x="240" y="80"/>
<p2 x="240" y="280"/>
<p1 x="220" y="60"/>
<p2 x="260" y="60"/>
</wire>
<wire>
<p1 x="640" y="-40"/>
<p1 x="640" y="280"/>
<p2 x="640" y="300"/>
</wire>
<wire>
<p1 x="640" y="300"/>
<p2 x="640" y="380"/>
<p1 x="240" y="-60"/>
<p2 x="240" y="20"/>
</wire>
<wire>
<p1 x="500" y="0"/>
<p1 x="500" y="20"/>
<p2 x="500" y="120"/>
</wire>
<wire>
@ -444,32 +524,40 @@ Wenn gesetzt, wird Interrupt verhindert.</string>
<p2 x="500" y="280"/>
</wire>
<wire>
<p1 x="340" y="60"/>
<p1 x="260" y="100"/>
<p2 x="260" y="120"/>
</wire>
<wire>
<p1 x="260" y="160"/>
<p2 x="260" y="180"/>
</wire>
<wire>
<p1 x="340" y="40"/>
<p2 x="340" y="100"/>
</wire>
<wire>
<p1 x="520" y="-20"/>
<p2 x="520" y="260"/>
<p1 x="600" y="60"/>
<p2 x="600" y="300"/>
</wire>
<wire>
<p1 x="680" y="280"/>
<p2 x="680" y="300"/>
<p1 x="600" y="-20"/>
<p2 x="600" y="0"/>
</wire>
<wire>
<p1 x="360" y="260"/>
<p2 x="360" y="280"/>
<p1 x="600" y="300"/>
<p2 x="600" y="380"/>
</wire>
<wire>
<p1 x="360" y="-20"/>
<p2 x="360" y="80"/>
<p1 x="760" y="-60"/>
<p2 x="760" y="120"/>
</wire>
<wire>
<p1 x="200" y="100"/>
<p2 x="200" y="120"/>
<p1 x="380" y="0"/>
<p2 x="380" y="80"/>
</wire>
<wire>
<p1 x="200" y="160"/>
<p2 x="200" y="180"/>
<p1 x="620" y="60"/>
<p2 x="620" y="80"/>
</wire>
</wires>
</circuit>

View File

@ -1563,10 +1563,6 @@ An dieser Adresse muss sich die ISR befinden.</string>
<p1 x="1140" y="420"/>
<p2 x="1240" y="420"/>
</wire>
<wire>
<p1 x="1040" y="680"/>
<p2 x="1080" y="680"/>
</wire>
<wire>
<p1 x="960" y="680"/>
<p2 x="980" y="680"/>
@ -1575,6 +1571,10 @@ An dieser Adresse muss sich die ISR befinden.</string>
<p1 x="1320" y="680"/>
<p2 x="1340" y="680"/>
</wire>
<wire>
<p1 x="1040" y="680"/>
<p2 x="1080" y="680"/>
</wire>
<wire>
<p1 x="1140" y="360"/>
<p2 x="1160" y="360"/>
@ -1883,14 +1883,14 @@ An dieser Adresse muss sich die ISR befinden.</string>
<p1 x="500" y="680"/>
<p2 x="500" y="700"/>
</wire>
<wire>
<p1 x="1080" y="640"/>
<p2 x="1080" y="680"/>
</wire>
<wire>
<p1 x="440" y="680"/>
<p2 x="440" y="700"/>
</wire>
<wire>
<p1 x="1080" y="640"/>
<p2 x="1080" y="680"/>
</wire>
<wire>
<p1 x="380" y="680"/>
<p2 x="380" y="700"/>

View File

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<visualElements>
<visualElement>
<elementName>Or</elementName>
<elementAttributes/>
<pos x="400" y="160"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Reset</string>
</entry>
</elementAttributes>
<pos x="360" y="220"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="540" y="180"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Set</string>
</entry>
</elementAttributes>
<pos x="360" y="160"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="480" y="220"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Out</string>
</entry>
</elementAttributes>
<pos x="640" y="200"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="360" y="160"/>
<p2 x="400" y="160"/>
</wire>
<wire>
<p1 x="460" y="180"/>
<p2 x="540" y="180"/>
</wire>
<wire>
<p1 x="380" y="260"/>
<p2 x="620" y="260"/>
</wire>
<wire>
<p1 x="380" y="200"/>
<p2 x="400" y="200"/>
</wire>
<wire>
<p1 x="600" y="200"/>
<p2 x="620" y="200"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="640" y="200"/>
</wire>
<wire>
<p1 x="520" y="220"/>
<p2 x="540" y="220"/>
</wire>
<wire>
<p1 x="360" y="220"/>
<p2 x="480" y="220"/>
</wire>
<wire>
<p1 x="380" y="200"/>
<p2 x="380" y="260"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="620" y="260"/>
</wire>
</wires>
</circuit>

View File

@ -4,7 +4,7 @@
<attributes>
<entry>
<string>Description</string>
<string>Terminal</string>
<string>Terminal. Die Adresse ist 0x1F.</string>
</entry>
</attributes>
<visualElements>