This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Jsec42
1
« on: September 12, 2016, 02:53:18 am »
Ok that is what I needed to know - no need to build an NMI trap at 60h if there is no way to trigger it . I am using WikiTI - it is the most complete documentation I can find on the Z80/EZ80 based calculators. I was aware of the NMI traps used by the 84+CE, but I'm also aware that even though the rom call interface is written in such a way that programs written for CISPL and QSPL would be cross-compatible to an extent, assembly programs would require some translation due to the physical 24-bit bus(in particular, non-relative jumps and anything involving register loads from memory would require modification)(Since the QSPL/CISPL interpreters run within a logical 16-bit stack environment, anything that directly adresses the stack would need to be rewritten to work within 24-bit. Also, integers would overflow at higher numerical values, so programs relying on this behavior may behave abnormally unless I find some way to mask the MSB while preserving the sign bit, but then you wont have the benefit of 24-bit integers . And all of that is without mentioning that any ASM programs contained within the script would require a rewrite.). For this reason and others(for example, the fact that you cannot practically build an OS for the TI-84+CE), I'm going to first focus on getting this OS running on the 128k monochrome calculators, then get the 48k calculators working(did I mention that the kernel memory allocation routines work within the full logical 24 bit environment provided by the ASIC? They will need to be rewritten slightly to deal with the discrepancy between those two revisions), then if I'm feeling particularly daring I might try to get this thing running on the TI-84+CSE.
2
« on: September 11, 2016, 05:56:03 pm »
Hello omnimaga, long time no see. I'm building an operating system for the TI-84+ series calculators(and perhaps the TI-83+SE if I can find someone to test it during the beta phase). Part of its design includes exploiting the hardware's error traps (eg. No-EXEC, Port elevation, authorized read, etc.), however, I can't find any info stating whether the traps simply reset the CPU or if they execute an NMI(eg. an RST 60h) . Does anyone have any info on this behavior? If so, please reply! Thanks!
3
« on: September 05, 2015, 10:56:45 am »
Oh of course. It has two functions, PUSH and POP <Code> PUSH(Stack Address, Value to push) POP(Stack Address, Variable) </Code> I should also note that POP requires the variable to be passed by refrence
4
« on: September 04, 2015, 09:12:42 am »
I think my L1 stacklib function has a place here, as it can be useful for declaring local variables
5
« on: May 01, 2015, 04:43:35 pm »
Oh and btw...would it at all be possible for me to help in this undertaking?
6
« on: April 30, 2015, 09:22:53 pm »
Update - the [H] sto glitch has been patched in the new 84+ Color calculators(IE the 84+CSE and the 84+CE)my bad they still do this in classic mode. It seems that MathPrint actually fixes a bug...
7
« on: April 30, 2015, 07:19:34 am »
Good to know I just figured it was easier to port it to this calc than to port it to the (now obsolete) TI 84+CSE.(Namely because of the Memory-mapped LCD)
8
« on: April 29, 2015, 10:48:08 pm »
Is there any way we can get AXE running on the new 84+CE? Just a thought...
9
« on: September 22, 2014, 10:11:05 am »
Unless of course that optimization I came up with works even faster . It goes something like this. lbl something ..code goes here conditional asm(3E00BEC2(L(list token)something))
It effectively emulates a do...while loop, so it is probably faster, if the ? short circuit operates like I think it does . Some HL abuse could probably be applied to the conditional as well, but that is program-dependent . The for variant would work like this n lbl something -1->X ..code goes here X asm(3E00BEC2(L(list token)something))
It would start from n-1 and go until it hits 0 I know it's cheating to use an asm statement for a conditional jump, but oh well . EDIT: Conditional?goto something didn't work, so I made an assembly command.
10
« on: September 22, 2014, 07:35:02 am »
Hold on........AXE question Does the code X?GoTo n Translate to ld [address of x],HL cp HL nz jp [address of n] ? If so there might be an even more optimized loop up the sleeve of AXE !
11
« on: September 19, 2014, 08:45:08 am »
I will remember that next time . I'm thinking about starting a new thread for the alpha, now that it works . Thanks to Runner112 for his advice on fixing this solver .
12
« on: September 18, 2014, 10:27:42 pm »
More optimizations . I finally learned the art of abusing HL, so I applied it to my program. I hope you don't mind that I copied your loop structure , but it shaved about 15% of the time off. I do admit though that because your loop is a decrementing loop, it changed the algorithm a little, but it was worth the speed gain . Nice job finding that loop .
13
« on: September 18, 2014, 05:06:15 pm »
This is the fixed source code. I am still considering it pre-alpha since it has a couple of dealbreaking bugs . But this is the first version where the solver is actually functional. I have some screenshots as well. One of them is of what I call the Out-of-bounds glitch. It is caused by solving immediately after solving a sudoku . It also needs to be optimized.
14
« on: September 18, 2014, 04:45:59 pm »
I noticed that removing #realloc() made the stacklib stop reading in garbage data (This is what caused issues with some of my early pre-alphas). Truthfully though, stacklib doesn't care whether or not the majority of the stack is filled with garbage data, as long as the first two bytes are initially zero. And yes, I am trying to tie in stack space with variables, since I couldn't reliably get the r1-r6 variables to host locally. But getting rid of that line did fix it, along with some recoding of stacklib(just for optimization).
15
« on: September 17, 2014, 06:32:47 pm »
I made some changes to the code, but it still isn't working. I will post the files here. I have also attached some screenshots. As you can see, when I input a blank sudoku it does not solve completely. I would appreciate some help here, as I am at a standstill.
|