summaryrefslogtreecommitdiffstats
path: root/src/build/citest/etc/patches/p8_inst.act
diff options
context:
space:
mode:
Diffstat (limited to 'src/build/citest/etc/patches/p8_inst.act')
-rw-r--r--src/build/citest/etc/patches/p8_inst.act1275
1 files changed, 1246 insertions, 29 deletions
diff --git a/src/build/citest/etc/patches/p8_inst.act b/src/build/citest/etc/patches/p8_inst.act
index 523acd32b..f9b47ae21 100644
--- a/src/build/citest/etc/patches/p8_inst.act
+++ b/src/build/citest/etc/patches/p8_inst.act
@@ -2,7 +2,8 @@
# Flag PTR/DCR# Userid Date Description
# ---- -------- -------- -------- -----------
-# D841334 dcrowell 06/11/11 File Created
+# D841334 dcrowell 06/11/11 File Created
+# @01 D846452 dcrowell 07/31/12 Add Winkle/IPI support
# Actions work like this:
@@ -11,10 +12,6 @@
#
# See p8.chip for THREADSTATE bit definitions
-#NOTE: Hostboot patched version is hardcoded to Core5
-#NOTE: Hostboot patched version does not set NIA for SRESET
-
-
###################
## Scom Triggers ##
@@ -24,8 +21,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt0]
WATCH=[REG(MYCHIPLET,0x013000)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013000)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 0)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 0)] OP=[MODULECALL]
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 0)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 0)] OP=[MODULECALL]
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -36,8 +33,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt1]
WATCH=[REG(MYCHIPLET,0x013010)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013010)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 1)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 1)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 1)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 1)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -48,8 +45,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt2]
WATCH=[REG(MYCHIPLET,0x013020)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013020)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 2)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 2)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 2)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 2)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -60,8 +57,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt3]
WATCH=[REG(MYCHIPLET,0x013030)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013030)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 3)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 3)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 3)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 3)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -72,8 +69,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt4]
WATCH=[REG(MYCHIPLET,0x013040)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013040)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 4)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 4)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 4)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 4)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -84,8 +81,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt5]
WATCH=[REG(MYCHIPLET,0x013050)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013050)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 5)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 5)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 5)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 5)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -96,8 +93,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt6]
WATCH=[REG(MYCHIPLET,0x013060)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013060)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 6)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 6)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 6)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 6)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -108,8 +105,8 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Sreset Instructions - cXt7]
WATCH=[REG(MYCHIPLET,0x013070)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013070)] OP=[BIT,ON] BIT=[60] # SRESET
- #EFFECT: TARGET=[PROCREG(nia, 5, 7)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
- EFFECT: TARGET=[MODULE(startInstructions, 5, 7)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[PROCREG(nia, MYCORE, 7)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000100)]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 7)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode, and all idle states
# Set running, active
EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF] DATA=[LITERAL(32,28000000)]
@@ -123,7 +120,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt0]
WATCH=[REG(MYCHIPLET,0x013000)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013000)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 0)] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 0)] OP=[MODULECALL]
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -135,7 +132,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt1]
WATCH=[REG(MYCHIPLET,0x013010)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013010)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 1)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 1)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -147,7 +144,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt2]
WATCH=[REG(MYCHIPLET,0x013020)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013020)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 2)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 2)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -159,7 +156,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt3]
WATCH=[REG(MYCHIPLET,0x013030)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013030)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 3)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 3)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -171,7 +168,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt4]
WATCH=[REG(MYCHIPLET,0x013040)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013040)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 4)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 4)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -183,7 +180,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt5]
WATCH=[REG(MYCHIPLET,0x013050)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013050)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 5)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 5)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -195,7 +192,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt6]
WATCH=[REG(MYCHIPLET,0x013062)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013062)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 6)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 6)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -207,7 +204,7 @@ CAUSE_EFFECT CHIPLETS ex {
LABEL=[Start Instructions - cXt7]
WATCH=[REG(MYCHIPLET,0x013070)] # RAS Control Reg
CAUSE: TARGET=[REG(MYCHIPLET,0x013070)] OP=[BIT,ON] BIT=[62] # Start
- EFFECT: TARGET=[MODULE(startInstructions, 5, 7)] OP=[MODULECALL] # Start Hostboot
+ EFFECT: TARGET=[MODULE(startInstructions, MYCORE, 7)] OP=[MODULECALL] # Start Hostboot
# Clear quiesce, por, maint mode
# Set running
# Leave other bits alone
@@ -583,3 +580,1223 @@ CAUSE_EFFECT CHIPLETS ex {
ELSE: TARGET=[REG(MYCHIPLET,0x013072)] OP=[BIT,OFF] BIT=[21] #core_is_in_maintenance_mode
}
+#@01 begin
+##### Winkle #####
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt0]
+ WATCH=[THREADSTATE(MYCHIPLET,0x0)]
+ WATCH=[REG(MYCHIPLET,0x013004)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013004)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt1]
+ WATCH=[THREADSTATE(MYCHIPLET,0x1)]
+ WATCH=[REG(MYCHIPLET,0x013014)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013014)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt2]
+ WATCH=[THREADSTATE(MYCHIPLET,0x2)]
+ WATCH=[REG(MYCHIPLET,0x013024)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013024)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt3]
+ WATCH=[THREADSTATE(MYCHIPLET,0x3)]
+ WATCH=[REG(MYCHIPLET,0x013034)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013034)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt4]
+ WATCH=[THREADSTATE(MYCHIPLET,0x4)]
+ WATCH=[REG(MYCHIPLET,0x013044)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013044)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt5]
+ WATCH=[THREADSTATE(MYCHIPLET,0x5)]
+ WATCH=[REG(MYCHIPLET,0x013054)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013054)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt6]
+ WATCH=[THREADSTATE(MYCHIPLET,0x6)]
+ WATCH=[REG(MYCHIPLET,0x013064)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013064)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Winkle - cXt7]
+ WATCH=[THREADSTATE(MYCHIPLET,0x7)]
+ WATCH=[REG(MYCHIPLET,0x013074)]
+ # active=0,nap=0,sleep=0,winkle=1
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=111
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013074)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C0001C0 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+
+##### Sleep #####
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt0]
+ WATCH=[THREADSTATE(MYCHIPLET,0x0)]
+ WATCH=[REG(MYCHIPLET,0x013004)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013004)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt1]
+ WATCH=[THREADSTATE(MYCHIPLET,0x1)]
+ WATCH=[REG(MYCHIPLET,0x013014)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013014)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt2]
+ WATCH=[THREADSTATE(MYCHIPLET,0x2)]
+ WATCH=[REG(MYCHIPLET,0x013024)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013024)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt3]
+ WATCH=[THREADSTATE(MYCHIPLET,0x3)]
+ WATCH=[REG(MYCHIPLET,0x013034)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013034)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt4]
+ WATCH=[THREADSTATE(MYCHIPLET,0x4)]
+ WATCH=[REG(MYCHIPLET,0x013044)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013044)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt5]
+ WATCH=[THREADSTATE(MYCHIPLET,0x5)]
+ WATCH=[REG(MYCHIPLET,0x013054)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013054)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt6]
+ WATCH=[THREADSTATE(MYCHIPLET,0x6)]
+ WATCH=[REG(MYCHIPLET,0x013064)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013064)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Sleep - cXt7]
+ WATCH=[THREADSTATE(MYCHIPLET,0x7)]
+ WATCH=[REG(MYCHIPLET,0x013074)]
+ # active=0,nap=0,sleep=1,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,02000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=11, 23:25=110
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013074)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0C000180 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+
+##### Active #####
+
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt0]
+ WATCH=[THREADSTATE(MYCHIPLET,0x0)]
+ WATCH=[REG(MYCHIPLET,0x013004)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013004)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt1]
+ WATCH=[THREADSTATE(MYCHIPLET,0x1)]
+ WATCH=[REG(MYCHIPLET,0x013014)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013014)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt2]
+ WATCH=[THREADSTATE(MYCHIPLET,0x2)]
+ WATCH=[REG(MYCHIPLET,0x013024)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013024)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt3]
+ WATCH=[THREADSTATE(MYCHIPLET,0x3)]
+ WATCH=[REG(MYCHIPLET,0x013034)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013034)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt4]
+ WATCH=[THREADSTATE(MYCHIPLET,0x4)]
+ WATCH=[REG(MYCHIPLET,0x013044)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013044)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt5]
+ WATCH=[THREADSTATE(MYCHIPLET,0x5)]
+ WATCH=[REG(MYCHIPLET,0x013054)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013054)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt6]
+ WATCH=[THREADSTATE(MYCHIPLET,0x6)]
+ WATCH=[REG(MYCHIPLET,0x013064)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013064)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Status - Active - cXt7]
+ WATCH=[THREADSTATE(MYCHIPLET,0x7)]
+ WATCH=[REG(MYCHIPLET,0x013074)]
+ # active=1,nap=0,sleep=0,winkle=0
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,08000000)] MASK=[LITERAL(32,0F000000)]
+ # 4:5=00, 23:25=000
+ EFFECT: TARGET=[REG(MYCHIPLET,0x013074)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,00000000 00000000)] MASK=[LITERAL(64,0C0001C0 00000000)]
+}
+
+
+###################
+## HAP Triggers ##
+
+# HAP Actions work like this:
+# Simics sets bits in HAP regs (below)
+# Action will set status bit in THREADSTATE
+# Changes to THREADSTATE regspace will update status bits in Scom regs
+
+# Each bit represents the state of a given core/thread, and the bit
+# position is computed as:
+#
+# bit = core * threadsPerCore + thread
+#
+#0xFF000020, 64 # ADDR_LOGIC_THREAD_BREAKPOINT
+#0xFF000030, 64 # ADDR_LOGIC_THREAD_NAP
+#0xFF000040, 64 # ADDR_LOGIC_THREAD_SLEEP
+#0xFF000050, 64 # ADDR_LOGIC_THREAD_SRESET
+#0xFF000060, 64 # ADDR_LOGIC_THREAD_WINKLE
+
+#### Winkle ####
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t0]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[8]
+ EFFECT: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t1]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[9]
+ EFFECT: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t2]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[10]
+ EFFECT: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t3]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[11]
+ EFFECT: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t4]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[12]
+ EFFECT: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t5]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[13]
+ EFFECT: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t6]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[14]
+ EFFECT: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c1t7]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[15]
+ EFFECT: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t0]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[16]
+ EFFECT: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t1]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[17]
+ EFFECT: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t2]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[18]
+ EFFECT: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t3]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[19]
+ EFFECT: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t4]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[20]
+ EFFECT: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t5]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[21]
+ EFFECT: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t6]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[22]
+ EFFECT: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c2t7]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[23]
+ EFFECT: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t0]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[24]
+ EFFECT: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t1]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[25]
+ EFFECT: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t2]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[26]
+ EFFECT: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t3]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[27]
+ EFFECT: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t4]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[28]
+ EFFECT: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t5]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[29]
+ EFFECT: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t6]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[30]
+ EFFECT: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c3t7]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[31]
+ EFFECT: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t0]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[32]
+ EFFECT: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t1]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[33]
+ EFFECT: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t2]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[34]
+ EFFECT: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t3]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[35]
+ EFFECT: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t4]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[36]
+ EFFECT: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t5]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[37]
+ EFFECT: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t6]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[38]
+ EFFECT: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c4t7]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[39]
+ EFFECT: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t0]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[40]
+ EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t1]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[41]
+ EFFECT: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t2]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[42]
+ EFFECT: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t3]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[43]
+ EFFECT: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t4]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[44]
+ EFFECT: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t5]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[45]
+ EFFECT: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t6]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[46]
+ EFFECT: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c5t7]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[47]
+ EFFECT: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t0]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[48]
+ EFFECT: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t1]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t2]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[50]
+ EFFECT: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t3]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[51]
+ EFFECT: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t4]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[52]
+ EFFECT: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t5]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[53]
+ EFFECT: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t6]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[54]
+ EFFECT: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+CAUSE_EFFECT {
+ LABEL=[HAP - Winkle - c6t7]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[55]
+ EFFECT: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,ON] BIT=[7] #winkle=1
+ ELSE: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,OFF] BIT=[7] #winkle=0
+}
+
+
+#### Active ####
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t0]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[8] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[8] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[8] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000000)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t1]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[9] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[9] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[9] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000001)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t2]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[10] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[10] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[10] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000002)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t3]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[11] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[11] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[11] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000003)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t4]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[12] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[12] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[12] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000004)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t5]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[13] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[13] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[13] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000005)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t6]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[14] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[14] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[14] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000006)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c1t7]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[15] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[15] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[15] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x11000007)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t0]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[16] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[16] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[16] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000000)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t1]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[17] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[17] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[17] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000001)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t2]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[18] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[18] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[18] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000002)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t3]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[19] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[19] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[19] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000003)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t4]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[20] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[20] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[20] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000004)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t5]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[21] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[21] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[21] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000005)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t6]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[22] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[22] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[22] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000006)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c2t7]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[23] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[23] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[23] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x12000007)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t0]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[24] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[24] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[24] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000000)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t1]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[25] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[25] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[25] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000001)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t2]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[26] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[26] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[26] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000002)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t3]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[27] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[27] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[27] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000003)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t4]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[28] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[28] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[28] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000004)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t5]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[29] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[29] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[29] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000005)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t6]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[30] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[30] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[30] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000006)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c3t7]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[31] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[31] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[31] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x13000007)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t0]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[32] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[32] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[32] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000000)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t1]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[33] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[33] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[33] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000001)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t2]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[34] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[34] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[34] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000002)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t3]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[35] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[35] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[35] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000003)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t4]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[36] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[36] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[36] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000004)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t5]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[37] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[37] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[37] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000005)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t6]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[38] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[38] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[38] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000006)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c4t7]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[39] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[39] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[39] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x14000007)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t0]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[40] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[40] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[40] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t1]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[41] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[41] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[41] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000001)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t2]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[42] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[42] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[42] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000002)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t3]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[43] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[43] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[43] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000003)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t4]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[44] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[44] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[44] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000004)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t5]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[45] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[45] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[45] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000005)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t6]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[46] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[46] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[46] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000006)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c5t7]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[47] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[47] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[47] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x15000007)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t0]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[48] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[48] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[48] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000000)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t1]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[49] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[49] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[49] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000001)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t2]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[50] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[50] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[50] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000002)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t3]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[51] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[51] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[51] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000003)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t4]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[52] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[52] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[52] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000004)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t5]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[53] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[53] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[53] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000005)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t6]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[54] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[54] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[54] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000006)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+CAUSE_EFFECT {
+ LABEL=[HAP - Active - c6t7]
+ WATCH=[LOGIC(0xFF000030)]
+ WATCH=[LOGIC(0xFF000050)]
+ WATCH=[LOGIC(0xFF000060)]
+ CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,OFF] BIT=[55] #no winkle
+ CAUSE: TARGET=[LOGIC(0xFF000030)] OP=[BIT,OFF] BIT=[55] #no nap
+ CAUSE: TARGET=[LOGIC(0xFF000050)] OP=[BIT,OFF] BIT=[55] #no sleep
+ EFFECT: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,ON] BIT=[4] #active=1
+ ELSE: TARGET=[THREADSTATE(0x16000007)] OP=[BIT,OFF] BIT=[4] #active=0
+}
+
+
+
+#### Sreset ####
+#CAUSE_EFFECT {
+# LABEL=[HAP - Sreset - c5t0]
+# WATCH=[LOGIC(0xFF000050)]
+# CAUSE: TARGET=[LOGIC(0xFF000060)] OP=[BIT,ON] BIT=[40] #c5t0
+# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,ON] BIT=[4] #active=1
+# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[5] #nap=0
+# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[6] #sleep=0
+# EFFECT: TARGET=[THREADSTATE(0x15000000)] OP=[BIT,OFF] BIT=[7] #winkle=0
+#}
+
+##########################################
+# SBE Master Winkle Wakeup
+CAUSE_EFFECT CHIPLETS ex {
+ LABEL=[Master Winkle Wakeup]
+ WATCH=[THREADSTATE(MYCHIPLET,0x0)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x1)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x2)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x3)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x4)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x5)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x6)]
+ WATCH=[THREADSTATE(MYCHIPLET,0x7)]
+ # active=0,nap=0,sleep=0,winkle=1 on all 8 threads
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x1)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x2)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x3)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x4)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x5)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x6)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ CAUSE: TARGET=[THREADSTATE(MYCHIPLET,0x7)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(32,01000000)] MASK=[LITERAL(32,0F000000)]
+ # check that substep_deadman_start program is running in SBE @todo: Hostboot RTC:41412
+ #CAUSE: TARGET=[FSIMBOX(0x1C)] OP=[EQUALTO,BUF,MASK] DATA=[LITERAL(64,0000F012 00000000)] MASK=[LITERAL(64,0000FFFF 00000000)]
+ # Restore LPCR for wake-up options.
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 0)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 1)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 2)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 3)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 4)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 5)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 6)] OP=[BIT,ON] BIT=[49]
+ EFFECT: TARGET=[PROCREG(lpcr, MYCORE, 7)] OP=[BIT,ON] BIT=[49]
+ # Clear Timebase (to simulate core losing state).
+ EFFECT: TARGET=[PROCREG(tb, MYCORE, 0)] OP=[EQUALTO,BUF] DATA=[LITERAL(64,00000000 00000000)]
+ # Send IPI to thread
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 0 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 1 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 2 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 3 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 4 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 5 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 6 )] OP=[MODULECALL]
+ EFFECT: TARGET=[MODULE(interProcessorInterrupt, MYCORE, 7 )] OP=[MODULECALL]
+ EFFECT: TARGET=[THREADSTATE(MYCHIPLET,0x0)] OP=[BIT,OFF] BIT=[7]
+}
+
+#@01 end
OpenPOWER on IntegriCloud