💬 String Byte Allocation “Yes, and each character in a string is one byte?” Yes, each character in a string occupies one byte, plus one additional byte for internal management. Formula: Number_of_bytes_allocated = 1 + (length of string) 🧠 RAM Usage Guidelines for Strings “The standard size of RAM to use for the string is ‘40 bytes for devices with more RAM than 367 bytes’? Unless the string is in the subroutine call, then the standard size is one byte. Right?” The standard RAM allocation for a string...
Yes, and each character in a string is one byte? The standard size of RAM to use for the string is "40 bytes for devices with more RAM than 367 bytes"? -Unless the string is in the subroutine call, then the standard size is one byte. Right?
Not exactly correct. The compiler will allocate a standard size of RAM to use for the string. You can accept the default ( see the Help ) or adjust.
So, the compiler needs to know the number of letters to reserve, when sending it into the sub "directly" with the "oneliner" (no automatic buffer generated in this case). Good. Now I know. Thank you for the explanation.
Thank you. I undertand, And I thank you for the program. The error is actually correct. The error caused by the definition of the variable in the sub Sub GLCDtinyPRINT (smallfont_positionX, smallfont_positionY, displayText ). The displayText as shown above will be defined as a byte. The default variable type is a byte. This is should be a string. * A byte can handle a string like "H". "H" is treated as a byte when passed to the sub. * GLCDtinyPRINT (5, 5, sometext) works as sometext equates to an...
I am trying to use my code TinyStringtoGLCD that I wrote couple of months ago (you helped touching it up and posted it as a demo) and use it in another program. I need to talk to it in some way, so I used a sub to pass the parameters to it and to start it off. The problem I have is passing more than one letter through the sub in the oneliner below. The oneliner is more convenient in use than the workaround, especially when modifying code that alread has GLCDPRINT in it. No big deal other than that...
Roger - I am not sure what the issue is. Some simpl/example code would help. But, this works. #CHIP 16f886 #option Explicit GLCDtinyPRINT (5, 5, "H") End Sub GLCDtinyPRINT (smallfont_positionX, smallfont_positionY, displayText ) // Do something End Sub But, is the real question... 'how do I write my own GLCD routines while using all the GLCD functions ? As there is no point of writing the same string handlers. Just need what to change to interrupt the write processes. Answer: Take a copy of the GLCD...
I would like to use a subroutine like the GLCDPRINT command, just renaming it into GLCDtinyPRINT using my own code to write on screen. This way it would be easy to switch back and forth, when testing and sending simple fixed messages to the screen. GLCDtinyPRINT (5, 5, "H" as string) Sub GLCDtinyPRINT (smallfont_positionX, smallfont_positionY, displayText) ... ... This works, but is limited to one letter, otherwise I get: TinyStringtoGLCDinasub.gcb (76): Error: Duplicate, conflicting definition for...
I have emailed the developer again. I can try for you.
I have recovered the hard drive with a working instance of Real PIC simulator. The licence key must be in the actual executable program as there is nothing in the computer registry. I used to have a recovery program whuch would display the licence key but it won't look at this. Anyone any ideas
I have recovered the hard drive with a working instance of Real PIC simulator. The licence key must be in the actual executabe program as there is nothing in the computer registry. I used to have a recovery program whuch would display the licence key but it won't look at this. Anyone any ideas
Thank GCBasic Team for update ! Will certainly be benefit for my new project.
A visual showing the release. Big strides in microcontroller development! The latest GCStudio release packs powerful compiler upgrades, expanded display and communication libraries, and smoother support for PIC, AVR, and LGT platforms. ✨ Highlights: GC Studio management enhancements Even more GLCD support Enum support, shadow registers for RWM, Faster PICINFO tool and improved USART/LCD handling Fixes for Win11, RS232, ADC, and installation quirks
Exciting updates in the latest GCStudio release! October 2025, these enhancements from May to October continue to bolster the compiler's robustness, expand library capabilities for displays and communication, and squash pesky bugs for more reliable PIC, AVR, and LGT development. Whether you're optimizing for legacy hardware or diving into advanced features like enums and shadow registers, this batch makes coding microcontrollers even more efficient. Dive in below for the details—all changes are completed...
GC Studio Current Release: 1.01.26 (Oct 2025) Installer Downloads: GC Studio Latest Installer (Full Suite) GCB Demonstrations Pack Latest Demos Add on Pack
GC Studio Current Release: 1.01.26 (Oct 2025) Installer Downloads: GC Studio Latest Installer (Full Suite) GCB Demonstrations Pack Latest Demos Add on Pack Changes: Full Change Log Road Map Report a Bug! BugTracker Feedback Post on the Forum Source Code: GitHub GreatCowBASIC GitHub GC Studio Repositories: https://github.com/GreatCowBASIC/GCstudio https://github.com/GreatCowBASIC/GCcode https://github.com/GreatCowBASIC/GCB_Gold https://github.com/GreatCowBASIC/GCstudio_Installer https://github.com/GreatCowBASIC/Demonstration_Sources...
Amazon is for Traders. I did try the registration and I do not a UK Ltd Company. You can use direct payment, PayPal, Ko-Fi or eBay.
Hello Evan, Any possibility of donating via Amazon Pay. Have never used GCBASIC, but considering adding it to old MPLab. Cheers, Hanspeter.
Regression testing improvements
Exciting updates in the latest GCStudio release! October 2025, these enhancements from May to October continue to bolster the compiler's robustness, expand library capabilities for displays and communication, and squash pesky bugs for more reliable PIC, AVR, and LGT development. Whether you're optimizing for legacy hardware or diving into advanced features like enums and shadow registers, this batch makes coding microcontrollers even more efficient. Dive in below for the details—all changes are completed...
Exciting updates in the latest GCStudio release! October 2025, these enhancements from May to June continue to bolster the compiler's robustness, expand library capabilities for displays and communication, and squash pesky bugs for more reliable PIC, AVR, and LGT development. Whether you're optimizing for legacy hardware or diving into advanced features like enums and shadow registers, this batch makes coding microcontrollers even more efficient. Dive in below for the details—all changes are completed...
Release build number
☕ Back at it with more PIC microcontroller madness! If you've been tweaking PICKitPlus INIs or ranting about oscillator calibration, buckle up – this post is a treasure trove (and a cautionary tale) straight from the debug trenches. I just dropped this gem: a quick analysis of programming pitfalls for the PIC12F683 that could save your next flash session. Watch the intriguing video breakdown: Programming PIC12F683 – Hidden Dangers?. It dives into the nitty-gritty of flashing your PIC12F683, but the...
☕ Back at it with more PIC microcontroller madness! If you've been tweaking PICKitPlus INIs or ranting about oscillator calibration, buckle up – this post is a treasure trove (and a cautionary tale) straight from the debug trenches. I just dropped this gem: a quick analysis of programming pitfalls for the PIC12F683 that could save your next flash session. Watch the intriguing video breakdown: Programming PIC12F683 – Hidden Dangers?. It dives into the nitty-gritty of flashing your PIC12F683, but the...
Sorry I failed to provide to Angel. New: Add automatic selection of AVR DFP for .include entry in AVR ASM[1729] - This uses a converter called AVRDX_to_DATv8.exe. Use #include ""chipname.INC"" to automatically add the DFP location to the ASM. Initial release of AVRINFO. Recompiler PICINFO and RESET using XOJO v2024r3 - Added support /CP for AVR DAT files to support AVRINFO. - Added support in DAT files for AVRINFO Added support for AVRASM2 in GCBASIC toolchain" New: Added AVR DX memory scripts to...
New: Improved handler for FLOAT error messages when using AVR
Improve compiler debug message handling - now shows version of DFP used.
FVR? ADC basic demo? Since I am new to GCBasic and then many things are unknown for me. I have just added them manually to make things working, ADREF.PREF0 = 0 ADREF.PREF1 = 1 Thanks,
Okay there is no problem I don't have something urgent, I wait for the definitive MRW implementation to be placed.
I meant the basic ADC demos, but, I think you need to use FVRInitialize(). See the Help. Evan
We are looking at two issues in the recent RWM implemention. So, for now ( as I am travelling ) use ASM to resolve. The ASM will read the port.bit state not LATB. I am sure this this will lead to other issues but you should be able to resolve by writing the state of the port.bit to the LATB variable. I have more work to do to ensure the RWM is 100% solid and I thank you for your patience. #chip 16F819,8 #option explicit #option Shadowregister PORTB #define PULS PORTB.0 ' p.6 - input pulsante dir...
Do you mean https://github.com/Anobium/Great-Cow-BASIC-Demonstration-Sources ? However, I can only find one code which uses AD_REF_SOURCE, https://github.com/search?q=repo%3AAnobium%2FGreat-Cow-BASIC-Demonstration-Sources%20%20AD_REF_SOURCE&type=code And the code is for LGT8F328P. Thus, I cannot check. I myself have already done some tests, blinking LED, serial sending, LCD, and ADC without any #DEFINE setups.
Can you check the Q43 demos. Do those ADC demos work? I want to ensure the basics works before we look at the ASM. Evan
I wrote test program. It does not read the button on Portb.0 but on Latb.0 I also noticed a strange behavior, if you take off the line code 25 (portb.2=0) support is not activated RMW !! I hope I explained myself well. Thank you
Hello, I have a trouble with ADC setup for PIC18F27Q43. Here is my code, #Chip 18f27q43,16 #config LVP = ON #config MCLR = ON #define USART_BAUD_RATE 9600 #define USART_TX_BLOCKING #define USART_DELAY OFF RC4PPS = 0x20 ; RC4 -> TX ; ADC setup #define AD_REF_SOURCE AD_REF_AREF #define ADSpeed LowSpeed dir portb.7 in Do hserprint readad12(anb7) HSerPrintCRLF wait 1 s Loop I expect that PREF bits in ADREF resister should be set to 0b10. However, I cannot see any ADREF resister operation in the resultant...
See https://sourceforge.net/p/gcbasic/discussion/579125/thread/3c499bbd64/ for fix
If you’ve been using GCBASIC with Microchip’s PIC-AS compiler, you probably felt the sting when v3.10 dropped recently. Microchip removed internal device support files, which broke GCBASIC’s ability to automatically compile for your PIC devices. Suddenly, you had to manually specify a Device Family Pack (DFP) using -mdfp, and that added a lot of friction to what used to be a totally smooth experience. 🛠️ The Fix: Smarter DFP Searching I responded quickly and implemented a layered search system to...
Post example code to show the issue.
New: Add PIC-AS v3.10. Add new xc8Support.bi, This supports the searching of the local file store to locate the latest DFP for the specific chip.
The RMW problem is solved but now I have a new problem with a Pic16f819 and I need some door pins to be used as inputs for buttons. Unfortunately it is currently unable to read the state of some single pin, there is also the provisional possibility of achieving this.
Good to hear RWM is resolved. Please open/create Thread with the new problem. This will help others, in the future, understand the context and solution to each query.
The RMW problem is solved but now I have a new problem with a Pic16f819 and I need some door pins to be used as inputs for buttons. As you said above, unfortunately it is currently unable to read the state of some single pin, there is also the provisional possibility of achieving this.
Hello, The demo pack ( you have that installed ? ) has many 4809 and AVRDx demos. The essence is ON INTERRUPT {interrupt type} call SubISR The folder demos/Vendor_Boards/Microchip-CNANO-mega4809 or see https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/Vendor_Boards/Microchip-CNANO-mega4809 In GCBASIC the interrupt types are handled automatically and you will see is the demos. To see all the interrupt names use the installed utility called AVRINFO. There is an interrupt tab. If you...
i need a little help figuring out 2 things write a small interrupt handler that can react to the falling edge of PORTB.0 the handler can be empty. i just need a subroutine that fires if PORTB.0 gets a negative edge. Set up TCA0 to fire an interrupt when the compare0 and compare1 values are hit. TCA0 has the capability to raise a compare interrupt for 3 values. i know how to configure the processors registers low level (writing directly to the control registers) Just need to know how to attach an...
Drop a few nice words here. https://www.westcentraltexascremation.com/obituaries/william-roth
New: Revised FilledBox. Much faster!
Fix: Close Open Com port found during ComPort search[]
New: Add Bit support for HserPrint ( Bit [, comport])
Added bit support to Print. Print ( bit )
thanks evan, im sitting here grappling with the fact that i hardly knew him but, his effect and reach as a person was so immense that it just feels like it should when you lose someone you knew most of your life i guess it really doesnt take much in life to leave an impression on people in a good way that just lasts, and hes certainly done that over the years. i think i may just have to go and have a cry, a big comforting hug to you too evan tony.
thanks evan, im sitting here grappling with the fact that i hardly knew him but, his effect and reach as a person was so immense that it just feels like it should when you lose soomeone you knew most of your life i guess it really doesnt take much in life to leave an impression on people in a good way that just lasts, and hes certainly done that over the years. i think i may just have to go and have a cry, a big comforting hug to you too evan tony.
I am talking with his family. I have collated the comments and shared. They are very very grateful.
my latest project idea thats brought me back to making again irionically revolves entirely around bills NRF radio code, thats been my kicker these last few weeks to get organised and started on that, i only wish i could have known him a bit more, i hope his family know how much he truly was admired and adored by all these forums and the people he crossed paths with along the way that truly shows the measure of a person when you can barely know them but feel such a loss when theyre gone, you knew...
I have updated GitHub. :-)
If you do need XC8 v3.10 then do this as a workaround. Install XC8 v3.00 from Then instal XC8 v3.10 Then create two symbolic links as follows: mklink "C:\Program Files\Microchip\xc8\v3.10\pic\include\proc" "C:\Program Files\Microchip\xc8\v3.00\pic\include\proc" /D mklink "C:\Program Files\Microchip\xc8\v3.10\pic\dat\cfgdata" "C:\Program Files\Microchip\xc8\v3.00\pic\dat\cfgdata" /D And, v3.10 will then compile. This is a workaround until I figure out a method to locate the correct DFP file autom...
I miss him. Yesterday, I was working on a project and his name was in the header credits of the code I was using. His name will be in the code forever.
holy heck, now ive sat down to actually start getting caught up and am actually pating attention to the posts , this is so sad and heartbreaking to hear. the fantastic goeytex was the one who pointed me in this direction of GCB once i realised id reached my limit with what i could do with the picaxe, but im gonna guess bill managed to bring alot of us here from various forums and learning places when we started asking "this is great, but where can i go next?" over the years of posting on forums for...
Hey everyone, Big news from Microchip: they've released XC8 Compiler v3.10. However, for those of us relying on GCBASIC with PIC-AS, this update brings a major setback. Up until XC8 v3.00, GCBASIC enjoyed full integration with the compiler, making our workflows smooth and efficient. Sadly, v3.10 changes that. The Issue Microchip has removed internal device-support files from the compiler. Now, you must specify a Device Family Pack (DFP) using the -mdfp option for every project. This breaks the seamless...
Attached is the complete project and revised firmware part of the receiver.
I made a mistake posting the post here; see the post on ask-ook tx rx
I found a bug in the receiver. The receiver stops working after a short time. The cause is that when it receives characters that aren't the correct string, these characters are added to the array. /************************************************************** DRTEK Name: ask-ook-rx-WL101-2 Micro: ATTINY85 Date: 29/08/2025 Ver: 00.07 Description: Receiving via ASK/OOK and turning on the LED if it receives the string "DRTekTx1=1" ------------------------------------------------------------------------------------------------------------------------------------------...
I made a mistake this is the code for the ask-ook receiver ..sorry.
Thanks. But, the GCB source looks very different in https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/PIR_Solutions/WL102_PIR_Sensor Is that the transmit code? and, I did not put the receive code there before? Or, do I delete the existing GCB in https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/PIR_Solutions/WL102_PIR_Sensor and replace with code above? This is why I am confused. Look at https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/PIR_Solutions/WL102_PIR_Sensor...
The receiver stopped working after a while, the cause is that when it receives characters that are not the right string, these characters are added to the array and it seems to overflow.
RX
I am confued. Do I replace the GCB source in https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/PIR_Solutions/WL102_PIR_Sensor The GCB source looks very different to the one posted today. Help me to resolve.
TX
Hi, I noticed a bug in the receiver. Apparently, if the receive string isn't reset, it stops working after a short time due to overflow. I solved it this way. See the code; it can definitely be improved. Regarding the datasheet for the RX and TX modules, they aren't officially available, but you can find the documentation online. Sorry for the bug. /************************************************************** DRTEK Name: ask-ook-rx-WL101-2 Micro: ATTINY85 Date: 29/08/2025 Ver: 00.07 Description:...
Thanks evan, from what i have seen now and again checking in over the last while, you guys have really been working non stop with GCB and its continued evolution it seems, i cant wait to get started when the new chips arrive, hopefully tuesday so not too long to wait. i did initially stumble across a mention of the pickit plus software during a search but didnt go that route initially as the price showed as more than 10 gbp when i looked but now im guessing i missed a cheaper option somewhere, d'oh...
Thanks evan, from what i have seen now and again checking in over the last while, you guys have really been working non stop with GCB and its continued evolution it seems, i cant wait to get started when the new chips arrive, hopefully tuesday so not too long to wait. i did initially stumble across a mention of the pickit plus softwareduring a search but didnt go that route initially as the price showed as more than 10 gbp when i looked but now im guessing i missed a cheaper option somewhere, d'oh...
Wow. Huge performance increase in PICInfo. 800 times faster! https://ko-fi.com/post/Major-Update-to-PICInfo-Astonishing-Performance-B-G2G31KTKMF
Welcome Back, Tony! Here’s a guide to help you explore your new PIC chips (e.g., PIC18F06Q41) using the new IDE GC Studio, and your existing tools, ensuring you make the most of your hobby revival. 1. Explore Chip Demos in new IDE To find example programs for your chips (e.g., PIC18F06Q41, PIC16F1778, etc.), use the demo pack: Install the Demo Pack: Download and install the demo pack. Open the Demo Folder: Launch GCSTUDIO IDE. Navigate to the DEMO folder within the IDE’s file explorer. Search for...
hey everyone, after a good few years of ups and downs and in betweens that the last few years have given to life im finally able to dive back into my beloved hobbies in a more hardcore way like i used to lol ive done the odd thing here or there that resulted in me updating my outdated GCB compiler to the newer VS code looking thing, ive yet to fully get to grips with what it can do and for now have reverted to classic style but would love some pointers of anything unique or wonderfull it does that...
hey everyone, after a good few years of ups and downs and in betweens that the last few years have given to life im finally able to dive back into my beloved hobbies in a more hardcore way like i used to lol ive done the odd thing here or there that resulted in me updating my outdated GCB compiler to the newer VS code looking thing, ive yet to fully get to grips with what it can do and for now have reverted to classic style but would love some pointers of anything unique or wonderfull it does that...
hey everyone, after a good few years of ups and downs and in betweens that the last few years have given to life im finally able to dive back into my beloved hobbies in a more hardcore way like i used to lol ive done the odd thing here or there that resulted in me updating my outdated GCB compiler to the newer VS code looking thing, ive yet to fully get to grips with what it can do and for now have reverted to classic style but would love some pointers of anything unique or wonderfull it does that...
If you have the datasheets, then, I would upload to GitHub they are not easy to find.
Hopefully, a good representation of your good work! https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/Radio_Solutions/DRTEK-WL101-WL102-ATTINY85_Solutions The readme.adoc file is the master documentation. You can download, edit in any editor, and post a new version with any changes/edits you need to make. Great job!!!
zip
scheme rx
Scheme tx
/************************************************************** DRTEK Name: ask-ook-rx-WL101-attiny85 Microcontroller: ATTINY85 Date: 29/08/2025 Version: 00.07 Description: Receives via ASK/OOK and turns on LED if it receives the string "DRTekTx1=1" Notes: Baud rate 300, bit-banging decoding, string buffer //!remember to configure the fuses in the programmer Low Fuse: E2 High Fuse: DF Extended Fuse: FF //---------------------------------------------------- //!ASK/OOK speed Baud Rate Bit Duration...
/************************************************************** DRTEK Name: ask-ook-tx-WL102 Microcontroller: ATTINY85 Date: 29/08/2025 Version: 00.01 Description: When the button is pressed, sends a string to the wl102-341 module, then enters sleep mode until the next button press Links and references rev.: date: notes: //!remember to configure the fuses in the programmer Low Fuse: E2 High Fuse: DF Extended Fuse: FF *************************************************************/ //!working phase...
Thanks but PDFs is not what is needed. We use ASCIIDocs ( this is a neutral format ) and permits hosting on GitHub etc. Post all the files in a ZIP include any Word docs ( they can be converted into ASCIIDocs). Evan
Ok I'll upload the PDF file with the whole project, diagram, code, and description
Absolutely. Upload all that you have and I will review, rework for you for puiblication. Evan
Hi, I'd like to provide a complete example of a WL102 and WL101 transmitter and receiver. Ask for a reply. Thanks.
I have all the 8051 chips etc. I just need time. I did all the other changes this year, and a bit more. It is always about finding time. :-)
after 9 months, is there any decition in support these chips ? (STC 8051compatible) yes/no ? family desided (if decided) ?
Works very nicely. All the tools are hidden in the folders but the menu system in SynWrite is limited to nine items. All the folders have complete toolchain which is brilliant. Well done!
There you go, unzip this file directly in your C:/ drive. GCB@Syn-v1.1.25.build_1484.zip If you have GCB installed, allow to replace files, this will update your existing installation. If GCB is not present in your machine, you can use it directly, just run ide.exe inside the decompressed folder. This is an equivalent for the v1.1.25.build_1484, it is the same as current version of today. Angel
If you happen to need the machine specs, they are - Laptop OS - Windows Vista Ultimate 32-bit SP2 CPU - Core 2 Duo T9400 @ 2.53GHz RAM - 4.00GB Vid - 1024MB NVIDIA GeForce 9650M GT (1280 x 800 @ 60Hz) Thanks
That would be great if you could, as I'd really like to have he updated GCB, even if it's SynWrite (which I've been using up to this point). Could I suggest that at some point if you get a chance, you put mention of the Win 7 (and maybe a link or something to the details) so that others don't have this issue? Thanks
I am very sad to hear that such a special person has passed away....
GC Studio minimum OS requirements are Windows 7 service pack 1 with at least KB4474419, KB2999226 updates installed and a minimum display resolution of 1024x768. the OS can be 32bits or 64bits. so no, it will not run on your specific OS. if it's paramount to you to run GC Basic on that machine I can craft for you an updated legacy GCB that will run on that machine (synwrite only). if you need it just tell me. Angel