Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
another forum area for other platforms than zx-spectrum
#1
Since Boriel told us that this zxbasic compiler is planned to be flexible enough to target other platforms than only zx-spectrum, maybe another are of this forum could be created, where we could discuss information and knowledge which could help on this, since i'm seeing that more people could be interested on helping

For example, i were about trying to create stuff for msx2+ (for example, using laced screen12 or screen7) using this zxbasic-compiler, but i'm concerned on how it could create incompatible binaries (like using rom calls or system variable accesses from zx-spectrum ), and targeting 'bloadable' binaries, or .rom files

(for example as well, would be interesting seeing stuff made for msxdev contest made with this Boriel's zxbasic-compiler)

I readed somewhere that Boriel mentioned other z80 machines as well, like Amstrad - btw, the idea is about this, having a kind of shared brainstorm here about all 8bit hardware manufactured (also like zx81, Mattel Aquarius, sharp mz700, nec pc6001, etc.), which components each one has and how are they used, how they deal with ansi-basic language, etc. - maybe we should start something on the wiki pages as well?

I think information like this, and accessible as well, can help a lot, not only the multiplatform cross-development target of this compiler, as can help as well retro developers and teams (like those wonderful Mojon Twins team) on developing on all these other hardware as well - this would be wonderful!

what do you all think about? and who can help, and on what?
Reply
#2
This is something I'd like to address.
Unfortunately, I don't know the MSX2 architecture and need more information or, if you know it, your help will be very appreciated: I will create another thread for it. In fact, I'm heavily rewriting some compiler modules to enable other targets.

Also the alternative sub calls must be implemented, I guess. so DRAW x, y could be also called Draw(X,Y). This will allow to remove the DRAW, INK and other ZX Spectrum specific commands to an external library while maintaining compatibility with current programs.

MSX DOS BASIC is slightly different and I guess genuine uses would like the compiler to mimic their BASIC as much as possible (the same applies to amstrad).
Reply
#3
I have somewhere MSX and SAM technical manuals downloaded from internet, which explains the system calls and architecture (I was planing my own compiler). Will check them...

BTW: removing DRAW and using DRAW() will break the 100% spectrum compatibility, so Sinclair Basic programs cannot be compiled anymore. Not that I think this is a bad idea... I also do not use line numbers (I hate them).
My idea is to keep DRAW and add a library LINE() or VECTOR() or DRAWTO(). Why to mimic their BASIC and not create one which is common for all the computers? I'm thinking about cross development. Incompatible commands will just cause a "Unsupported command" error.

Oh, Nitro, I'm envy that you have a MSX2+. I only have MSX and MSX2.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply
#4
LCD it won't
LCD Wrote:BTW: removing DRAW and using DRAW() will break the 100% spectrum compatibility, so Sinclair Basic programs cannot be compiled anymore. Not that I think this is a bad idea... I also do not use line numbers (I hate them).

My idea is to keep DRAW and add a library LINE() or VECTOR() or DRAWTO(). Why to mimic their BASIC and not create one which is common for all the computers? I'm thinking about cross development. Incompatible commands will just cause a "Unsupported command" error.
That was not the idea :!:

The idea is allowing DRAW, INK, etc. to be defined as Subs (not part of the inner language), and allow subs to be called without parenthesis.
So:
Code:
SUB DRAW(unsigned x, unsigned y)
...
...
END SUB
could be called either with
Code:
DRAW(x, y): Rem Calling a SUB this way is already implemented
or this other way:
Code:
DRAW x, y: REM Calling a sub with no parenthesis (like Visual Basic)
This won't break ZX Spectrum BASIC compatibility, and will allow to take Spectrum-specific instructions out (the same way SCREEN$, ATTR and POINT are now).
Simply, when a user specifies --arch=sinclair (or whatever), a hidden #include <sinclair> is inserted in the code silently. Note: something like this is already done for SCREEN$, ATTR and POINT when higher ZX Spectrum compatibility is enabled.
Reply
#5
Okay, it was a simple misunderstanding, sorry.
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply
#6
LCD Wrote:Okay, it was a simple misunderstanding, sorry.
Well, I hope I didn't sound rude (not intended!). :oops:
Ah, and BTW Happy New Year! :wink:
Reply
#7
LCD Wrote:Oh, Nitro, I'm envy that you have a MSX2+. I only have MSX and MSX2.

not yet, i only know it from emulation (openmsx emulates 2+ fine)
btw, i posted some stuff about laced screen7 and screen12 at:
<!-- m --><a class="postlink" href="http://www.msxposse.com/site/forum/viewtopic.php?t=895&highlight=">http://www.msxposse.com/site/forum/view ... highlight=</a><!-- m -->
<!-- m --><a class="postlink" href="http://www.msxposse.com/site/forum/viewtopic.php?t=605&highlight=">http://www.msxposse.com/site/forum/view ... highlight=</a><!-- m -->
<!-- m --><a class="postlink" href="http://www.msxposse.com/site/forum/viewtopic.php?t=519&postdays=0&postorder=asc&start=60">http://www.msxposse.com/site/forum/view ... c&start=60</a><!-- m -->
<!-- m --><a class="postlink" href="http://www.msxposse.com/site/forum/viewtopic.php?t=895&sid=d576eef39dee2abed5bc25ccec518243">http://www.msxposse.com/site/forum/view ... ccec518243</a><!-- m -->

( i hope i'm not too offtopic here in this example: i think i also have some stuff at <!-- m --><a class="postlink" href="http://nitrofurano.altervista.org/retrocoding/msx/">http://nitrofurano.altervista.org/retrocoding/msx/</a><!-- m --> , and picture converters at <!-- m --><a class="postlink" href="http://nitrofurano.altervista.org/sdlbasic/">http://nitrofurano.altervista.org/sdlbasic/</a><!-- m --> or <!-- m --><a class="postlink" href="http://nitrofurano.altervista.org/experimental/webcampictureson8bitcomputers/index.html">http://nitrofurano.altervista.org/exper ... index.html</a><!-- m --> )
Reply
#8
useful documentation about msx i found at:
<!-- m --><a class="postlink" href="http://map.grauw.nl/resources/msxbios.php">http://map.grauw.nl/resources/msxbios.php</a><!-- m -->
<!-- m --><a class="postlink" href="http://map.grauw.nl/resources/subrom.php">http://map.grauw.nl/resources/subrom.php</a><!-- m -->
<!-- m --><a class="postlink" href="http://map.grauw.nl/resources/msxsystemvars.php">http://map.grauw.nl/resources/msxsystemvars.php</a><!-- m -->
<!-- m --><a class="postlink" href="http://www.konamiman.com/msx/msx2th/th-ap.txt">http://www.konamiman.com/msx/msx2th/th-ap.txt</a><!-- m -->
Reply
#9
No, it's not off-topic at all! ZX Basic was designed as a retargeable compiler from the beginning. Eventually it's name will be changed to ___ BASIC and so the main forum, and ZX BASIC stuff moved to a subforum. But meanwhile...

I need to end the compiler api (I've been working hard on this in my little spare time), so YOU (yes, any) will be able to expand the compiler in some way. Or at least help in some area.
Reply
#10
maybe a name like BBCC? (Boriel's Basic Cross-Compiler?)
Reply
#11
Hmm, that's appealing! Big Grin not for the Boriel thing, but for the BBC micro name: <!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/BBC_Micro">http://en.wikipedia.org/wiki/BBC_Micro</a><!-- m --> :!:
Hmmm. We should propose names and vote, I think. But I definitely like this one.
Reply
#12
i started this:
<!-- m --><a class="postlink" href="http://nitrofurano.springnote.com/pages/10217158">http://nitrofurano.springnote.com/pages/10217158</a><!-- m -->

(sad that url page above seems to be not public, which seems all people need to have an account there? - btw, i'm looking for free wiki hosts where i could have an account there, and having these wiki pages public - if anyone knows any good, please let me know - anyway, i made a temporary backup of this at <!-- m --><a class="postlink" href="http://pastebin.com/prfpnaKX">http://pastebin.com/prfpnaKX</a><!-- m --> )
Reply
#13
boriel Wrote:Hmm, that's appealing! Big Grin not for the Boriel thing, but for the BBC micro name: <!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/BBC_Micro">http://en.wikipedia.org/wiki/BBC_Micro</a><!-- m --> :!:
Hmmm. We should propose names and vote, I think. But I definitely like this one.

maybe for avoiding ambiguity, i could propose BCCB instead - (Basic Cross-Compiler from Boriel) - or BCBC (Boriel's Cross Basic Compiler) - i think there are no computers or compilers named BCCB or BCBC...
Reply
#14
Yes, but I like it to be named BBC just precisely for this.
I love BBC computer design. It was really advanced for its age. :!:
It turns out (if I recall correctly) that ZX Spectrum arrived later. I don't know why this machine didn't expand out of UK.
Reply
#15
nitrofurano Wrote:
boriel Wrote:Hmm, that's appealing! Big Grin not for the Boriel thing, but for the BBC micro name: <!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/BBC_Micro">http://en.wikipedia.org/wiki/BBC_Micro</a><!-- m --> :!:
Hmmm. We should propose names and vote, I think. But I definitely like this one.

maybe for avoiding ambiguity, i could propose BCCB instead - (Basic Cross-Compiler from Boriel) - or BCBC (Boriel's Cross Basic Compiler) - i think there are no computers or compilers named BCCB or BCBC...
You can also use this site wiki, <!-- m --><a class="postlink" href="http://zxbasic.net">http://zxbasic.net</a><!-- m --> (login with your current user and pass).
But don't know if you're interested on it. Anyway: feel free to edit the wiki).
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)