MSX FUSION-C, Talking about bugs, errors, mistakes

Page 3/12
1 | 2 | | 4 | 5 | 6 | 7 | 8

By ericb59

Paladin (855)

ericb59's picture

19-02-2019, 08:37

@anata : Did I miss to include a file in the example folder ?
Which sample code are you talking about ?

In Fusion-c/examples/ there is SUPERGIR.SC8
You must copy/paste it in the Working Folder/DSK/
if you want the program load it.

.SC8 are image file.
This type of image can be done by converting JPG/PNG file with a Image tool converter.
I'm using the online Jannone tool, available here : http://msx.jannone.org/conv/

By ducasp

Expert (128)

ducasp's picture

19-02-2019, 11:09

I couldn't use Getche() or getche.... (quick manual says getch () , msx_fusion.h specifies Getche, using both won't compile, first case ( Getche() ) will return the following compile warning:

?ASlink-Warning-Undefined Global '_Getche' referenced by module....

And, likewise, using getche():

?ASlink-Warning-Undefined Global '_getche' referenced by module....

Plus some additional warnings about implicit declaration...

Code won't work and will crash upon calling it.

By the way, any examples creating your interrupt hook?

Could not get it working following the example in __interrupt.h

By Francisco Gálvez

Rookie (26)

Francisco Gálvez's picture

19-02-2019, 18:27

Thanks a lot. I was sad... nobody answered Tongue .
I'm confused about why not to do a circle function for MSX1 but It's your work and is an awesome work, I swear.
I'll try the solution that you propose. Thanks again.

By ericb59

Paladin (855)

ericb59's picture

19-02-2019, 19:24

@ducasp : You are right, Getche was not correctly included in the library

Please download this new file (fusion.lib) : https://drive.google.com/open?id=1m4Qb_6R9OZfM1eZmSwCcByw62w...
and copy it in Working Folder/fusion-c/lib/
(replace the original one)

Getche must now works.

I will publish an updated version of the library in while, with some debugs and new functions.

By ToriHino

Champion (348)

ToriHino's picture

19-02-2019, 19:45

ducasp wrote:

By the way, any examples creating your interrupt hook?

Could not get it working following the example in __interrupt.h

It looks like the implementation of install_isr and uninstall isr is missing. For me i now use something like this:

install_isr(void(*isr)void))
{
  unsinged int address = (unsigned int)handler;
  byte* mem = (byte *)0x38;

  mem[0] = 0xC3; //JP
  mem[1] = (byte)(address & 0x00ff);
  mem[2] = (byte)((address & 0xff00) >> 8);
}

But that is taking over the complete interrupt handler on adress 0x38 (and i left out here saving the original handler).
Another way is to just hook into 0xFD9A (KEYI) or 0xFD9F (TIMI), for example by using this wrapper library from Emily82.

By hit9918

Prophet (2866)

hit9918's picture

19-02-2019, 22:20

this needs disabled interrupts or will make the random crashes

By ericb59

Paladin (855)

ericb59's picture

20-02-2019, 06:46

There is no interupt functions actually implemented in Fusion-c.
"__interrupt.h" is a first attempt, but is not documented.

I'm really not a specialist, if someone would like help me and the community by adding ISR to FUSION-C with (documentation) It would be really great.

Someone ?

By ToriHino

Champion (348)

ToriHino's picture

20-02-2019, 19:41

I'll see what i can do with the current ISR implementation i use in the RoboSOP player and separate it into a more generic usable implementation.

By ericb59

Paladin (855)

ericb59's picture

20-02-2019, 20:26

ToriHino wrote:

I'll see what i can do with the current ISR implementation i use in the RoboSOP player and separate it into a more generic usable implementation.

it sounds nice Shocked!

By ducasp

Expert (128)

ducasp's picture

22-02-2019, 14:44

CharToUpper and CharToLower are not declared in msx_fusion.h, they are declared as StrToUpper and StrToLower... Fixing the header file code compiles and links fine.

Page 3/12
1 | 2 | | 4 | 5 | 6 | 7 | 8