Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 06:21 05 May 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 : MMbasic 5.3 Requests.

     Page 1 of 11    
Author Message
Phil23
Guru

Joined: 27/03/2016
Location: Australia
Posts: 1664
Posted: 07:44pm 04 Sep 2016
Copy link to clipboard 
Print this post

Hi Geoff,

I know a list probably already exists, but thought I create a thread that can be added to.

Hoping it stays limited to only things that can't already be done in basic & have a usable purpose.

Read Access to pins assigned to the SD card, CD & WP.
It would make checking their state possible without returning an error BEFORE attempting to access the card.

[Code]> print Pin(30)
Error: Pin 30 is reserved on startup
>[/code]

Read only access to the registers where time & date is stored internally in (Integer form I Presume).

This would be extremely useful for time & date based calculations where presently Time & Date strings need to be converted to Integers before calculations can be performed.

I do have functions for that, but they can bog down code.

Maybe 2 read only variables.

MM.iDate - Days since 1900?
MM-iTime - Seconds since midnight.

Not sure how you store it internally at present, but whatever the form is I think that would suffice as long as we know how to decode it.

Cheers

Phil.
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 08:49pm 04 Sep 2016
Copy link to clipboard 
Print this post

MM.VER returns the same number as the 'version number'.

Currently see MM.VER = 5.02 for MMBasic version 5.2


For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 08:53pm 04 Sep 2016
Copy link to clipboard 
Print this post

Make it possible to return the value of BACKLIGHT without having to store it in your own variable
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 07:34pm 05 Sep 2016
Copy link to clipboard 
Print this post

Some good ideas here...

  Phil23 said  Read Access to pins assigned to the SD card, CD & WP.

Should be easy.

  Phil23 said  Read only access to the registers where time & date is stored internally.

Maybe 2 read only variables.
MM.iDate - Days since 1900?
MM-iTime - Seconds since midnight.

These might not be as easy. I try to avoid cluttering the language with too many specialised keywords and variables, especially when a simple subroutine can be written to do the same thing. This will need some thought.

  WhiteWizzard said   MM.VER returns the same number as the 'version number'. Currently see MM.VER = 5.02 for MMBasic version 5.2

The current notation was chosen so that you could do compares. For example:
IF MM.VER > 5.01 THEN ...
If the same as version number was returned V5.1 and V5.10 MM.VER would return for both 5.1

  WhiteWizzard said   Make it possible to return the value of BACKLIGHT without having to store it in your own variable

Another specialised keyword, but worth thinking about.

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

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 08:01pm 05 Sep 2016
Copy link to clipboard 
Print this post

Maybe instead of a keyword it could be an index in an array.
Maybe introduce one single keyword in the MM range.
[code]
CONST VERSION = 1 'As an example MM.Ver could be at index 1

IF MM.Index(VERSION) > 5.01 THEN
[/code]

or drop the sub keyword

[code]
IF MM(VERSION) > 5.01 THEN
[/code]

Any new variable can then just be added to the array

[code]
CONST BACKLIGHT = 15 'Imagine this is the current BackLight value
IF MM(BACKLIGHT) = 50 THEN
[/code]

This could be made backwards compatible by still accepting the current way and internally map those to an index. Adding new values can then be done without the need to use any new keywords. Those could then be replaced with a list of constants that can be declared at the top of your program.
Edited by MicroBlocks 2016-09-07
Microblocks. Build with logic.
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 08:30pm 05 Sep 2016
Copy link to clipboard 
Print this post

  Geoffg said  

  WhiteWizzard said   MM.VER returns the same number as the 'version number'. Currently see MM.VER = 5.02 for MMBasic version 5.2

The current notation was chosen so that you could do compares. For example:
IF MM.VER > 5.01 THEN ...
If the same as version number was returned V5.1 and V5.10 MM.VER would return for both 5.1


I see what you've done now. However this would be well confusing when you release MMBasic V5.10 and MM.VER is reporting 5.1. On this basis is it not worth calling the current version of MMBasic V5.02 instead of V5.2 simply keeping the same notation for both?


For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Phil23
Guru

Joined: 27/03/2016
Location: Australia
Posts: 1664
Posted: 09:46pm 05 Sep 2016
Copy link to clipboard 
Print this post

  Geoffg said   Some good ideas here...

  Phil23 said  Read only access to the registers where time & date is stored internally.

Maybe 2 read only variables.
MM.iDate - Days since 1900?
MM-iTime - Seconds since midnight.

These might not be as easy. I try to avoid cluttering the language with too many specialised keywords and variables.......


Realistically this request would probably be best supplied as a CSub.
Not everyone would use it, and have a sub would relieve extra congestion of the manual.

The raw values used would do if they are easy to operate on.


[Quote]The current notation was chosen so that you could do compares. For example:
IF MM.VER > 5.01 THEN ...


Only issue I've experience with the version notation was have 6 different MM's I was playing with & loosing track of the Beta's.

Would be handy to distinguish that when you are swapping back & forth.

Phil
 
lew247

Guru

Joined: 23/12/2015
Location: United Kingdom
Posts: 1676
Posted: 06:53am 06 Sep 2016
Copy link to clipboard 
Print this post

Allow advanced GUI controls to work with non GUI commands if possible
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 07:09am 06 Sep 2016
Copy link to clipboard 
Print this post

Please Geoff, I hope this is an easy one (and much needed in my role of supplying MM+'s

When you do a GUI CALIBRATE for the touch screen, can the confirmation message that all is done without error (or indeed the error message displayed instead) be displayed on the TFT as well as the console?

May seem trivial, but this is one of those little things that catches me out every time

Thanks,
WW

For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 08:27pm 06 Sep 2016
Copy link to clipboard 
Print this post

  WhiteWizzard said   When you do a GUI CALIBRATE for the touch screen, can the confirmation message that all is done without error (or indeed the error message displayed instead) be displayed on the TFT as well as the console?

Now that does make sense... I have put it on the todo list.

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

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 08:34pm 06 Sep 2016
Copy link to clipboard 
Print this post

  lew247 said   Allow advanced GUI controls to work with non GUI commands if possible

Yes, this is something that I will have to work on.

The problem is that you can create millions of non GUI things (think of the PIXEL command for example) and for them to be managed they have to be tracked by the GUI draw/hide mechanism which would rapidly consume all the RAM.

But, there needs to be a way of getting better integration. I have done it with the CLS command and I need to look at the others.

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

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 08:49pm 06 Sep 2016
Copy link to clipboard 
Print this post

Hi Geoff, All,

  Geoffg said  
  WhiteWizzard said   When you do a GUI CALIBRATE for the touch screen, can the confirmation message that all is done without error (or indeed the error message displayed instead) be displayed on the TFT as well as the console?

Now that does make sense... I have put it on the todo list.

Geoff


Can the measured co-ordinates be also displayed as well, (even on the Console would be nice to see how far off when you get a failure on calibrate.

Kind Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 08:49pm 06 Sep 2016
Copy link to clipboard 
Print this post

Sprites

I know Geoff thought hardly anyone used these before but please can this be reconsidered.
As an embedded controller Sprites may seem a silly thing to be included in MMBasic.

But now use an Explore100 as a standalone computer and with the current graphics capabilities then having Sprites begins to make a lot of sense.

The MicroMite is now so similar to a 80's home computer in terms of features (and obviously the MM has many more hardware-peripheral-features than the 80's computer) - that it would be a real shame if Sprites were not incorporated even at a very simple level.

I am planing on converting some 80s games for the MM+ and Sprites would make this task easy (virtually copy line-for-line any 80s game listing!

Thought I'd mention it once agin Geoff to see if it has a wider appeal now that the E100 is out there!
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 09:17pm 06 Sep 2016
Copy link to clipboard 
Print this post

Sprites is something that I am not good at (I discovered this when implementing them for the Colour Maximite). I think that it is because I just don't grok action games.

I will re look at them but if someone out there knows of a suitable sprite syntax/architecture please let me know. With that in front of me writing the code to implement them would be much easier.

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

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9066
Posted: 09:22pm 06 Sep 2016
Copy link to clipboard 
Print this post

Grok?!

Does not compute......
Smoke makes things work. When the smoke gets out, it stops!
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 09:52pm 06 Sep 2016
Copy link to clipboard 
Print this post

  Geoffg said  I think that it is because I just don't grok action games.


Likewise - I can't stand computer 'action' games; but writing game code for something simple is a joy! Sprites opens up the second generation of computer games (after Pong and Space Invaders) to things like PacMan on the MM+.

Lets leave it to Peter M to write 3D 100fps action Game CSubs!

I will take a look at some of my manuals form 80s computers and see if there is a couple of command syntax's I could recommend. Will email you so this doesn't take over this thread
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
cosmic frog
Senior Member

Joined: 09/02/2012
Location: United Kingdom
Posts: 278
Posted: 10:10pm 06 Sep 2016
Copy link to clipboard 
Print this post

  WhiteWizzard said  
  Geoffg said  I think that it is because I just don't grok action games.


Likewise - I can't stand computer 'action' games; but writing game code for something simple is a joy! Sprites opens up the second generation of computer games (after Pong and Space Invaders) to things like PacMan on the MM+.

Lets leave it to Peter M to write 3D 100fps action Game CSubs!

I will take a look at some of my manuals form 80s computers and see if there is a couple of command syntax's I could recommend. Will email you so this doesn't take over this thread


The syntax for sprites needs something like-

SPRITE(spritenumber,spriteimage,x,y,colision)

Dave.


Edited by cosmic frog 2016-09-08
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 11:24pm 06 Sep 2016
Copy link to clipboard 
Print this post

  Quote  The syntax for sprites needs something like-

SPRITE(spritenumber,spriteimage,x,y,colision)


what is the functionality?
 
cosmic frog
Senior Member

Joined: 09/02/2012
Location: United Kingdom
Posts: 278
Posted: 11:37pm 06 Sep 2016
Copy link to clipboard 
Print this post

  matherp said  
  Quote  The syntax for sprites needs something like-

SPRITE(spritenumber,spriteimage,x,y,colision)


what is the functionality?



To place a Sprite on the screen at coordinates X,Y and test the image or image colour under said sprite to check for colision.

Dave.


 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 11:50pm 06 Sep 2016
Copy link to clipboard 
Print this post

If you look at this thread and the linked video, it looks like the things I'm missing are a simpler programmer interface and collision detection.

I assume collision detection happens when the sprite boundary of one sprite overlaps another? What about if they touch without overlapping?

 
     Page 1 of 11    
Print this page
© JAQ Software 2024