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

Par albs_br

Champion (339)

Portrait de 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 ou Inscrivez-vous pour poster

Par Wolverine_nl

Paragon (1158)

Portrait de Wolverine_nl

13-08-2020, 09:03

good find albs_br ! Smile this deserves attention for sure.

Par konamiman

Paragon (1143)

Portrait de konamiman

14-08-2020, 10:07

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

Par santiontanon

Paragon (1486)

Portrait de santiontanon

14-08-2020, 22:20

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

Par albs_br

Champion (339)

Portrait de 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.

Par albs_br

Champion (339)

Portrait de 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);
}

Par Dolphin101546015

Champion (326)

Portrait de Dolphin101546015

08-08-2021, 15:41

With __z88dk_fastcall, uint16_t mean HL, uint8_t mean A.

Par diogoeichert

Rookie (28)

Portrait de 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.