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 - FloppusMaximus
Pages: 1 ... 13 14 [15] 16 17 ... 20
211
« on: November 18, 2010, 06:52:37 pm »
The system routines for archiving and unarchiving variables require the variable's name in OP1. So you need to convert a VAT entry into a variable name. Here's a routine that does that: ;; VATEntryToOP1: ;; ;; Copy a program, appvar, group, or list variable name from the VAT ;; to OP1. ;; ;; Input: ;; - HL = address of type byte of VAT entry ;; ;; Output: ;; - OP1 = variable name ;; ;; Destroys: ;; - AF, BC, DE, HL
VATEntryToOP1: ex de,hl BCALL _ZeroOP1 ld a,(de) ld hl,-6 add hl,de ld b,(hl) inc b ld de,OP1 VATEntryToOP1_CopyNameLoop: ld (de),a inc de dec hl ld a,(hl) djnz VATEntryToOP1_CopyNameLoop ld a,(OP1 + 1) sub tVarLst ret nz dec de ld (de),a ret
After calling VATEntryToOP1, you can call Arc_Unarc (or one of the undocumented archiving/unarchiving routines, but those are somewhat tricky to use correctly and safely.) Edit: Whoops, didn't see thepenguin77's reply. Yeah, you should try to see if you can write the routine yourself. Practice is good for you.
212
« on: November 15, 2010, 11:10:29 pm »
Interesting. Although of course, neither that, nor OFFSCRPT, would work after a RAM clear.
213
« on: November 15, 2010, 10:33:52 pm »
I don't think so. I never heard of any USB documentation being released by TI; as far as I'm aware, everything we know about it was reverse-engineered by Dan and a few other clever people.
214
« on: November 15, 2010, 10:24:50 pm »
I don't have the URL. But I did find the files (or most of them, anyway; I'm not sure that this is everything):
AppInit.pdf BufClear.pdf BufDelete.pdf BufInsert.pdf BufLeft.pdf BufReplace.pdf BufRight.pdf CloseEditEqu.pdf ClrWindow.pdf CursorDown.pdf CursorLeft.pdf DispEOW.pdf DispForward.pdf DispHead.pdf DispTail.pdf EraseEOW.pdf GetPrevTok.pdf HomeUp.pdf InsDisp.pdf IsA2ByteTok.pdf IsAtBtm.pdf IsAtTop.pdf IsEditEmpty.pdf LdHLInd.pdf Mon.pdf NewLine.pdf PutAway.pdf SetEmptyEditPtr.pdf editbuf.pdf extraequ.inc monitor.pdf sysinput.asm
215
« on: November 15, 2010, 10:11:50 pm »
Actually, there is a port 14 on the TI-83 - it's the battery status port. I'd love to know what the deal is with ports 0036, 003F, 00DF, and 00F2 (yes, the usage suggests that these are 16-bit I/O addresses), which were added to the early initialization code of later versions of the TI-83 and TI-82 STATS, as well as the TI-82 v19.006. Also, I would suggest that, before you start trying to write to the Flash chip, you try something less potentially destructive, like reading the auto-select data.
216
« on: November 15, 2010, 09:54:31 pm »
Yeah, it's pretty sneaky.
It's been a while since I looked at Push-To-Test. I seem to remember that entering PTT mode deletes a lot of your variables, but perhaps not all of them. So now I'm wondering if there's anything (other than modifying the OS) that you could do beforehand to guard yourself. Does it disable hooks in RAM? Does it disable ONSCRPT and OFFSCRPT? What about creatively-corrupted VAT entries?
217
« on: November 14, 2010, 10:20:30 pm »
There are many different versions of ti83plus.inc floating around out there. Which two, specifically, did you try?
For TASM - and I assume this would also work for SPASM - you'd want to include something along these lines, at the top of the file:
#define bcall(x) rst 28h \ .dw x #define bjump(x) call BRT_JUMP0 \ .dw x #define equ .equ #define EQU .equ
Back in the day, when I used TASM, I liked to add:
.addinstr B_CALL * EF 3 NOP 1 .addinstr B_JUMP * 0050CD 5 NOP 1
which lets you write "B_CALL _PutS", a little bit closer to TI's official syntax. I don't remember if SPASM supports addinstr.
In addition, you probably need to comment out the macro definitions later in the file.
218
« on: November 14, 2010, 10:10:04 pm »
Keep in mind that a lot of TI's display routines are painfully slow, and even the large-font routines can flicker noticeably. So the built-in apps are very lazy about updating the screen.
cxMain is the only thing called after most keypresses; it's expected to do incremental updates to the screen. (For instance, by calling InsDisp.) cxRedisp is called to redraw the whole screen, after the user opens and closes a full-screen menu. cxSizeWind and cxErrorEP are presumably expected to do their own redrawing as well, if need be.
Have you read Dan E's system monitor documentation? It used to be hosted in the "Unsupported Info" section on ti.com, then after that was taken down, Dan hosted it himself somewhere on denglend.net, and now I can't seem to find it anywhere on the Web. I've probably still got copies of the files somewhere - I'll see if I can dig them up...
219
« on: November 14, 2010, 09:52:37 pm »
If you're using the official ti83plus.inc from TI, that file uses ZMASM syntax for macros and equates. I don't think spasm supports that syntax, or at least, it didn't the last time I checked.
Also, the official syntax defined by TI is "B_CALL PutS", not "bcall(_PutS)", so if you're using the official ti83plus.inc, it doesn't surprise me that the latter doesn't work.
It might help if you could post a listing file.
220
« on: November 14, 2010, 09:40:04 pm »
That's very interesting. I wonder if the Flash chip is actually upgradeable. Going by this image from Datamath, it looks like the write-enable pin (pin 11) is in fact connected to the ASIC, so it's possible. But it's hard to imagine that they would have put user-upgradeable Flash in a calculator without including an 83+-style boot code.
221
« on: November 14, 2010, 05:15:50 pm »
It's true that memory addresses are different, but that's not the issue here, since we're talking about replacing the entire OS.
The most significant change between the 83 and 83+ is how the memory mapping is controlled. The 83's hardware is based on the 82's, so it has a single port (port 2) that controls both the "bank A" and "bank B" memory mapping. But since that only allows for 8 ROM pages, port 0 is used to switch between the lower and upper 128k of ROM. In contrast, the 83+ has two separate ports (6 and 7) that independently control the mapping for banks A and B, and allow you to access all 32 pages of Flash. So all of the code dealing with port 2 would need to be revised to use port 6 and/or 7. (There actually isn't very much code you'd need to change.)
Second, the link port works differently; both models use port 0 to read and write the link port, but different input and output values are used.
Third, where the 83 reads port 3 to check the status of the ON key and interrupts, on the 83+ you need to use port 4 instead. I think the bits are the same, and writing to port 3 works the same way (writing to port 4 does something completely unrelated.)
Fourth, the 83+ prevents execution on RAM page zero by default; you'd probably want to turn this protection off in order to run TI-83 assembly programs. On an 83+ SE or 84+, this protection can't be disabled, but you could use RAM page 3 instead.
And finally, you'd need to make some small tweaks just to get the OS to boot, since 83+ OSes must contain a magic number at 0056h, and the boot code hands control to the OS at address 0053h.
222
« on: November 13, 2010, 09:42:13 pm »
Yeah, I guess you could. It would take some effort to get the OS to run properly on an 83+, but it could be done. (Of course, some assembly programs wouldn't work properly, but many of them probably would.)
223
« on: November 13, 2010, 09:28:26 pm »
That's great to hear. WikiTI is a great resource already, but there's so much more stuff that could be documented. It's a shame that it's been inactive lately. I'll try to do my part.
224
« on: November 12, 2010, 10:12:59 pm »
Oops, sorry, it has been a while, hasn't it. I was intending to release that bug fix right away, and then my heat sink decided to take up skydiving and my regular PC was out of commission for a while. And then I got distracted with app signing...
I'll get the bug fix done right away. There are a couple of other features I'm still working on, but those can wait.
I can't imagine what might have happened to make Wabbitemu crash. That sounds bad!
225
« on: November 12, 2010, 09:57:51 pm »
Interesting. So it is documented, in a way.
I'm not sure, but I think I've seen situations where some part of the archive gets so broken that neither resetting "Vars" nor "Apps" will work, and the only way to recover is to reset "Both" or "All Memory". I've never had "All Memory" fail to work, but if it does, there's always the option of a boot mode self test, which resets everything except the certificate, or you could try flashing PongOS and erasing everything by hand.
Pages: 1 ... 13 14 [15] 16 17 ... 20
|