ugBASIC

ページ 1/2
| 2

By enribar

Paragon (1169)

enribar さんの画像

06-01-2022, 22:58

ugBASIC ARRIVES ON MSX!
With version 1.8, ugBASIC supports the MSX platform: therefore, starting from the same BASIC source for other 8-bit platforms, it will be possible to generate a ROM cartridge for all models compatible with this standard. The compiler supports the textual and graphic modes available on the standard VDP as well as all the functions already present, such as structured programming, multitasking and animations.
The MSX platform has also been integrated into ugBASIC-IDE: this tool offers syntactic highlighting, file management, online help and an integration for error diagnostics under Microsoft Windows. With a single shortcut key it is possible to send the program in execution directly on one of the supported emulators (openMSX or blueMSX).
To know more: https://ugbasic.iwashere.eu/?a=news#news

ログイン/登録して投稿

By jltursan

Prophet (2619)

jltursan さんの画像

07-01-2022, 10:47

Has anyone tested some MSX examples?

By PingPong

Prophet (3885)

PingPong さんの画像

07-01-2022, 11:25

is there support for msx2 and greater generations?
is there support for specific hw features like addressing directly devices like psg, vdp etc?

By thegeps

Paladin (1020)

thegeps さんの画像

07-01-2022, 14:04

Nope and nope.
ugBASIC is an isomorphic language, the same for all targets
As I know it can't manage sprites and sounds. Probably due tonthe fact that some of the supported hardware (like the Commodore Vic20, for example) don't have sprites.
Marco Spedaletti, the author, is in our FB retroprogramming group. If you want more precise answers I can directly ask him

By jltursan

Prophet (2619)

jltursan さんの画像

07-01-2022, 15:22

So the MSX sprite layer is a software based one?

By PingPong

Prophet (3885)

PingPong さんの画像

07-01-2022, 17:08

so, pratically it cannot do nothing really more useful than "10 PRINT 'HELLO WORLD'" not only for msx but also for others 8 bitters?
oO

By enribar

Paragon (1169)

enribar さんの画像

07-01-2022, 17:31

PingPong wrote:

so, pratically it cannot do nothing really more useful than "10 PRINT 'HELLO WORLD'" not only for msx but also for others 8 bitters? oO

Well, it can do more, there's an implementation of Flappy Bird and... big things start from small beginnings.
Here's a repository of various examples:
https://github.com/spotlessmind1975/ugbasic/tree/main/examples

By jltursan

Prophet (2619)

jltursan さんの画像

07-01-2022, 18:53

Yep, it's a pretty impressive language, it has sprites (based on the Painter algorithm as per the wiki) and multithreading. I've hopes that in the future, more advanced specific hardware-based layers can be added. In fact having software sprites already implemented could be great paired with the hardware ones to create rich scenarios Smile

By spotlessmind1975

Supporter (2)

spotlessmind1975 さんの画像

07-01-2022, 22:50

Hello everyone and nice to (virtually) meet you!

First of all, thank you very much for reporting the ugBASIC news on your forum: it was exciting for me to go back to programming this computer, after a break of almost a year, even if I confess that programming the Z80 is not my strong point. Big smile

To come to the questions: currently, the support for the MSX2 is not present, and it will be definitely added in the future. Regarding specific hardware access features, do not be fooled by the fact that you can develop on many platforms: in reality, ugBASIC was created to develop programs efficiently on any platform (or, at least, this is my hope).

Infact, the compiler was written "from scratch", it communicates directly with the hardware and it can produce optimized assembly code without dependencies. Moreover, it is a "stackless" language: this means that the memory footprint depends on cyclomatic complexity, and this is good for computers that have limited memory resources.
Finally, and more important, it is based on a new paradigm which I have called isomorphism. In a nutshell, it is not based on explicit abstractions and therefore takes advantage of (any) the hardware that is present, without reasoning with a "least common multiple" in mind. In this sense, sprites, sounds, etc ... will certainly be accessible in the hardware version but, by doing so, it will not be possible to write "portable" code. Which may not even matter because you're writing for speed and optimization, so... who cares!
In general, however, the idea is to give access to primitives which, although not technically "abstractions", allow to reduce the time required to adapt the codes between different machines (morphism), albeit with similar characteristics (iso). To the limit of a single program which runs reasonably fast everywhere and, clearly, never like the specific one that can still be written with ugBASIC itself.
I hope I have dispelled some doubts, but of course I remain available in case you have any questions.
At the moment I'm working on bringing ugBASIC to ColecoVision, and I'm already well under way: more than 50% of the examples work, although there is only 1KB available. By decreasing some system structures even more (like dynamic string space), you can go even further. However, the important thing is to bring something that works, then there is always time to improve it. ;)

By ARTRAG

Enlighted (6828)

ARTRAG さんの画像

08-01-2022, 11:18

Colecovision and msx share about the same architecture and Colecovision has also an expansion with 32KB of ram and an AY8910 used to run msx game (adapted to coleo)

By PingPong

Prophet (3885)

PingPong さんの画像

08-01-2022, 12:33

sw sprites are not a solution for 8 bit machines.

Given the limitations of 8 bits in terms of graphics what you can get is monochrome-colourclashed games without hw sprites.

most people complain the zx spectrum about colourclash has it was the ONLY computer that has this limit.
the reality is that on a 8 bit you can't have colorful gfx because it means having a lot of memory to manage to do animations. Such amount is outside the power available on a conventional 8 bit.
The optimal size of vram for an 8 bit should be 8-10Kb at maximum. however this amount of memory limits the colors and the resolutions available. the msx2 and amstrad CPC are good examples of good gfx. but they also have a large amount of memory you need to manage.

ページ 1/2
| 2