GRF library v0.14 by JirSoft (TOOL/GRAPHICS, updated 22-08-2021 18:52:21) UPDATE
Simple graphic library (info and loader)
Simple graphic library (info and loader)
It enables simpler use of some graphic formats, more info on GitHub...
Info and loaders for following formats:
• general : JPG, GIF, PNG, BMP
• Atari ST : PI1, PI2, PI3, PC1, PC2, PC3
• C64 : DD,HED, KOA, HBM
• ZX Spectrum: SCR, BSC
Also can save BMP in 8- and 16-bit colors.
Info and loaders for following formats:
• general : JPG, GIF, PNG, BMP
• Atari ST : PI1, PI2, PI3, PC1, PC2, PC3
• C64 : DD,HED, KOA, HBM
• ZX Spectrum: SCR, BSC
Also can save BMP in 8- and 16-bit colors.
MasterMind v0.01 by JirSoft (GAME, updated 14-02-2021 20:23:24) UPDATE
Simple logic game from childhood
Simple logic game from childhood
On the game begin computer randomly selects N colours from MAX count and store this as secret row. Task for player is to guess correct row with placing own choices in every round. On the round end, computer tells with GREENs points how many colors are on right places and with REDs how many are correct colour in wrong place. This should help the player in next row. You can adjust the game difficulty to match yours skill...
Napoleon Commander v1.40 by JirSoft (TOOL/COMM/MAC-PC, updated 07-11-2021 17:46:01) UPDATE
File explorer similar to ancient Norton, Volkov and other commanders on DOS
File explorer similar to ancient Norton, Volkov and other commanders on DOS
File and directory operations on local SD card and from/to server (serial port or ESP8266/32 over Wifi with help of Python server, full support of CMM2 DeLuxe Edition)
• Operations like copy, move, rename, delete, search...
• Data viewers (TEXT, BASIC, HEX, SPRITE, IMAGE - also some C64, ZX Spectrum and Atari ST formats), simple HEX editor
• Simple proportional text viewer (ALT F4)
• Archive and compress
Now resolution independent!
• Operations like copy, move, rename, delete, search...
• Data viewers (TEXT, BASIC, HEX, SPRITE, IMAGE - also some C64, ZX Spectrum and Atari ST formats), simple HEX editor
• Simple proportional text viewer (ALT F4)
• Archive and compress
Now resolution independent!
PropText v0.06 by JirSoft (TOOL, updated 07-11-2021 17:51:14) UPDATE
Library for proportional text
Library for proportional text
Simple library for use standard fonts on CMM2 as proportional ones. Started with version 0.02, you can mix standard (monospaced) PRINT and TEXT commands with proportional from this library. This library can be used for example in text adventures, because of better readability of texts...
Usage:
• initAll.PROP initialise offsets and widths for all built-in fonts
• initFont.PROP(fnt%) initialise offsets and widths for font fnt%
• text.PROP(x%,y%,txt$,al%,fnt%,fc%,bc%) similar to TEXT command, just size parameter is ommited
• print.PROP(txt$, addSpace$) prints proportional txt$ on current position, wraps character to next line, without line feed, if the string addSpace$ is not empty, then to Nth SPACE (" ") in txt$ is added PX pixels, where PX=ASC(MID$(addSpace$, N, 1)), you can use TAB and LF chars in txt$
• printLn.PROP(txt$, addSpace$) same as print.PROP with line feed
• wrap.PROP(txt$) word wrapped proportional text output
• justify.PROP(txt$, txtWidth%, dx%) full jutified left and right word wrapped proportional text with size txtWidth% written to offset dx%
• justifyLine.PROP(txt$, txtWidth%, dx%) full jutified ONE LINE left and right word wrapped proportional text with size txtWidth% written to offset dx%. In txt$ is then returned non printed rest of text
• getTextWidth.PROP(fnt$, txt$) returns width of the proportinal text in font fnt% in pixels
• tab.PROP(t%) will set TAB position to every t%-pixels
• font.PROP(f%) will set FONT
• color.PROP(fc%, bc%) set foreground and background color
Usage:
• initAll.PROP initialise offsets and widths for all built-in fonts
• initFont.PROP(fnt%) initialise offsets and widths for font fnt%
• text.PROP(x%,y%,txt$,al%,fnt%,fc%,bc%) similar to TEXT command, just size parameter is ommited
• print.PROP(txt$, addSpace$) prints proportional txt$ on current position, wraps character to next line, without line feed, if the string addSpace$ is not empty, then to Nth SPACE (" ") in txt$ is added PX pixels, where PX=ASC(MID$(addSpace$, N, 1)), you can use TAB and LF chars in txt$
• printLn.PROP(txt$, addSpace$) same as print.PROP with line feed
• wrap.PROP(txt$) word wrapped proportional text output
• justify.PROP(txt$, txtWidth%, dx%) full jutified left and right word wrapped proportional text with size txtWidth% written to offset dx%
• justifyLine.PROP(txt$, txtWidth%, dx%) full jutified ONE LINE left and right word wrapped proportional text with size txtWidth% written to offset dx%. In txt$ is then returned non printed rest of text
• getTextWidth.PROP(fnt$, txt$) returns width of the proportinal text in font fnt% in pixels
• tab.PROP(t%) will set TAB position to every t%-pixels
• font.PROP(f%) will set FONT
• color.PROP(fc%, bc%) set foreground and background color
SimplEd v0.42 by JirSoft (TOOL/GRAPHICS, updated 22-08-2021 18:45:59) UPDATE
Font editor for fonts used by PRINT and TEXT commands.
Font editor for fonts used by PRINT and TEXT commands.
Font editor for CMM2 fonts (created fonts can be used in MMBasic's PRINT and TEXT commands). Operations like edit, rotate, shift, inverse, fill... Import from BAS, INC and FNT files, font can be also scanned from any image, HT and PS/2 mouse support.
With help of SimplEd.CFG can be defined key shortcuts and on-screen-help, sample file is on GitHub. There is also short program Show_Keys.BAS, it can be used for finding proper key combination needed...
Macros can be saved/loaded to/from text file, so you can build a macro-library.
With help of SimplEd.CFG can be defined key shortcuts and on-screen-help, sample file is on GitHub. There is also short program Show_Keys.BAS, it can be used for finding proper key combination needed...
Macros can be saved/loaded to/from text file, so you can build a macro-library.
SplitScreen library 0.05 by JirSoft (GAME/TOOL/GRAPHICS, updated 15-12-2021 22:44:51) UPDATE
Library for screen splitting
Library for screen splitting
It enables to split screen into areas, print text into it or load image. It can be used for example for text games with pictures. Example BAS file is included, more info on GitHub...
• SUB init.SPLIT(cs$, dx%, dy%, w%, h%)
• SUB setStyle.SPLIT(cs$, t%, f%, fc%, bc%)
• SUB cls.SPLIT(cs$)
• SUB print.SPLIT(cs$, txt$)
• FUNCTION loadImage.SPLIT(cs$, fn$, iw%, ih%)
• FUNCTION input.SPLIT(cs$, allowedChars$, maxLen%) AS STRING
• SUB init.SPLIT(cs$, dx%, dy%, w%, h%)
• SUB setStyle.SPLIT(cs$, t%, f%, fc%, bc%)
• SUB cls.SPLIT(cs$)
• SUB print.SPLIT(cs$, txt$)
• FUNCTION loadImage.SPLIT(cs$, fn$, iw%, ih%)
• FUNCTION input.SPLIT(cs$, allowedChars$, maxLen%) AS STRING
Tower of Hanoi (One-screen version) by JirSoft (GAME/CHALLENGES, updated 23-04-2021 19:07:00) UPDATE
Logical game
Logical game
This game was made for CMM1&2 BASIC Programming Challenge 2021 (one screen programs max. 48 rows by 100 columns)
Video on YT about this program is HERE.
You have just one task: move all discs from pillar 1 to pillar 3 with the help of pillar 2.
There is just one rule, you can't put a bigger disc onto a smaller one.
Video on YT about this program is HERE.
You have just one task: move all discs from pillar 1 to pillar 3 with the help of pillar 2.
There is just one rule, you can't put a bigger disc onto a smaller one.
TUI library v0.50 by JirSoft (GENERAL/TOOL/GRAPHICS, updated 04-12-2021 22:58:06) UPDATE
Simple text UI library
Simple text UI library
Simple LIB_TEST.BAS file is included, more info on GitHub...
• SUB TUIinfo(title AS STRING, txt() AS STRING, logo AS INTEGER)
• FUNCTION TUIwaitingON(title AS STRING) AS STRING
• SUB TUIwaitingProgress(coord AS STRING, perc AS INTEGER)
• SUB TUIwaitingOFF(coord AS STRING)
• FUNCTION TUIchoice(title AS STRING, txt AS STRING) AS INTEGER
• SUB TUIwarning(title AS STRING, txt AS STRING)
• FUNCTION TUIquestion(title AS STRING, txt AS STRING) AS INTEGER
• FUNCTION TUIinput(title AS STRING, txt AS STRING, def AS STRING, en AS STRING) AS STRING
• FUNCTION TUIselect(title AS STRING, txt AS STRING, s AS INTEGER) AS INTEGER
• FUNCTION TUIgetItem(title AS STRING, subtitle AS STRING, txt() AS STRING) AS STRING
• FUNCTION TUIgetParent(s AS STRING) AS STRING
• FUNCTION TUIgetSelect(path AS STRING, ext AS STRING) AS STRING
• FUNCTION TUIfileSelect(path AS STRING, ext AS STRING, root AS STRING) AS STRING
• FUNCTION TUIemptyON(title AS STRING, ww AS INTEGER, hh AS INTEGER, but AS STRING) AS STRING
• FUNCTION TUImenu(menu() AS STRING) AS INTEGER
• SUB TUIemptyOFF(coord AS STRING)
• SUB TUIwaitForKey
• SUB TUIwaitForNoKey
• SUB TUIinfo(title AS STRING, txt() AS STRING, logo AS INTEGER)
• FUNCTION TUIwaitingON(title AS STRING) AS STRING
• SUB TUIwaitingProgress(coord AS STRING, perc AS INTEGER)
• SUB TUIwaitingOFF(coord AS STRING)
• FUNCTION TUIchoice(title AS STRING, txt AS STRING) AS INTEGER
• SUB TUIwarning(title AS STRING, txt AS STRING)
• FUNCTION TUIquestion(title AS STRING, txt AS STRING) AS INTEGER
• FUNCTION TUIinput(title AS STRING, txt AS STRING, def AS STRING, en AS STRING) AS STRING
• FUNCTION TUIselect(title AS STRING, txt AS STRING, s AS INTEGER) AS INTEGER
• FUNCTION TUIgetItem(title AS STRING, subtitle AS STRING, txt() AS STRING) AS STRING
• FUNCTION TUIgetParent(s AS STRING) AS STRING
• FUNCTION TUIgetSelect(path AS STRING, ext AS STRING) AS STRING
• FUNCTION TUIfileSelect(path AS STRING, ext AS STRING, root AS STRING) AS STRING
• FUNCTION TUIemptyON(title AS STRING, ww AS INTEGER, hh AS INTEGER, but AS STRING) AS STRING
• FUNCTION TUImenu(menu() AS STRING) AS INTEGER
• SUB TUIemptyOFF(coord AS STRING)
• SUB TUIwaitForKey
• SUB TUIwaitForNoKey