Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 02:25 23 Dec 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : MMB4L: Requesting some input on command names for MMB4L specifics

Author Message
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4066
Posted: 11:57am 19 Dec 2024
Copy link to clipboard 
Print this post

Hi folks,

There are a couple of new command names I've introduced in MMB4L 0.7.0 that I'm unsure about and wondered if anyone would like to add some input ?

Item 1:

OPTION SIMULATE platform
   - Enables (limited) compatibility with other MMBasic platforms.
   - platform can be one of:  "MMB4L", "MMBasic for Windows", "MMB4W",
     "Colour Maximite 2", "CMM2", "PicoMiteVGA", "Game*Mite" and only
     needs to be quoted for the "MMBasic for Windows" and "Game*Mite"
     cases due to restrictions caused by tokenisation.


I was wondering if this should be OPTION COMPATIBLE or something else instead? Note I deliberately don't want to use OPTION EMULATE because this is not an emulation in even a very loose sense.

Item 2:

The MMB4L specific graphics commands currently use the GRAPHICS keyword:
GRAPHICS BUFFER id, width, height
   - Creates an off-screen buffer surface.
   - Note that surface 0 cannot be a buffer.
GRAPHICS CLS id [, colour]
   - Clears a surface.
GRAPHICS COPY src_id TO dst_id [, when] [, transparent]
   - Copies one surface to another (c.f. PAGE COPY on the CMM2).
GRAPHICS DESTROY { id | ALL }
   - Destroys a surface.
GRAPHICS INTERRUPT id, {interrupt|0}
   - Sets or clears the interrupt handler for a window surface.
GRAPHICS LIST
   - Lists all surfaces.
GRAPHICS SPRITE id, width, height
   - Creates a sprite surface.
   - Note that all graphics primitive commands can be used on sprite
     surfaces; this is different to other MMBasics.
   - Note that surface 0 cannot be a sprite.
GRAPHICS TITLE id, title$
   - Sets the title of a window surface.
GRAPHICS WINDOW id, width, height [, x] [, y] [, title$] [, scale]
                [, interrupt]
   - Creates a window surface.
   - Note that surface 0 can (only) be a window.
GRAPHICS WRITE { id | NONE }
   - Sets the surface to direct other graphics commands to
     (c.f. PAGE WRITE on the CMM2)


I was wondering if this command should be be called GFX rather than GRAPHICS ?

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
PhenixRising
Guru

Joined: 07/11/2023
Location: United Kingdom
Posts: 917
Posted: 12:45pm 19 Dec 2024
Copy link to clipboard 
Print this post

Definitely GFX  
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6904
Posted: 01:04pm 19 Dec 2024
Copy link to clipboard 
Print this post

As a two-finger typist any reduction in word length is welcome. :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 03:39pm 19 Dec 2024
Copy link to clipboard 
Print this post

Hi Tom,

Merry Christmas, and a very good and warm 2025...

OPTION SYNTAX ?

Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4066
Posted: 03:50pm 19 Dec 2024
Copy link to clipboard 
Print this post

  Volhout said  OPTION SYNTAX ?


And a Merry Christmas to you too.

I like OPTION SYNTAX because it is short and snappy ... but it is a less than accurate description . MMB4L does more than just accept the syntax of other MMBasic platforms. For example with OPTION SIMULATE "PicoMiteVGA" it will simulate enough GPIO to let you use SETPIN/PIN/PULSE to read two connected USB controllers as if they were SNES controllers wired according to the PicoGAME VGA 2.0 schematic.

Best wishes,

Tom
Edited 2024-12-20 03:19 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3231
Posted: 02:17am 20 Dec 2024
Copy link to clipboard 
Print this post

I vote for
- OPTION COMPATIBLE
- GRAPHICS

both make sense to the casual user.

Geoff
Geoff Graham - http://geoffg.net
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1622
Posted: 02:30am 20 Dec 2024
Copy link to clipboard 
Print this post

OPTION OPMODE
OPTION GRAPHICS

Maybe:
OPTION GFXMODE

Bill
Edited 2024-12-20 12:41 by Turbo46
Keep safe. Live long and prosper.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 07:26am 20 Dec 2024
Copy link to clipboard 
Print this post

I think you have set your mind to SIMULATE already, but here are more

OPTION MIMICK
OPTION TARGET
OPTION PLATFORM
OPTION ALIAS
OPTION AVATAR
OPTION CLOAK
OPTION SIMILAR

In your early post you make no difference between CMM2 and CMM2-G2. But there is.

btw OPTION GRAPHICS is the best solution. I like abbreviations, but GFX is not one of them.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6904
Posted: 08:21am 20 Dec 2024
Copy link to clipboard 
Print this post

Tiny BASIC anyone?
GRAPHICS with the option to abbreviate it to "GR."  :)

I like OPTION COMPATIBLE because it's clear what it does.
GRAPHICS I'm not quite so certain about, although it's descriptive.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9283
Posted: 08:46am 20 Dec 2024
Copy link to clipboard 
Print this post

Surely this is MMBasic for LINUX. They should be called things like "splod" and "grok"    
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4066
Posted: 09:59am 20 Dec 2024
Copy link to clipboard 
Print this post

  matherp said  Surely this is MMBasic for LINUX. They should be called things like "splod" and "grok"    




I suppose I should take comfort in the fact that I'm not the only one struggling to name these commands .

  Volhout said  OPTION TARGET
OPTION PLATFORM


Not OPTION PLATFORM (or OPTION DEVICE for that matter). OPTION PLATFORM already exists on the PicoMite as a permanent option that is unset in most circumstances, so I don't want to be setting it every time the user wants to "simulate" the PicoMite{VGA}.

Note that currently setting OPTION SIMULATE "Game*Mite" will cause MM.INFO(DEVICE) to return "PicoMite" and MM.INFO(PLATFORM) to return "Game*Mite", but OPTION SIMULATE "PicoMiteVGA" will cause MM.INFO(DEVICE) to return "PicoMiteVGA" and MM.INFO(PLATFORM) to return the empty string.

I quite like OPTION TARGET, shorter than SIMULATE and COMPATIBLE. What do others think ?

  Volhout said  In your early post you make no difference between CMM2 and CMM2-G2. But there is.


At the crude level of simulation currently implemented there is no difference for MMB4L. I may change this in the future depending on what use (if any) users put MMB4L to. Note that MMB4L doesn't attempt to simulate memory usage or limitations, this would be a bit tricky because to keep things simple it uses (and pays the memory cost of) 32-bit graphics surfaces throughout.

  Mixtel90 said  GRAPHICS with the option to abbreviate it to "GR."


I think it would be a bit odd to implement an abbreviation for just one command. Likewise I want to avoid having both GRAPHICS and GFX as synonyms, that just reeks of "design by committee" .

Best wishes,

Tom
Edited 2024-12-20 23:29 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024