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 - thepenguin77
Pages: 1 ... 3 4 [5] 6 7 ... 108
61
« on: November 12, 2013, 03:45:21 pm »
My fourVid used deflate to store the videos. That's how I was getting like 30% compressed video sizes. Some quick math tells me that it was decompressing at least 30 KB/s on the z80s. (Though it might be much higher, that's just the lower bound.) What I find interesting about your method is that you are kind of abusing Huffman codes in a way that makes them no longer Huffman codes. I thought the idea was the huffman codes are shorter for the more common values, but yours all end up taking the same amount of space. This would of course greatly speed up decompression, but, it's not really huffman anymore Wouldn't you be able to get better ratios if instead of using huffman, you simply made your lookup tables bigger and used all of the bits in your huffman fields?
62
« on: November 11, 2013, 10:16:26 am »
Thought about something. Since this doesn't need any complicated output to the screen, could this be ported to the CSE ? The bigger memory of that calc could be a great advantage there.
I mean, it totally could, but I'm not going to be the one to do it. The source is included with the program. If anyone is actually going to consider porting it, I could help them out with any questions they have about how it works. Also, if this happens, I'll fix the .exe program so you don't need to install those libraries (stupid Visual Studio)
63
« on: November 10, 2013, 01:11:53 pm »
Asm(prgmFULLTEST) ran fine, exited fine and didn't mess with the free ARC display. So I guess it worked.
Well, that means the problem isn't FULLRENE and is somehow the way you are compiling it.
64
« on: November 10, 2013, 02:13:44 am »
So, weirdly enough, it doesn't crash for me on the 1.01fr boot code. This means I have basically no idea what is going on. I tried different compile targets and running with Mirage, but none of that had any effect. And the part of the boot code this calls is unchanged in the fr version.
The best thing I can say is use Returnr. Not allowing Fullrene to finish isn't really a good practice, but it's not actually going to hurt anything. My only guess would be an old Axe version, but if you're up to date, then I have no idea.
I attached a version of the stripped down program that runs correctly on the rom, see what it does for you. (It's a noshell compile, so you can use Asm( for maximum isolation).
65
« on: November 07, 2013, 05:37:42 pm »
- turning pixels on and off perfectly in sync with the display driver: while this is very uncommon, this can be damaging to your screen (not nearly as bad as blue lines of death, but it's still best to avoid). If this is happening, some pixels wil be lighter than normal white pixels, and others will be darker than black pixels.
What? (I'm confused as to how this is bad, maybe I don't understand what you were saying) The only issue is that they drain batteries twice faster, especially ASM games with nearly perfect grayscale.
Does grayscale really use more battery power? I thought that most games (running at the same CPU speed) drain the battery equally because most of them use 100% CPU (meaning they never put the processor in halt/low power mode).
(This might be wrong) Grayscale does not use more power. You are right, considering most games don't halt the CPU, the power usage is directly proportional to the CPU speed and there are only 2 CPU speeds. The reason grayscale doesn't damage the screen is because although to you it looks weird, to the LCD, nothing has changed. The screen is updated 60 times per second no matter what. This is done by the LCD driver which exists physically outside of the CPU. The LCD driver goes through the screen row by row and sets each pixel. That means that the driver is sending ON/OFF signals at around 4,000 signals per second. Simply changing whether or not the driver sends a 1 or a 0 between updates doesn't really change anything because it doesn't remember what it sent last go around. (By this logic, the most physically demanding operation for the driver would be a checkerboard.) Now, if you actually want to damage the screen, instead of using grayscale, you use bluescale. This was a sort of horrible idea that we played around with for a little while but for the most part, a consensus was drawn to not use it because it actually did cause physical damage to the screen. Unlike grayscale which simply toggles the pixels (which the LCD is designed to do obviously which is why it doesn't cause damage) bluescale rapidly changed the contrast. This resulted in some pretty crazy stuff, but, running these programs for too long would permanently damage your screen. Edit: Willrandship: has anyone tested that, I'm actually kind of interested now
66
« on: November 01, 2013, 10:17:26 am »
If I remember correctly, returning anything will cause the homescreen to not accept your answer as a valid answer. My guess is that you're going to have to go into the unexplored territory of "how does the homescreen actually work now?".
This is obviously going to be OS disassembling, I can send you my current progress on the grand scheme of OS disassembly if you want.
67
« on: October 27, 2013, 06:24:06 pm »
Also, for future reference. bcall(_delVarArc) locks flash if a variable is in flash And all OS errors lock flash as well.
68
« on: October 23, 2013, 09:09:40 pm »
For reference, here is _writeAByte:
_WriteAByte: ld hl, 8478h ld (hl), b ld bc, 1
_WriteFlashUnsafe: push af ld a, b or c jr z, loc_4CB7 pop af res 1, (iy+25h) push ix ld ix, WriteFlashUnsafeRun call sub_48C5 ; this function runs whatever IX is pointing to pop ix ret
loc_4CB7: pop af ret
WriteFlashUnsafeRun:
.dw 7Ch
and 7Fh out (6), a bit 7, h jr nz, loc_4CC7 set 1, (iy+25h)
loc_4CC7: bit 1, (iy+25h) push hl jr nz, loc_4CE2 ld hl, 7FFFh or a sbc hl, de jr nc, loc_4CE2 in a, (6) inc a cp 7Eh jr z, loc_4CDF out (6), a
loc_4CDF: ld de, 4000h
loc_4CE2: pop hl in a, (6) push af ld a, 2 out (6), a ld a, 0AAh ld (loc_6AA8+2), a ld a, 1 out (6), a ld a, 55h ld (byte_5555), a ld a, 2 out (6), a ld a, 0A0h ld (loc_6AA8+2), a pop af out (6), a ldi dec de dec hl
loc_4D08: ld a, (de) push af xor (hl) and 80h jr z, loc_4D1C pop af bit 5, a jr z, loc_4D08 ld a, (de) xor (hl) and 80h jr nz, loc_4D2E jr loc_4D1D
loc_4D1C: pop af
loc_4D1D: inc de inc hl ld a, b or c jr nz, loc_4CC7 dec de ld a, 0F0h ld (de), a inc de ld a, 7Fh out (6), a xor a ret
loc_4D2E: ld a, 0F0h ld (de), a ld a, 7Fh out (6), a or a ret
How is writeAByte failing? The typical way that writeAByte fails is by hanging.
69
« on: October 22, 2013, 12:05:44 pm »
Well, Omnicalc, as awesome as it is, needs to be updated anyway. I'm up for it but I can't promise anything.
DrDnar updated it, but the issue is that the new one doesn't work with zStart. zStart calls Omnicalc by address, so to fix it and remain compatibility you'd have to fix it OS patch style.
70
« on: October 22, 2013, 11:53:44 am »
* Runer112 bumps this
*snip*
- Regarding the shortcut to enable MathPrint not working unless it has already been enabled once: ... can you do something sneaky to always let MathPrint load up on RAM clears, but after it has been enabled, immediately switch to Classic mode if that default is set?
Also, another thought popped into my mind. You know how a while ago I mentioned that Omnicalc's quick apps menu doesn't register a context change until after any executed app returns to the OS? That may be a hard Omnicalc issue to fix, but I realized there are other issues with Omnicalc that might be (perhaps more easily) fixable. For instance, enforcing that parentheses assistant, the entries menu, and RAM recovery are disabled when MathPrint mode is enabled, and returning them to their original settings when Classic mode is enabled. It also may or may not be feasible to kill the partial line clear functionality when MathPrint mode is enabled. (I got the impression that you try to keep your key hook fast by only having ON+___ shortcuts so you can abort if ON is not pressed, but this check would need to occur before that)
Well, the next time I work on zStart, I'll probably fix it in the correct way, I'm sure I can figure it out eventually. The onmicalc thing probably isn't all that hard. I should probably make a function that installs omnicalc differently based on the current mathprint setting and then just call that function when you switch mathprint.
71
« on: October 21, 2013, 06:02:05 pm »
zStart is so awesome. Except the new version always crashes my calculator when I do ON + MATH, and I don't have anything else installed that could be affecting it...
Yeah, that's a glitch I haven't really found a way to fix. If you open Mathprint at least once, it won't crash anymore. (An easy way to do this would be to leave it defaulted to mathprint and then press ON + MATH on every boot)
72
« on: October 21, 2013, 12:38:35 am »
Lol at how many INTJ's there are.
INTJ
73
« on: October 17, 2013, 06:36:28 pm »
Yes, I've done this before to add an option to a menu. Now, there are two ways to do this, method 1 will only work for a specific OS (well, it will work unless they changed the menu), while method 2 will always work. I'm only going to talk about method 1 though because looking at my code, you don't want to do method 2. The first thing you have to do is find the actual data for the menu you want to replace. To do this, set a menu hook that returns zero, set a breakpoint on the menu hook, and then open the menu you want to replace. Skip the first call (A = 4) and on the second call (A = 0) follow the function when it returns. It's going to "un-bcall" a few times but eventually you'll end up back where the hook was called. When it does LD A, ($85DE), you'll know that you're back. Take note of A because it's the value for the current menu. It's then going to do a little math and load HL with the value pointed to by HL. When it does this, HL is now pointing to the data for the menu. Look at wikiti to see how the data is represented and then copy down everything for the menu (make sure you're still on the right flash page). (If there are 2 submenus, it's going to be the initial size byte, and then two of those data structures). Once you have the menu data, you need to figure out which item it is that you want to remove (you can probably just count). Remove those two bytes and readjust the size byte of that menu subgroup. This is now the actual menu you want to display. To actually replace the menu. Make a menu hook and returns zero unless ($85DE) (it's called menuCurrent btw) equals the A value from before. (You can also look these values up by doing a ctrl + F "menuCurrent" on this page) The hook also needs to return zero if it's been called for any event besides A = 0. At this point, you need to have the menu data in ram. Just point HL to the menu data and return nz. The OS will handle the rest from here
74
« on: October 04, 2013, 11:19:23 am »
Just curious since I never actually use them. How are the Axe shortcut keys working inside the program editor? ON + ZOOM, ON + TRACE, and ON + STO.
Are these actually working? Are they sketchy? Do you actually use them or are you afraid to use them due to intermittent errors?
75
« on: October 02, 2013, 09:53:17 am »
Calc 2: This one seems weird to me. K_0411S, 1.03, TI-84+SE
Back around the time that the missing ram pages were discovered, we figured out not to trust anything written on the back of a K calculator. If I remember correctly, we thought they might be refurbished or something.
Pages: 1 ... 3 4 [5] 6 7 ... 108
|