Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 10:19 14 Nov 2026 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 : Colour Maximite 2 (CMM2) V7.00.00 release candidates

     Page 4 of 4    
Author Message
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9333
Posted: 10:51am 09 Nov 2026
Copy link to clipboard 
Print this post

So you want a "Save As" function?
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12194
Posted: 12:19pm 09 Nov 2026
Copy link to clipboard 
Print this post

Colour Maximite 2: MMBasic 7.00.00RC4 (release candidate) release notes

9 November 2026. Compared with 7.00.00RC3, the last version released. The full notes, from 5.07.02, are in Release_Notes_7.00.00.md.

https://github.com/UKTailwind/CMM2V1.5/releases/tag/v7.00.00RC4

This is the fifth release candidate of MMBasic 7.00 for the Colour Maximite 2. Unless problems are found in it, it will become 7.00.00. Please report problems on the Back Shed forum.

It adds an Atari 8-bit emulator to the programs, lets a program set OPTION PICOMITE for itself alone, gives programs a gamepad's right stick and analogue triggers, and accepts the USB serial bridge on a Generation 1 (the Microbridge).

The same firmware file runs on both the Generation 1 and the Generation 2.


Before you update
Writing the firmware erases the options. Save them first, and load them again afterwards:

OPTION DISK SAVE "A:/myoptions"


Then write the firmware, and:

OPTION DISK LOAD "A:/myoptions"


The console runs at 115200 baud until the options are loaded. The library, the variables saved with VAR SAVE and the files on the SD card are kept.

Copy the new CMM2_Programs_7.00.00RC4.zip to the card as well: atari800 is new, and the c64 folder was added to RC3's zip on 8 November.


What is new
• An Atari 8-bit emulator. atari800 7.2.1, the Atari800 development team's emulator, in the folder atari800: the Atari 400 and 800, the XL and XE computers and the 5200 console, at the Atari's own speed in MODE 7, with its own menus (F1) for disks, cartridges, tapes and the machine. AltirraOS and Altirra BASIC, Avery Lee's free replacements for Atari's ROMs, are built in, so it needs nothing else; Atari's own ROMs are used if you put them in its folder. USB gamepads are its joysticks, with a single pad's right stick as the second joystick for twin-stick games, and the mouse can be paddles, an ST or Amiga mouse, a trak-ball, a light pen or a Koala pad. The keys follow OPTION USBKEYBOARD. The App User Guide has a chapter on it.

CHDIR "A:/atari800"
RUN "atari800.app"



• The Commodore 64 emulator, added to RC3's zip on 8 November, is in this zip too: frank-c64, a PAL C64 with its 1541 disk drive, in the folder c64.

• zeptoforth 1.17.2, Travis Bemann's release of 9 November, in place of the development version in RC3's zip: its fixed-point exp and expm1 are more accurate, and its own fix for the cursor on leaving zeptoed replaces ours. Its saved Forth systems are new, so copy the whole zeptoforth folder.

• OPTION PICOMITE in a program is for that program. At the command prompt the option is saved, as before. Run in a program it now works, where it gave the error "Invalid in a program", and lasts until the program ends: the display changes at once to the PicoMite's MODE 1 (or, with NONE, to the Colour Maximite 2's mode), and when the program ends, with END, an error or Ctrl-C, the saved setting is in force again. So a PicoMite program can start with OPTION PICOMITE HDMI and run the same whether or not the option is saved. It is not saved even if the program saves other options, and OPTION LIST shows the saved setting.

• EDIT's mark mode: End pressed twice (or Ctrl-K twice) marks to the end of the program, as it moves there in edit mode. End once still marks to the end of the line.

• For programmers: version 16 of the services adds gamepad_axes, which gives a pad's right stick and its analogue L2 and R2 as well as the buttons and the left stick. atari800 uses it for twin-stick games, and works without it on older firmware.


Fixed since 7.00.00RC3
• The Generation 1's USB serial bridge (the Microbridge, a programmed PIC) was not accepted as a USB serial device by another Colour Maximite 2: it refuses the request that sets DTR and RTS, and OPEN gave the error "did not accept DTR/RTS". A device that refuses it is now opened without it. An attempt that had failed also left the USB host's set-up unfinished.
• EDIT's mark mode drew the top line over the status line after a scroll that left the start of the selection above the screen, and the status line gave the line below the cursor after a scroll.
• atari800 (in the zip, not the firmware): any use of a tape crashed the emulated Atari under AltirraOS. atari800 patches the operating system's tape routine at a fixed address, which was wrong for the AltirraOS it ships with; this release's atari800 has it corrected.


What behaves differently
• OPTION PICOMITE is accepted in a program (it gave "Invalid in a program").
• MM.VER is 7.000054 for RC4. A release will count as 99 in the last two digits, so 7.00.00 will be 7.000099, above every beta and release candidate of the same version.


The programs tested
On a Generation 2 unless it says otherwise:

• atari800: Altirra's own test suite for emulators, Acid800, gives the same result on the Colour Maximite 2 as atari800 on a PC, test for test. BASIC with Altirra's ROMs and with Atari's; a program (.xex), a disk image (.atr), an 8K cartridge (.car) and a 5200 cartridge (Acid5200); a tape saved with CSAVE and loaded back with CLOAD; boot tapes, fast and at real speed. Two USB gamepads, one pad's two sticks in a twin-stick game, and the mouse as paddles. Sound, the keyboard and the menus.
• zeptoforth 1.17.2: its 108 double-precision checks, the solar eclipse program's output identical to MMBasic's byte for byte, and the checks of its Colour Maximite 2 words (files, graphics, the documentation and a stress test), all passed.
• OPTION PICOMITE set in a program, with the option saved and not saved: MM.DEVICE$ during and after, and OPTION LIST.
• gamepad_axes with a DualShock 3 and a DualShock 4.
• A Generation 1's Microbridge on a Generation 2's USB socket, with the VT100 terminal at 115200 baud.


Known problems
• atari800: with its SIO patch off (tapes at real speed), a tape that has a program file after its boot loader stops with a checksum error under AltirraOS; with Atari's own XL operating system it loads. With the SIO patch on, as it starts, both load at once.
• The MCP2221A USB to serial bridge (used on some Generation 1 boards) loses characters above 57600 baud on a USB socket, as it has no flow control. The manual says so.

The known problems of 7.00.00RC3 remain.


The manual
The User Manual describes OPTION PICOMITE in a program, and mark mode's End End. Colour_Maximite_2_Loadable_Programs.pdf adds services version 16, and Colour_Maximite_2_App_User_Guide.pdf the Commodore 64 and Atari emulators.


Licences
atari800 is under the GNU GPL version 2 or later. AltirraOS and Altirra BASIC, built into it, are copyright Avery Lee and may be copied and passed on with their notice. frank-c64 and Frodo are under the GNU GPL version 2 or later, and the C64's ROMs built into it are Commodore's. The licences folder of the zip has them, and its README lists every program's licence.
Edited 2026-11-09 22:19 by matherp
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1194
Posted: 03:48pm 09 Nov 2026
Copy link to clipboard 
Print this post

If you are taking requests, (;-) could you consider the Apple ][, perhaps as done with Applewin on Github?
Visit Vegipete's *Mite Library for cool programs.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12194
Posted: 04:01pm 09 Nov 2026
Copy link to clipboard 
Print this post

If I do apple it would be the apple IIe. It that useful
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1186
Posted: 04:33pm 09 Nov 2026
Copy link to clipboard 
Print this post

...no option for Apple][ without e???

Frank
 
hhtg1968
Guru

Joined: 25/05/2023
Location: Germany
Posts: 317
Posted: 04:51pm 09 Nov 2026
Copy link to clipboard 
Print this post

apple IIe would be cool. I have one.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9333
Posted: 05:21pm 09 Nov 2026
Copy link to clipboard 
Print this post

Why that version, Frank?

Naaah.... IIGS.  ;)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1186
Posted: 06:20pm 09 Nov 2026
Copy link to clipboard 
Print this post

I had an Apple][ Europlus clone in the early '80s.

Frank
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9333
Posted: 06:44pm 09 Nov 2026
Copy link to clipboard 
Print this post

Ah, I see.
Wouldn't you have liked lower case though? ;)

.
Edited 2026-11-10 04:45 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1186
Posted: 07:22pm 09 Nov 2026
Copy link to clipboard 
Print this post

It was a Clone - I had lowercase letters. I think I could even execute entire commands by pressing a single key...

Frank
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1186
Posted: 07:23pm 09 Nov 2026
Copy link to clipboard 
Print this post

A TRS-80 emulator would be a dream come true. I've been looking for one for a long time...

Frank
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9333
Posted: 08:01pm 09 Nov 2026
Copy link to clipboard 
Print this post

I have a Model 1 Level 2 c/w (60Hz so it wobbles) monitor and expansion interface in the shed. Shall I pop it in the post?  ;) I used to use it with 2 floppies and LDOS.

I'd rather use an emulator TBH.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1186
Posted: 07:36am 10 Nov 2026
Copy link to clipboard 
Print this post

  Mixtel90 said  I have a Model 1 Level 2 c/w (60Hz so it wobbles) monitor and expansion interface in the shed. Shall I pop it in the post?  ;) I used to use it with 2 floppies and LDOS.

Oh yeah, please!!!  

Frank
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 9333
Posted: 08:36am 10 Nov 2026
Copy link to clipboard 
Print this post

I'll drain the water out of it then and see if I have a matchbox big enough. :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12194
Posted: 03:23pm 10 Nov 2026
Copy link to clipboard 
Print this post

Colour Maximite 2: MMBasic 7.00.00RC5 (release candidate) release notes

10 November 2026. Compared with 7.00.00RC4, the last version released. The full notes, from 5.07.02, are in Release_Notes_7.00.00.md.

https://github.com/UKTailwind/CMM2V1.5/releases/tag/v7.00.00RC5

This is the sixth release candidate of MMBasic 7.00 for the Colour Maximite 2. Unless problems are found in it, it will become 7.00.00. Please report problems on the Back Shed forum.

It adds two emulators to the programs, an Amiga 500 and an Apple //e. For the Amiga, the firmware gives loadable programs their sound by DMA, a copy without the cache's write-back, and the fast internal memory. MODE 8 now runs at 60Hz.

The same firmware file runs on both the Generation 1 and the Generation 2.


Before you update
Writing the firmware erases the options. Save them first, and load them again afterwards:

OPTION DISK SAVE "A:/myoptions"


Then write the firmware, and:

OPTION DISK LOAD "A:/myoptions"


The console runs at 115200 baud until the options are loaded. The library, the variables saved with VAR SAVE and the files on the SD card are kept.

Copy the new CMM2_Programs_7.00.00RC5.zip to the card as well: the amiga and apple2 folders are new.


What is new
• An Amiga 500 emulator (Generation 2), in the folder amiga: pico-amiga, drewpo28's emulator for the RP2350, with Karl Stenerud's Musashi 68000. It is an Amiga 500 with 1MB of memory and its original chipset, a PAL Amiga at its own 50 frames a second in 720 x 576, with its sound; -ntsc gives an NTSC Amiga at 60 frames a second in 640 x 480. The mouse is the Amiga's mouse and USB gamepads its joysticks. F11 brings up a menu of the disks on the card at any time, to boot one, to put it in the drive when a game asks for its next disk, or to put it in DF1, the second drive; it makes blank disks too. What the Amiga writes to a disk goes into its .adf file on the card, as onto a real disk, so saved games and your own work last; a read-only file, or -wp, is a write-protected disk. Ctrl+Alt+Del resets the Amiga. The heaviest demos tried keep up, with the sound on.

 It needs a Kickstart ROM and disk images of your own: Kickstart is still copyright and does not come with it. If you have no Amiga of your own to take them from, Cloanto's Amiga Forever (www.amigaforever.com) is the legal way to get them, and costs little: its Value Edition has Kickstart 1.3, the Workbench 1.3 disk and over 50 games and demos. Copy Shared\rom\amiga-os-130.rom from its Amiga Files folder to A:/amiga, keeping its name, and the .adf disk images you want, then choose a disk from the menu:

CHDIR "A:/amiga"
RUN "amiga.app"


 The App User Guide has a chapter on it, with how to take Amiga Forever's games and demos out of their .rp9 files.

• An Apple //e emulator, in the folder apple2: frank-apple, rh1tech's port of Michel Pollet's MII. An enhanced Apple //e with 128K, an 80-column card, two Disk II drives and two hard disks, at the Apple's 60 frames a second in MODE 8, with its screen at full resolution. The Apple's ROMs are built in. The App User Guide has a chapter on it.

• MODE 8 is 640 x 480 at 60Hz, the standard VGA timing, where it was 75Hz. Its GETSCANLINE counts to 524. The other modes are unchanged.

• For programmers:
    ◦ Version 17 of the services: video_mode and video_scaled take depth 12, a screen of 4,096 colours as ARGB4444 on one layer, each pixel 0x0RGB as an Amiga's colour registers hold them.
    ◦ Version 18: dma2d_copy_nc, a DMA2D copy that does not write its source back from the cache first, for a second copy of the same rows.
    ◦ The sound stream (audio_start) now goes to the DACs by DMA, with no interrupt for each sample: in the Amiga emulator the sound's cost fell from 0.75ms a frame to 0.15. Programs need no change.
    ◦ build.py's new options --axi and --itcm put a program's hottest code and data in the processor's AXI RAM and in the ITCM above the firmware's code (0xA000 to 0xFFFF), on a Generation 2. The firmware keeps that ITCM free from this version on.


What behaves differently
• MODE 8 runs at 60Hz, not 75Hz. A program that times itself by the frame (with the frame interrupt of MODE, or GETSCANLINE) runs at 60 frames a second in MODE 8.
• MM.VER is 7.000055 for RC5.


The programs tested
On a Generation 2 unless it says otherwise:

• amiga:
    ◦ Mental Hangover (Scoopex) and Arte (Sanity), the heaviest demos tried, at 50 frames a second all through with the sound on.
    ◦ The Workbench 1.3 desktop with the mouse and keyboard.
    ◦ Games from Amiga Forever, each for a minute: Arkanoid, Aunt Arctic Adventure, Blasteroids, Datastorm, Exile, Gotcha, Lethal Xcess, Obsession Pinball, Pac-Mania, Rage, Statix, Toobin and Zoom! load and run at 50 frames a second. X-Balls and Logic load slowly through AmigaDOS, and had not finished in that minute. Tie Break shows only a black screen (not looked into yet).
    ◦ Demos: 242 (Virtual Dreams and Fairlight) at 50 frames a second; D.O.S. (Andromeda) falls just short in a few places, at worst 21.9ms for a 20ms frame.
    ◦ The keyboard, the mouse and a gamepad by hand, in Workbench and in games, and the disk menu.
    ◦ AmigaBASIC, from a Workbench 1.3 Extras disk in DF1, running its Demo program.
    ◦ Saving: a blank disk made from the menu and put in DF1; AmigaDOS wrote a file and a folder to it, and the .adf file, copied from the card to a PC, has them. With -wp the Amiga reported the disk write-protected, and the file was unchanged.
    ◦ Its picture's checksum, taken every 500 frames through 8,000 frames of Arte, is the same on this firmware as on the development version it was measured on.
• apple2: on a Generation 1 with this firmware, Applesoft and hi-res graphics, with the Apple at its full speed (1,023kHz); before, on 7.00.00RC4, lo-res, mixed, 80 columns and double hi-res (a2audit's video tests find their colours right), the disk menu and a Disk II boot.
• The sound by DMA on a Generation 1: Doom's timed demo with its music and effects at 38.4 frames a second, as before; the DACs given back to MMBasic after a program (PLAY TONE), on both generations.
• MODE 8 on a Generation 1: 800 x 525 at 25.2MHz, 60.03Hz, and GETSCANLINE up to 524.
• Every other program in the zip is unchanged: rebuilt with this version's tools, they are the same files.


Known problems
• amiga:
    ◦ It runs on a Generation 2 only.
    ◦ Interlaced screens show every other line.
    ◦ The chipset does not report collisions between sprites and the playfield, which a few games use.
    ◦ Titles made for later Amigas (the A1200 and A4000) and those on hard disk images do not run.
    ◦ Tie Break, from Amiga Forever, shows only a black screen.
• apple2: it has been tried on a Generation 1 only, and through the serial console: its sound, a USB keyboard, a gamepad, saving to a disk and the hard disks have not been tried yet.

The known problems of 7.00.00RC4 remain.


The manual
The User Manual gives MODE 8's new timing. Colour_Maximite_2_Loadable_Programs.pdf adds services versions 17 and 18, the sound by DMA, and --axi and --itcm, and Colour_Maximite_2_App_User_Guide.pdf the Amiga and Apple //e emulators.


Licences
pico-amiga is under the GNU GPL version 3, and Musashi under the MIT licence. frank-apple and MII are under the MIT licence, and the Apple's ROMs built into them are Apple's. No Amiga software comes with the emulator. The licences folder of the zip has them, and its README lists every program's licence.

Edited 2026-11-11 01:25 by matherp
 
Volhout

Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 6259
Posted: 03:05pm 13 Nov 2026
Copy link to clipboard 
Print this post

@Peter,

I have atm no possibility to upgrade to rc5 (no A-A cable packed).
Tested on rc0.

When in FM, trying to rename a program ("r") after releasing the "r" key the bottom entry field changes back to status line. So you cannot enter changes.

However....
On the MMCC console screen I can change the filename (that screen does not change to status line).

Maybe sunday I can verify this on rc5 (going home this weekend).

Volhout
Edited 2026-11-14 01:08 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 12194
Posted: 03:35pm 13 Nov 2026
Copy link to clipboard 
Print this post

Colour Maximite 2: MMBasic 7.00.00RC6 (release candidate) release notes

13 November 2026. Compared with 7.00.00RC5, the last version released. The full notes, from 5.07.02, are in Release_Notes_7.00.00.md.

https://github.com/UKTailwind/CMM2V1.5/releases/tag/v7.00.00RC6

This is the seventh release candidate of MMBasic 7.00 for the Colour Maximite 2. Unless problems are found in it, it will become 7.00.00. Please report problems on the Back Shed forum.

It adds SQL databases to BASIC: SQLite, the database engine, through a new command SQL and a new function SQL(, with the rows of a table going into and out of variables, arrays and structures.

The same firmware file runs on both the Generation 1 and the Generation 2.


Before you update
Writing the firmware erases the options. Save them first, and load them again afterwards:

OPTION DISK SAVE "A:/myoptions"


Then write the firmware, and:

OPTION DISK LOAD "A:/myoptions"


The console runs at 115200 baud until the options are loaded. The library, the variables saved with VAR SAVE and the files on the SD card are kept.

Copy the new CMM2_Programs_7.00.00RC6.zip to the card as well: the sql folder is new, and SQL needs it.


What is new
• SQL databases. A database is a file on the SD card or USB flash drive, which a program opens with SQL OPEN and works on with statements in SQL, the standard language for databases:

SQL OPEN "A:/data/club.db"
SQL EXEC "CREATE TABLE IF NOT EXISTS member(id INTEGER PRIMARY KEY, name TEXT, born INTEGER)"
SQL EXEC "INSERT INTO member(name, born) VALUES(?, ?)", n$, year%
SQL QUERY "SELECT name, born FROM member WHERE born > ? ORDER BY born", 1950
DO WHILE SQL(NEXT)
 PRINT SQL(1), SQL(2)
LOOP
SQL CLOSE


    ◦ Values from the program go into a statement by its ? parameters, so a string needs no quoting.
    ◦ SQL(n) gives a column as an integer, a float or a string, as the column holds it; SQL(SELECT puts a query's rows into an array; SQL(COLUMNS), SQL(NAME n), SQL(ISNULL n), SQL(ROWS) and SQL(ID) tell the rest.
    ◦ Rows go into and out of MMBasic structures by matching the members' names with the columns': SQL CREATE makes a table from a TYPE, SQL INSERT adds a structure or a whole array of them (giving each its new key), SQL(FETCH reads a row into a structure, and a structure among a statement's values gives its :name parameters.
    ◦ Errors are MMBasic errors, "SQL: " with the database's own message, so ON ERROR SKIP catches them; Ctrl-C stops a long statement.
    ◦ The database engine, SQLite 3.47.0, is not in the firmware: it is the module A:/sql/sql.mod in the zip's sql folder, which SQL OPEN loads and SQL CLOSE unloads. On a Generation 2 it runs in the memory kept for loadable programs, with about 7MB for it, and BASIC keeps all of its own memory; a BASIC program with a database open cannot run a loadable program (.app) until it closes it. On a Generation 1 it has 1MB, taken from BASIC's memory while the database is open: fast with databases up to about 1MB, but slow with large ones, where whole-table work (unindexed sorts, GROUP BY, DISTINCT, big joins) can take minutes. The manual's new chapter, SQL Databases, explains.
    ◦ The sql folder has a sample database of home computers, computers.db, and the chapter's example program for it, computers.bas, which reads its rows into a TYPE Computer. It also has sql.app, which runs SQL statements (or a file of them) at the command prompt: RUN "A:/sql/sql.app", A:/sql/computers.db "SELECT name, year FROM computer".

• For programmers:
    ◦ Version 19 of the services: file_truncate, a file cut short at its position, and the tools' ftruncate() with it.
    ◦ Modules: build.py --module makes an image the firmware loads beside a BASIC program and calls (the SQL module is the one there is: the firmware loads modules for its own commands only).
    ◦ The tools (tools/sdk), since RC5: errno reaches programs, a steady clock and POSIX's clocks, --libc full (the whole C library, for its wide-character functions), getcwd(NULL, 0) allocates, and readdir gives "." as well as "..".


What behaves differently
• A loadable program that sets a screen mode now leaves BASIC's screen clear when it ends, in BASIC's own mode too, as a MODE would. Before, its last picture could stay behind in BASIC's colours.
• In BASIC translated by the C compiler (CC), MODE with one number is the Colour Maximite 2's own, as in the interpreter: MODE 9 used to stop the program, and MODE 1 gave 640 x 480 in one bit rather than 800 x 600.
• The manual now says exactly what a single line IF with ELSE does: one statement after THEN, one after ELSE, and any statement after that on the line runs either way. MMBasic itself is unchanged.
• The new function SQL( takes the name from programs: an old program with an array named SQL() must rename it.
• MM.VER is 7.000056 for RC6.


The programs
• sql is new: sql.mod (the SQL command's module), sql.app, computers.db and computers.bas.
• bbc and wordgrinder are as the RC5 zip has had them since 13 November: bbc.app no longer stops about 18 minutes after it starts, and WordGrinder's message when its memory is damaged stays on the screen until a key is pressed. The zip downloaded before then had the first versions.
• Every other program in the zip is unchanged.


Tested
On a Generation 2 and a Generation 1, with this firmware and the zip's sql folder:
• SQL: a test of the commands and functions (rows into variables, string and integer arrays and arrays of structures, structures inserted with their new keys, FETCH, :name values, NULLs, errors caught by ON ERROR SKIP, CLOSE and OPEN again), all passed on both; a thousand inserts in one transaction 0.32 seconds on the Generation 2 and 0.38 on the Generation 1, one committed on its own 17 and 23 milliseconds.
• computers.bas on the sample database, and sql.app.
• A loadable program run from a BASIC program with a database open: on the Generation 2 the error "SQL CLOSE first"; on the Generation 1 it runs in the memory left, and sql.app, which needs more, did not start ("Needs 1608 KB"). After SQL CLOSE it ran on both.
• The single line IF with ELSE, as the manual now describes it.

On a Generation 2 (the same SQL in a build of the firmware before this one):
• The database left open by a program, at the prompt.
• SQL on a table of 50,000 rows (6.5MB, with a 6MB index): PRAGMA integrity_check 32 seconds, count(DISTINCT) 34 seconds, CREATE INDEX 21 seconds; a thousand inserts in one transaction from BASIC 0.33 seconds, one committed on its own 18 milliseconds. A rollback that made a database longer cuts it back. A crash in a transaction is undone at the next open (tried on a PC with the same engine and settings).
• SQL with a Generation 1's 1MB (on a Generation 2 given that memory): the same 50,000 rows work, slowly: integrity_check 160 seconds, count(DISTINCT) 460 seconds, CREATE INDEX 23 seconds.


Known problems
• SQL: on a Generation 1 a large database is slow (above). Only one database is open at a time (ATTACH reaches others through it). A statement is a string, so at most 255 characters. Stopping a statement with Ctrl-C has not been tried by hand.
• The known problems of 7.00.00RC5 remain.


The manual
The User Manual has a new chapter, SQL Databases, with SQL and SQL( in its Commands and Functions, and says exactly what a single line IF with ELSE does. Colour_Maximite_2_Loadable_Programs.pdf adds services version 19 and build.py's --module, and Colour_Maximite_2_C_Compiler.pdf lists an array of a TYPE whose size can change (REDIM, or bounds that are not constants) among what the compiler refuses.


Licences
SQLite is in the public domain. The SQL module's settings follow usqlite's (Elvin Slavik), under the MIT licence; the module and the SQL command are the firmware's own. The licences folder of the zip has them, and its README lists every program's licence.
 
     Page 4 of 4    
Print this page


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

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026