Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
About
Team
Rules
Stats
Status
Sitemap
Chat
Downloads
Forum
News
Our Projects
Major Community Projects
Recent Posts
Unread Posts
Replies
Tools
SourceCoder3
Other Things...
Omnimaga Radio
TI-83 Plus ASM File Unsquisher
Z80 Conversion Tools
IES TI File Editor
Free RAM areas
Comprehensive Getkeyr table
URL Shortener
Online Axe Tilemap Editor
Help
Contact Us
Change Request
Report Issue/Bug
Team
Articles
Members
View the memberlist
Search For Members
Buddies
Login
Register
Omnimaga
»
Forum
»
Calculator Community
»
TI Calculators
»
ASM
»
Memory Juggling?
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: Memory Juggling? (Read 5580 times)
0 Members and 1 Guest are viewing this topic.
Builderboy
Physics Guru
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 5673
Rating: +613/-9
Would you kindly?
Memory Juggling?
«
on:
September 04, 2010, 10:48:18 pm »
So i had this idea recently, inspired by the fact that programs are loaded to $9C95 and therefore only have about 8800 bytes of space to excecute in. BUT, what if after the program is safely copied into $9C95, it then is shifted down to a lower location, and the memory that it overlaps is moved around so that nothing is earased. If the Assembly program is completely self sufficient (like no OS calls or whatever), and all the labels were compiled as if the program was copied there in the first place, could it be run safely assuming it rearranged the memory back the way it was before it exited back to the OS?
Logged
Quigibo
The Executioner
CoT Emeritus
LV11
Super Veteran (Next: 3000)
Posts: 2031
Rating: +1075/-24
I wish real life had a "Save" and "Load" button...
Re: Memory Juggling?
«
Reply #1 on:
September 04, 2010, 10:51:23 pm »
That's fine if your program disables the OS interrupt and doesn't use a single bcall. But if it does, it's going to be reading and writing over your program memory where it expects all the OS variables to be causing the bcall to not work properly either so it will surely cause a ram clear.
«
Last Edit: September 04, 2010, 10:52:08 pm by Quigibo
»
Logged
___Axe_Parser___
Today the calculator, tomorrow the world!
Builderboy
Physics Guru
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 5673
Rating: +613/-9
Would you kindly?
Re: Memory Juggling?
«
Reply #2 on:
September 04, 2010, 10:54:06 pm »
Hmmm but this would likely be very complicated to get working, since you would either only use relative jumps, or set the .org statement to a separate value.
Logged
Quigibo
The Executioner
CoT Emeritus
LV11
Super Veteran (Next: 3000)
Posts: 2031
Rating: +1075/-24
I wish real life had a "Save" and "Load" button...
Re: Memory Juggling?
«
Reply #3 on:
September 04, 2010, 11:04:34 pm »
Its actually not that difficult. But you need somewhere to store the ~7k bytes. If you use the extra ram page, then that would work very well and you could execute programs as large as half the free ram ~12k bytes. If you have your program in 2 parts, an archived executable and another program that runs it, then you can use the entire 16k bytes. But unfortunately, the regular 83+ doesn't have the extra page.
Logged
___Axe_Parser___
Today the calculator, tomorrow the world!
BuckeyeDude
LV5
Advanced (Next: 300)
Posts: 283
Rating: +42/-0
Re: Memory Juggling?
«
Reply #4 on:
September 04, 2010, 11:09:15 pm »
If you have extra ram pages, you might as well just swap in the ram page and use that to execute the code
Also if you need more 8.8k of executable code you should really be using an application. That's really what they were created for and the reason the 8.8k barrier exists.
Logged
Jonius7
python! Lua!
LV10
31337 u53r (Next: 2000)
Posts: 1918
Rating: +82/-18
Still bringing new dimensions to the TI-nspire...
Re: Memory Juggling?
«
Reply #5 on:
September 04, 2010, 11:22:08 pm »
wouldn't that be hard, it's not just as simple as copying it, there's extra stuff such as configuration for that particular part of memory and more... ie" it's not just black (filled) and white (empty)
...does that make sense?
«
Last Edit: September 04, 2010, 11:22:49 pm by jhgenius01
»
Logged
Programmed some CASIO Basic in the past
DJ Omnimaga Music Discographist
DJ Omnimaga Discography
My Own Music!
My Released Projects (Updated 2015/05/08)
TI-nspire BASIC
TI-nspire Hold 'em
Health Bar
Scissors Paper Rock
TI-nspire Lua
Numstrat
TI-nspire Hold 'em Lua
Transport Chooser
Secret Project (at v0.08.2 - 2015/05/08)
Spoiler
For
Extra To-Be-Sorted Clutter
:
Spoiler
For
Relegated Projects
:
TI-nspire BASIC
Battle of 16s
(stalled) |
sTIck RPG
(stalled) |
Monopoly
(stalled) | Cosmic Legions (stalled)
Axe Parser
Doodle God
(stalled while I go and learn some Axe)
Iambian
Coder Of Tomorrow
LV8
Addict (Next: 1000)
Posts: 739
Rating: +216/-3
Cherry Flavoured Nommer of Fishies
Re: Memory Juggling?
«
Reply #6 on:
September 05, 2010, 12:00:16 am »
If you wanted more execution space, it's as BuckeyeDude says. Use an app.
Now, sometimes you just need more contiguous RAM than the OS allows and you don't want to eat up much of the calc's "Free RAM". I've done a little memory juggling in CaDan to allow me access to $8000 and $8EFF by selectively copying stuff to plotsscreen and appbackupscreen. Selective copying, so I can safely eat up all the other saferam areas between the mentioned addresses. Might want to check out it's source if you want to do this.
Sorry for not really answering you question, tho. You might want to do a little study (by looking at the ti83plus.inc's RAM locations) and find out what memory you might want to shuffle away and what memory you can safely overwrite. Also include in your little study areas that can be reliably initialized if you don't want to or need to save that information. What comes to mind is this chunk of RAM at "statVars" and using bcall(_DelRes) to "invalidate statistics" so the OS doesn't crash if you try to do statistics after using that RAM as scratch.
Logged
A Cherry-Flavored Iambian draws near... what do you do? ...
Builderboy
Physics Guru
CoT Emeritus
LV13
Extreme Addict (Next: 9001)
Posts: 5673
Rating: +613/-9
Would you kindly?
Re: Memory Juggling?
«
Reply #7 on:
September 05, 2010, 12:52:41 am »
Alright thanks for all the info guys
I was just speculating, because my PortalX game (which is in Axe) is getting rather large, maybe too large for the entire program to fit into one page. I think i will be able to get all of my *code* into 16K, but i am trying to figure out what to do with the data.
One idea was to have all the data in an Appvar, but thats a hassle to have more than one file
Another idea was to try to make it a program and do the fancy memory swapping so that i could get more execution space, but it seems that the limitations of Axe in regards to filesize is very hard to code around. Maybe i will put in a request for 2 page apps, as long as the 2nd page contains only data?
Logged
DJ Omnimaga
Clacualters are teh gr33t
CoT Emeritus
LV15
Omnimagician (Next: --)
Posts: 55943
Rating: +3154/-232
CodeWalrus founder & retired Omnimaga founder
Re: Memory Juggling?
«
Reply #8 on:
September 05, 2010, 12:57:31 am »
Well the good thing is that appvars won't show up in the APPS/PRGM menus, just in mem menu. At least there are two menus that they won't clutter for people who got many programs.
As for 2 pages apps, I think Quigibo had the idea in mind, but I'm not sure if he's adding it for the next version.
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
Omnimaga
»
Forum
»
Calculator Community
»
TI Calculators
»
ASM
»
Memory Juggling?