Overview How to Install Extension Downloads Documentation Other Resources Forum Wiki Blog


Navigating this Site and Downloading Content

All of the resouces I have collected or created for Small Basic are available and maintained only here.  To be sure you obtain up-to-date original material that cannot have been modified in any way, download directly from this site.

Use the section links above to navigate to relevant sections on this website.

Follow links underscored.  Check out some of the other resouces as well as the LitDev extension.

Download (dll , source or other resources ) by clicking one of these icons next to the required resources found later on this page.  Hover over an icon to get download info.  Downloads are mostly zip files, that may need to be 'unblocked' if they contain dlls.

Please direct any questions, suggestions or problems to SB forum or by email to admin@litdev.uk.

Overview of Small Basic

Microsoft Small Basic is a free simplified programming language for children and adults to get started learning to program. See the Small Basic website or preview the Small Basic API for more details.

Also check out the Forum, Blog and Wiki articles.

The LitDev (little developer) extension for Small Basic has loads of extra functionality with over 55 new objects and over 1000 methods, properties and events; including 2D physics, 3D rendering, controls, dialogs, graphing, statistics, matrices, lists, sorting and searching (Regex), faster arrays, USB and COM connection, SQLite, MySQL, SqlServer, OleDb and Odbc databases, webcam, multiple GraphicsWindows, scrollbars, image processing, date and time handling, debugger, client-server interaction, encryption, clipboard, extended music and sound recording, parse xml, file zip and ftp, asynchronous and argument subroutine calls, inline C# and javascript code and lots more.

As well as the LitDev extension, there are links to download its full source code and the source code for several small demonstration extensions to help you get started writing your own.

The extensions are written in C# and use the .Net 3.5 framework for versions of Small Basic up to 1.0.  Small Basic version 1.1 onwards and its extensions require .Net 4.5 which is available for Vista onwards and pre-installed on Windows 8 onwards. 

Currently using .Net 4.8 for compatibility with SmallVisualBasic (sVB) IDE.  You can download .NET Framework 4.8 runtime from official MS site.

Extensions can be written in any .Net language, and provide a way for Small Basic programmers to develop their own skills and progress from Small Basic to larger programming languages, as well as generating useful features.

To write your own extension you will need Visual Studio Community which can be downloaded and installed for free.

To decompile and view the source for other extensions and SmallBasicLibrary.dll you can use IlSpy.

More information on writing your own extension can be found here and in downloads below.

If any download links are broken, then please email admin@litdev.uk.

How to Install LitDev Extension

To get the main LitDev extension, click the image below.

   

Another option is to use Small Basic Extension Manager if you use SB-Prime IDE.

Alternatively, click the appropriate dll icon next to an extension from those listed in the Extension Downloads section below to download a zip file containing the required files.

Zip files can be un-zipped using various compression software, including JZip or 7Zip.

As with all Small Basic extensions, copy the extension dll and xml (inside the dll zip) to a lib sub-folder of the Small Basic installation folder, usually in one of the following locations:

C:\Program Files\Microsoft\Small Basic\lib
C:\Program Files (x86)\Microsoft\Small Basic\lib

You may require to create the lib folder if it doesn't exist.

Copy all other files (documentation and samples) elsewhere.

All extensions have to be rebuilt for each Small Basic version.  Only the current versions are maintained on this site in most cases with some selected previous versions also available.  Earlier versions can usually be rebuilt from the extension source code.

If the extension commands fail to appear in Small Basic (type LD and no options appear) then you may need to unblock the downloaded dll.  Right click LitDev.dll and select Properties and clear the block if present.  If it fails to unblock, then copy LitDev.dll to a folder where you have write access (e.g. Documents), unblock it there and then move back to the Small Basic lib folder.  Alternatively, unblock the downloaded zip file before unzipping the content.

   

Thanks to OzJerry, Pappa Lapub, NaochanON amd Tryhest for helping diagnose this issue.

Extension Downloads

Click the DLL , Source (Visual Studio), or Additional Resource icon next to the required download.

Please direct any questions, suggestions or problems to SB forum or by email to admin@litdev.uk.

LitDev Extension Downloads

LitDev
1.2.27.0
This extension contains all of the useful bits in the demonstration extensions with many additions as well as lots of other methods, ranging from simple utilities to physics simulation and 3D.

This version is for the current version of Small Basic (1.2).  A pre-release test version is also available below, as well as the last version compatible with Small Basic versions 1.0 and 1.1.

The current version of the LitDev extension source code is available on GitHub.

A Japanese language pack (thanks to Nonki) is also available.
LitDev
Beta Version
This is a pre-release 'beta' version of the LitDev extension updated regularly as things are added for testing or bugs fixed.  It is also a lightweight download of the extension with no samples or additional documentation.

Use LDUtilities.Version() to view breaking changes.
LDBasic This is a very cut down version of LitDev extension with only a few methods to fix some depreciated functionality in Small Basic like Flickr and Network capabilities.
LitDev
sVB Version
This is a version (1.2.27.0) compiled to be compatible with sVB (v3.0 and probably more recent versions).  It is not regulary updated, but it does seem to work well for the cases I have tested.
LitDev
1.1.0.8
This is the last version of the LitDev extension that can be used with version 1.1 of Small Basic.
LitDev
1.0.0.133
This is the last version of the LitDev extension that can be used with version 1.0 of Small Basic.
LitDev3D
UNMAINTAINED

 

A 3D extension using the irrlicht engine (64 bit only), the dll download targets Small Basic 1.0.

The associated media files (irrlicht samples) may be useful getting started.

Another actively maintained 3D method (LD3DView) is included in the LitDev extension and works on all PC architectures.
WaveForms
UNMAINTAINED




This is a small extension to create PPM (Pulse Position Modulation) sound signals to control RC (remote control) devices.  It can be modified to create any sound wave form.

See blog post.  Requires installing SlimDX (.Net 2.0 version for SB 1.0 and .Net version 4.0 for SB 1.1 onwards).  SlimDX may be obsolete now.

This object is now included and extended in the LitDev extension.

LitDev Extension Documentation

Preview LitDev Extension API or (Deutsch) - translation by Pappa Lapub

Preview LitDev Extension Change Log (View this version and previous version changes and new features)

Preview LDPhysics Getting Started Guide

Preview LitDev3D Extension API or (Deutsch)

Preview Small Basic API or (Deutsch)

LitDev Extension Details

The LitDev extension is actively developed and the full source code is maintained on GitHub.

All of the objects in this combined extension start with LD to isolate them from other similarly named objects.

There are many samples ranging from simple demonstrations to full programs included in the dll zip.

A detailed change log and current version check can be viewed by running LDUtilities.Version(), or see preview above.

The following is a brief summary of the LitDev extension objects, for the full API (functionality and syntax) see preview above.

LD3DView A 3D modelling set of methods for the GraphicsWindow.
LDArray A faster array method for large 1D arrays with 1000+ elements using integer indexing.
LDBits Bitwise logic to store binary flags in a single variable as bits.
LDBlueTooth Bluetooth connections.
LDCall UPDATED Call a subroutine as a function with arguments and optional return value. Call any extension method asynchronously or make a call from another pre-compiled Small Basic program.
LDChart Customisable chart control, including pie, doughnut, bubble, bar and column charts.
LDClient The client methods for a client server multi-PC application.
LDClipboard Methods to set and get data to and from the clipboard.
LDController Get input from one or more USB attached controllers (e.g. gamepad or joystick).
LDControls UPDATED Additional controls for the GraphicsWindow, including TreeView, RichTextBox, WebBrowser, ListBox, ComboBox, CheckBox, RadioButtons, MediaPlayer, Slider, ProgressBar, PasswordBox, DocumentViewer, Menu, ListView and DataView. Right-click context control menus for any shape or control. Drag and drop for some controls.
LDCursors Set cursors in the GraphicsWindow.
LDDataBase Create, access and query SQLite, MySQL, SqlServer, Oledb or Odbc databases.  See zetcode for SQLite primer.
LDDateTime Utilities to manipulate and calculate date and time differences, i.e. manipulate past and future dates.
LDDebug A debugging tool and auto instrumentation to create breakpoints.
LDDialogs Additional dialog utilities, including a blocking popup waiting dialog, tooltips, calendar, font, colours, GraphicsWindow right-click context menu and multi button message box.
LDDictionary Fix for broken Dictionary object in version 1.0 (also includes Spanish dictionary).
LDEffects Set visual effects to any shape or control.
LDEncryption Encrypt and decrypt some text or create a password hash.
LDEmail Send email using an smtp server.
LDFastArray Fast 1D, 2D and 3D arrays with CSV file access.
LDFastShapes Methods to modify shapes by integer index and batch update (faster).
LDFigures Add some shapes like arcs, polygons, callouts and arrows.
LDFinances Financial web based data.
LDFile File utilities like read and write CSV (comma separated value) files, read files to an array, file length, music file play time, print a file, get system folder paths, read non-UTF8 encodings like ANSI and save/read all variables.
LDftp Upload, download, delete and list files by ftp, including binary and text files with an option to transfer asynchronously
LDGeography Geography web based data.
LDGraph Graph plotting methods including export to Excel and CSV.
LDGraphicsWindow
(formerly in LDUtilities and LDShapes)
Export of GraphicsWindow to image files or print, and other utilities like pause and resume GraphicsWindow updates, GraphicsWindow icon, minimise/maximise the GraphicsWindow, transparent GraphicsWindow, over-ride GraphicsWindow close, disable window close buttons and Flood Fill regions.
LDHashTable The hashtable provides a fast and efficient way of storing key-value pairs.
LDHID A low level generic USB Human Interface Device (HID) interface.
LDIcon Create an icon file from an image.
LDImage Extends ImageList to include image processing.
LDInline Include C#, VB or JScript methods, properties and events to compile and call from your Small Basic code.  It can also create dlls or extensions and use or probe other .Net dlls.
LDIOWarrior Access IOWarrior USB devices (see Code Mercenaries IO-Warrior).
LDList A data storage object similar to arrays where indices are automatically maintained.  It is much faster than Small Basic arrays and has other useful features.
LDLogic Logical operations.
LDMathX Extended math, including FFT.
LDMatrix Matrix algebra, for example to solve linear systems of equations.
LDMusic Extends Sounds.PlayMusic to include additional instruments and notes can also be played synchronously (chords).
LDNetwork † Web methods, including a method to store and retrieve game high scores and store game data.
LDPhysics A larger set of methods to simulate Dynamic Collision Physics using the Box2D engine. This is the same physics engine used for Angry Birds.
LDQueue A data storage object similar to a stack, except that values are stored first-in first-out.
LDRegex
(formerly in LDUtilities)
Regex operations.
LDResources Save and load images, sounds, files and text/variables to a single file to provide with your program.
LDScrollBars GraphicsWindow ScrollBars, careful use allows a scrolling type game.
LDSearch Web base Bing searches.
LDServer The server methods for a client server multi-PC application.
LDSettings Store and retrieve settings for your programs.
LDShapes UPDATED Extended shapes methods.
LDShell Extended shell file methods (code by Pappa Lapub).
LDSort Array sorting by index and value, with number and string sorting supported.
LDSound Record and save sounds from a microphone. Play system sounds.
LDStatistics Statistics on a 1D array of numbers and random sample generation with normal, binomial, uniform and triangular distributions.
LDStopwatch Accurate system stopwaches.
LDText UPDATED Text utilities, including, split, compare, trim, replace and find-all.
LDTextWindow TextWindow utilities, including low level key events, interruptable Read or ReadNumber, capture and print TextWindow, set more TextWindow colours,.
LDTimer Additional timers.
LDTranslate Language translation.
LDUnits A general purpose unt conversion system.
LDUtilities List of available fonts or colours, culture number conversions and some assorted utilities.
LDVector 3D vector algebra methods.
LDWaveForm Create PPM (Pulse Position Modulation) sound signals to control RC (remote control) devices and simple sound waveforms.
LDWebCam A webcam object for the GraphicsWindow, with some simple effects.
LDWindows Create additional GraphicsWindows.
LDxml Methods to parse xml files.
LDZip
(formerly in LDUtilities)
File Zip archiving.

LDColours
LDCommPort
LDEvents
LDFocus
LDProcess
LDShapes
LDSpeech
LDMath
(formerly LDTrig)
Maintained and in some cases significantly extended versions of the demonstration extensions are also included.

† The php files in the folders gamedata and highscore on this website are those used by the LDNetwork extension methods. You may use these with your own web site.  Since the php files are both called server.php you should keep the gamedata and highscore file structure.  To use the LitDev extension commands in LDNetwork with these php files (see download below) on your web site, you must first set the network location using the property LDUtilities.NetworkURL in your Small Basic code.  The default value is "http://litdev.uk" where the folders gamedata and highscore are located.

LitDev Extension Screenshots


Demonstration Extension Downloads

The following smaller extensions are provided with full source code for demonstration purposes for you to start building your own. They are no longer actively developed, but still show how various operations can be performed and interact with SmallBasicLibrary.dll.

All of the functionality in the demonstration extensions is contained in the LitDev extension, therefore there is no no need to download these unless you are interested in how they are made.

Download the source and unzip to a folder somewhere, open the solution (*.sln) in Visual Studio and build the solution. Copy the resulting dll and xml files to the Small Basic lib folder to then become available for Small Basic.

You may need to update the reference to where SmallBasicLibrary.dll is installed on your PC inside the References section of Solution Explorer in Visual Studio.

Check out the 'Guide to writing extensions' below.

Colours Get SmallBasic colours by name.
Music Get a music file play time.
SerialPort Access the serial port (original code by Nino Carrillo.
Spawn Access system process information and start external processes.
Speech Use a speech synthesizer to speak text.
TextBoxFocus Set and get the focus for Controls and Textboxes.
Events Sample creating event extension (display change).
ShapesExtension A method to move a line shape and manipulate Shapes such as dashed pens, Z-index layering and some basic collision detection.
TrigD Trig functions using degrees.

Other Resource Downloads

For the following downloads, where multiple versions are available they refer to compatibility with Small Basic versions.

Samples
 
Some Small Basic samples that don't use extensions, but demonstrate a range of features.

Small Basic API
 
A printable and editable copy of the Small Basic API (commands and their syntax) created from SmallBasicLibrary.xml.

Previous versions

A previous msi installer may be required to correctly uninstall Small Basic before installing the current version.

Hello World test

A very simple compiled Small Basic program that can be used to test .Net if an installation of Small Basic fails.

Guide to writing extensions

Guides to setting up and compiling an extension using VS 2010 Express in C# and VB. This is very similar to using more recent versions of VS, where the guides are also applicable.

XML converter

Utility program to convert Small Basic and extension xml files to rtf and html documents. This tool was used to create the rtf files provided with extensions on this site as well as the Small Basic API above and html API previews. Tool also contains some other utilities. It requires .Net 4.8 which installer will detect and install if you want this tool.

Small Basic extension compiler

Compile an extension in Small Basic (simple example included). Code by Fremy Company, recompiled with permission for current version. See here and here for more details.

LDNetwork php files

These are the php files required to use LDNetwork methods on your own web area.

Image Upload Facility
A basic file sharing facility has been created for Small Basic users.



Extension template

Add a C# Visual Studio 2015 Small Basic Extension template.  Download and copy the zip (don't unzip it) to Documents\Visual Studio 2015\Templates\ProjectTemplates.  It assumes SmallBasicLibrary.dll is in C:\Program Files (x86)\Microsoft\Small Basic.  To create an extension using this template goto File->New->Project... select SBExtension from the Installed Templates Visual C# folder, compile and copy SBExtension.dll and SBExtension.xml from SBExtension\bin\Release to the Small Basic lib folder.

SB-Prime : Extended Small Basic development environment
 
This is a Small Basic development environment (IDE) with debugger, flow chart visualisation, shapes and controls editor, extension management, extended editing as well as all of the features present in the standard Small Basic IDE.ndard Small Basic IDE.

It should work with any installed version of Small Basic (C:\Program Files (x86)\Microsoft\Small Basic or C:\Program Files\Microsoft\Small Basic).

The debugging functions do require Small Basic version 1.1 or later since it uses .Net 4.5 features present in this version onwards.

Feedback welcome...

See the main Small Basic forum thread for SB-Prime for additional information.

Installation
  1. Download and save the zip somewhere
  2. Unblock the downloaded zip file (this allows the unzipped exe and dlls to be used): Locate the downloaded zip in File Explorer, then right click -> Properties -> General -> Unblock
  3. Unzip the contents of the zip somewhere, maybe an empty folder in Documents or in the SB installation folder (not the lib folder) .  If you are using an existing folder then delete the contents first.
  4. Run SB-Prime.exe
Documentation

A short guide to debugging with SB-Prime (How to Debug).

Plugins

Plugins may be written for SB-Prime.

A sample VS 2019 project to get you started may be downloaded from litdev.uk/downloads/SBSamplePlugin.zip.

A GitHub version of the plugin sample source code is also available from https://github.com/litdev1/SBSamplePlugin.

Plugin dlls should be unblocked if downloaded, then placed in a subfolder of the SB-Prime.exe location, called 'plugins'.

Using the plugin sample, only the SBSamplePlugin.dll file should be placed in the plugins folder.

The dlls in the plugins folder will be auto detected and loaded to a new ribbon button if they are are correctly created.

ScreenShot

 

Updates (recent at top)

To update SB-Prime select the Advanced ribbon tab, and then click Update from the Settings group. Upgrade will persist your settings.
  • Updated to fix Shapes Editor using non English locale and added Aliases for objects and methods (Version 1.1.10)
  • Updated for improved lexer performance for large files and long lines (Version 1.1.9)
  • Updated to be compaitible with litdev.uk site (Version 1.1.8)
  • Interface localisation, initially Russian (Version 1.1.7)
  • Minimum window sizes set
  • Lexing issues fixed and space indent option added
  • Shapes Editor - fix for 'action' keys when textbox has focus
  • Improved printing
  • Decompile .Net assemblies to C# (Advanced tab)
  • Various cummulative updates (Version 1.1.6)
  • Extended hotkeys to closely resemble Small Basic behaviour
  • Single click update added in Advanced|Options
  • Renamed SB-Prime (Version 1.1.5)
  • Shapes editor tool added
  • Flow chart visualisation added (Version 1.1.4)
  • Program details and rating added
  • Various minor improvements
  • First stable version (Version 1.1.3)
Extension manager
 
This contains an application to manage your Small Basic extensions.  It is available within SB-Prime, therefore there is not point downloading both.  Download, unblock and extract the zip somewhere and run SBExtensionManager.exe.



Translation
 
I found a way to easily do automatic translation packs for Small Basic.  The tranlation is by software so it will not be perfect.  It consists of tranlations of SmallBasicLibrary.xx,xml (for intellisense) and Strings.xx,resx (for IDE), where xx is the language code.  All extension packs are for Small Basic version 1.2.

Both files should be downloaded and copied to the Small Basic installation folder (not the lib folder).  You can edit some bad translation manually in these files if you want and even let me know what the better translation should be.

Downloads to the conversions I have done are below, if you want others then please email admin@litdev.uk.

You can start Small Basic with any available language from a command window or bat file in the Small Basic installation folder using a launguage code of the form xx-xx, e.g. no-no for Norwegian.

C:\Program Files (x86)\Microsoft\Small Basic\SB.exe /lang:no-no

Norwegian Language Pack (no-no) Greek Language Pack (el-el)
Hindi Language Pack (hi-hi) Urdu Language Pack (ur-ur)
Estonian Language Pack (et-et) Bulgarian Language Pack (bg-bg)
Hebrew Language Pack (iw-iw) Indonesian Language Pack (id-id)

Below are links for machine translations of the LitDev extension xml (these are not updated for every version release - you can create your own with the translation tool).

Spannish (LitDev.es.xml) Russian (LitDev.ru.xml)
French (LitDev.fr.xml) Japanese (LitDev.ja.xml) [ Nonki GitHub ]

IDE translations are also possible for SB-Prime, some are present in current download (ar, de, es, fr, hi, no, pl, ru, zh).

Forum

I have created a Small Basic forum for questions and help, especially for getting started with Small Basic.  The idea is to cater mainly for beginners starting out on their programming journey.  It will also cater for questions on extensions.

I think that the Facebook Small Basic Enthusiasts group remains the best place to share your graphical programs, but somewhere for more detailed questions and answers may be useful.  I am thinking about interactive games, event handling, efficient program structure and other programming skills in addition to graphics.

It is just starting out and we will see how it goes.  Have a look if you have Small Basic questions or would like to help answering them.

There will be periodic challenges (easy or hard) for you to have a go at and share solutions.

It uses MyBB software and is located at litdev.uk/mybb.  Any issues, then please post a question there.



Wiki Articles

Programming Tips This article covers the basic ideas of structured programming, or some tips for writing better programs in Small Basic
Grammar Basics This article describes the main language elements or 'grammar' used by the Small Basic language and gives some suggestions for further study
Text Basics This article covers the basics of text manipulation in Small Basic using the Text object
Array Basics This article covers the basic use of the Small Basic Arrays
Stack Basics This article covers the basic use of the Small Basic Stack, with an example recursively finding all jpg image files in and below an initial directory
GraphicsWindow Basics This article covers the basic use of the Small Basic GraphicsWindow
Event Basics This article covers the basic use of events in Small Basic
Graduate to C# This article considers how to Graduate a Small Basic program to C#
Dynamic Graphics This article is an introduction to graphical game programming using Small Basic. It includes the basics of program design, movement, user interaction with keys and mouse, collision detection and introduces some more advanced ideas at the end.
Threading This article covers the basics of threading in Small Basic.
Sprite Arrays This article describes using arrays of sprites in a Small Basic program.
List Extension This article describes how Small Basic arrays are handled internally. It describes the advantages and disadvantages of the approach used, and introduces an alternative extension method 'LDList'.

Selected Blog Articles

Small Basic Prime – Extended IDE    
Small Basic – Language Packs Small Basic – Talking to Raspberry Pi
Small Basic Extension Manager Small Basic - 3D Visualisation
Small Basic - Arduino Small Basic - Chord Sounds
Small Basic Featured Program - Database Sample Turtle Maze Challenge
Merry Christmas Small Basic Featured Program - Solar System
Small Basic - Mouse Position Small Basic - Chart Extension
Small Basic - WebCam Motion Detection Small Basic Featured Program - Boxing Game
Small Basic - Flood Fill Small Basic Featured Program - Gravity Simulator
Small Basic - GetSettingsFilePath Small Basic - Traffic Light Challenge
Small Basic - Transparent GraphicsWindow Small Basic - Physics for Marionette Challenge
Small Basic - TextWindow Cursor Positioning Small Basic - Controls are Shapes
Small Basic - Clearing Turtle Trails Small Basic - Triangle Challenge
Small Basic - Random Numbers Small Basic - Colors
Sprite Arrays - Featured Article Small Basic - Hammer and Nails
Small Basic - About Monthly Challenges Small Basic - Box2D Physics Extension
Small Basic - Dudeson's Smoke Small Basic - Database Extension
Small Basic Featured Program - SideScroller Why Johnny Can't Code
Small Basic - Pulse Position Modulation Extension Small Basic Types

Hosted By Hostinger