Trying to delete an app causes the emulator to freeze.
elfprince13 wrote:
Trying to delete an app causes the emulator to freeze.
What calculator and OS version were you using? Can you replicate it with any other calc/OS combination?
Using an 84+SE with with OS 2.41. I added DCS7 and then tried to delete DCS6, and it froze each time I tried. Unfortunately that's the only calc/OS combination I own.
elfprince13 wrote:
Using an 84+SE with with OS 2.41. I added DCS7 and then tried to delete DCS6, and it froze each time I tried. Unfortunately that's the only calc/OS combination I own.
Yup, I was able to replicate the problem, as well as ascertain that it doesn't happen on a TI-83+ with OS 1.19. I suspect this might be related to some of the Flash issues that AHelper reported with GlassOS's installation sequence. I'll poke him about it.
Flash clearing is the very first thing GlassOS does, and that sounds like a possible cause of the lockup. You might not be reporting the flash page erase properly.
AHelper wrote:
Flash clearing is the very first thing GlassOS does, and that sounds like a possible cause of the lockup. You might not be reporting the flash page erase properly.
Can you give me any more details on that or point me at the relevant reference material? The last time we discussed GlassOS, the issue was the ldir that after a few iterations was suddenly "wrong", probably because of this (perhaps?).
Yes, the ldir was in the flash erase function. I will not have access to the built OS for a week, so I will not be much help other than to point you at the C source.
I'm still pending working on a fix for AHelper's issue; I want to get jsTIfied 1.0 out soon! I have also added another new feature on a request from geekboy: If you check the "Break on IM change" checkbox, jsTIfied will pause any time it completes an IM (interrupt mode) change instruction, such as IM 0, IM 1, or IM 2. We will be using this to poke at how the TI-BASIC interpreter behaves with interrupts.
KermMartian wrote:
I'm still pending working on a fix for AHelper's issue; I want to get jsTIfied 1.0 out soon! I have also added another new feature on a request from geekboy: If you check the "Break on IM change" checkbox, jsTIfied will pause any time it completes an IM (interrupt mode) change instruction, such as IM 0, IM 1, or IM 2. We will be using this to poke at how the TI-BASIC interpreter behaves with interrupts.
Well good news the im change breakpoint works great.
Bad news.
Code:
#include "ti83plus.inc"
#define ProgStart $9D95
.org ProgStart - 2
.db t2ByteTok, tAsmCmp ;main routines
di
ld hl,$8B00 ; sets up interupt table at $8B00
ld de,$8B01 ; sets pointer 1 past to fill
ld bc,$100 ; fill 267 blocks
ld (hl),$8a ; with $8a
ldir
ld de,appbackupscreen
ld hl,interrupt
ld bc,interruptend-interrupt
ldir
; set interupt to jump to my interupt code
ld a,$c3 ;load a with jp xxxx
ld ($8A8A),a ; load 8a8a with , jp xxxx
ld hl,appbackupscreen ; load hl with pointer to the interupt
ld ($8A8B),hl ; put it where it belongs
ld a, %00001011 ;not low power halt
out (03), a
ld a,$8B ; load i with pointer to interupt table
ld i,a
im 2 ; set interupt mode and enable interupts
ei
ret
Interrupt:
exx
ex af,af'
push ix
in a,(4)
;rrca ;puts bit 0 into carry to see if ON key gens interrupt. 4cc savings.
;jp c,GameQuit
nop
nop
pop ix
ex af,af'
exx
jp $0038
interruptend:
This crashes right after the EI but works fine on pindur and wabbit. I have no clue as to why it would be doing that.
geekboy1011 wrote:
The calculator hangs but does not ram clear. When I run this on pindurti it works perfectly fine.
Do you have the pause-on-IM X feature turned on? I presume you checked that it's hung, not paused, correct? Can you use the debugger to see where it's hung?
It ends up jumping into ram somewhere and just executing nops for ever based on what I could see using the debugger actually.
geekboy1011 wrote:
It ends up jumping into ram somewhere and just executing nops for ever based on what I could see using the debugger actually.
Did you try setting a breakpoint at $8a8a to see if it at least gets there?
Here are some nice breakpoints for you:
Code:
Code:
51EF _fs_format
14FD __flashErase <-- Payload
154D _flashErase
--- ASM ---
;all.c:1804: void _flashErase(byte page)
; ---------------------------------
; Function _flashErase
; ---------------------------------
__flashErase_start::
__flashErase:
push ix
ld ix,#0
add ix,sp
;all.c:1809: char oldpage = Port_Mem_B1;
in a,(_Port_Mem_B1)
ld c,a
;all.c:1812: if(page > 0x67)
ld a,#0x67
sub a,4 (ix)
;all.c:1813: return;
jr C,00106$
;all.c:1816: Port_Mem_B1 = 0x02;
ld a,#0x02
out (_Port_Mem_B1),a
;all.c:1817: *f1 = 0xAA;
ld hl,#0x6AAA
ld (hl),#0xAA
;all.c:1818: Port_Mem_B1 = 0x01;
ld a,#0x01
out (_Port_Mem_B1),a
;all.c:1819: *f2 = 0x55;
ld hl,#0x5555
ld (hl),#0x55
;all.c:1820: Port_Mem_B1 = 0x02;
ld a,#0x02
out (_Port_Mem_B1),a
;all.c:1821: *f1 = 0x80;
;all.c:1822: *f1 = 0xAA;
ld hl,#0x6AAA
ld (hl),#0x80
ld (hl),#0xAA
;all.c:1823: Port_Mem_B1 = 0x01;
ld a,#0x01
out (_Port_Mem_B1),a
;all.c:1824: *f2 = 0x55;
ld hl,#0x5555
ld (hl),#0x55
;all.c:1825: Port_Mem_B1 = page;
ld a,4 (ix)
out (_Port_Mem_B1),a
;all.c:1826: *spot = 0x30;
ld hl,#0x4444
ld (hl),#0x30
;all.c:1828: while(*spot != 0xFF)
00103$:
ld hl,#0x4444
ld l,(hl)
ld a,l
inc a
jr NZ,00103$
;all.c:1830: Port_Mem_B1 = oldpage;
ld a,c
out (_Port_Mem_B1),a
00106$:
pop ix
ret
__flashErase_end::
;all.c:1840: void flashErase(unsigned char page) __naked
; ---------------------------------
; Function flashErase
; ---------------------------------
_flashErase_start::
_flashErase:
;all.c:1862: __endasm;
di
ld hl,#__flashErase_start
ld bc,#(__flashErase_end-__flashErase_start)
ld de,#0xf000
ldir
pop bc
pop hl
push hl
push bc
push hl
call #0xF000
pop hl
ei
ret
_flashErase_end::
It appears to me that the ldir function is in fact fine, and that the __flashErase payload is successfully making its way from $14FD to $F000. However, something goes awry after that.
Just bumping progress
- PC button on hex viewer changes disassembly view instead
- Page 20 erases page 0, due to ti83+ hardware stuff. This could possibly fix TIOS dieing when defragmenting.
- TI-84+ and TI-84+SE / TI-83+SE Flash layouts repaired. Need to make sure all protected pages are marked as such for the TI-84+SE layout.
- PC button on hex viewer fixed.
KermMartian wrote:
elfprince13 wrote:
Using an 84+SE with with OS 2.41. I added DCS7 and then tried to delete DCS6, and it froze each time I tried. Unfortunately that's the only calc/OS combination I own.
Yup, I was able to replicate the problem, as well as ascertain that it doesn't happen on a TI-83+ with OS 1.19. I suspect this might be related to some of the Flash issues that AHelper reported with GlassOS's installation sequence. I'll poke him about it.Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
» Go to Registration page
» Go to Registration page
» Goto page Previous 1, 2, 3, 4, 5, 6 Next
» View previous topic :: View next topic
» View previous topic :: View next topic
Page 3 of 6
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Advertisement