8 bit workshop, online IDE for MSX and other classic platforms

By albs_br

Champion (339)

Аватар пользователя albs_br

13-08-2020, 05:44

I did a search on this forum and only get one hit about this, on the russian subforum, then I decided to open this thread so it can be helpful to many more people.

https://8bitworkshop.com/

Is an online IDE for MSX, NES, Atari 2600, C64, MAster System and many more. It has some interesting debug tools. Many code samples. Maybe not well suited for big or serious project but for small tests or proofs of concept it seems to fit very well. You change the code and get the result on the screen instantly.

Also they published some books on game dev. Actually I'm reading the book about NES games. It's very good reading.

Hope that helps.

Для того, чтобы оставить комментарий, необходимо регистрация или !login

By Wolverine_nl

Paragon (1158)

Аватар пользователя Wolverine_nl

13-08-2020, 09:03

good find albs_br ! Smile this deserves attention for sure.

By konamiman

Paragon (1143)

Аватар пользователя konamiman

14-08-2020, 10:07

This looks awesome. My humble contribution: https://github.com/sehugg/8bitworkshop/pull/46

By santiontanon

Paragon (1487)

Аватар пользователя santiontanon

14-08-2020, 22:20

Very cool! has anyone used it and want to share their thoughts on it?

By albs_br

Champion (339)

Аватар пользователя albs_br

07-08-2021, 23:56

I'm doing some experiments with 8bitworkshop, developing in C for MSX, but have a question:

Anyone know what "reg_data" means on the WRTPSG routine in msxbios.h?

The signature is the following:
uint16_t WRTPSG(uint16_t reg_data) __z88dk_fastcall;

I suppose it is common to other C language environments/compilers (I don't even know what C compiler 8bitworkshop uses).

In ASM, this routine is simple to use:

    ld a, 8					; Channel A Volume (0-15)
    ld e, 15
    call BIOS_WRTPSG		

We pass register number in A and value in E, pretty simple.
But in C there is only one 16 bit parameter. I tried passing the registers A and E in low and high bytes of this reg_data, but nothing happened.

I suppose this is something that an experienced C programmer should know.

By albs_br

Champion (339)

Аватар пользователя albs_br

08-08-2021, 05:08

Found the reason:
The implementation of the call WRTPSG were using the wrong address, 0x0096 instead of 0x0093:

uint16_t WRTPSG(uint16_t reg_data) __z88dk_fastcall {
  reg_data;
  MSXUSR_LOAD_A();
  MSXUSR_LOAD_E();
  //MSXUSR(0x0096);
  MSXUSR(0x0093);
}

By Dolphin101546015

Champion (326)

Аватар пользователя Dolphin101546015

08-08-2021, 15:41

With __z88dk_fastcall, uint16_t mean HL, uint8_t mean A.

By diogoeichert

Rookie (28)

Аватар пользователя diogoeichert

09-08-2021, 18:26

I was about to post about 8 bit workshop here, but I see you people have already been hacking around it. It looks promising.