![]() |
Forum Index : Microcontroller and PC projects : Presenting experimental HELP system for Picomites
Author | Message | ||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
This is toy... ![]() OK. This is experimental 'Stand alone' help for Picomite HDMI/USB/2350 computer More on Picomite HDMI/USB/2350 computer at https://geoffg.net/picomitevga.html In case you are away from main PC or just want 'better' retro feeling ![]() ![]() Black&White version https://github.com/ElectriCatLt/MMBasic/tree/main/MMBasic%20help%20BW/help Colour version https://github.com/ElectriCatLt/MMBasic/tree/main/MMBasic%20help%20color/help I wrote it mostly while learning MMbasic. I just wanted write some potentialy 'usefull' util ![]() Should work on VGA/HDMI. This help is mostly copy of Picomites` family official manual but in form of searchable text database. As it is stored in SD card and in plain text format and does not take too much space, additional examples and reading materials can be added, comparing to official manual. Any beta changes in firmwares, like new commands or functionality, can be added or removed with no need to re-print paper version of oficial manual. Thanks to LIBRARY functionality, this help can be called typing 'help' in command prompt. Later user can get back to program editing. But keep in mind this is experimental project, so You must always check with official manual. Use should be simple. User just enter one word search phrase and help returns everything maching phrase. Try and enter 'DRAWING' and program will list in short form everything relateted to drawing - commands, functions or tutorials. Every topic has number [nn]. If user enters >nn, topic will be listed in full format. For example type RUN and program will list few topics. List begins with number [>59] If user will type '>59' topic will be listed in full format. Similar effect has key '-f' If user would enter 'RUN -f', same topics fill be listed, but this time in full format. If user would type in '-x' or press 'ctrl+C' - program will exit. '-x' is reccomended way to exit as CTRL+C and re-Run might throw an "variable already declared" error. This case, Just enter - exit built in editor by pressing F4 Key '-s" would list keyword suggestions. It must be noted: search phrase is not case sensitive, but keys '-f', '-x', '-s' and '-h' are CASE SENSITIVE. Prepare: Copy HELP with contents to SD card. Enter command CMM2 LOAD "Help.bas" Enter command LIBRARY SAVE Now, you can type 'help' in command prompt, and call for help anytime without need of paper printed user manual or PC This will not destroy current program you might run-editing at the moment HELP system was created to suit the author's personal needs. If you enjoy using it — great! If not — no worries. > If you *do* enjoy it, please consider helping stray cats. 🐾 2025 Released for the PicoMiteVGA community with curiosity and love. Oh.. forgot to mention it works on MMB4W too :) Must change paths inside of it Edited 2025-04-14 16:42 by electricat My MMBasic 'sand box' |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4809 |
Hi electricat, I will give it a try this evening. You can't imagine how often I open the user manual PDF to check exectly in what order parameters must be added to commands and functions. If this help provides that info, I will be very pleased. I am most interested in the monochrome version, since it most likely works on my 2040 VGA. Is this also usable via the console ? Are you sure I can download the files from your Git? I was not succesfull this morning. Volhout Edited 2025-04-14 20:11 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
@Volhout, Same case here ![]() This thing is made for reason ![]() You run, enter command or part of it - will list. Now, enter number >nn from list and you will get syntax. type in --> help for explanations Only it was some amount of boring hours convert official PDF manual to TXT DB so there might be some errors. But I hope I hunted most of them. There also integrated 3D command descriptions, and some BETA commands but not all as I switched to writing navigator. I wrote also tool which converts one large TXT file (by the way, very easy to use in notepad++ :D typing and then >FIND ALL) to TXT database, so it should be very easy for user prapare his own database. So this thing will be adaptable for user needs. But I want to add additional functionality, so not released yet, but if it is interesting I can PM you to play with all this to play as I`ve done enough of mesy posts for today ![]() Did not tested, but both versions should work 2040VGA ![]() ![]() I just don`t remember how largely I used keydown() but it must be easy to adpot. Did not tested. However I do not think there would be any problems to adopt. It is TXT database by nature, and database might be held in A: And listing.. do not see problem here. Easier than VGA/HDMI I just checked my signature 'My MMBasic 'sand box'' from another browser without github logins, and all seems to be downloadable. Please report if something wrong. My MMBasic 'sand box' |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 3981 |
I also could not download from github (until I went up the tree to ElectriCatLt/MMBasic). John |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
![]() Oh.. I added releases for more easy download. My MMBasic 'sand box' |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
I wanted to capture how it works, but went into focusing problems, so some screenshots here. effect if entered RUN as search keyword without any keys ![]() search with key -f (lists full info) BW version. Ok.. not totally BW, all BW except short description ![]() ![]() Effect if entered search keyword FRAMEBUFFER (fithout -f key) ![]() and you can read more detailed on topic entering >316 ![]() Colour version of >316 ![]() effect of just key -s if there is no ideas what you are looking for ![]() My MMBasic 'sand box' |
||||
homa![]() Guru ![]() Joined: 05/11/2021 Location: GermanyPosts: 448 |
Brilliant idea, but unfortunately it doesn't work so well for me yet ... RC14 ! > help ready [>1] Predefined Read Only Variables [>4] Using the I/O pins. DIGITAL, ANALOG, COUNTING Inputs. DIGITAL Outputs.Pulse PWM. COMMUNICATIONS INTERFACES (Serial, SPI and I2C).INTERRUPTS. [>8] DISPLAY PANELS. SPI, I2C based LCD panels . 8-bit and 16-bit Parallel LCD PaControl. Touch Support. LCD Display as the Console Output. [>9] Graphics Functions [>18] Expressions and Operators [>19] Subroutines, Functions, Passing Arguments by Reference,Passing Arrays,Early[>22] CONFIGURING THE KEYBOARD,USING A MOUSE,USB GAMEPAD [>23] Program and Data Storage.Flash Slots.Flash Filesystem. [>24] SD Cards [>25] MMBasic Support for Flash and SD Card Filesystems [>26] WI-FI [>27] MMBASIC - Long Strings, Long String Variables, Summary of the Commands and [>28] MMBasic Characteristics - NAMING CONVENTIONS,CONSTANTS,IMPLEMENTATION CHARACTERISTICS [>31] A Tutorial - STRUCTURE OF A BASIC PROGRAM [>36] A Tutorial - The IF Statement [>37] A Tutorial - FOR Loops [>41] A Tutorial - Testing for Prime Numbers [>45] A Tutorial - SCIENTIFIC NOTATION [>49] A Tutorial - FUNCTIONS [>58] MM.INFO() MM.INFO$() [>59] MM.INFO$(AUTORUN) [>60] MM.INFO(ADC) [>61] MM.INFO(ADC DMA) [>62] MM.INFO(BOOT COUNT)est search ; -x > exit ; -h >how to [>63] MM.INFO$(CPUSPEED) [>64] MM.INFO$(LCDPANEL) [>65] MM.INFO(LCD320) [>66] MM.INFO$(SDCARD) [>67] MM.INFO$(CURRENT) [>68] MM.INFO$(PATH) [>69] MM.INFO(DISK SIZE) [>70] MM.INFO$(DRIVE) [>71] MM.INFO(EXISTS FILE fname$) [>72] MM.INFO(EXISTS DIR dirname$) [>73] MM.INFO$(FREE SPACE) I found more records. Press 'HOME' to refine; any key for more. > help display Error : Argument list > help "display Error : Argument list > help [LIBRARY] Dim INTEGER PICOMITE=1 Error : PICOMITE already declared > There is no reaction here in particular: "I found more records. Press 'HOME' to refine; any key for more." Only Ctrl-C helps here via Console (I have no keyboard, only a mouse connected for testing!) The correct output on the console (e.g. TeraTerm) would also be ingenious. Unfortunately, it appears confused. But I love the idea! Matthias |
||||
homa![]() Guru ![]() Joined: 05/11/2021 Location: GermanyPosts: 448 |
okay, a directly connected keyboard helps :-) Unfortunately the path is "b:/help" after quitting. Can the previous one be restored here? Actually this kind of help (manpages) should be directly in the editor :-) ! Matthias |
||||
Amnesie Guru ![]() Joined: 30/06/2020 Location: GermanyPosts: 521 |
This idea is genius! I am using the PicoMiteVGA as a real stand-alone computer. This idea makes so much sense to me. ![]() Greetings Daniel |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
@Homa, Brilliant idea, I am not fan of printed manuals too ![]() Thank you for observations. I will correct when I find free time. Typical week is full of 'real life interrupts' ![]() As I am using VGA/HDMI versions 98% of time , I completely ignored terminals ![]() @Amnesie Nice to hear I`m not alone here ![]() Manual does not changes as much, so not a big problem. My MMBasic 'sand box' |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7433 |
Such heathens on here... ;) You can't beat a good printed manual that's either so worn that it opens at favourite pages or is bound so that it falls open at any page naturally. Or both. Electronic manuals need screen space (or more than one screen) so that you can have them open while you are programming. Especially when you are on the verge of ancient and your eyes and short term memory are getting knackered... "Updates?" says he with his Ver 5.07.03 printed manual... Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4809 |
I did not print the 6.00.01 manual, simply becuase I was convinced Peter was not done yet. But now I believe 6.00.02 will remain for while, especially for 2040 VGA. It was a squeeze before, and even more now. I even think the latest OPTION FAST TRIG is not needed, it has only minimal performance impact, as Kevin has shown. Last night I realized that MMBasic has become a CISC language. In microprocessors you have the CISC (Complex Instruction Set) processors like x86, and there was RISC IReduced instruction set (like ARM originally). Historically BASIC was a RISC language. The core of BASIC only has few instructions. That made it simple to master. These few instructions are still withing MMBasic, but added to it is a wealth of complex additional instructions. MMBasic may not fall into the category of "easy to learn" languages anymore. I know, I am older, but I need the manual often. For the CISC instructions. With something like a 2040 GEEK (you put in your pocket), dragging a paper manual with you is not common. The geek is a product that could benefit from this help system. It has an SD card. So I will try that when the console version is available. Volhout PicomiteVGA PETSCII ROBOTS |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
@Mick, I still have "The Complete Spectrum ROM Disassembly" printed on dot matrix priter and pack of z80 books ![]() My MMBasic 'sand box' |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7433 |
Not quite such a heathen then. :) I still have a load of assorted computer books and magazines too. They've sort of accumulated over the years. Not to mention the hardware.... :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
- There is quick terminal/ headless/RP2040 compatible version So output to VGA screen would be quite ugly, while somehow usable still. help_console_RP240_headless_20250416.zip - Now all keyboard sents should work ok through terminal (no need external keyboard) Will not return path however. Have no any ideas how to do it, yet. You can change pair of vars to your taste at the beginning of prg. if you want: Dim integer max_prn_lines=29 ' for terminal height Dim integer def_LineWidth = 80 ' for terminal width p.s. forgot to mention if you already has copied all help files held in dir 'hlp' there should be no need to rewrite everything, only -> help.bas And before saving as library help should be coment out of course help Sub help 'help Sub help Let`s see if it helps ![]() ![]() ![]() Edited 2025-04-16 15:19 by electricat My MMBasic 'sand box' |
||||
homa![]() Guru ![]() Joined: 05/11/2021 Location: GermanyPosts: 448 |
![]() Insert at the beginning of the SUB: backupDrive$=MM.Info(drive) backupCWD$=Cwd$ And add here when leaving ... If usr$="-x" Or usr$="-exit" Or usr$="-e" Then Chdir ".." Drive backupDrive$ Chdir backupCWD$ Yes it helps ![]() Matthias |
||||
electricat![]() Senior Member ![]() Joined: 30/11/2020 Location: LithuaniaPosts: 279 |
I added at the wery begining Dim remember_path$=Cwd$ but then returned paths on first ESC as if I was making corrections in my other project 'navigator'. Made it tits up ![]() Loop Until pkey$ <> "" If pkey$=Chr$(27) Then Close #1 Chdir remember_path$ End End If Paths sure were not returned, so I just decided things will not work that way. Anyways You pointed it right. We need remember working drive too Another thing is, I wanted it work from command line like in linux or something, from the very begining. So it would remember what was entered also. But for me typing in "" e.i. "searchkeywoard" ruined it all. How clean it would be if it would be posible to make it accept from cmd line something like -h array ![]() My MMBasic 'sand box' |
||||
![]() |