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

بواسطة albs_br

Champion (367)

صورة 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.


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 أوregister لوضع تعليقاتك

بواسطة Wolverine_nl

Paragon (1159)

صورة Wolverine_nl

13-08-2020, 09:03

good find albs_br ! Smile this deserves attention for sure.

بواسطة konamiman

Paragon (1162)

صورة konamiman

14-08-2020, 10:07

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

بواسطة santiontanon

Paragon (1569)

صورة santiontanon

14-08-2020, 22:20

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

بواسطة albs_br

Champion (367)

صورة 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.

بواسطة albs_br

Champion (367)

صورة 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 {

بواسطة Dolphin101546015

Champion (335)

صورة Dolphin101546015

08-08-2021, 15:41

With __z88dk_fastcall, uint16_t mean HL, uint8_t mean A.

بواسطة 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.