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

Door albs_br

Champion (339)

afbeelding van 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.

Aangemeld of registreer om reacties te plaatsen

Van Wolverine_nl

Paragon (1158)

afbeelding van Wolverine_nl

13-08-2020, 09:03

good find albs_br ! Smile this deserves attention for sure.

Van konamiman

Paragon (1143)

afbeelding van konamiman

14-08-2020, 10:07

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

Van santiontanon

Paragon (1487)

afbeelding van santiontanon

14-08-2020, 22:20

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

Van albs_br

Champion (339)

afbeelding van 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.

Van albs_br

Champion (339)

afbeelding van 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 {

Van Dolphin101546015

Champion (326)

afbeelding van Dolphin101546015

08-08-2021, 15:41

With __z88dk_fastcall, uint16_t mean HL, uint8_t mean A.

Van diogoeichert

Rookie (28)

afbeelding van 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.