jazzed mcu Simulator
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
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

Comments
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.
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
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!!
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 1Cut 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???
Way to GO, Steve (and Dave Hein) - I can see this being very useful and lots of fun!!
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.
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)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!
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
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.
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.
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]
Ray
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.
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!!
Ray
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.
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] := 0Tried 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
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 ;-)
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.
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 1Can you take a video with CamStudio ?
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
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
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>>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 $10000465 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>>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$ 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.
The trace feature is nifty!!
EDIT: I forget shortcut keys anyway, so either any combinations give me trouble or no combinations give me trouble!
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.
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
Great.
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.
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.
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.