That looks amazingly beautiful. Thanks very much! That's what I was going for; I appreciate it.
One change I'd like is for the key repeat rate to be higher. A soft power-off would be nice, too, or a save feature. The save thing might be easier, since the screen power-down and initialization code is relatively large. Key repeat is an easy fix. I upped the debouncing time because it was hard to move just one space left or right, but I think I might have overdone it now. Adding a save feature would be a relatively simple matter of taking the two safeRAM areas I use for general variables and the game grid, respectively, and saving to/loading from an AppVar. I'll see if I can find the space to squeeze that in.
Just tried it out and the game plays very well, great work!
I too have encountered issues with the TIOS once exiting the game. Seems more like what you get when parts of RAM are overwritten. Could be a tricky one to track down.
It would be nice to set a starting level.
If tr1p1ea is right about RAM corruption being an issue, I might be able to identify by looking at a list of what RAM you use. I had a similar problem with early versions of MicrOS. You might also try changing what areas you use for safe RAM. My favorite safe RAM zone remains 8000 (app data); more than a kilobyte may be available there. The first 512 bytes is definitely scrap RAM. I'm not sure if the rest is also usable as scrap RAM, because there is some scattered non-zero bytes there, though zeroing them has no ill effect.
Currently I'm using:
- 69 bytes in temp1 (aka cmdShadow)
- 218 bytes at $8588 (part of textShadow)
- 3 bytes at $8585 for my ISR jump
- 257 bytes from $FD00 to $FE00 for my IVT (thanks to DrDnar for his interrupt's suggestion on that).
I'll try to test it out later this evening
I bet your problem is the IVT. It's true that I used FE00 for the IVT, but I also swapped RAM page 7 into the C000 bank, so it wasn't corrupting persistent system data. I think you're overwriting part of the VAT, the part used for fixed-name symbols like Y1, hence the crash on the Y= equation editor. I'd move the IVT to 8000, although that will also use the first byte of ramCode, which is clobbered during flash operations. MicrOS current uses 9900 for the IVT, and 9898 for the ISR dummy stub location. It also moves the stack to 9B70, so that you can freely change the C000 bank for use as scrap RAM.
It's fine if I get part of my IVT clobbered during Flash operations, as I don't do anything with Flash during parts of the program where my interrupt is active. Thanks for the recommendation; this seems to have done the trick! I'll update the beta here and on ticalc.org, and if my speed changes are better now, I'll probably call it finished soon.
Spent some time playing this evening, got to 17,006 points at level 26. Would be cool if TetricA stored the level the high score is associated with and displayed when choosing modes
How does one survive past level 8 in Tetris?
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
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