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 - Quigibo
Pages: 1 ... 66 67 [68] 69 70 ... 135
1006
« on: July 26, 2010, 04:03:33 am »
Its possible, but its only a byte more with negligible speed difference, I would go for the extra safety because the downside is so small and if it spares you from a gruesome hour long debugging session in the future it will have all been worth it.
1007
« on: July 26, 2010, 03:37:06 am »
Yeah, 7 clock cycles at 6 MHz = 7/6,000,000 seconds = 1.1 micro seconds, no way that can be noticeable. And in the section you quoted above, it only uses 3 extra cycles than before due to that optimization of mine.
Normally, you don't notice the lack of delay because the first time it passes that part in the program, it has the wrong key group when it tries to read the key, but its set correctly afterward once it finally goes through. The time you will notice it is if you check a bunch of keys one after another from different key groups. Then, each check you do is reading from the previous keygroup, which is wrong and you end up with mismatched keys.
1008
« on: July 26, 2010, 03:18:50 am »
Its absolutely amazing! There is a lot of detail there. Can't wait to see what you do with this.
I'm wondering why it seems so flickery in the screenshot though. Is it just the emulation, or is it the drawing of a lot of sprites between every redraw that's slowing it down? If the latter, you can save the screen to a buffer so you don't have to redraw the screen every frame.
1009
« on: July 26, 2010, 01:16:56 am »
I have no idea, I've had so much trouble with it because the emulators don't pick it up and its usually either extremely rare or extremely hardware specific and there appears to be no pattern with any of it. It all comes down to me guessing what the problem could be and then hoping I fixed it somehow. I am going to try another strategy soon...
1010
« on: July 26, 2010, 12:33:56 am »
Yeah, its a bug, change it to Y₁+A instead because Y₁ has to be first right now.
EDIT: Wow! That was a really stupid mistake, I fixed it now.
1011
« on: July 26, 2010, 12:03:43 am »
DO NOT USE THE APPLICATION COMPILING IN 0.4.0 YET
I'm going to investigate something, but it appears its sometimes writing over the 2nd page of the Axe app itself when it compiles the program. I will release a 0.4.1 follow-up very soon when I fix it.
1012
« on: July 25, 2010, 10:03:10 pm »
There isn't automatic linking yet, so no multilayer games until next version, but you can manipulate the link port directly for applications like sound, interaction with micro controllers, shake detectors, etc. The codes are as follows: 0-both tip,ring high, 1-tip low, ring high, 2-tip high, ring low, 3-both tip,ring low. I might have ring and tip mixed up.
EDIT: Oh yeah, the main purpose for the big-endian was for reading 2 byte tokens from programs since they're stored in reverse order.
1013
« on: July 25, 2010, 09:35:43 pm »
Axe Parser Delta 0.4.0
At last! The wait was worth it! New Features:- Almost every external variable can now be fully used in Axe.
- Read external variables directly from flash.
- Delete external variables.
- Updated documentation for external variable usage.
- White space is completely white now, its ignored almost everywhere.
- Text commands have improved greatly.
- Temporary pointers allow any data to be defined and used immediately in any command.
- Direct I/O control of the link port.
- Error messages are more descriptive.
- Size of the program is displayed when compiling to an application.
- Slightly improved application compiling.
- New optimizations to reduce the size of nearly every program.
- Read from pointers in reverse (big endian).
- Change log included with the parser.
Changed:- Fixed end of program bug.
- Text command syntax has changed to look exactly like the output and display syntax.
1014
« on: July 25, 2010, 06:13:44 pm »
That is true and I was thinking about that. Maybe I can have special opcodes in the Asm() command (kind of like how you can use pic vars in the [] command to insert pictures) but in this case to directly insert labels. For instance, some syntax similar to this: Asm(C3"AB") would be exactly the same as Goto AB. I mean, the only time you would even need the labels as numbers anyway is in asm code and it would be super convenient to be able to insert labels directly into the code at multiple locations and its way more customizable. I could have insertions for other things too like the Axe variables, buffers, and maybe even axe subroutines.
1015
« on: July 25, 2010, 06:03:11 pm »
DJ and I both have full control over the entries and in the event that something happens, I would take over the control of the contest. I'm probably in control right now at least temporarily, but I don't think much needs to be done until September and I have a feeling DJ will be back by then *crosses fingers*. I know Builderboy and myself are judging and I'm pretty sure DJ will judge as well but again, I'm not sure. There may be more judges too, but if there is any shortage of judges, we can always get some more before the deadline.
1016
« on: July 25, 2010, 05:51:24 pm »
I still don't feel comfortable with arbitrary jumping because its generally dangerous and isn't really useful to the average programmer. You would have to know a lot of assembly to be able to use it and that's not the goal of the project. You can already do that anyway with Asm(C3<Label in little endian>).
I'll eventually have a switch statement though which will be a small vector jump table to jump to a list of possible labels based on a value, but its only for labels defined in the program itself. For instance, Switch(A,L0,L1,L2,L3) will jump to L0 if A is 0, L1 if A is 1, L2, if A is 2, and L3 in all other cases (the default).
1017
« on: July 25, 2010, 01:29:12 pm »
This code might help. You use a variable that is zero when no keys are held down and non-zero when keys are being pressed. That way you can choose to only jump once until the next time the key is down. Also, you need at least a 7 clock cycle delay between setting the key groups and reading their values because the hardware is slow and otherwise it will read values of the previous key group and can cause weird things to happen.
KeyCheck: ld a,(MyKeyVariable) or a jr nz,CheckForRelease ld a, %11111111 out (1), a ld b,%11101101 ;This is a delay before reading the key groups. Does something useful. in a, (1) cp b jp z, Label jr KeysDone CheckForRelease: xor a out ($01),a ld a,(de) ;Another delay in a,($01) inc a ld (MyKeyVariable),a KeysDone: ...
Label: (MyKeyVariable),a ...
1018
« on: July 25, 2010, 03:33:09 am »
The problem is there is not a way to send key presses and receive screen shots fast enough to simulate anything in real time unless you completely gut the hardware and interface it directly to the computer via a micro controller or something. The other problem is what happens when your code freezes? Or what if you're testing an OS-kill type program which won't allow the calculator to boot anymore? The freezing would be more common and there has to be a way to remotely reset everything otherwise it makes the service useless. Again, that would require a hardware modification.
I do think it would be really useful, but the hardware modifications and software required to do all of this in real time is so complex I can't imagine seeing this any time in the near future.
Better yet, what about designing a site that is just a community of willing testers. Everyone signs up, giving their calculator models, and then tests different programs submitted by all the members and everyone who tests the programs will report a number on the screen, or a desired/undesired effect, maybe some screenshots, and things like that. There could be incentives for testing other people's programs like a ranking system or requirements that you have to test at least as many as you upload and maybe some other idea. I think that could be even more useful and is much more practical.
1019
« on: July 25, 2010, 02:39:00 am »
Sorry, I didn't have time for the update today. I left in the afternoon for something I thought would take a couple hours, but I didn't get back until almost midnight. But I should have it tomorrow for sure.
1020
« on: July 24, 2010, 04:21:36 pm »
Now that you mention computers and school pranks, I did something really funny like that in high school. The computers there were really restricted in terms of what is blocked but there were a lot of ways around that stuff. For instance, you could not access the C: drive and it was hidden from the list. But if you right click on one of the shortcuts on the desktop and do "find target..." you're in the hard drive and you can browse around and move files like normal. Another restricted thing was running .exe files. But, if you copy the file to the desktop and rename it "notepad.exe" you can run it!
Those are just some fun hacks, but this is the prank I did: I created an html file that used some hackish javascript to create 1000 copies of a file called "porn" on the desktop (which was an empty file). I then deleted the Internet Explorer shortcut and renamed my file "Internet Explorer". Since they share the same icon, you can't tell its been hacked. One day we had a substitute teacher and so were were just going to watch a movie for the period and the sub was using the computer. All period he was trying to delete these files. Since 1000 icons can't fit on the desktop most are off screen and since the icons are permanently in auto-align, once you delete one screen size worth of porn files, more and more are shifted in so it takes forever to actually delete them all. The next day, my generator file was still there and hadn't been deleted!
Pages: 1 ... 66 67 [68] 69 70 ... 135
|