Shop OBEX P1 Docs P2 Docs Learn Events
jazzed mcu Simulator — Parallax Forums

jazzed mcu Simulator

RsadeikaRsadeika Posts: 3,837
edited 2014-05-03 06:33 in Propeller 1
This program is a jazzed creation, which you have to compile using Qt5, in order too see how it works. Not being a PASM programmer, I find this program interesting and I have a few questions.

When I first start the program up, it shows the Simulator, COG tabs across the top, the middle is for program code, and across the bottom you have all of the pin number boxes. Now, according to instructions, when you hit 'Run' it starts the simulator by replacing the middle of the screen with some spots that spiral down, not sure what that is supposed too signify. And all of the pin boxes, at the bottom, start to turn green and then back too its normal state, on and off.

Once you hit stop, the middle of the screen goes back too its default, and now the columns on the left side have code residing there. The first column on the left has location numbers from $000 - $1ef, $1ef = 495, so I guess, the first column is COG ram locations. The next column of interest is labeled 'Instruction' , this is where it becomes interesting.

Since it has been stated some many times that when you boot the Propeller, COG 0 gets loaded with the Spin interpreter, so the code that is now residing in the Simulator, is the Spin interpreter or something else? If it is the Spin interpreter, at what location is the end of the interpreter, and where does the regular program begin? Hopefully other people will add questions as to what this program is all about.

Ray
«134

Comments

  • jazzedjazzed Posts: 11,803
    edited 2014-04-22 10:30
    Hi Ray,

    COG 0 always begins with the spin interpreter. So what you are seeing is the code in ROM location $F004. Right now the ROM code is not shown in the HUB RAM tab.

    The spin program gets loaded one bytecode at a time by the rdbyte instruction at interpreter COG address $009.

    There is no source listing for openspin at the moment, but there is for bstc if you have that. You can keep track of which spin bytecode is being executed if your program is compiled with bstc -ls.

    The black screen with spots spiraling down is reserved for future VGA, TV, or Serial output.
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-22 11:41
    Jazzed, maybe you can take this opportunity to give more detail as to what you envision this program being used for, in other words, what can you do with it?

    Since this is called a simulator, I was thinking, can the PASM toggle P16 program, that is in the Propeller Manual be used as a demo for your program? I am guessing that with your simulator program one should be able to plug in the toggle code and then by running the simulator you should be able to see the pin 16 box at the bottom of the screen toggling on/off, is that a correct assumption for how your simulator program will be used?

    Ray
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-22 12:31
    Ray,

    I found out what you can do with it.....you can play with it for a good couple hours and then realize you've shot half your work day!! :lol:

    Try this PASM code:
     {{ PASMToggle.spin }}
     CON
       _clkmode = xtal1 + pll16x
       _xinfreq = 5_000_000
       
     PUB Main
     {Launch cog to toggle P16 endlessly}
       coginit(0,@Toggle, 0)
     DAT
     {Toggle P16}
                 org 0
     Toggle             mov    dira, Pin
                        mov     Time, cnt
                       add   Time, Delay
     :loop             waitcnt Time, Delay
                       mov   temp, outa
                       xor   temp, Pin
                       mov   outa, temp
                       jmp   #:loop
     
    
     Pin   long    |< 16
     Delay long    80_000_000 / 4
     Time        res 1
     temp        res 1
    

    Cut and paste it into a new file in PropellerIDE, save it, compile it to get a binary and then load it into the mcusimulator. "Run" until P16 starts to blink, then you can stop and step and debug and watch teh PASM code run in COG#0.

    It's a great PASM learning tool. Nothing like having a visual Propeller!!

    {Note to Steve: The program above did not run in the simulator when it just had the "xor outa,Pin" instruction. When I wrapped it with the MOV instructions, it worked fine. I haven't gone further to see if it has to do with OUTA in a Dfield or just some timing quirk. }

    This will really be cool when it has the P2 instruction set......(did I say that out loud???:innocent:)

    Way to GO, Steve (and Dave Hein) - I can see this being very useful and lots of fun!!
  • jazzedjazzed Posts: 11,803
    edited 2014-04-22 12:37
    Rsadeika wrote: »
    Jazzed, maybe you can take this opportunity to give more detail as to what you envision this program being used for, in other words, what can you do with it?

    What is possible today:

    Run any simple Spin, C, or other language programs that blink LED boxes.

    So, yes today build a spin program that toggles P16 with PropellerIDE, load the .binary in the simulator, and run it.

    There are some limits at the moment. For some reason I can't run more complicated programs that use FullDuplexSerial for example. This is a work in progress.


    The vision:

    Run any Propeller (P8x32a or P16x512) program written in any language.

    The user's mouse, keyboard, and display should allow Propeller control and show output on the Run display.

    Add an option to PropellerIDE to run programs in the simulator.

    Provide different MCU modes eventually. That is ....

    P8x32a SPIN in addition to the current PASM debug mode. Simulate the new P16x512 chip in a similar way.
    Add other MCU options like AVR, dsPIC, PIC32, STM32, etc....

    https://code.google.com/p/mcusimulator/

    There have been updates this morning.
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-23 04:53
    I ran the code below through the Simulator, and some following observations:
    When the Simulator flashes pin 15, it does not look visually like there is a one second delay, so it looks like it is flashing much quicker than what I would see with a real life LED. Not sure if this optical illusion for me.

    Looking at the code in the Simulator I was really surprised that all 496 bytes of COG ram, plus ~130 bytes of HUB ram are being used for the blinker.spin program. Now I get a good sense of how precious that COG RAM really is, and it does not take a very large program to use it up. I am scratching my head trying to figure out how you do a balancing act to utilize the COG and HUB RAM, in the most efficient manner.

    I think the Simulator needs a way to print out the code in its neat column format. It would be nice to have the lines of code on paper so you could, using a pencil, connect up the jmp points, bracket up the SUBs, and do other visual things with the lines of code. Just a few thoughts of mine...

    Now all we need is a program where you could check the little pin 15 box, and give some qualifications like 'on one second', 'off one second' and have the Simulator print out the lines of code to accomplish the request. But then if you could do that, then why would you need ASM programmers.:-)

    Ray
    '' blinker.spin
    CON
      _clkmode   = xtal1 + pll16x                           
      _xinfreq   = 5_000_000
    
    OBJ
      misc : "tools" 
      
    '' Main 
    pub main
    
      repeat
        misc.high(15)
        misc.waitMS(1000)
        misc.low(15)
        misc.waitMS(1000)  
    
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-23 05:08
    Rsadeika wrote: »
    Looking at the code in the Simulator I was really surprised that all 496 bytes of COG ram, plus ~130 bytes of HUB ram are being used for the blinker.spin program. Now I get a good sense of how precious that COG RAM really is, and it does not take a very large program to use it up. I am scratching my head trying to figure out how you do a balancing act to utilize the COG and HUB RAM, in the most efficient manner.

    When writing Spin programs, the COG RAM is all spoken for by the Spin interpreter and its data structures. Regardless of the size of your Spin program, the 496 Longs of COG RAM will always be used. Your Spin program (byte code and data) lives in HUB RAM. You don't need to balance between the two because you can only use HUB RAM.

    When you start writing in PASM or creating .cog C code, then you realize how quickly 496 longs can disappear.

    Any of the languages that have byte code VMs or run an interpreter of some sort have highly optimized kernels that use the COG RAM. For the most part, the user's program is pushed out to HUB RAM....where at some point, you realize how precious that 32K of HUB RAM is!

    I see the simulator as a great tool for people learning PASM as well as testing kernels and such,

    Again, excellent stuff, Steve!
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-23 05:47
    When you start writing in PASM or creating .cog C code, then you realize how quickly 496 longs can disappear.
    I am not sure I understand the difference between writing Spin code and PASM code. Either program has to load up the Spin interpreter, correct? Now the .cog C program code, that has to be a completely different animal.

    In my pervious post code listing, when I use the 'step' method to work through the code, I notice that it jumps around within the COG code, but never really gets, or at least shows, that the HUB code is being accessed. So, I guess looking at the COG code, and identifying the Spin interpreter code from your actual Spin program code would be the next step.

    Another observation: looking at the COG code, it sure looks like spaghetti code to me, no visible or identifiable structure what so ever. When you step through the program it becomes very apparent, at least to me, that the program is jumping all over the place, and not necessarily to a SUB and then doing a return. I guess more studying of the code is necessary.

    Yes, this is a very useful and beneficial program, good work jazzed.

    Ray
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-23 06:16
    Rsadeika wrote: »
    I am not sure I understand the difference between writing Spin code and PASM code. Either program has to load up the Spin interpreter, correct? Now the .cog C program code, that has to be a completely different animal.
    Look at my blinker program in post #4 compared to your blinker program. Mine contains 1 line of Spin -> coginit(0,@Toggle, 0) which loads the PASM code starting at Toggle into COG RAM - it overwrites the Spin interpreter when that executes. The rest of my code is actually Propeller machine instructions - 1 instruction per long that is loaded into COG RAM. When PASM program executes, the COG executes each of those instruction and only those instructions.

    In your program, (I don;t have "Tools" so I don't know exactly what it is but each Spin statement in "Pub High" get translated into a series of byte codes when you compile your program, these are loaded into HUB RAM. The interpreter's job is to step through these byte codes and execute them. The interpreter is essentially a virtual machine that has an instruction set made up of the byte codes. Each byte code will cause 10's, 100's of actual Propeller instructions to be executed.

    HUBRAM is the "program memory" for the Spin virtual machine - it can only execute byte codes from HUB RAM; just like COGRAM is the "program memory" for a COG, it can only execute Propeller instructions from COG RAM.
    In my pervious post code listing, when I use the 'step' method to work through the code, I notice that it jumps around within the COG code, but never really gets, or at least shows, that the HUB code is being accessed. So, I guess looking at the COG code, and identifying the Spin interpreter code from your actual Spin program code would be the next step.

    Somewhere in there among the looping, you'll see it reading HUB RAM - this is it fetching byte codes. There are posts detailing how the byte code is layed out in HUB RAM and even what the byte codes are. I don't have any references handy.
    Another observation: looking at the COG code, it sure looks like spaghetti code to me, no visible or identifiable structure what so ever. When you step through the program it becomes very apparent, at least to me, that the program is jumping all over the place, and not necessarily to a SUB and then doing a return. I guess more studying of the code is necessary.
    Looking at assembled and loaded code and making sense of it is an art. It's certainly not easy when someone takes all you variable names and nice labels away - all those numbers just start to look alike!! That's one reason this is such a neat tool. It at least gives you a nice structure to start with. Having a fixed length instruction is also a big help. Some times you are faced with multiple and variable byte length instructions (8/16 bit micros mostly) - if you start decoding instructions at the wrong byte, you quickly get lost if not careful.

    Yes, play and study time is necessary and in the case of Spin (or LMM or CMM, or XMM), you actually have to pieces of code to understand and trace; the kernel code implementing the virtual machine and then the byte code or whatever instructions the VM uses to implement the language you are using.
    [/quote]

    Yes, this is a very useful and beneficial program, good work jazzed.

    Ray[/QUOTE]
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-23 07:02
    When I load and try to run the program below, the Simulator program stops running. So I guess you can say that the below program is crashing the Simulator.

    Ray
    CON
      _clkmode   = xtal1 + pll16x                           
      _xinfreq   = 5_000_000
    
    PUB main
    
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-23 07:37
    What do you expect it to do?

    What do you expect it to do when loaded to real hardware?

    Does it generate any Spin byte codes in HUB RAM? (probably but not much - maybe some sort of "HALT")

    I think it probably does just what is supposed to - runs the PUB (which contains nothing) and quits. I'm guessing it didn't "CRASH".

    Try:

    PUB main
    repeat

    I don't think it gets optimized in any way, so that should at least get you a "repeat" byte code out in HUB RAM, which you can watch the Spin interpreter fetch and execute constantly.
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-23 07:49
    When I load in that small program and then run it, I get a little window that opens and it states that mcusimulator has stopped running, and the actual Simulator program has stopped, meaning that window has closed. What I would expect to happen is, nothing happening, the actual program window would still be open, waiting for a different program to be loaded. Maybe the word "crashed" that I used is a little to strong, lets just say that Simulator program has stopped, and you have to re-start it, I guess that is PC enough.:-)

    Ray
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-23 08:09
    Rsadeika wrote: »
    When I load in that small program and then run it, I get a little window that opens and it states that mcusimulator has stopped running, and the actual Simulator program has stopped, meaning that window has closed. What I would expect to happen is, nothing happening, the actual program window would still be open, waiting for a different program to be loaded. Maybe the word "crashed" that I used is a little to strong, lets just say that Simulator program has stopped, and you have to re-start it, I guess that is PC enough.:-)

    Ray

    When I load it and run it, it does nothing (as expected).

    If I hit stop and then go to debug, I see COG0 running through what I presume to be the Spin interpreter happily executing something. I don't read Spin byte code by sight but I presume that is what it is doing and the byte codes sitting in HUB RAM are valid.

    I get no windows.

    I'm running on a Mac, OSX 10.9 and with a simulator that I built both release and debug versions. I thought I was running the standalone executable I created but I just checked and I am running it from QT. The only output I'm seeing in the QT is HUBRAM address out of range messages every so often.

    I can try the standalone program to see what it does.

    EDIT: OK, it goes "BOOM" when run as a standalone program. When it's an alpha or a beta and Steve wants input and bug reports, I'll worry about what it doesn't do. Now, I'm just having fun with what it does do!!
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-23 08:36
    I am not using the stand alone version, I am running it from Qt Creator. Below is the last four lines that show up in 'Application Output' window, the whole contents would be way too large to upload, I think.

    Ray
    HUBRAM Address out of range: 110400 
    HUBRAM Address out of range: 1802295600 
    HUBRAM Address out of range: 110396 
    E:\Qt5 progs\build-mcusimulator-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\mcusimulator.exe exited with code 255
    
  • jazzedjazzed Posts: 11,803
    edited 2014-04-23 10:46
    I started a reply some time ago. Then hit submit. The forum threw it away ... maybe because books are not allowed ! LOL.

    There are some issues I've been looking at that are causing some of the things you've seen.

    As I said before, it runs "simple" SPIN and C programs fine. You crossed the "simple" threshold when you added an object.
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-23 12:43
    Since using an object takes it out of the simple category, I changed the program so the methods are within the main Spin program. The results are still the same, it seems like the flashing is still way too fast, it does not look like it is anywhere close to one second. Maybe my version of waitcnt(), for the PUB waitms(time), is not working the way it is supposed in the Simulator? It has been working in PropellerIDE as expected.

    Ray
    CON
      _clkmode   = xtal1 + pll16x                           
      _xinfreq   = 5_000_000
    
    '' Main 
    pub main
    
      repeat
        high(15)
        waitMS(1000)
        low(15)
        waitMS(1000)  
    
    PUB waitms(time)
      waitcnt(((80_000_000 / 1000) * time) + cnt)
    
    PUB high(pin)
    
      DIRA[pin] := %1
      OUTA[pin] := 1
    
    PUB low(pin)
    
      DIRA[pin] := %1
      OUTA[pin] := 0
    
    
  • jazzedjazzed Posts: 11,803
    edited 2014-04-23 12:53
    Update your code. hg pull ... hg update.
  • dgatelydgately Posts: 1,630
    edited 2014-04-23 13:16
    Rsadeika wrote: »
    Since using an object takes it out of the simple category, I changed the program so the methods are within the main Spin program. The results are still the same, it seems like the flashing is still way too fast, it does not look like it is anywhere close to one second.

    Tried my normal millisecond wait function, "pause" and got a longer pause (about 3 seconds)...
    CON
      _clkmode   = xtal1 + pll16x                           
      _xinfreq   = 5_000_000
    
      CLK_FREQ = ((_clkmode - xtal1) >> 6) * _xinfreq
      MS_001   = CLK_FREQ / 1_000
      US_001   = CLK_FREQ / 1_000_000
    
    '' Main 
    pub main
    
      repeat
        high(15)
        pause(1000)
        low(15)
        pause(1000)  
    
    PUB pause(ms) | t                                               ' Delay program ms milliseconds
      t := cnt - 1088                                               ' sync with system counter
      repeat (ms #> 0)                                              ' delay must be > 0
        waitcnt(t += MS_001)
    
    PUB high(pin)
    
      DIRA[pin] := %1
      OUTA[pin] := 1
    
    PUB low(pin)
    
      DIRA[pin] := %1
      OUTA[pin] := 0
    
    PUB waitms(time)
      waitcnt(((80_000_000 / 1000) * time) + cnt)
    

    dgately
  • jazzedjazzed Posts: 11,803
    edited 2014-04-23 15:12
    Hmm.

    Sorry for the trouble. I just got home so I couldn't run any of the examples.

    Still working on that other problem ... I pretty sure they are related ;-)
  • jazzedjazzed Posts: 11,803
    edited 2014-04-26 14:32
    Hi,

    The simulator now runs the examples you all posted here. The repository has been updated.

    I won't be looking at the program again for about a week. Any testing would be appreciated though.

    The Run mode should allow you to blink the LED check boxes in real time. Debug mode goes as fast as it can based on Delay as mentioned before.

    I've added a Trace window feature. It records results in Debug mode. You can search for items in the Trace window using CTRL+F (search forward) CTRL+R (search reverse) and F3 (search last word in last direction). Also, if you press CTRL+S in the Trace window it will display Spin bytecode accesses. This will allow following programs with the BSTC list feature.

    To generate a BSTC list file use:
    bstc -L library -ls test.spin
    or
    bstc -L library -l test.spin

    Compile to .binary with:
    bstc -L library -b test.spin

    Yes, I plan to change the command toolbar again probably by making separate tool bars for different categories.

    Let me know if you have any problems.
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-27 06:28
    I changed the program below to be like what is shown in the manual, and when I run it in the Simulator, the LED seems to be flickering somewhat erratically. The other blinker examples, that were previously used, now seem to be running as expected, that includes the one that uses an object. Also the bare minimum Spin example seems to working as expected.

    Ray
    CON
      _clkmode   = xtal1 + pll16x                           
      _xinfreq   = 5_000_000
    
    
    PUB Main
    
      cognew(@Toggle, 0)
    
    DAT
    {Toggle P16}
     org 0 
    Toggle mov dira, Pin
           mov Time, cnt 
           'add Time, Delay
           add Time,#9
    :loop waitcnt Time, Delay 
           'mov temp, outa 
           'xor temp, Pin 
           'mov outa, temp
           xor outa,Pin
           jmp #:loop 
    
    Pin long |< 16 
    'Delay long 80_000_000 / 4
    Delay long 6000000 
    Time res 1 
    'temp res 1
    
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-27 07:15
    Yes, this is what I originally saw with the example. Having OUTA in the d field wasn't working properly but if you wrapped the XOR with the MOV instructions, it worked fine.
  • jazzedjazzed Posts: 11,803
    edited 2014-04-27 07:24
    Both examples work fine for me now using the Run feature.

    Can you take a video with CamStudio ?
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-27 08:01
    At first I ran the program that mindrobots had, it ran erratically for me. So what I did was I changed the code back to what is shown in the manual, to see if there would be a difference, it ran somewhat better but still erratically. For me, both versions are running erratically.

    I am still using the Qt Creator run command to start up the Simulator program. I use the 'hg clone ...' method to get the latest source, not sure if that is making a difference. I am doing all this in a real machine installation of Windows 7.

    Ray
  • jazzedjazzed Posts: 11,803
    edited 2014-04-27 08:24
    Hi Ray,

    The erratic blinking you see may be an optical illusion because the blink rate in your program is 75ms ... not everyone can perceive that rate reliably. One theory is that no one can perceive a rate under 50ms reliably for example - old TVs took advantage of this

    Oh, it occurs to me that not having a repeat at the end of your program may be causing problems. The interpreter executes all over the place after the cog starts. Having the repeat makes it behave much better (see Spin Trace w/Repeat below).

    Can you copy paste your Debug Trace window here with the example you gave?

    Two runs would be useful:

    Spin Trace:
    1. Load the binary
    2. Click Trace to see the window
    3. Press CTRL+S once in the trace window for Spin trace.
    4. Click Debug to start the program.

    Full Trace (assuming Trace is open from above):
    1. Load the binary
    2. Press CTRL+S to turn off Spin trace.
    3. Click Debug to start the program
    Spin Trace output:
           465 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 80fc0700 SRC  $1ee 00000038 C 1 Z 0 RESULT $034 <<SPIN>>
           729 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000034 SRC  $1ee 00000039 C 0 Z 0 RESULT $0c7 <<SPIN>>
           953 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 e4fc0002 SRC  $1ee 0000003a C 0 Z 0 RESULT $008 <<SPIN>>
          1353 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000003 SRC  $1ee 0000003b C 0 Z 0 RESULT $035 <<SPIN>>
          1617 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000035 SRC  $1ee 0000003c C 0 Z 0 RESULT $02c <<SPIN>>
      66002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000002c SRC  $1ee 0000003d C 0 Z 0 RESULT $032 <<SPIN>>
     174002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000032 SRC  $1ee 0000fff9 C 1 Z 1 RESULT $000 <<SPIN>>
     276002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0000fffa C 0 Z 1 RESULT $000 <<SPIN>>
     378002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0000fffb C 0 Z 1 RESULT $000 <<SPIN>>
     480002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0000fffc C 0 Z 1 RESULT $000 <<SPIN>>
     582002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0000fffd C 0 Z 1 RESULT $000 <<SPIN>>
     684002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0000fffe C 0 Z 1 RESULT $000 <<SPIN>>
     786002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0000ffff C 0 Z 1 RESULT $000 <<SPIN>>
     888002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 00010000 C 0 Z 1 RESULT $000 <<SPIN>>
     990002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 00010001 C 0 Z 0 RESULT $0b4 <<SPIN>>
    1056002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 00000008 SRC  $1ee 00010002 C 0 Z 0 RESULT $0c4 <<SPIN>>
    1152002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000000 SRC  $1ee 00010004 C 0 Z 0 RESULT $06f <<SPIN>>
    1230002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000003 SRC  $1ee 00010005 C 0 Z 0 RESULT $0b1 <<SPIN>>
    1356002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000001 SRC  $1ee 00010006 C 0 Z 0 RESULT $010 <<SPIN>>
    1494002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000010 SRC  $1ee 00010007 C 1 Z 1 RESULT $000 <<SPIN>>
    1596002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 00010008 C 0 Z 0 RESULT $040 <<SPIN>>
    1674002058 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000000 SRC  $1ee 00010009 C 0 Z 1 RESULT $000 <<SPIN>>
    1776002058 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0001000a C 0 Z 0 RESULT $048 <<SPIN>>
    1860002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000000 SRC  $1ee 0001000b C 0 Z 1 RESULT $000 <<SPIN>>
    1962002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 0001000c C 0 Z 0 RESULT $038 <<SPIN>>
    2034002058 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000000 SRC  $1ee 0001000e C 0 Z 0 RESULT $04c <<SPIN>>
    2118002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000000 SRC  $1ee 0001000f C 0 Z 1 RESULT $000 <<SPIN>>
    2220002042 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000fffc SRC  $1ee 00010010 C 0 Z 0 RESULT $030 <<SPIN>>
    
    Full Trace output:
             9 COG 0 PC 000  a0fc0005                   MOV WC 0 WZ 0 WR 1 DST 000 a0fc0005 SRC #$005          C 0 Z 0 RESULT $005
            17 COG 0 PC 001  a0bc03f0                   MOV WC 0 WZ 0 WR 1 DST 001 a0bc03f0 SRC  $1f0 00000004 C 0 Z 0 RESULT $004
            25 COG 0 PC 002  80fc0202                   ADD WC 0 WZ 0 WR 1 DST 001 00000004 SRC #$002          C 0 Z 0 RESULT $006
            65 COG 0 PC 003  04bfd601                RDWORD WC 0 WZ 0 WR 1 DST 1eb 00000000 SRC  $001 00000006 C 0 Z 0 RESULT $010
            73 COG 0 PC 004  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfd601 SRC #$100          C 0 Z 0 RESULT $4bfd701
            81 COG 0 PC 005  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfd701 SRC #$100          C 0 Z 0 RESULT $4bfd801
            89 COG 0 PC 006  e4fc0002                  DJNZ WC 0 WZ 0 WR 1 DST 000 00000005 SRC #$002          C 0 Z 0 RESULT $004
            97 COG 0 PC 002  80fc0202                   ADD WC 0 WZ 0 WR 1 DST 001 00000006 SRC #$002          C 0 Z 0 RESULT $008
           137 COG 0 PC 003  04bfd801                RDWORD WC 0 WZ 0 WR 1 DST 1ec 00000000 SRC  $001 00000008 C 0 Z 0 RESULT $040
           145 COG 0 PC 004  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfd801 SRC #$100          C 0 Z 0 RESULT $4bfd901
           153 COG 0 PC 005  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfd901 SRC #$100          C 0 Z 0 RESULT $4bfda01
           161 COG 0 PC 006  e4fc0002                  DJNZ WC 0 WZ 0 WR 1 DST 000 00000004 SRC #$002          C 0 Z 0 RESULT $003
           169 COG 0 PC 002  80fc0202                   ADD WC 0 WZ 0 WR 1 DST 001 00000008 SRC #$002          C 0 Z 0 RESULT $00a
           209 COG 0 PC 003  04bfda01                RDWORD WC 0 WZ 0 WR 1 DST 1ed 00000000 SRC  $001 0000000a C 0 Z 0 RESULT $048
           217 COG 0 PC 004  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfda01 SRC #$100          C 0 Z 0 RESULT $4bfdb01
           225 COG 0 PC 005  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfdb01 SRC #$100          C 0 Z 0 RESULT $4bfdc01
           233 COG 0 PC 006  e4fc0002                  DJNZ WC 0 WZ 0 WR 1 DST 000 00000003 SRC #$002          C 0 Z 0 RESULT $002
           241 COG 0 PC 002  80fc0202                   ADD WC 0 WZ 0 WR 1 DST 001 0000000a SRC #$002          C 0 Z 0 RESULT $00c
           281 COG 0 PC 003  04bfdc01                RDWORD WC 0 WZ 0 WR 1 DST 1ee 00000000 SRC  $001 0000000c C 0 Z 0 RESULT $038
           289 COG 0 PC 004  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfdc01 SRC #$100          C 0 Z 0 RESULT $4bfdd01
           297 COG 0 PC 005  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfdd01 SRC #$100          C 0 Z 0 RESULT $4bfde01
           305 COG 0 PC 006  e4fc0002                  DJNZ WC 0 WZ 0 WR 1 DST 000 00000002 SRC #$002          C 0 Z 0 RESULT $001
           313 COG 0 PC 002  80fc0202                   ADD WC 0 WZ 0 WR 1 DST 001 0000000c SRC #$002          C 0 Z 0 RESULT $00e
           353 COG 0 PC 003  04bfde01                RDWORD WC 0 WZ 0 WR 1 DST 1ef 00000000 SRC  $001 0000000e C 0 Z 0 RESULT $04c
           361 COG 0 PC 004  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfde01 SRC #$100          C 0 Z 0 RESULT $4bfdf01
           369 COG 0 PC 005  80fc0700                   ADD WC 0 WZ 0 WR 1 DST 003 04bfdf01 SRC #$100          C 0 Z 0 RESULT $4bfe001
           377 COG 0 PC 006  e4fc0002                  DJNZ WC 0 WZ 0 WR 1 DST 000 00000001 SRC #$002          C 0 Z 1 RESULT $000
           417 COG 0 PC 007  0cffd201                 COGID WC 0 WZ 0 WR 1 DST 1e9 00000000 SRC #$001          C 0 Z 1 RESULT $000
           425 COG 0 PC 008  a0fc0000                   MOV WC 0 WZ 0 WR 1 DST 000 00000000 SRC #$000          C 0 Z 1 RESULT $000
           465 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 80fc0700 SRC  $1ee 00000038 C 0 Z 0 RESULT $034 <<SPIN>>
           473 COG 0 PC 00a  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 00000038 SRC #$001          C 0 Z 0 RESULT $039
           481 COG 0 PC 00b  857c0a40                   CMP WC 1 WZ 0 WR 0 DST 005 00000034 SRC #$040          C 1 Z 0 RESULT $000
           497 COG 0 PC 00d  a0bc0605                   MOV WC 0 WZ 0 WR 1 DST 003 04bfe001 SRC  $005 00000034 C 0 Z 0 RESULT $034
           505 COG 0 PC 00e  20fc0604                   ROR WC 0 WZ 0 WR 1 DST 003 00000034 SRC #$004          C 0 Z 0 RESULT $40000003
           513 COG 0 PC 00f  80fc061a                   ADD WC 0 WZ 0 WR 1 DST 003 40000003 SRC #$01a          C 0 Z 0 RESULT $4000001d
           521 COG 0 PC 010  50bc2603                  MOVS WC 0 WZ 0 WR 1 DST 013 a0bc081a SRC  $003 4000001d C 0 Z 0 RESULT $a0bc081d
           529 COG 0 PC 011  24fc0602                   ROL WC 0 WZ 0 WR 1 DST 003 4000001d SRC #$002          C 0 Z 0 RESULT $075
           537 COG 0 PC 012  2cfc0603                   SHL WC 0 WZ 0 WR 1 DST 003 00000075 SRC #$003          C 0 Z 0 RESULT $3a8
           545 COG 0 PC 013  a0bc081d                   MOV WC 0 WZ 0 WR 1 DST 004 80fc0700 SRC  $01d d6cfc4b4 C 1 Z 0 RESULT $d6cfc4b4
           553 COG 0 PC 014  28bc0803                   SHR WC 0 WZ 0 WR 1 DST 004 d6cfc4b4 SRC  $003 000003a8 C 0 Z 0 RESULT $d6cfc4
           561 COG 0 PC 015  60fc08ff                   AND WC 0 WZ 0 WR 1 DST 004 00d6cfc4 SRC #$0ff          C 1 Z 0 RESULT $0c4
           569 COG 0 PC 016  50bc3204                  MOVS WC 0 WZ 0 WR 1 DST 019 5c7c0000 SRC  $004 000000c4 C 0 Z 0 RESULT $5c7c00c4
           577 COG 0 PC 017  627c0a01                  TEST WC 0 WZ 1 WR 0 DST 005 00000034 SRC #$001          C 0 Z 1 RESULT $000
           585 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 00000034 SRC #$002          C 0 Z 1 RESULT $000
           593 COG 0 PC 019  5c7c00c4                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$0c4          C 1 Z 0 RESULT $000
           601 COG 0 PC 0c4  a0bc0005                   MOV WC 0 WZ 0 WR 1 DST 000 00000000 SRC  $005 00000034 C 0 Z 0 RESULT $034
           609 COG 0 PC 0c5  84fc0035                   SUB WC 0 WZ 0 WR 1 DST 000 00000034 SRC #$035          C 1 Z 0 RESULT $ffffffff
           617 COG 0 PC 0c6  5c6c0158   if_nc_or_z      JMP WC 0 WZ 0 WR 0 DST 000 ffffffff SRC #$158          C 0 Z 0 RESULT $000
           657 COG 0 PC 158  083c01ef                WRLONG WC 0 WZ 0 WR 0 DST 000 ffffffff SRC  $1ef 0000004c C 0 Z 1 RESULT $000
           665 COG 0 PC 159  80ffde04                   ADD WC 0 WZ 0 WR 1 DST 1ef 0000004c SRC #$004          C 0 Z 0 RESULT $050
           673 COG 0 PC 15a  617c0c40                  TEST WC 1 WZ 0 WR 0 DST 006 e4fc0002 SRC #$040          C 0 Z 1 RESULT $000
           681 COG 0 PC 15b  5c7c0008                   JMP WC 0 WZ 0 WR 0 DST 000 ffffffff SRC #$008          C 0 Z 0 RESULT $000
           689 COG 0 PC 008  a0fc0000                   MOV WC 0 WZ 0 WR 1 DST 000 ffffffff SRC #$000          C 0 Z 1 RESULT $000
           729 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000034 SRC  $1ee 00000039 C 0 Z 0 RESULT $0c7 <<SPIN>>
           737 COG 0 PC 00a  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 00000039 SRC #$001          C 0 Z 0 RESULT $03a
           745 COG 0 PC 00b  857c0a40                   CMP WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$040          C 0 Z 0 RESULT $000
           753 COG 0 PC 00c  5c4c00ee        if_nc      JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$0ee          C 1 Z 0 RESULT $000
           761 COG 0 PC 0ee  857c0a80                   CMP WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$080          C 0 Z 0 RESULT $000
           777 COG 0 PC 0f0  857c0ae0                   CMP WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$0e0          C 1 Z 0 RESULT $000
           785 COG 0 PC 0f1  5c700162         if_c      JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$162          C 1 Z 0 RESULT $000
           793 COG 0 PC 162  a0bc0205                   MOV WC 0 WZ 0 WR 1 DST 001 0000000e SRC  $005 000000c7 C 0 Z 0 RESULT $0c7
           801 COG 0 PC 163  28fc0205                   SHR WC 0 WZ 0 WR 1 DST 001 000000c7 SRC #$005          C 1 Z 0 RESULT $006
           809 COG 0 PC 164  60fc0203                   AND WC 0 WZ 0 WR 1 DST 001 00000006 SRC #$003          C 1 Z 0 RESULT $002
           817 COG 0 PC 165  617c0a10                  TEST WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$010          C 0 Z 1 RESULT $000
           841 COG 0 PC 168  617c0a08                  TEST WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$008          C 0 Z 1 RESULT $000
           849 COG 0 PC 169  627c0a04                  TEST WC 0 WZ 1 WR 0 DST 005 000000c7 SRC #$004          C 1 Z 0 RESULT $000
           905 COG 0 PC 16c  58f7a451   if_c_or_nz     MOVI WC 0 WZ 0 WR 1 DST 1d2 38fc0c19 SRC #$051          C 0 Z 0 RESULT $28fc0c19
           913 COG 0 PC 16d  5cf433ce   if_c_or_nz     CALL WC 0 WZ 0 WR 1 DST 019 5c7c00c4 SRC #$1ce          C 0 Z 0 RESULT $5c7c016e
           953 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 e4fc0002 SRC  $1ee 0000003a C 0 Z 0 RESULT $008 <<SPIN>>
           961 COG 0 PC 1cf  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 0000003a SRC #$001          C 0 Z 0 RESULT $03b
           969 COG 0 PC 1d0  617c0c80                  TEST WC 1 WZ 0 WR 0 DST 006 00000008 SRC #$080          C 0 Z 1 RESULT $000
           977 COG 0 PC 1d1  2cfc0c19                   SHL WC 0 WZ 0 WR 1 DST 006 00000008 SRC #$019          C 0 Z 0 RESULT $10000000
           985 COG 0 PC 1d2  28fc0c19                   SHR WC 0 WZ 0 WR 1 DST 006 10000000 SRC #$019          C 0 Z 0 RESULT $008
          1057 COG 0 PC 1d7  5c7c0018                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$018          C 1 Z 0 RESULT $000
          1065 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$002          C 1 Z 0 RESULT $000
          1073 COG 0 PC 019  5c7c016e                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$16e          C 1 Z 0 RESULT $000
          1081 COG 0 PC 16e  617c0a08                  TEST WC 1 WZ 0 WR 0 DST 005 000000c7 SRC #$008          C 0 Z 1 RESULT $000
          1089 COG 0 PC 16f  a0b40e06   if_c_or_nz      MOV WC 0 WZ 0 WR 1 DST 007 0cffd201 SRC  $006 00000008 C 0 Z 0 RESULT $008
          1097 COG 0 PC 170  80bc0e00                   ADD WC 0 WZ 0 WR 1 DST 007 00000008 SRC  $000 00000000 C 0 Z 0 RESULT $008
          1105 COG 0 PC 171  80840feb if_nc_and_nz      ADD WC 0 WZ 0 WR 1 DST 007 00000008 SRC  $1eb 00000010 C 0 Z 0 RESULT $018
          1129 COG 0 PC 174  2cfc0203                   SHL WC 0 WZ 0 WR 1 DST 001 00000002 SRC #$003          C 0 Z 0 RESULT $010
          1137 COG 0 PC 175  58bf7001                  MOVI WC 0 WZ 0 WR 1 DST 1b8 08280007 SRC  $001 00000010 C 0 Z 0 RESULT $8280007
          1145 COG 0 PC 176  68fc0201                    OR WC 0 WZ 0 WR 1 DST 001 00000010 SRC #$001          C 0 Z 0 RESULT $011
          1153 COG 0 PC 177  58bf8c01                  MOVI WC 0 WZ 0 WR 1 DST 1c6 08a80007 SRC  $001 00000011 C 0 Z 0 RESULT $8a80007
          1161 COG 0 PC 178  60fc0a03                   AND WC 0 WZ 0 WR 1 DST 005 000000c7 SRC #$003          C 0 Z 0 RESULT $003
          1169 COG 0 PC 179  5cfc3217                  CALL WC 0 WZ 0 WR 1 DST 019 5c7c016e SRC #$017          C 0 Z 0 RESULT $5c7c017a
          1177 COG 0 PC 017  627c0a01                  TEST WC 0 WZ 1 WR 0 DST 005 00000003 SRC #$001          C 1 Z 0 RESULT $000
          1185 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 00000003 SRC #$002          C 1 Z 0 RESULT $000
          1193 COG 0 PC 019  5c7c017a                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$17a          C 1 Z 0 RESULT $000
          1225 COG 0 PC 17d  a0900007  if_c_and_nz      MOV WC 0 WZ 0 WR 1 DST 000 00000000 SRC  $007 00000018 C 0 Z 0 RESULT $018
          1233 COG 0 PC 17e  60900085  if_c_and_nz      AND WC 0 WZ 0 WR 1 DST 000 00000018 SRC  $085 0000ffff C 0 Z 0 RESULT $018
          1241 COG 0 PC 17f  5c500158  if_c_and_nz      JMP WC 0 WZ 0 WR 0 DST 000 00000018 SRC #$158          C 1 Z 0 RESULT $000
          1281 COG 0 PC 158  083c01ef                WRLONG WC 0 WZ 0 WR 0 DST 000 00000018 SRC  $1ef 00000050 C 1 Z 0 RESULT $000
          1289 COG 0 PC 159  80ffde04                   ADD WC 0 WZ 0 WR 1 DST 1ef 00000050 SRC #$004          C 0 Z 0 RESULT $054
          1297 COG 0 PC 15a  617c0c40                  TEST WC 1 WZ 0 WR 0 DST 006 00000008 SRC #$040          C 0 Z 1 RESULT $000
          1305 COG 0 PC 15b  5c7c0008                   JMP WC 0 WZ 0 WR 0 DST 000 00000018 SRC #$008          C 0 Z 0 RESULT $000
          1313 COG 0 PC 008  a0fc0000                   MOV WC 0 WZ 0 WR 1 DST 000 00000018 SRC #$000          C 0 Z 1 RESULT $000
          1353 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000003 SRC  $1ee 0000003b C 0 Z 0 RESULT $035 <<SPIN>>
          1361 COG 0 PC 00a  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 0000003b SRC #$001          C 0 Z 0 RESULT $03c
          1369 COG 0 PC 00b  857c0a40                   CMP WC 1 WZ 0 WR 0 DST 005 00000035 SRC #$040          C 1 Z 0 RESULT $000
          1385 COG 0 PC 00d  a0bc0605                   MOV WC 0 WZ 0 WR 1 DST 003 000003a8 SRC  $005 00000035 C 0 Z 0 RESULT $035
          1393 COG 0 PC 00e  20fc0604                   ROR WC 0 WZ 0 WR 1 DST 003 00000035 SRC #$004          C 1 Z 0 RESULT $50000003
          1401 COG 0 PC 00f  80fc061a                   ADD WC 0 WZ 0 WR 1 DST 003 50000003 SRC #$01a          C 0 Z 0 RESULT $5000001d
          1409 COG 0 PC 010  50bc2603                  MOVS WC 0 WZ 0 WR 1 DST 013 a0bc081d SRC  $003 5000001d C 0 Z 0 RESULT $a0bc081d
          1417 COG 0 PC 011  24fc0602                   ROL WC 0 WZ 0 WR 1 DST 003 5000001d SRC #$002          C 0 Z 0 RESULT $40000075
          1425 COG 0 PC 012  2cfc0603                   SHL WC 0 WZ 0 WR 1 DST 003 40000075 SRC #$003          C 0 Z 0 RESULT $3a8
          1433 COG 0 PC 013  a0bc081d                   MOV WC 0 WZ 0 WR 1 DST 004 000000c4 SRC  $01d d6cfc4b4 C 1 Z 0 RESULT $d6cfc4b4
          1441 COG 0 PC 014  28bc0803                   SHR WC 0 WZ 0 WR 1 DST 004 d6cfc4b4 SRC  $003 000003a8 C 0 Z 0 RESULT $d6cfc4
          1449 COG 0 PC 015  60fc08ff                   AND WC 0 WZ 0 WR 1 DST 004 00d6cfc4 SRC #$0ff          C 1 Z 0 RESULT $0c4
          1457 COG 0 PC 016  50bc3204                  MOVS WC 0 WZ 0 WR 1 DST 019 5c7c017a SRC  $004 000000c4 C 0 Z 0 RESULT $5c7c00c4
          1465 COG 0 PC 017  627c0a01                  TEST WC 0 WZ 1 WR 0 DST 005 00000035 SRC #$001          C 1 Z 0 RESULT $000
          1473 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 00000035 SRC #$002          C 0 Z 1 RESULT $000
          1481 COG 0 PC 019  5c7c00c4                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$0c4          C 1 Z 0 RESULT $000
          1489 COG 0 PC 0c4  a0bc0005                   MOV WC 0 WZ 0 WR 1 DST 000 00000000 SRC  $005 00000035 C 0 Z 0 RESULT $035
          1497 COG 0 PC 0c5  84fc0035                   SUB WC 0 WZ 0 WR 1 DST 000 00000035 SRC #$035          C 0 Z 1 RESULT $000
          1505 COG 0 PC 0c6  5c6c0158   if_nc_or_z      JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$158          C 1 Z 0 RESULT $000
          1545 COG 0 PC 158  083c01ef                WRLONG WC 0 WZ 0 WR 0 DST 000 00000000 SRC  $1ef 00000054 C 0 Z 0 RESULT $000
          1553 COG 0 PC 159  80ffde04                   ADD WC 0 WZ 0 WR 1 DST 1ef 00000054 SRC #$004          C 0 Z 0 RESULT $058
          1561 COG 0 PC 15a  617c0c40                  TEST WC 1 WZ 0 WR 0 DST 006 00000008 SRC #$040          C 0 Z 1 RESULT $000
          1569 COG 0 PC 15b  5c7c0008                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$008          C 1 Z 0 RESULT $000
          1577 COG 0 PC 008  a0fc0000                   MOV WC 0 WZ 0 WR 1 DST 000 00000000 SRC #$000          C 0 Z 1 RESULT $000
          1617 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000035 SRC  $1ee 0000003c C 0 Z 0 RESULT $02c <<SPIN>>
          1625 COG 0 PC 00a  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 0000003c SRC #$001          C 0 Z 0 RESULT $03d
          1633 COG 0 PC 00b  857c0a40                   CMP WC 1 WZ 0 WR 0 DST 005 0000002c SRC #$040          C 1 Z 0 RESULT $000
          1649 COG 0 PC 00d  a0bc0605                   MOV WC 0 WZ 0 WR 1 DST 003 000003a8 SRC  $005 0000002c C 0 Z 0 RESULT $02c
          1657 COG 0 PC 00e  20fc0604                   ROR WC 0 WZ 0 WR 1 DST 003 0000002c SRC #$004          C 0 Z 0 RESULT $c0000002
          1665 COG 0 PC 00f  80fc061a                   ADD WC 0 WZ 0 WR 1 DST 003 c0000002 SRC #$01a          C 0 Z 0 RESULT $c000001c
          1673 COG 0 PC 010  50bc2603                  MOVS WC 0 WZ 0 WR 1 DST 013 a0bc081d SRC  $003 c000001c C 1 Z 0 RESULT $a0bc081c
          1681 COG 0 PC 011  24fc0602                   ROL WC 0 WZ 0 WR 1 DST 003 c000001c SRC #$002          C 1 Z 0 RESULT $073
          1689 COG 0 PC 012  2cfc0603                   SHL WC 0 WZ 0 WR 1 DST 003 00000073 SRC #$003          C 0 Z 0 RESULT $398
          1697 COG 0 PC 013  a0bc081c                   MOV WC 0 WZ 0 WR 1 DST 004 000000c4 SRC  $01c a1a19a91 C 1 Z 0 RESULT $a1a19a91
          1705 COG 0 PC 014  28bc0803                   SHR WC 0 WZ 0 WR 1 DST 004 a1a19a91 SRC  $003 00000398 C 1 Z 0 RESULT $0a1
          1713 COG 0 PC 015  60fc08ff                   AND WC 0 WZ 0 WR 1 DST 004 000000a1 SRC #$0ff          C 1 Z 0 RESULT $0a1
          1721 COG 0 PC 016  50bc3204                  MOVS WC 0 WZ 0 WR 1 DST 019 5c7c00c4 SRC  $004 000000a1 C 0 Z 0 RESULT $5c7c00a1
          1729 COG 0 PC 017  627c0a01                  TEST WC 0 WZ 1 WR 0 DST 005 0000002c SRC #$001          C 0 Z 1 RESULT $000
          1737 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 0000002c SRC #$002          C 0 Z 1 RESULT $000
          1745 COG 0 PC 019  5c7c00a1                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$0a1          C 1 Z 0 RESULT $000
          1761 COG 0 PC 0a2  5cebbdd8         if_z     CALL WC 0 WZ 0 WR 1 DST 1de 5c7c0000 SRC #$1d8          C 0 Z 0 RESULT $5c7c00a3
          1769 COG 0 PC 1d8  84ffde04                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000058 SRC #$004          C 0 Z 0 RESULT $054
          1809 COG 0 PC 1d9  08bc05ef                RDLONG WC 0 WZ 0 WR 1 DST 002 80fc0202 SRC  $1ef 00000054 C 0 Z 1 RESULT $000
          1817 COG 0 PC 1da  84ffde04                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000054 SRC #$004          C 0 Z 0 RESULT $050
          1857 COG 0 PC 1db  08bc03ef                RDLONG WC 0 WZ 0 WR 1 DST 001 00000011 SRC  $1ef 00000050 C 0 Z 0 RESULT $018
          1865 COG 0 PC 1dc  84ffde04                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000050 SRC #$004          C 0 Z 0 RESULT $04c
          1905 COG 0 PC 1dd  08bc01ef                RDLONG WC 0 WZ 0 WR 1 DST 000 00000000 SRC  $1ef 0000004c C 0 Z 0 RESULT $ffffffff
          1913 COG 0 PC 1de  5c7c00a3                   JMP WC 0 WZ 0 WR 0 DST 000 ffffffff SRC #$0a3          C 0 Z 0 RESULT $000
          1921 COG 0 PC 0a3  60a80538         if_z      AND WC 0 WZ 0 WR 1 DST 002 00000000 SRC  $138 0000fffc C 0 Z 1 RESULT $000
          1929 COG 0 PC 0a4  2ce80410         if_z      SHL WC 0 WZ 0 WR 1 DST 002 00000000 SRC #$010          C 0 Z 1 RESULT $000
          1937 COG 0 PC 0a5  60a80338         if_z      AND WC 0 WZ 0 WR 1 DST 001 00000018 SRC  $138 0000fffc C 0 Z 0 RESULT $018
          1945 COG 0 PC 0a6  2ce80202         if_z      SHL WC 0 WZ 0 WR 1 DST 001 00000018 SRC #$002          C 0 Z 0 RESULT $060
          1953 COG 0 PC 0a7  68a80202         if_z       OR WC 0 WZ 0 WR 1 DST 001 00000060 SRC  $002 00000000 C 0 Z 0 RESULT $060
          1961 COG 0 PC 0a8  4ce80008         if_z      MAX WC 0 WZ 0 WR 1 DST 000 ffffffff SRC #$008          C 0 Z 0 RESULT $008
          1969 COG 0 PC 0a9  68a80001         if_z       OR WC 0 WZ 0 WR 1 DST 000 00000008 SRC  $001 00000060 C 1 Z 0 RESULT $068
          2018 COG 1 PC 000  a0bfec06                   MOV WC 0 WZ 0 WR 1 DST 1f6 00000000 SRC  $006 00010000 C 0 Z 0 RESULT $10000
          2026 COG 1 PC 001  a0bc11f1                   MOV WC 0 WZ 0 WR 1 DST 008 3508c734 SRC  $1f1 000007ea C 0 Z 0 RESULT $7ea
          2034 COG 1 PC 002  80fc1009                   ADD WC 0 WZ 0 WR 1 DST 008 000007ea SRC #$009          C 0 Z 0 RESULT $7f3
          2042 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 000007f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $5b9573
          2050 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
          2058 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
       6002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 005b9573 SRC  $007 005b8d80 C 0 Z 0 RESULT $b722f3
       6002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
       6002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      12002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 00b722f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $112b073
      12002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      12002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      18002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0112b073 SRC  $007 005b8d80 C 0 Z 0 RESULT $16e3df3
      18002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      18002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      24002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 016e3df3 SRC  $007 005b8d80 C 0 Z 0 RESULT $1c9cb73
      24002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      24002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      30002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 01c9cb73 SRC  $007 005b8d80 C 0 Z 0 RESULT $22558f3
      30002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      30002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      36002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 022558f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $280e673
      36002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      36002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      42002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0280e673 SRC  $007 005b8d80 C 0 Z 0 RESULT $2dc73f3
      42002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      42002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      48002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 02dc73f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $3380173
      48002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      48002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      54002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 03380173 SRC  $007 005b8d80 C 0 Z 0 RESULT $3938ef3
      54002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      54002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      60002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 03938ef3 SRC  $007 005b8d80 C 0 Z 0 RESULT $3ef1c73
      60002042 COG 0 PC 008  a0fc0000                   MOV WC 0 WZ 0 WR 1 DST 000 00000068 SRC #$000          C 0 Z 1 RESULT $000
      60002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      60002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      66002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 03ef1c73 SRC  $007 005b8d80 C 0 Z 0 RESULT $44aa9f3
      66002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      66002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000002c SRC  $1ee 0000003d C 0 Z 0 RESULT $032 <<SPIN>>
      66002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      66002058 COG 0 PC 00a  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 0000003d SRC #$001          C 0 Z 0 RESULT $03e
      72002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 044aa9f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $4a63773
      72002042 COG 0 PC 00b  857c0a40                   CMP WC 1 WZ 0 WR 0 DST 005 00000032 SRC #$040          C 1 Z 0 RESULT $000
      72002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      72002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      72002058 COG 0 PC 00d  a0bc0605                   MOV WC 0 WZ 0 WR 1 DST 003 00000398 SRC  $005 00000032 C 0 Z 0 RESULT $032
      78002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 04a63773 SRC  $007 005b8d80 C 0 Z 0 RESULT $501c4f3
      78002042 COG 0 PC 00e  20fc0604                   ROR WC 0 WZ 0 WR 1 DST 003 00000032 SRC #$004          C 0 Z 0 RESULT $20000003
      78002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      78002050 COG 0 PC 00f  80fc061a                   ADD WC 0 WZ 0 WR 1 DST 003 20000003 SRC #$01a          C 0 Z 0 RESULT $2000001d
      78002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      78002058 COG 0 PC 010  50bc2603                  MOVS WC 0 WZ 0 WR 1 DST 013 a0bc081c SRC  $003 2000001d C 0 Z 0 RESULT $a0bc081d
      84002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0501c4f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $55d5273
      84002042 COG 0 PC 011  24fc0602                   ROL WC 0 WZ 0 WR 1 DST 003 2000001d SRC #$002          C 0 Z 0 RESULT $80000074
      84002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      84002050 COG 0 PC 012  2cfc0603                   SHL WC 0 WZ 0 WR 1 DST 003 80000074 SRC #$003          C 1 Z 0 RESULT $3a0
      84002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      84002058 COG 0 PC 013  a0bc081d                   MOV WC 0 WZ 0 WR 1 DST 004 000000a1 SRC  $01d d6cfc4b4 C 1 Z 0 RESULT $d6cfc4b4
      90002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 055d5273 SRC  $007 005b8d80 C 0 Z 0 RESULT $5b8dff3
      90002042 COG 0 PC 014  28bc0803                   SHR WC 0 WZ 0 WR 1 DST 004 d6cfc4b4 SRC  $003 000003a0 C 0 Z 0 RESULT $d6cfc4b4
      90002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
      90002050 COG 0 PC 015  60fc08ff                   AND WC 0 WZ 0 WR 1 DST 004 d6cfc4b4 SRC #$0ff          C 0 Z 0 RESULT $0b4
      90002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      90002058 COG 0 PC 016  50bc3204                  MOVS WC 0 WZ 0 WR 1 DST 019 5c7c00a1 SRC  $004 000000b4 C 0 Z 0 RESULT $5c7c00b4
      96002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 05b8dff3 SRC  $007 005b8d80 C 0 Z 0 RESULT $6146d73
      96002042 COG 0 PC 017  627c0a01                  TEST WC 0 WZ 1 WR 0 DST 005 00000032 SRC #$001          C 0 Z 1 RESULT $000
      96002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
      96002050 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 00000032 SRC #$002          C 1 Z 0 RESULT $000
      96002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
      96002058 COG 0 PC 019  5c7c00b4                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$0b4          C 1 Z 0 RESULT $000
     102002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 06146d73 SRC  $007 005b8d80 C 0 Z 0 RESULT $66ffaf3
     102002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     102002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     108002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 066ffaf3 SRC  $007 005b8d80 C 0 Z 0 RESULT $6cb8873
     108002042 COG 0 PC 0b4  08a801ed         if_z   RDLONG WC 0 WZ 0 WR 1 DST 000 00000000 SRC  $1ed 00000048 C 1 Z 1 RESULT $000
     108002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     108002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     108002058 COG 0 PC 0b6  a0bfdfed                   MOV WC 0 WZ 0 WR 1 DST 1ef 0000004c SRC  $1ed 00000048 C 0 Z 0 RESULT $048
     114002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 06cb8873 SRC  $007 005b8d80 C 0 Z 0 RESULT $72715f3
     114002042 COG 0 PC 0b7  84ffde02                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000048 SRC #$002          C 0 Z 0 RESULT $046
     114002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     114002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     120002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 072715f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $782a373
     120002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     120002050 COG 0 PC 0b8  04bfddef                RDWORD WC 0 WZ 0 WR 1 DST 1ee 0000003e SRC  $1ef 00000046 C 1 Z 0 RESULT $fff9
     120002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     120002058 COG 0 PC 0b9  84ffde02                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000046 SRC #$002          C 0 Z 0 RESULT $044
     126002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0782a373 SRC  $007 005b8d80 C 0 Z 0 RESULT $7de30f3
     126002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     126002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     132002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 07de30f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $839be73
     132002042 COG 0 PC 0ba  04bfdbef                RDWORD WC 0 WZ 0 WR 1 DST 1ed 00000048 SRC  $1ef 00000044 C 1 Z 0 RESULT $ffff
     132002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     132002050 COG 0 PC 0bb  84ffde02                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000044 SRC #$002          C 0 Z 0 RESULT $042
     132002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     138002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0839be73 SRC  $007 005b8d80 C 0 Z 0 RESULT $8954bf3
     138002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     138002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     138002058 COG 0 PC 0bc  04bfd9ef                RDWORD WC 0 WZ 0 WR 1 DST 1ec 00000040 SRC  $1ef 00000042 C 1 Z 0 RESULT $fff9
     144002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 08954bf3 SRC  $007 005b8d80 C 0 Z 0 RESULT $8f0d973
     144002042 COG 0 PC 0bd  84ffde02                   SUB WC 0 WZ 0 WR 1 DST 1ef 00000042 SRC #$002          C 0 Z 0 RESULT $040
     144002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     144002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     150002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 08f0d973 SRC  $007 005b8d80 C 0 Z 0 RESULT $94c66f3
     150002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     150002050 COG 0 PC 0be  04bfd7ef                RDWORD WC 0 WZ 0 WR 1 DST 1eb 00000010 SRC  $1ef 00000040 C 1 Z 0 RESULT $ffff
     150002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     156002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 094c66f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $9a7f473
     156002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     156002050 COG 0 PC 0c1  627fd601                  TEST WC 0 WZ 1 WR 0 DST 1eb 0000ffff SRC #$001          C 1 Z 0 RESULT $000
     156002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     156002058 COG 0 PC 0c2  60bfd738                   AND WC 0 WZ 0 WR 1 DST 1eb 0000ffff SRC  $138 0000fffc C 0 Z 0 RESULT $fffc
     162002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 09a7f473 SRC  $007 005b8d80 C 0 Z 0 RESULT $a0381f3
     162002042 COG 0 PC 0c3  5c7c0044                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$044          C 1 Z 0 RESULT $000
     162002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     162002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     162002058 COG 0 PC 045  5c540008        if_nz      JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$008          C 1 Z 0 RESULT $000
     168002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0a0381f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $a5f0f73
     168002042 COG 0 PC 008  a0fc0000                   MOV WC 0 WZ 0 WR 1 DST 000 00000000 SRC #$000          C 0 Z 1 RESULT $000
     168002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     168002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     174002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0a5f0f73 SRC  $007 005b8d80 C 0 Z 0 RESULT $aba9cf3
     174002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     174002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000032 SRC  $1ee 0000fff9 C 1 Z 1 RESULT $000 <<SPIN>>
     174002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     174002058 COG 0 PC 00a  80ffdc01                   ADD WC 0 WZ 0 WR 1 DST 1ee 0000fff9 SRC #$001          C 0 Z 0 RESULT $fffa
     180002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0aba9cf3 SRC  $007 005b8d80 C 0 Z 0 RESULT $b162a73
     180002042 COG 0 PC 00b  857c0a40                   CMP WC 1 WZ 0 WR 0 DST 005 00000000 SRC #$040          C 1 Z 0 RESULT $000
     180002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     180002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     180002058 COG 0 PC 00d  a0bc0605                   MOV WC 0 WZ 0 WR 1 DST 003 000003a0 SRC  $005 00000000 C 0 Z 1 RESULT $000
     186002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0b162a73 SRC  $007 005b8d80 C 0 Z 0 RESULT $b71b7f3
     186002042 COG 0 PC 00e  20fc0604                   ROR WC 0 WZ 0 WR 1 DST 003 00000000 SRC #$004          C 0 Z 1 RESULT $000
     186002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     186002050 COG 0 PC 00f  80fc061a                   ADD WC 0 WZ 0 WR 1 DST 003 00000000 SRC #$01a          C 0 Z 0 RESULT $01a
     186002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     186002058 COG 0 PC 010  50bc2603                  MOVS WC 0 WZ 0 WR 1 DST 013 a0bc081d SRC  $003 0000001a C 0 Z 0 RESULT $a0bc081a
     192002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0b71b7f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $bcd4573
     192002042 COG 0 PC 011  24fc0602                   ROL WC 0 WZ 0 WR 1 DST 003 0000001a SRC #$002          C 0 Z 0 RESULT $068
     192002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     192002050 COG 0 PC 012  2cfc0603                   SHL WC 0 WZ 0 WR 1 DST 003 00000068 SRC #$003          C 0 Z 0 RESULT $340
     192002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     192002058 COG 0 PC 013  a0bc081a                   MOV WC 0 WZ 0 WR 1 DST 004 000000b4 SRC  $01a 463e2b1e C 0 Z 0 RESULT $463e2b1e
     198002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0bcd4573 SRC  $007 005b8d80 C 0 Z 0 RESULT $c28d2f3
     198002042 COG 0 PC 014  28bc0803                   SHR WC 0 WZ 0 WR 1 DST 004 463e2b1e SRC  $003 00000340 C 0 Z 0 RESULT $463e2b1e
     198002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     198002050 COG 0 PC 015  60fc08ff                   AND WC 0 WZ 0 WR 1 DST 004 463e2b1e SRC #$0ff          C 0 Z 0 RESULT $01e
     198002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     198002058 COG 0 PC 016  50bc3204                  MOVS WC 0 WZ 0 WR 1 DST 019 5c7c00b4 SRC  $004 0000001e C 0 Z 0 RESULT $5c7c001e
     204002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0c28d2f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $c846073
     204002042 COG 0 PC 017  627c0a01                  TEST WC 0 WZ 1 WR 0 DST 005 00000000 SRC #$001          C 0 Z 1 RESULT $000
     204002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     204002050 COG 0 PC 018  617c0a02                  TEST WC 1 WZ 0 WR 0 DST 005 00000000 SRC #$002          C 0 Z 1 RESULT $000
     204002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     204002058 COG 0 PC 019  5c7c001e                   JMP WC 0 WZ 0 WR 0 DST 000 00000000 SRC #$01e          C 1 Z 0 RESULT $000
     210002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0c846073 SRC  $007 005b8d80 C 0 Z 0 RESULT $cdfedf3
     210002042 COG 0 PC 01e  68bc0beb                    OR WC 0 WZ 0 WR 1 DST 005 00000000 SRC  $1eb 0000fffc C 0 Z 0 RESULT $fffc
     210002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     210002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     216002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0cdfedf3 SRC  $007 005b8d80 C 0 Z 0 RESULT $d3b7b73
     216002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     216002050 COG 0 PC 01f  043c0bef                WRWORD WC 0 WZ 0 WR 0 DST 005 0000fffc SRC  $1ef 00000040 C 0 Z 1 RESULT $000
     216002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     216002058 COG 0 PC 020  80ffde02                   ADD WC 0 WZ 0 WR 1 DST 1ef 00000040 SRC #$002          C 0 Z 0 RESULT $042
     222002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0d3b7b73 SRC  $007 005b8d80 C 0 Z 0 RESULT $d9708f3
     222002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     222002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     228002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0d9708f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $df29673
     228002042 COG 0 PC 021  043fd9ef                WRWORD WC 0 WZ 0 WR 0 DST 1ec 0000fff9 SRC  $1ef 00000042 C 0 Z 1 RESULT $000
     228002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     228002050 COG 0 PC 022  80ffde02                   ADD WC 0 WZ 0 WR 1 DST 1ef 00000042 SRC #$002          C 0 Z 0 RESULT $044
     228002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     234002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0df29673 SRC  $007 005b8d80 C 0 Z 0 RESULT $e4e23f3
     234002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     234002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     234002058 COG 0 PC 023  043fdbef                WRWORD WC 0 WZ 0 WR 0 DST 1ed 0000ffff SRC  $1ef 00000044 C 0 Z 1 RESULT $000
     240002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0e4e23f3 SRC  $007 005b8d80 C 0 Z 0 RESULT $ea9b173
     240002042 COG 0 PC 024  80ffde02                   ADD WC 0 WZ 0 WR 1 DST 1ef 00000044 SRC #$002          C 0 Z 0 RESULT $046
     240002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
     240002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     246002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0ea9b173 SRC  $007 005b8d80 C 0 Z 0 RESULT $f053ef3
     246002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00010000 SRC  $006 00010000 C 0 Z 1 RESULT $000
     246002050 COG 0 PC 025  043fd5ef                WRWORD WC 0 WZ 0 WR 0 DST 1ea 00000000 SRC  $1ef 00000046 C 0 Z 1 RESULT $000
     246002051 COG 1 PC 005  5c7c0003                   JMP WC 0 WZ 0 WR 0 DST 000 a0bfec06 SRC #$003          C 0 Z 0 RESULT $000
     246002058 COG 0 PC 026  a0bfd5ef                   MOV WC 0 WZ 0 WR 1 DST 1ea 00000000 SRC  $1ef 00000046 C 0 Z 0 RESULT $046
     252002035 COG 1 PC 003  f8bc1007               WAITCNT WC 0 WZ 0 WR 1 DST 008 0f053ef3 SRC  $007 005b8d80 C 0 Z 0 RESULT $f60cc73
     252002042 COG 0 PC 027  80ffde02                   ADD WC 0 WZ 0 WR 1 DST 1ef 00000046 SRC #$002          C 0 Z 0 RESULT $048
     252002043 COG 1 PC 004  6cbfe806                   XOR WC 0 WZ 0 WR 1 DST 1f4 00000000 SRC  $006 00010000 C 1 Z 0 RESULT $10000
    
    Spin Trace w/Repeat
           465 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 80fc0700 SRC  $1ee 00000038 C 0 Z 0 RESULT $034 <<SPIN>>
           729 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000034 SRC  $1ee 00000039 C 0 Z 0 RESULT $0c7 <<SPIN>>
           953 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 e4fc0002 SRC  $1ee 0000003a C 0 Z 0 RESULT $008 <<SPIN>>
          1353 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000003 SRC  $1ee 0000003b C 0 Z 0 RESULT $035 <<SPIN>>
          1617 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 00000035 SRC  $1ee 0000003c C 0 Z 0 RESULT $02c <<SPIN>>
      66002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000002c SRC  $1ee 0000003d C 0 Z 0 RESULT $004 <<SPIN>>
     114002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 00000008 SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     162002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     210002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     258002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     306002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     354002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     402002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     450002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     498002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     546002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     594002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     642002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     690002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     738002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     786002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     834002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     882002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
     930002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
     978002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
    1026002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
    1074002042 COG 0 PC 1ce  00bc0dee                RDBYTE WC 0 WZ 0 WR 1 DST 006 fffffffe SRC  $1ee 0000003e C 0 Z 0 RESULT $07e <<SPIN>>
    1122002050 COG 0 PC 009  00bc0bee                RDBYTE WC 0 WZ 0 WR 1 DST 005 0000000d SRC  $1ee 0000003d C 1 Z 0 RESULT $004 <<SPIN>>
    
  • jazzedjazzed Posts: 11,803
    edited 2014-04-27 08:35
    UGH.

    Now the 1 second pasm blinker is misbehaving for me. All of this stuff worked perfectly yesterday.
    {{ PASMToggle.spin }}
    
    
    CON
       _clkmode = xtal1 + pll16x
       _xinfreq = 5_000_000
       
    PUB Main
     {Launch cog to toggle P16 endlessly}
       coginit(0,@Toggle, 0)
       repeat
       
    DAT
    {Toggle P16}
                      org 0
    Toggle            mov      dira, Pin
                      mov      Time, cnt
                      add      Time, Delay
    :loop             waitcnt  Time, Delay
                      xor      outa, Pin
                      jmp      #:loop
     
    Pin      long     |< 16
    Delay    long     80_000_000
    Time              res 1
    temp              res 1
    
  • jazzedjazzed Posts: 11,803
    edited 2014-04-27 09:35
    Ok, I've pushed a fix. Please try it out.

    $ hg pull
    $ hg update

    I also changed the Trace window CTRL+S command so it always sets Spin Trace. Now CTRL+P sets PASM Trace. Hope those key combinations don't cause trouble.
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-04-27 10:02
    I did a pull/update/build and then ran my PASM toggle with the MOV wrapper and without and results were correct and identical! Yay!

    The trace feature is nifty!!

    EDIT: I forget shortcut keys anyway, so either any combinations give me trouble or no combinations give me trouble! :lol:
  • jazzedjazzed Posts: 11,803
    edited 2014-04-27 12:47
    Thanks Rick.

    I pushed a fix for a bug where the special registers got clobbered on COGINIT. Now GCC CMM toggle should work.

    Also, GCC CMM filtering has been added in Trace with CTRL+G. Some day I'll make those selections buttons.
  • RsadeikaRsadeika Posts: 3,837
    edited 2014-04-27 12:51
    I just did a clone and ran my test examples, I think the pause stuff has been fixed, everything is working as expected.

    What have I learned today? It looks like COG 0 RAM gets loaded up, all 496 bytes(what do you do with the other 16 bytes that are available) worth, with the same code, using different programs, even though there is a cognew in the PASM Toggle example. The actual program and data gets loaded into HUB RAM and run from there, even the PASM example. These are general observations, I know there is some other stuff that gets loaded into HUB too.

    So, from the looks of it, with the tools that are at hand, there is no way too actually have some code lines that have been written with either PropellerIDE or the Propeller Tool be run strictly in COG RAM. I had the impression that somehow PASM program code got run in COG RAM, but so far I do not see any evidence of that. What I see is, using the blinker examples, the PASM Toggle example shows a smaller code size in HUB RAM, compared too the Spin blinker example.

    I still have not done any C coded programs, blinker style, maybe I will try a blinker program done in C and see how much HUB RAM gets used.

    Ray
  • jazzedjazzed Posts: 11,803
    edited 2014-04-27 13:10
    Rsadeika wrote: »
    I just did a clone and ran my test examples, I think the pause stuff has been fixed, everything is working as expected.

    Great.
    Rsadeika wrote: »
    What have I learned today? It looks like COG 0 RAM gets loaded up, all 496 bytes(what do you do with the other 16 bytes that are available) worth, with the same code, using different programs, even though there is a cognew in the PASM Toggle example. The actual program and data gets loaded into HUB RAM and run from there, even the PASM example. These are general observations, I know there is some other stuff that gets loaded into HUB too.

    Yes, SPIN and other languages generally create a PASM interpreter (as Chip calls it) and fetch code from HUB RAM to act on in the interpreter. The other 16 bytes are the special registers.
    Rsadeika wrote: »
    So, from the looks of it, with the tools that are at hand, there is no way too actually have some code lines that have been written with either PropellerIDE or the Propeller Tool be run strictly in COG RAM.

    Well, no that is not true. The interpreters run strictly in COG RAM. The only way to run a program is by loading something in a COG first.

    PropellerGCC has always supported running code directly from COG RAM - see Eric's pong and vga programs in the PropellerGCC demos for examples.

    Rsadeika wrote: »
    I still have not done any C coded programs, blinker style, maybe I will try a blinker program done in C and see how much HUB RAM gets used.

    Most of the C code in a blinker only program will be the part that runs in the COG. Same is true of SPIN except the Spin interpreter lives in the Propeller ROM.
Sign In or Register to comment.