New firmware for the Swissmicros DM15L
|
10-02-2024, 12:44 PM
(This post was last modified: 10-02-2024 12:46 PM by Johnp_g.)
Post: #76
|
|||
|
|||
RE: New firmware for the Swissmicros DM15L
(10-02-2024 07:55 AM)jebedeo Wrote: I created a firmware with the program already loaded so you don't have to type it all, would you take a look at it? I'll keep debugging on my end but since you wrote the code it might be easier for you to spot the problem. Thanks a lot for this, it makes things much much simpler to debug! I found the same as you, the program exits early after only calculating one component value, instead of looping around for "n" times, and putting 1 to "n" in R01...R0n I put some PSE instructions in strategic places to see what's happening and found a bug with the ISG command. Assuming an order of 3 The first time ISG is used is in LBL1. Reg I is set to 1.003 in subroutine LBL6 (3 being the number of components to calculate/the number of loops to perform). In LBL1 after the first loop completes, and stores its value in R1 the ISG should increment Reg I to 2.003 and loop again until it's done all 3 and Reg I hits 3.003 and the loop exits (GTO8) However after the first loop the ISG I command increased Reg I to 101.003 and the loop therefore exits immediately. 101 being significantly greater than 3 ;-) I made a small test program Code:
Initially storing 1.003 in Reg I and running fA the prog returns immediately and checking the I register shows 101.003 Initially storing 1.100 in I and running fA the prog counts: 1.100 2.100 3.100 4.100 and returns. Inspecting Reg I shows : 104.100 Very odd behaviour. Hopefully this is enough to find the bug in ISG. It looks like DSE is still working normally. Cheers and thanks - the DM15/LF15C is now my carry-everywhere calculator! John |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 12 Guest(s)