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 : CMM2: V5.05.06RC1
Page 1 of 4 | |||||
Author | Message | ||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
V5.05.06RC1 now posted http://geoffg.net/Downloads/Maximite/CMM2_Beta.zip The release notes are included in the ZIP file and attached below. The only change from RC18 is the inclusion of MODE 13 - 400x300. The updated manual will be available with the final release but the readme should give adequate info on the changes. Bugs that were introduced and then resolved during the beta process are not included in the listing. |
||||
IanT Regular Member Joined: 29/11/2016 Location: United KingdomPosts: 84 |
I've often wondered when you actually sleep Peter? The CCM2 does seem to be very popular. Maybe I should get one for Christmas? Or maybe I should just finish a few of my existing MMB projects first. :-) Anyway - well done. Regards, IanT |
||||
Sasquatch Senior Member Joined: 08/05/2020 Location: United StatesPosts: 296 |
The "option_s" structure in ARMCFunctions.h is out of date. I patched mine from the V5.05.05 source code, so no hurry unless there have been major changes since then. -Carl |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
Thanks - will update with RC2 |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
V5.05.06RC2 now posted http://geoffg.net/Downloads/Maximite/CMM2_Beta.zip ARMCFunctions.h updated and DrawCircle, DrawTriangle and VideoColour added. GUI functionality a la MM+ with Basic callbacks for cursor positioning PIXEL function now has optional parameter to specify the page to read XMODEM receive and send now both support using COM1 or COM2 as well as the console (default) MATH ADD can be used to add a fixed amount to every cell in a single or multidimensional array IMAGE SAVE now respects OPTION Y_AXIS |
||||
twofingers Guru Joined: 02/06/2014 Location: GermanyPosts: 1133 |
Hi Peter, with V5.05.06RC2 I get the following errors: ARMCFunctions.h:187:5: error: unknown type name 'uint32_t' 187 | uint32_t RunInRam; | ^~~~~~~~ ARMCFunctions.h:188:5: error: unknown type name 'uint32_t' 188 | uint32_t PIN; | ^~~~~~~~ ARMCFunctions.h:189:5: error: unknown type name 'uint32_t' 189 | uint32_t Baudrate; | ^~~~~~~~ ARMCFunctions.h:195:14: error: unknown type name 'uint8_t' 195 | volatile uint8_t USBPolling; | ^~~~~~~ ARMCFunctions.h:196:5: error: unknown type name 'uint8_t' 196 | uint8_t mode; | ^~~~~~~ ARMCFunctions.h:206:5: error: unknown type name 'int8_t' 206 | int8_t colourmode; | ^~~~~~ ARMCFunctions.h:208:5: error: unknown type name 'uint8_t' 208 | uint8_t showstatus; | ^~~~~~~ ARMCFunctions.h:211:5: error: unknown type name 'uint8_t' 211 | uint8_t editfont; | ^~~~~~~ ARMCFunctions.h:213:5: error: unknown type name 'uint8_t' 213 | uint8_t F11Key[24]; | ^~~~~~~ ARMCFunctions.h:214:5: error: unknown type name 'uint8_t' 214 | uint8_t F12Key[24]; | ^~~~~~~ ARMCFunctions.h:216:5: error: unknown type name 'uint8_t' 216 | uint8_t rtcdrive; | ^~~~~~~ ARMCFunctions.h:217:5: error: unknown type name 'uint8_t' 217 | uint8_t noLED; | ^~~~~~~ ARMCFunctions.h:222:2: error: unknown type name 'uint8_t' 222 | uint8_t path[24]; Just for your information. EDIT: Adding this typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; typedef unsigned long long uint64_t; typedef signed char int8_t; typedef short int16_t; typedef long int32_t; typedef long long int64_t; Michael Edited 2020-10-11 01:34 by twofingers |
||||
vegipete Guru Joined: 29/01/2013 Location: CanadaPosts: 1083 |
There is an inconsistency between BLIT and BLIT READ/WRITE. Perhaps this is intentional. If I "blit 350,0,10,300,100,100", the block of pixels is copied as expected, including black pixels. If I "blit read 1,350,0,100,100" and then "blit write 1,150,300", the black pixels are _not_ copied. Perhaps BLIT WRITE would benefit from the same optional [,orientation] parameter as BLIT. BLIT READ should always copy the entire block, including black. Only BLIT WRITE should allow optional flipping or black=invisible pixels ps: BLIT READ/WRITE are a great pair, because it makes splatting the same block all over the screen very easy. . Edited 2020-10-11 05:00 by vegipete Visit Vegipete's *Mite Library for cool programs. |
||||
twofingers Guru Joined: 02/06/2014 Location: GermanyPosts: 1133 |
Hi Peter, The DrawCircle routine in V5.05.06RC2 made my LIFE extremely easy ... and fast. Thanks for that! Michael |
||||
LeoNicolas Guru Joined: 07/10/2020 Location: CanadaPosts: 445 |
Peter, thank you for adding the drawing routines to the ARMCFunctions file Edited 2020-10-11 07:51 by LeoNicolas |
||||
LeoNicolas Guru Joined: 07/10/2020 Location: CanadaPosts: 445 |
Is it possible to add the control+left and controle+right navigation shortcuts to jump words? Edited 2020-10-11 08:17 by LeoNicolas |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 3848 |
Hi Peter, Apologies if I've blanked out previous discussion, but does this missing-quote really need to cause an "Error: System fault" ? ls "foo/ Best regards, Tom Edited 2020-10-11 21:39 by thwill Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
capsikin Guru Joined: 30/06/2020 Location: AustraliaPosts: 341 |
Could be good for portrait mode arcade games on a regular screen. Pac man and Dig Dug both had 224x288 displays. |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 3848 |
Hi Peter, An inconsistency: This also clears the VGA screen: OPTION CONSOLE SERIAL CLS But this does not clear the serial console: OPTION CONSOLE SCREEN CLS I think the latter is the correct behaviour and that CLS should not clear the VGA screen (any pages) when using OPTION CONSOLE SERIAL. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 8592 |
V5.05.06RC3 now posted http://geoffg.net/Downloads/Maximite/CMM2_Beta.zip Fixes bug with missing-quote causing an "Error: System fault" ? Fixed memory leak when using EXECUTE command to RUN a program PAGE COPY now includes an extra optional parameter PAGE COPY frompage TO topage [,when] [,dontcopyblack] If dontcopyblack is set to 1 then only non-black pixels are copied. This is more efficient than using BLIT with bit 2 of the orientation set. This release includes a new "amazing" cursor capability and support for the Hobbytronics mouse I/F The GUI functionality has be removed ready for the full release The cursor controls are: GUI CURSOR ON [cursorno] [x, y] [cursorcolour] Cursor no can be 0 (Default: mouse type pointer) or 1 (cross), in addition the user can load his own cursor using a SPRITE look-alike file in which case this is cursor no. 2 For cursor numbers 0 and 1 the programmer can override the default white cursor by specifying the colour in the open command. GUI CURSOR x, y 'moves the cursor to x, y GUI CURSOR OFF ' turns off the cursor and allows you to select a different one (see test prog) GUI CURSOR HIDE ' hides the cursor but maintains its position GUI CURSOR SHOW 'Shows a hidden cursor in its original position GUI CURSOR COLOUR cursorcolour 'changes the colour of cursor number 0 or 1. Does not impact loaded cursors where colour is specified by the programmer. GUI CURSOR LOAD "fname" 'this loads a user cursor using the Maximite sprite mechanism with a minor change. The header is now Width, height, xoffset, yoffset. The two offsets determine where on the cursor the pointer is defined to be. So the mouse cursor has offsets 0,0 and the cross has offsets 7,7 The cursor is magic and sits above all other graphics. Nothing you can do will overwrite it (unless I've forgotten something). You can blit, page copy, text, sprite, box etc. as much as you want and the cursor will stay in view unless deliberately hidden. The cursor is always on PAGE 0 for colours 8 and 16 and page 1 for 12-bit colour and it can be moved even if the write page is somewhere else. New command: CONTROLLER - WII is now deprecated and acts as a synonym so you can use CONTROLLER NUNCHUK or WII NUNCHUK etc. CONTROLLER MOUSE OPEN [i2channel] [,LEFTBUTTONint] [,RIGHTBUTTONint] 'i2c channel defaults to 2: i.e. pins 27 and 28 on the header This opens any device that supports the Hobbytronic mouse calling sequence. It initialises the device to restrict mouse movement to 0-MM.HRES-1, 0-MM.VRES-1. The position is set to MM.HRES\2, MM.VRES\2 and the speed is tuned to match the display resolution. Any non Hobbytronic emulation should support this initialisation as well as the return values. CONTROLLER MOUSE CLOSE [i2cchannel] 'i2c channel defaults to 2, Closes the controller When open the mouse data is sampled automatically in the background using non-blocking I2C routines every 16mSec The mouse is interrogated using the MOUSE function MOUSE(X [,i2channel]) ' returns the X coordinate MOUSE(Y [,i2channel]) ' returns the Y coordinate MOUSE(L [,i2channel]) ' returns the status of the left button (1=pressed) MOUSE(R [,i2channel]) ' returns the status of the right button (1=pressed) MOUSE(W [,i2channel]) ' returns the status of the wheel click (1=pressed) I do not currently support the scroll wheel counter as there seems to be a minor bug in the Hobbytronic implementation - I'm chasing them on this. Edited 2020-10-16 23:25 by matherp |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 3848 |
Thank you as always Peter. <FlameRetardantSuit> Now if only the firmware provided support for launching on startup, and returning control to a custom shell ? Then someone could write a mouse driven GUI shell that could be used for selecting and launching applications ... we could call it Windows ... or maybe not </FlameRetardantSuit> P.S. I know that Windows is rather more than a launcher shell, but we all have to start somewhere. Best wishes from Manchester ... until we are cast adrift into Tier 3. Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
mclout999 Guru Joined: 05/07/2020 Location: United StatesPosts: 430 |
It looks like the Hobytronics is the easiest way to get a mouse now so, is there any way to build a Hobytroinic mouse without paying like 26 to 40 dollars to get one anywhere else but the UK? Covad is Kicking my ass and I would like cheaper option. If not Then I will get one when I can scrap together some money. I hope there is a way to roll your own cheaper. That CMM2 Delux from Polish vendor is going to have a socket for that chip and HT is saying they sell the programmed chip for about $10 plus $6 shipping to US. I am not sure what to do. Maybe I will also wait until this becomes the defacto standard going forward FOR SURE. Any help would be appeaciated. Thanks |
||||
vegipete Guru Joined: 29/01/2013 Location: CanadaPosts: 1083 |
Official mouse support! Awesome! (Are the GUI CURSOR commands synced to the vertical refresh, so there is no flicker?) I've been playing with my "chuk-ulator", a chip that emulates a nunchuk and encodes a PC joystick and a PS/2 mouse into the nunchuk data fields. Using a mouse to paint on the CMM2 screen is a joy. (Or maybe small minds are easily amused.) So now I will set about emulating the Hobbytronics protocol. At the start, it will be PS/2 mouse only, but later I'll deal with USB. I'll see if I can get the PS/2 version running on a PIC16F18313, a chip that costs less than $1US. Visit Vegipete's *Mite Library for cool programs. |
||||
mkopack73 Senior Member Joined: 03/07/2020 Location: United StatesPosts: 261 |
Actually the early 1.0 and 2.0 versions really weren't much more than that! It really wasn't until 3.0 that it became more of a full work environment... |
||||
Sasquatch Senior Member Joined: 08/05/2020 Location: United StatesPosts: 296 |
The new mouse functions look great and seem to work as advertised. From my testing it appears that the HobbyTronic Mouse module simply keeps reporting the previous scroll wheel movement until something else changes to force an update to 0. This also applies to the X and Y "scroll values" which you are not using. These values should likely be cleared to 0 when read on the I2C port and then updated when additional scrolling takes place. For serial output the module wouldn't send fresh data until something changes anyways so likely not an issue for serial users of the module. Such are the vagaries of using a proprietary module. I have found some strange behavior in the serial port functions. If you open a port (say Com1:) in inverted logic mode, the inverted logic remains active for the receive side even after the port has been closed and re-opened with default settings. This is apparently not a big deal as it has not be reported yet. I can foresee someone trying to open a connection to a device and then instructing the device to change it's settings, and re-opening the connection with the new settings. In this case it would not work as all the settings are not changed upon re-opening the Com: port. -Carl |
||||
Sasquatch Senior Member Joined: 08/05/2020 Location: United StatesPosts: 296 |
Yes! This is exactly what we need at this point, a lower cost option. Having an open-source option also frees us from reliance on a proprietary module that we can't modify if the need arises and may not be supported or even available in the future. -Carl |
||||
Page 1 of 4 |
Print this page |