91
Axe / Re: Hello. I chopped my hand with a hatchet.
« on: October 24, 2019, 06:25:46 pm »
Welcome! Here have some peanuts:
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. 91
Axe / Re: Hello. I chopped my hand with a hatchet.« on: October 24, 2019, 06:25:46 pm »
Welcome! Here have some peanuts:
92
Axe / Re: Guts of a program editor« on: October 24, 2019, 06:16:06 pm »When you put it on your calculator, open Axe and compile prgmEDITORSC (it takes a little bit; it's a lot of code!)A little bit? You should see my 'main' project. The executable is over 100k and takes almost a half hour to do a full recompile. So are you building it first before you optimize it?Oh, yea. I forgot about that. I messed something up with the loop that selects the tokens. It doesn't *actually* freeze, just displays so many tokens on the screen at once that it is like 5 secs between frames. As for optimizing it, the core of it is as optimized as it is going to get. The cursor movement and scrolling was a huge pain to get right and I'm not spending 10 hours optimizing it and fixing all the bugs I made for a boost in speed which won't matter once I limit the framerate. Not that it is terribly inefficient or anything though. Almost all the cpu's time is spent on text and displaying the screen. Im using a custom text routine that I made that is 2x faster than the OS's and Ill eventually make a custom lcd update that is 6+ times faster than the default one Axe is using. (partial update instead of the whole screen) Speed isn't an issue. And since the finished editor will be an app anyway space doesn't really matter. I think that pressing 2nd + right to scroll to the end of a really, really long line of code takes a long time but Ill deal with it later. Trying to scroll past the bottom line might be an issue. Ill work intermittently on this as I find time / motivation. Don't expect speedy updates though. The whole reason I put this up was to help Zeda since she? is making one for Grammer 3. From what I have heard of what is done though, I don't know why mine is needed. That might get more constant updates but I really don't know. 93
Axe / Re: Guts of a program editor« on: October 23, 2019, 03:05:36 pm »
That gives me a pretty good idea of where you are at. Take a look at the UI I have implemented and tell me what you think of it. What do you think of everything from the way the cursor works to the size of the menus? Ive tried to make sure it feels just like the built in program editor. That way no one has to relearn their muscle memory. If there are any differences, that is a problem. Make sure to tell me. I know that alpha-scrolling is messed up and pressing numbers to select an item in a menu is a little off but the rest of it should be 100% accurate.
Don't bother trying to understand the editor's code. I don't know why it works, only that it does. And I wrote it. I forgot to ask you if you know what tokens are. iirc Grammer uses them so you might know about them. (If you know the difference between tokens and characters then you are probably fine) Also do you have a emulator or some way of getting screenshots and recordings? If not, it is really easy and I can walk you through how to get it. 94
ASM / Re: Using APD in your program« on: October 18, 2019, 11:08:43 am »As long as the user doesn't disable the RAM execution limit, you could `jp $C000` and that automatically crashes the calc.I have no problems resetting ram. Im trying to set up memory so that IF the os regains control, the calc will crash but if the programs gets control I can recover and easily undo whatever I did. Like setting the floating point stack to somewhere random. That wouldn't result in an instant crash for a program (and is easy to set back to the right value) but if the OS got control with the pointer to the floating point stack set to some garbage location it would crash. (Im not entirely sure that is how the floating point stack works since I have never really messed with it) 95
ASM / Re: Using APD in your program« on: October 18, 2019, 08:41:17 am »
When you use this to shut the calc off and pull the batteries while it is off, when you put the batteries back in and turn it on, the calc won't crash but just go to the homescreen. (as opposed to normally when you pull a battery it definitely crashes when you turn on)
Is there some RAM area that if you set it to a specific value it will crash on the homescreen? It needs to be easily undone since in most cases the user isn't going to pull a battery and is just going to turn it back on normally. I know that you can just start writing garbage to the VAT but that isn't reversible. I guess I'm looking for something like "just set the size of prgm! to some impossibly large number and that will crash" 96
Axe / Re: Guts of a program editor« on: October 18, 2019, 08:34:09 am »I want to be a part of this and help wherever I can. Whether it's testing for or giving ideas.Ok, I kinda just threw it out there as a base for anyone to expand on but if you are interested, I can pick development back up. First, a couple questions for you so I know how experienced you are. Are you really comfortable with Axe? How familiar are you with assembly? Do you know what an edit buffer is? Do you know how to dynamically resize variables either using Memkit or using Bcalls? Do you know how memory mapping works? (ports 5, 6 and 7) Its fine if you don't know any of these, I just need to know so I can figure out what parts you can help with. Also you mentioned ideas. What do you have in mind? If I were to finish it I would add copy / paste, search, search + replace, jump to label, jump to line number, editing from archive, the ability to look at other programs without closing the current one, and others that I can't think of off hand. 97
TI Z80 / Re: Z80 Optimized Routines Repository« on: October 08, 2019, 11:17:54 am »
This is really useful. Can we get it sticked so it doesn't fade away into obscurity?
98
Axe / Guts of a program editor« on: September 26, 2019, 01:34:52 pm »
A long time ago I made a small font program editor. At @Xeda112358's request I recently revived it and am working on beating it into a working shape. Im posting it here so I don't have to constantly upload to a 3rd party site every time I update it and on the off chance someone else might want to use it.
99
TI-BASIC / Re: How to obtain the id of a calculator for program security?« on: September 21, 2019, 09:31:13 pm »What exactly are you trying to do? Are you trying to make it so that your program only runs on certain calculators? Ive read your posts 5+ times and Im still not sure what your goal is. If you are talking about your code in https://www.omnimaga.org/ti-calculator-programming-and-support/help~an-program-for-ti84ti83-to-get-it's-id-to-str0-(but-not-work)/?topscreen then you have other problems. So much of that code does nothing at all. I get that not everyone is an experienced programmer but that is either laughably bad or so deep that I can't possibly understand it.You can't. Also why are you using ti-basic for a security program? It can be defeated by just pressing the on key.Tibasic can be converted into app by a program, and then the encrypted authorization code can be added to the head of the program to achieve the effect of encryption. App can not be compiled. Look at the program I passed in. This program is used to get the machine ID, but there is only a slight error when it runs 100
TI-BASIC / Re: How to obtain the id of a calculator for program security?« on: September 20, 2019, 08:28:17 am »
You can't. Also why are you using ti-basic for a security program? It can be defeated by just pressing the on key.
101
Other Discussions / Re: Pokemon Amber« on: September 05, 2019, 11:59:46 am »
Here is the answer.
https://www.omnimaga.org/ti-z80-calculator-projects/pokemon-amber/msg402428/#msg402428 So, no. The source was lost. Hint: There is a search box in the top right. Try it. That post was the first thing besides your post that came up. 102
TI Calculators / Re: Calculator (fully stock TI-84+SE w/DCS) crashing while I am working on programs!« on: September 05, 2019, 11:50:15 am »
I have had similar problems with my SE and I have found some workarounds that I think could fix your problems. When compiling an archived program on the SE (not on the basic ti-84+) Axe occasionally will truncate the name of the produced program or straight up refuse to compile saying that the output name is incorrect (even though it is fine). I looked into this a bit and it seems to have to do with where the variable is located in flash. In most of the cases I bothered to investigate, the variable was usually located close to the start of the page. The longer you go between garbage collects the more likely it seems to occur. Assuming your problem is the same as mine, it is relatively easy to fix. Just garbagecollect more often than usual. I would do it once every 20 hours of programming unless you are writing huge (16k+) programs to flash every couple minutes.
Archive error might be a problem but I rather doubt it. I used my old ti-84+ very heavily for 3 years and I never had any problems with the archive wearing out but it isn't nearly that old. I don't actually know what happens when the archive starts to go bad but I would assume that certain bits would stick into either the set or reset state and refuse to change. I would suspect that that would just cause your program to contain garbage when you save it to archive (or the header if you are really unlucky). I can't imagine that a bad flash would cause programs to suddenly vanish even if you are so colossally unlucky as to have the size entry of the program corrupted. On a ram clear, the OS goes from program to program in flash to build the VAT. It sees deleted and non deleted programs. Archive undelete works because when you delete a program in flash the OS doesn't remove it, it just sets a flag on the program saying 'this is deleted, ignore it'. All the data is still there and all you have to do to recover it is copy the data to a program in ram. All garbagecollect does is delete all the entries with the deleted flag set. (due to how flash works that is actually a complicated process) So even if you have a bad size entry, that should only break programs you archive after the corrupted one. It shouldn't have any effect on programs that have been archived before. If you are only working with ti-basic, why are you bothering to archive your programs? Unless you are using some unstable libs there is no way your calc can crash. Just edit them in ram. Another way to recover your data is to have a program that copies all of ram to a program. Assuming that the calc didn't crash on the error your program still exists in ram. It just doesn't have a VAT entry. Copying it all to a program could let you recover a good chunk of what you were just editing if you are willing to sift through a bunch of garbage data. I would really recommend zStart over Doors for programming. Its tools like jumping to labels, copying and pasting, and being able close a program editor without saving the changes are really really useful. 103
Grammer / Re: Grammer 2-The APP« on: September 03, 2019, 01:44:56 pm »
Ok, you can stop now. Look, if you continue, you will convince me to use Grammer over Axe for all my non-game projects. How dare you tempt me away from our lord and savior Axe Parser.
104
ASM / Re: [8X+] port $24 question« on: July 31, 2019, 02:26:54 pm »
What's the risk with using real hardware? Sure you are running code with flash unlocked but you are hardly likely to corrupt things. Maybe if you set it so that none of flash is executable and it gets stuck in a reset loop but unless the port lets you deny execution on page 0 the OS should fix it... right? I know the OS does some strange things but I'd be really surprised if it doesn't set the executable limits for flash on boot. It does with the RAM execution.
105
ASM / Re: [8X+] port $24 question« on: July 31, 2019, 01:36:18 pm »
Out of curiosity, what is your goal with unlocking the execution? Are you just trying to to it for the sake of doing it or do you have some specific use case in mind?
|
|