Omnimaga > Grammer

Latest Grammer Updates

(1/2) > >>

Xeda112358:
EDIT: Go to the last post for the newest full release. This will include at least a tutorial, command documentation and the latest version of Grammer.
This topic is solely for Grammer releases. These can be discussed in this topic. This first version to appear here has the following features:

--- Code: ---
getKey               String support          sprite support
Tilemapping          Line drawing            rectangles (11 styles)
circle drawing       pixel plotting          multiple buffers
Grayscale            Particle effects        Fire Effects
53 vars +1 sysvar    [ON] break              Custom fonts
Custom Error handler variable creation       var editing
RAM editing          Labels                  sub routines
External labels      external routines       TI-OS var access
If conditionals      While, Repeat, For      Goto
Hexadecimal input    binary input            relative line jumping

16-bit math including:
      addition         (carry=1-bit overflow)
      subtraction      (carry=1-bit overflow)
      division         (carry=16-bit remainder)
      multiplication   (carry=16-bit overflow)
      square           (carry=16-bit overflow)
      square root      (carry=remainder)
      square root (rounded)
      negative
      min(
      max(
      abs(
      sin(
      cos(
      rand
      gcd(
      lcm(
       nCr
       and
       or
       xor
      not(
      signed division
      randInt(
Logic including:
      Less than
      Less than or equal
      equal
      not equal
      greater than
      greater than or equal
Text output for:
     16-bit numbers in arbitrary bases
     32-bit numbers in arbitrary bases
     strings
     Typewriter mode
     inverted text
     custom font style
     line wrapping

--- End code ---
There are tons of other features, too, but I cannot remember them all.

Xeda112358:
Version 2.25.03.12
I have to rewrite the readme for this thing sometime, it is getting messy...

Updates:
I am going to have to rewrite this whole document because it is a mess with
inserting new commands everywhere. Anyways, here are useful additions since the
last update:
-The user can now use lowercase letters instead of, say, A'. This is the same
size, but looks cleaner.
-You can now store Ɵ' and Ans at the same time by defining both vars after →.
For example, R*P→aA will store the upper 16-bits of the multiplication in a and
the lower 16-bits in A.
-Output(2 is the Text( mode for drawing the fixed font to pixel coordinates
-Text( without arguments will return the coordinates as Ans=Y, Ɵ'=X
-For the coordinates in a Text( command, you can do relative placement. For
example, if you want text at 2 pixels below the last drawn text:

--- Code: ---:Text(+2,,"2
--- End code ---
The +2 draws it down 2 pixel from the last location and the empty argument for X
means it uses the previous X coordinate. Useful for subscripts and super scripts
-You can set the Text( coordinates by using two arguments for Y and X. For
example:

--- Code: ---:Text(56,0
--- End code ---

Xeda112358:
Version 2.29.04.12
I have rewritten the readme, added in support for the menu options, and modified some commands. I tried fixing bugs like the fact that length( wasn't returning what it was supposed to. I also made more arguments optional for certain functions like the sprite and circle commands. Any comments or suggestions can go in the appropriate topic :)

Xeda112358:
Version 2.01.05.12
I have updated the readme with new info for the new functions. Fix now returns the current state of the modes and you can now use bitlogic to set or reset certain modes. For example, to reset a certain modes, get their mode number and do something like this:

Fix  and not(n   ;Example, n=6 to enable ON and make the graph screen update normally

To set certain modes, do this:

Fix  or n   ;Example, n=6 to disable ON and make the screen update inverted

You can also now use RecallPic and StorePic :)

Finally, the particle engine has been updated! It is now faster (2048 particles in PARTEX2 now is done at 5.66 FPS instead of 3.60 :D) and the rules can be changed :) There are two ways to customise the rules, the easy way being something like this:

--- Code: ---P▶Ry(2,"D,LR,U

--- End code ---
That sets the rule to check the down direction first, if it cannot move down, try left and right, if that fails, check up :)

Any comments or suggestions can go in the appropriate topic :)

Xeda112358:
EDIT: Updated this download with a critical bugfix with the Send( command. Was v2.50.6.3.
EDIT2: Yet more important bugs were fixed, now we are graduating to 2.50.6.7 for this update :|
Grammer v2.50.6.4
There have been many updates, importantly the version naming convention. In the past, the Grammer version was identified by the date that it was made. Now it is separated into 2.major.minor.veryminor.
Updates: This is NOT an exhaustive list.


* Older assembly Grammer programs will NOT be compatible with this version or versions going forward.
* Grammer is now a 2-page app (32768 bytes), whereas it used to be a 1-page app (16384 bytes).
* The main menu has been significantly updated, hopefully for the better.
* Some token replacements have been changed.
* Fixed various bugs, made various optimizations.
To the language:

* Grammer programs can now use external modules, via the ▶DMS token.
* G-T returns the address of the default front buffer.
* G-T' returns the address of AppBackUpScreen, a typical backbuffer.
* Wide support for floating point routines.
* Added stack support and better parameter parsing via Pmt_Bgn, Pmt_End, and Param
* Added the ▶Nom( ... End block to preserve a set of variables within the block. For example, you can save vars A, B, and C, use them within the block, and they'll be restored when the block ends. This is very useful for subroutines where you may want to use variables without destroying the callee's variables.
* Input has been changed! It now has a blinking cursor instead of highlighting the text.
* The Input buffer can now be relocated and you can set a max size! Useful for when you want to limit, say, a player's name. Use →Input and →Input'.
* The width argument for Pt-Off( is finally meaningful! Sprites can now be drawn to pixel coordinates and be wider (big sprites!).
* The Menu( command was totally rewritten. It looks similar, but is a lot smoother and will now scroll if there are too many entries (scrolling menu!). It is also much nicer on RAM usage, so you'll be able to fit more options than previously allowed.
* A new menu method is available via Menu('. You can supply a title, location, width, height, and pointers to two Grammer subroutines. The menu will then call your subroutines to get the string to display and the value to return upon selection. Useful for menus that have many options, but options that can be "computed" in some way (for example, reading lines from an external file and supplying those as options).
* Added 9 more Circle( methods using filled circles!
Here are some screenshots:

Navigation

[0] Message Index

[#] Next page

Go to full version