A collection of PureBASIC resources.
PROJECT TEMPORARILY FROZEN — The PureBASIC Archives project is currently being redesigned to become a fully browsable HTML project (both online, through GitHub Pages, as well as locally). The new version will be powered by Butler — a static, flat-file content management system (written entirely in PureBASIC) that relies on PP, pandoc and Highlight to generate HTML documentation from pandoc-markdown source files.
Until the new version is ready for release, the PureBASIC Archives will not be updated, and no pull requests will be accepted (currently, all the markdown contents are being ported to the new system) — except for some sections (eg:
/syntax-highlighting/
) which are crucial to the upcoming version and are being actively updated to make the transition possible.ESTIMATED RELEASE DATE: December 2017/January 2018 (optimistically).
ONLINE ALPHA TESTS PREVIEWING
An early access Alpha version is now publicly available in a temporary GitHub repository:
Here are some HTML Live preview links of what the revamped documentation website will look like (still WIP drafts):
You’re welcome to participate to the alpha testing and development via GitHub issues or by contacting me via email (tajmone at gmail dot com).
DIRECT DOWNLOAD – You can download a full copy of The PB-Archives without using Git:
master.zip
– download the production ready version.dev-tutorials.zip
– download also the WIP drafts of upcoming tutorials.
or you may download selected resources as Zip archives from the “Download Links” section.
- Vanity URLs
- Introduction
- Quick Links
- Download Links
- Resources Organization
- Developement Branches
- License
- Contributing
- About PureBASIC
- More Collections on GitHub
- Useful Links
- Acknowledgements
- Repo History
- git.io/purebasic-archives – Links to PB-Archives’ website
- git.io/pb-archives – Links to PB-Archives’ repo master (here)
- git.io/pb-wiki – Links to PB-Archives’ Wiki
The PB-Archives is a threefold project consisting of:
The project was started by Tristano Ajmone (@tajmone) in October 2016. The goal of the project is to create a collaborative centralized place for gathering and sharing PureBASIC-related resources: code examples and snippets, libraries, tutorials, books, and links — anything that can simplify a programmer’s life by either being herein archived or linked/reviewed.
The Git repository is the core of the PB-Archives project: resources of various types are herein stored, organized into categories through folders structure. Documents and tutorials are stored in the repository both in source format (Markdown or AsciiDoc) and in distribution format (HTML, doc, PDF, ecc.).
By cloning the repo, the end user downloads a copy of all of the project’s reosurces, which then become locally available at all times and extremely easy to update and maintain through Git. Hopefully, this should also encourage users to contribute their own resources to the project.
The idea of creating this repo dawned on me when I realized that in the course of time, while working on various PureBASIC projects, I’ve been cumulating lots of resources and notes – mostly buried within each project’s working folders. At the end of each project – when the dev-frenzy cools down – I always try to reorganize my collected notes and resources in a systematic way, so next time I’ll need them they’ll be at my fingertips (without having to sift through all my past projects just because I forgot where I saved them). Well, this project is something along these lines, but on a collaborative scale.
I hope that developers can benefit from having a pool of resources to fish from, and that they might contribute back by sharing their own findings too. It only takes a handful of PureBASIC developers to quickly populate a project like this one.
The GitHub-hosted Wiki associated to the PureBASIC Archives repo is intended as an online reference for PureBASIC – ie: not for tutorials, reviews of third party tools, ecc., but as place where one can quickly find tech specs, FAQs, cross-platform setup and development guidelines, and any answers relating to PureBASIC as a language and application. Tips and tricks might be mentioned therein, as well as links to external resources that are pertinent to the subject matter of a given Wiki entry, but any full-fledged article/tutorial should go inside the repo and linked from the Wiki.
Possibly, in the future, html standalone snaphsots of the Wiki might be included in the PureBASIC Archives repo, for offline reading — that is, if the Wiki ever reaches an interesting size and richness of contents.
Right now, it’s just a single-page website, created with GitHub’s Automatic Page Generator and freely hosted on GitHub Pages. When the documents and tutorials of PB-Archives’ repo and wiki will reach a mature stage, I’m planning to make it a full-fledged and well organized portal – but this is a long-term project, unlikely to happen soon.
For the time being, a single presentation-page is all the website can offer.
- Win Registry Module by Thomas Schulz «ts-soft» (Windows only). Adds procedures for handling Windows’ registry read/write and delete operations.
- GoScintilla by Stephen Rodriguez (updated to PB 5.x): source-code helpers which wrap a lot of the Scintilla API in order to simplify use of Scintilla within applications.
- PBHGEN v5.42 by Henry de Jongh: PB-IDE Tool that generates header files (
*.pbi
) for your source code (automatically createsDeclare
staments for your procedures). - fasm resources folder.
- Dräc’s «PureBasic and Object-Oriented Programming» tutorial (Also in French) – source folder.
- Vid’s «TAJGA FASM Tutorial» (also available in CHM format) — source folder.
- Vid’s «FASM Preprocessor Guide»
- pandoc2bbcode by lilydjwg (依云) and Tristano Ajmone: a script for converting documents to PureBASIC Forums’ BBCode from over 20 input formats (including markdown, html, ODT and docx). Useful for writing elegantly formatted posts on PB forums using Markdown, or to quickly convert existing documents to BBCode.
- PureBASIC Syntax Highlighting: resources for publishing neatly formatted source code examples.
These links allow you to download specific isolated resources by creating a Zip archive copy of their folder (via @KinoLien’s GitZip). The Zipped files will be as in the latest version of the master branch.
- Dräc’s «PureBasic and Object-Oriented Programming» – tutorial in AsciiDoc and HTML5 (all languages versions), plus PB source code of examples and OOP library.
The Archives project is divided into folders according to categories:
/asm/
— x86 Assembly (FASM and Yasm) resources./books/
— books on PureBASIC programming./libs/
– 3rd party PureBASIC libraries, modules, wrappers, ecc./os-linux/
— PureBASIC for Linux resources./os-mac/
— PureBASIC for macOS resources./os-win/
— PureBASIC for Windows resources./pb-development/
– resources for developing in PureBASIC./syntax-highlighting/
— publishing PureBASIC source code in colored syntax./text-editors/
— PureBASIC syntax support in text editors./tools/
— any PureBASIC related tools that don’t quite fit anywhere else./tutorials/
— PureBASIC learning tutorials.
Some folders contain material specific to this repo’s developement and maintainance:
/repo-maintainance-tools/
— scripts related to the maintainance of this repository.
Some resources might require long-term work before being ready for inclusion in the main branch of the repo — eg: porting code from PB v4, translating documents, porting text to Markdown or Asciidoc (from HTML, Doc, or PDF), and so on.
For this purpose, some developement branches have been created to host different kind of works-in-progress (WIP):
dev-tutorials
– WIP for upcoming tutorials.dev-syntax-highlighters
— WIP relating to syntax highlighting ad keeping track of PureBASIC syntax tokens.
You might consider peeking into the dev-branches to get a preview of what is coming next and — why not?! — join the work.
This is a collection of various resources, and each resource comes with its own license. Please read carefully the licenses terms on a per-resource basis before incorporating them into your projects.
This repo acts as a «general container» through compartmentalization: hosting each resource under its own folder, governed by its own license terms. PureBASIC Archives provides a license-neutral structure for organizing into categories the various resources it hosts. In this respect, it resembles the CD-Roms with collections of software tools which are distributed with computer magazines — except that PureBASIC Archives is freely accesible to all.
Nothing has been incorporated here that would prevent cloning this repository.
Licenses are placed (or linked/mentioned) in the main folder of each resource and sub-project, and the license terms should cover all files in that folder and sufolders. Further details and exceptions shall be indicated in the README
file within the resource folder and/or in its parent folder.
As for the project in itself — ie: this repo as a «container», its structural organization, and my personal contributions in terms of documentations (README
markdown and html files) and project-related resources (scripts, templates, stylesheets, ecc) — its to be considered as released into the public domain according to the Unlicense terms (see: Unlicense.org), unless otherwise specified — since it wouldn’t be feasible to add a public-domain license to every single document file, I’ll instead ensure that a licence file will be provided where required (like third party tutorials and documents).
The choice of the Unlicense public-domain terms for the overall project ensures flexibility in contributing and forking, and should prevent licenses conflicts.
If you’ve found these archives helpful in finding resources for learning and working with PureBASIC, consider helping the project grow by contributing your own resources, or adding links to external resources, writing reviews or tutorials.
Before submitting pull requests, please read the CONTRIBUTING.md
file.
Ideas, proposals, and corrections can be discussed by opening an Issue:
PureBASIC is a commercial programming language and IDE published by Fantaisie Software (France):
PureBasic is a native 32-bit and 64-bit programming language based on established BASIC rules. The key features of PureBasic are portability (Windows, Linux and MacOS X are currently supported), the production of very fast and highly optimized executables and, of course, the very simple BASIC syntax. PureBasic has been created for the beginner and expert alike. We have put a lot of effort into its realization to produce a fast, reliable system friendly language.
In spite of its beginner-friendly syntax, the possibilities are endless with PureBasic’s advanced features such as pointers, structures, procedures, dynamically linked lists and much more. Experienced coders will have no problem gaining access to any of the legal OS structures or API objects and PureBasic even allows inline ASM.
Some interviews by André Beer (PureArea.net) with Frédéric Laboureur (aka @Fred and «AlphaSND»), founder of Fantaisie Software and main developer of PureBASIC, and with Timo Harter (@freak), 2nd main PureBASIC programmer:
- 2005 Interview with Fred
- 2009 Interview with freak
- 2012 Interview with Fred
- 2015 Interview with Fred and freak
Some links to other GitHub repos acting as containers for PureBASIC code.
NOTE: The statement “
LICENSE file is a [LICENSE-NAME] template
” means that the author chose a license during repo creation, but did not fill-in its fields (author and project name, date, ecc). Even if the author’s intentions are clear, a blank license template might not be an effective license.
- blendman/Purebasic – “Some purebasic codes, under GPL.”
- aziascreations/Random-PureBasic-Projects – “A collection of random PureBasic projects”. LICENSE file is a GNU GPL template.
- IndigoFuzz/PureBasicLibrary – “Purebasic Code Library: The purpose of this library is to provide a useful repository of code for the PureBasic programming language.” LICENSE file is a GNU GPL template.
In absence of explicit licensing terms, their contents should be considered copyrighted and for viewing purposes only.
- aistun/PureBasic-Sources – various PB project by aistun, in French. No license.
This project deserves a special mention. It seems to be a WIP to recreate an updated version of the historical PureBasic CodeArchiv, hosted at PureArea.net:
PureBasic CodeArchiv contains a wealth of resources for PureBASIC version 3 and 4. Its license terms are:
Design and compilation of the PureBasic CodeArchive is (c) 2003-2007 by Andre Beer and exclusive component of the www.PureArea.net PureBasic support site. You may use the codes published on this site without restrictions for your own projects, however a publication of this code archive on other web pages, CDRom etc., require the express consent of the author. The copyright of the individual codes lies at the respective authors.
External links where you can find more PureBASIC resources.
- «@Sicro» (maintainer of PureBasic-CodeArchiv-Rebirth) — for his continuos advice and for providing links to many useful resources.
- «@Marc56us» — for having written code for the
/syntax-highlighting/guidelines/
section. - «Vid» of TAJGA Team — for “TAJGA FASM Tutorial”, and “FASM Preprocessor Guide”.
- Thomas Schulz «@ts-soft» — for the Win Registry Module.
- Stephen Rodriguez «@srod» — for the GoScintilla library.
- Jordan Klassen «@forivall» — for releasing gh-pandoc.css under MIT when asked reuse permission.
- «Dräc» — for releasing his OOP tutorial under CC BY when asked reprint permission.
- Henry de Jongh – for releasing PBHGEN under CC BY when asked reuse permission..
A record of the milestones of this repository history (reverse order).
2018/10/01
- Updated pre-built Highlight.js to HJLS-PB v9.12.0a.
2017/10/02
- Updated Highlight PureBASIC lang definition (v1.7).
2017/09/30
- Updated Highlight PureBASIC lang definition (v1.6 — fixes some bugs introduced with v1.4-5).
2017/09/27
- Updated Highlight PureBASIC lang definition (v1.4).
2017/09/08
- Fixed a bug in GoScintilla (now v3.0.1).
2017/05/26
- Added links to interviews with PureBASIC developers.
2017/05/24
- updated pandoc2bbcode’s
bbcode_phpbb.lua
to v1.2.
- updated pandoc2bbcode’s
2017/05/12
- Bug-Fix Update to pre-built HJLS-PB v9.11.0b — some PB keywords were accidentally joined together; now fixed.
- New PB keywords list in
/syntax-highlighting/guidelines/
.
2017/05/11
- Updated Highlight PureBASIC lang definition (v1.2): Added inline-Assembly support!
2017/04/30
- Updated pre-built Highlight.js to HJLS-PB v9.11.0 plus an updated PureBASIC lang definition to PB 5.60.
- Updated Highlight PureBASIC lang definition (v1.1) to PB 5.60.
- New
/syntax-highlighting/guidelines/
section dedicated to creators and maintainers of PureBASIC language definitions for syntax highlighters and code editors.
2017/01/26
- Reprinted Vid’s “FASM Preprocessor Guide”
2017/01/25
- Reprinted Vid’s “TAJGA FASM Tutorial” (also available in CHM format).
- Created Assembly section for fasm resources.
- Created
/shared/
section for gathering shared resources (CSS, JavaScript, etc.). - Created pandoc “Tutorial” html5 template for building html tutorials from multiple markdown source files.
- Added Sass/Compass project to build CSS stylesheets of
/shared/
section.
2017/01/17
— Updated pre-built Highlight.js to HJLS-PB v9.9.0b (FASM syntax added).2017/01/14
— Added Win Registry Module by Thomas Schulz, a module for handling Windows’ registry read/write and delete operations.2017/01/02
— Added GoScintilla by Stephen Rodriguez — updated to work with PB 5.x.2016/12/20
— Added pandoc2bbcode, a script for converting documents to PureBASIC Forums BBCode from a variety of input formats.2016/12/18
— Updated pre-built Highlight.js to v9.9.0.2016/12/06
— Republished Dräc’s French tutorial PureBasic et la POO2016/11/30
— Now GFM (GitHub Flavored Markdown) is the default standard for markdown documents and cleanup operations performed via the repo-maintaiance tools.2016/11/26
- Added PBHGEN v5.42 by Henry de Jongh: PB-IDE Tool for auto-generating header files (
*.pbi
). - Started creating the Wiki.
- Added PBHGEN v5.42 by Henry de Jongh: PB-IDE Tool for auto-generating header files (
2016/11/24
— Highlight.js: pre-built HLJS packages («PureBASIC enhanced/modded releases») are now available in this repo, along with themes, instructions, and examples.2016/11/18
— Republished Dräc’s tutorial PureBasic and OOP (English version).2016/10/31
— Added Programming 2D Scrolling Games PDF book and code examples.2016/10/27
— Highlight: this repo becomes the home of the PureBASIC language definition and color theme files for Highlight syntax highlighter.2016/10/26
— repository creation date.