September 20, 2019, 06:02:03 am

News:

Juju thinks he's so clever by putting funny stuff here



Alternatively, join us on Discord.

Axe Interrupts stop working

Started by p2, August 17, 2016, 09:12:49 am

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

E37

Quote from: TheMachine02 on September 27, 2016, 03:43:18 pm
Quote from: E37 on September 27, 2016, 03:38:51 pm
L2 is the biggest at 800+ bytes.
Axe only lists L2 at 512 bytes, but the actual usable memory extends to beyond 800 (I don't remember the exact number)


https://www.omnimaga.org/asm-language/8384-free-ram-areas/

well, I guess it could work then. But yeah, who want more than 768 bytes anyway  :P

I use it as another buffer and the space after that to store custom variables. (I don't usually have more than 16 named vars)
I've never finished a project, there is always a way to improve!
What's my calc's name? Convert $37 to decimal. Look up that element in the periodic table. Then take the abbreviation of that element and you have it!
Look! A slime!    <(^.^)>

c4ooo

October 02, 2016, 08:30:25 pm #16 Last Edit: October 02, 2016, 08:36:31 pm by c4ooo
@E37  @TheMachine02
From the official axe docs: :)
L1-768 (nothing)
L2-531 (interrupts)
L3-768 (back screen buffer)
L4-256 (currupted by archiving/unarching)
L5-128 (text buffer (homescreen))
L6-768 (screen buffer)

However!!! You can actually have FIVE 768 byte buffers! (Greylib used this and so do I in my game lazer II)
L6, L3, L1, L2+103, L4-512
All the above can be used as 768 byte buffers, and still have interrupts running, as well as be able to display to home screen. (However you can't have interrupts and display to the homescreen at the same time >_> ) Be aware that it can cause some weirdness though, but nothing that can't be handled by some code :)

DJ Omnimaga

Didn't L2 have compatibility issues with MirageOS and other programs, though? Can this be solved via some code too?

c4ooo

IDK Greylib does this and doesn't seem to have issues  :)

DJ Omnimaga

Ah ok. It's possible that has been fixed since I last coded seriously in Axe in 2010. I remember the doc warned about that

E37

Quote from: DJ Omnimaga on October 06, 2016, 08:11:30 pm
Didn't L2 have compatibility issues with MirageOS and other programs, though? Can this be solved via some code too?

Yes. L2 is 800+ bytes. Interrupts take up some amount of the beginning of it. I don't know how much. (I've heard somewhere between 100 to 256 bytes) I never use interrupts so I don't know. :P
Anything after that space is free to use.
I've never finished a project, there is always a way to improve!
What's my calc's name? Convert $37 to decimal. Look up that element in the periodic table. Then take the abbreviation of that element and you have it!
Look! A slime!    <(^.^)>

TheMachine02

It is 256 bytes, due to how interrupts works on the 84+, or 100 bytes (in hex)

c4ooo

That's weird then cause I (and greylib) use L2+103, not L2+256 >_>

p2

Quote from: TheMachine02 on October 08, 2016, 02:51:03 pm
It is 256 bytes, due to how interrupts works on the 84+, or 100 bytes (in hex)

what do you mean by "in hex"...?

@c4ooo: MAybe that's where your +103 is coming from. +102 in case someone accidentally assigned a 2-byte var to +100 plus another byte just to be sure ;)
Anyway war sucks. Just bring us your food instead of missiles  :P ~ DJ Omnimaga (11.10.2016 20:21:48)
if you cant get a jframe set up, draw stuff to it, and receive input, i can only imagine how horrible your game code is _._   ~ c4ooo (14.11.2016 22:44:07)
If they pull a Harambe on me tell my family I love them ~ u/Pwntear37d (AssangeWatch /r/)
make Walrii great again ~ DJ Omnimaga (28.11.2016 23:01:31)
God invented the pc, satan the smartphone I guess ~ p4nix (16.02.2017 22:51:49)

Snektron

Quote from: p2 on October 10, 2016, 11:59:25 am
Quote from: TheMachine02 on October 08, 2016, 02:51:03 pm
It is 256 bytes, due to how interrupts works on the 84+, or 100 bytes (in hex)

what do you mean by "in hex"...?

256 in hexadecimal is 0x100
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


p2

oooh yess... <_< /me hides in a deep deep hole
Then it shouldnt have anything to do with it since it's an adress not a byte count ^^
Anyway war sucks. Just bring us your food instead of missiles  :P ~ DJ Omnimaga (11.10.2016 20:21:48)
if you cant get a jframe set up, draw stuff to it, and receive input, i can only imagine how horrible your game code is _._   ~ c4ooo (14.11.2016 22:44:07)
If they pull a Harambe on me tell my family I love them ~ u/Pwntear37d (AssangeWatch /r/)
make Walrii great again ~ DJ Omnimaga (28.11.2016 23:01:31)
God invented the pc, satan the smartphone I guess ~ p4nix (16.02.2017 22:51:49)

TheMachine02

October 10, 2016, 02:20:18 pm #26 Last Edit: October 10, 2016, 02:23:31 pm by TheMachine02
So after looking through axe code source of fnint() and LnReg, it seems it doesn't touch L2 at all finally, the cake is a lie  :P

It install interrup table at $9200, ISR at $9300 and use some restoring code placed at $8624 (if I get code right though). So L2+103 is maybe a warp for being able to execute with MirageOS instead  :P

EDIT : it was changed in 1.2.1 :
QuoteMoved custom interrupt data out of L2 (statVars) so it can be used with a custom interrupt enabled.


c4ooo


Powered by EzPortal