Welcome to Pete's QBASIC Site!

FreeBasic Top 50

QB Top 50

Misc. Miscellaneous Tutorials
ABC Packets FAQs All of the FAQs (frequently asked questions) from the ABC packets. Lots of good stuff here. Various
Frequently Asked Questions: QBasic Many different programming examples, very useful. W.M. Bergmann (editor)
BIOS Calls in QuickBasic Ever wanted to program your BIOS through QB? Read this. Aaron Severn
Bits A good explanation of BITs and BYTEs. Includes source Ximmer
Computer History Up To 1952 A history of the computer up to 1952. Not really relating to QB, but you should still read it. Mark Brader
Compiling A tutorial that shows you how to split up and link together .bas files when your program gets too large to compile. WisdomDude
Segments and Offsets Segments and Offsets explained. Short. Milo Sedlacek
PC Magazine's POKEs & PEEKs An excellent and in-depth article on using PEEK and POKE. This one is unique because it contains info on not just using PEEK and POKE for graphics, but also for accessing just about anything on your computer! (From PC Magazine.) David I. Schneider
TSR Programming in QuickBasic Explains how to write a TSR (Terminate and Stay Resident) program in QB, which is useful because DOS can't run more than one program at once. TSRs are a work-around. G.M. McKay
QB Error Codes A list of all the QBasic / QuickBasic error codes that you might face while debugging. Microsoft
Appending Data to a .EXE File This tutorial explains how you can append a data file, such as BMP, to the end of a compiled QuickBasic program (an EXE file) and have the program access it when it's running. Dav
QB Mini Encyclopedia Hur's famous QB Mini Encyclopedia. It has more than 50 QB tutorials that Hur found interesting, and comes with a custom GUI program for viewing the tuts. Useful, but many of the topics discussed have since been covered by better tutorials. Hur
Building a Compiler An extremely brief look at making your own compiler. For beginners. Brenden Homan
Copyrights How to protect your intellectual property through copyrights. Teaches you what you need to do to ensure that someone else can't steal your code. Antony Chesworth
Bit Manipulation Doorknob Software explains how to change values on a binary level. This tutorial focuses on changing colors on a bit-by-bit basis, but the information applies to all binary values. Doorknob Software
Using Interrupts in QuickBasic An overview of how to use interrupts. Includes several examples and then culminates in an interrupt BMP loader program. CGI Joe
Using QBASIC to "Prepend" to All Lines in a File "QBASIC allows a straightforward solution to the problem of how to add any desired text to the beginning of all lines in a file." Unknown
Simple Physics Programming A collection of small programs and formulas which simulate various physics effects like wheel skidding, bullet trajectories and car braking. Twisted Matrix
The Matrix Tutorial "This program uses basic Matrices with the traditional two for-next loops to display rows and columns." A .BAS program with a built-in tutorial. Truth and Reconciliation
PEEK, POKE, Memory Management and I/O Ports Covers BSAVE and BLOAD, PEEK and POKE and much more. This also teaches you memory commands like DEF SEG, FRE, SADD, SETMEM and CLEAR. I/O commands discussed include INP, OUT, Peek and Poke. The three V's are also discussed: VARPTR, VARPTR$ and VARSEG. Many more commands are covered too. This tutorial covers a ton of random commands, so it's hard to summarize in a few lines. Check it out! Anastasios Yalanopoulos
How To Compute Planetary Positions A collection of formulas and algorithms to compute elliptical orbits, adjust orbits based on gravity and to mimic the orbits of all the planets in our solar system. Good for making space shooter games, and these formulas can be used to plot the "orbits" of anything, including enemies and bullets. Paul Schlyter
Advanced Speed Optimization Techniques for QB This has some great tricks for speeding up your program, such as unrolling loops, code movement, precalculated numbers and constants, variable caching, POKE over PSET, and a whole lot more. Highly recommended! Toshi Horie
QuickBasic Summary A brief outline of just about everything you need to know about QB. It's more of a cheat sheet / reference document that can refresh you on various commands and how to use the GUI. This covers EVERYTHING, but is not thorough at all. Prof. Nam Sun Wang
Intermediate Programming Tips (Part 1) Discusses user-defined variable types and screen swapping in various screen modes. (BASIX Fanzine #12) Alex Warren
Long Filenames From DOS Avoiding "Bad Filename" errors when you try to load long Windows filenames in your QB programs. (BASIX Fanzine #11) Alex Warren
Including Files In EXEs Explains how to append binary files to the end of your EXE programs for use within the program. (BASIX Fanzine #12) Ollie Cook
Data Manipulation Tutorials, Parts 1 & 2 Part 1 explains many data encryption techniques, including Bit Shifting and Bit Switching. Part 2 explains how to create your own file format, and the basics of reading and decoding other peoples' file formats. (BASIX Fanzine #13) Damien Nikodem
Heuristics For A Self-Organizing Sequential File Theory article describing what a program must do to self-organize a sequential file, instead of always re-creating files start-to-finish. (BASIX Fanzine #13) RudeJohn
Basiliar Data Types Covers the various different types of variables available in QB, the advantages and disadvantages of each, and how to use them effectively. Goes into great depth. (BASIX Fanzine #16) Unknown
Fast Read From A File Explains a quicker way to open binary data files in QB -- instead of byte by byte, you can now open them faster by using a buffer. (BASIX Fanzine #16) Thomas Laguzzi
Sleep Via Interrupt Mimic the native QB SLEEP command with ASM code and interrupts which will not fill up your buffer. (BASIX Fanzine #16) Thomas Laguzzi
Manipulating External Files Explains how to use external data files in great depth. Covers OPEN, INPUT, OUTPUT, RANDOM, BINARY, APPEND, LINE INPUT, GET, PUT, EOF and LOF...and more. Very useful! (BASIX Fanzine #17) Chris Neth
Formatting Text Into Checkese Tutorial on writing out numbers in English text. "Checkese" is taken from the word "check", because we write dollar amounts in both English text and numbers in order to prevent banking mistakes. (BASIX Fanzine #17) The Math Wizard
Reading The CMOS Accessing the CMOS to determine how much memory your computer has, especially if your BIOS returns the wrong amount. (BASIX Fanzine #2) John Woodgate
All About ANSI An introduction to ANSI (American National Standards Institute) codes, which are used for controlling output on a remote computer. A thorough introduction. (BASIX Fanzine #3) Ben Ashley
Binary Tree Search Part of the Wrox Press's QBasic book, this tutorial discusses searching through pyramid-ordered data sets. (BASIX Fanzine #3) Adrian Sill
Rant: Advanced Math Vs. Programming How much math do you need to know to be a good QB programmer? This tutorial also does a good job of explaining how to use the oft-misunderstood logical operators AND and XOR. (QB Chronicles #3) Singsong
To All Space Wasters Out There Some simple ways to decrease the file size of your finished QB programs, for people with limited bandwidth or harddrive space. (QB Cult Magazine #14) Sane
Making A Formatted Text Viewer Using DQB - Part 1 Instructions on making a readme viewer for your QB program, in case you want to include documentation or a help file for your user to read. (QB Cult Magazine #15) Zap
Object Oriented BASIC - Possibility or Pipe Dream? Pseudo-code rich article on treating BASIC programming as if it were object-oriented. An interesting and insightful read. (QB Cult Magazine #3) Unknown
Coding A Compiler Series #1 A brief overview of how to make your own compiler. It briefly covers many important elements of a compiler, with source code examples of an very simple compiler. (QB Cult Magazine #4) Gabriel Fernandez
Using The FPU "The FPU is a math processor inside your computers processor. Early computers had an external FPU processor, unlike today." This tutorial tells you how to make use of the FPU, with the help of a little bit of assembler. (QB Cult Magazine #6) Frej
Introduction To Trigonometry Your introduction to SIN, COSINE and TANGENT, as well as the Pythagorean Theorem...and more. Some basic math that is absolutely essential for any type of advanced programming. (QB Cult Magazine #7) Matthew R. Knight
Errorcodes, Long File Names, and Other Neat Tricks Two unrelated topics discussed in one tutorial: Errorlevels and using "Long" (Windows) filenames in QB. (QB Cult Magazine #8) Christopher Charabaruk
Appending Data To Your .EXEs "Sometimes, you'll want to have certain data for your program that you don't want to put into a seperate data file (configuration info, CRC signiture for the program part of the executable or other files, etc.). There is a method to check data at the end of your program's .exe file, and to write to it too." (QB Cult Magazine #9) Chris Charabaruk
The Printer Is Your Slave! Printing text on to your printer using LPRINT. This also discusses more advanced options like outputting italics or underlined text. (QDF #2) Lord Acidus
The Boolean Hell Boolean logic in QB. Explains AND, OR and XOR, as well as how binary numbers work. (QDF #2) Lord Acidus
Face Lift: Signed Variables Improving the speed of your program through signed number variables (ie: integers instead of floating points). Helpful and well-written. (QDF #2) Lord Acidus
Booting Your Computer A look at what happens to your computer when it boots, and some methods to reboot your computer through QB. (QDF #3) Lord Acidus
"My Mind Is Going..." Using COMMONs and CHAINs to "dump" data and share it between several different programs / modules. (QDF #4) Lord Acidus
Warping The CPU How to physically modify the annoying internal PC speaker. This tutorial explains how to add a volume control, a headphone jack and an on/off switch. It even explains how to attach a stereo...but I don't know why you'd want PC speaker music playing on your stereo. :P (QDF #4) Lord Acidus
QuickBasic Directories How to do directory searches in QB by utilizing DOS directly via Interrupt. (QBNews Vol. 1 No. 1) Hector Plasmic
QuickInsert Sort Algorithm Explains how to use and improve upon the free Microsoft QuickSort program, which comes packaged with QuickBasic. (QBNews Vol. 3 No. 1) Larry Stone
Using Stub Files to Reduce EXE Size "Microsoft BASIC Professional Development System version 7.1 comes with many 'stub' files to help reduce the size of your EXE programs. By linking with these stub files under certain conditions, you will see reductions in EXE size of 2 - 15K." (QBNews Vol. 3 No. 1) David Cleary
File Types 100 "This article will familiarize beginners to computer programming and the QuickBASIC programming language with the basics of file creation and a brief on the types of files generally used in computer programs." (QBNews Vol. 3 No. 2) Richard Vannoy
Indexing 101 The basics of file indexing. (QBNews Vol. 3 No. 2) Richard Vannoy
Using The PSP Using COMMAND$ and interrupts to look at the PSP (Program Segment Prefix); useful if you'd like to load your programs from DOS using command line switches. (QBNews Vol. 1 No. 2) Hector Plasmic
Using The DOS EXEC Function From QB Receiving ERRORLEVEL messages from DOS's SHELL command. Requires assembler. (QBNews Vol. 1 No. 2) Harold Thomson
The Speedy INSTR Function - Programming a Backwards INSTR Routine Searching a string for a sub-string using the INSTR function instead of a FOR...NEXT loop. (QBNews Vol. 1 No. 2) Larry Stone
Directory Swapping Using interrupts to return users to the proper DOS drive and subdirectory when they exit your program. (QBNews Vol. 1 No. 3) Hector Plasmic
Fast File I/O in QuickBasic How to speed up the saving and loading of large disk data files. (QBNews Vol. 1 No. 3) Ethan Winer
Using Stay-Res Plus to make TSR's Using Stay-Res Plus by MicroHelp to create terminate-and-stay-resident QB programs. (QBNews Vol. 1 No. 4) Larry Stone
Peeking at DOS with P.D.Q. Using Crescent Software's P.D.Q. program to create TSR programs in QB. (QBNews Vol. 1 No. 4) Ethan Winer
Format Floppy Disks With QB The basics of formatting floppies with QuickBasic. (QBNews Vol. 1 No. 5) Cornel Huth
Making a Self-Cloning EXE in QuickBasic How to create an EXE file that "clones" information to itself by creating a "recognizable" area inside of the EXE itself that can be quickly read and modified. (QBNews Vol. 1 No. 3) Larry Stone
Self-Cloning EXE's Revisited A follow-up to Larry Stone's QBNews Vol. 1 No. 3 article on self-cloning programs. Goes into more depth, and helps with troubleshooting. (QBNews Vol. 1 No. 5) Ronny Ong
Scenic Views by way of the Video Map How to make your QB programs have more "sizzle" along with the "steak" of the programming code. Basically a marketing ploy. (QBNews Vol. 1 No. 5) Larry Stone
Fast Screen Printing "This article presents a rapid method of displaying a string of ASCII characters on the screen without updating the cursor position." (QBNews Vol. 2 No. 2) Christy Gemmel
Multiplications Nice tutorial on ASM multiplication functions, such as SHL and SHR. (QB Times #9) abionnnn
A Bug Free CALL INTERRUPT In the QuickBASIC 4.x environment any fatal DOS error during a CALL INTERRUPT crashes the system. This tells you how to solve that problem. (QBNews Vol. 2 No. 3) Cornel Huth
Segments and Offsets Memory addresses, segments and offsets. A good explanation, and pretty easy to follow. (QB Times #4) abionnnn
Overcoming Procrastination A motivational self-help essay on how to overcome procrastination in your programming project...or just about anything else. (QB Cult Magazine #14) Steve Pavlina, CEO, Dexterity Software
Organizational Skills: The Key to a Finished Game How to organize your time in order to maximize your coding potential, and ability to create a finished game. (QB Cult Magazine #9) Gianfranco (Pigeon)

User Input
New Assembly Multikey Function A highly-commented keyboard handling function that supports multiple keypresses through interrupts. A version of this was used in Milo Sedlacek's famous MonoSpace shooter. Milo Sedlacek and Joe Huber Jr.
A Key Handling Routine Shows the evolution of a simple INKEY$ key handling routine through several different dialects of BASIC. Unknown
Mouse Programming Simple mouse programming with CALL INTERRUPT. A good introduction. Alex Warren
QB Mouse Tutorial The best mouse tutorial I've seen for QB. A thorough explanation of mouse programming through Interrupts in both QuickBasic and QBASIC 1.1. Antoni Gual
Keys Detection for QBasic and QuickBasic Great tutorial discussing ASCII functions and INKEY$, ON KEY and INP. Has some good tips on improving keyboard input handling in your game program. Mod
Keys Tutorial INKEY$, UCASE$, LCASE$ and detecting arrow key presses. Meech Productions
No Break Explains how to disable CTRL+BREAK. Short. Daniel Trimble
Working with the Rodent A handy introduction to mouse programming in QuickBasic using interrupts. (QBNews Vol. 2 No. 2) Daniel R. Berry
An Event-driven Mouse Support Library "The two mouse-programming paradigms, 'polled' and 'event-driven,' each have advantages and disadvantages. We will discuss each in detail as the routines are being presented [in this article]." (QBNews Vol. 2 No. 3) Tony Elliot
Joystick Usage in QB "The purpose of this tutorial basically is to allow you to write joystick routines without having to resort to QB's crappy STRIG routines which are anoyingly bad and can be sometimes confusing!" (QB Times #2) Greg McAusland (Maz)
A Powerful Line Editor For QB Getting around the limits of QB's native INPUT statement by creating a line editing program. (QBNews Vol. 3 No. 2) Larry Stone
Mouse Programming A pretty good introduction to using the mouse in QB via CALL INTERRUPT. Discusses several different screen modes. (BASIX Fanzine #9) Alex Warren
Advanced Keyboard Programming Brief tutorial explaining how to check keyboard input using interrupts. Also includes a Keyboard Scan Code chart. (BASIX Newsletter #1) Screech
Programming The Mouse Introduction to mouse programming through use of CALL INTERRUPT. (BASIX Fanzine #3) Peter Cooper
Using The Mouse A short and sweet tutorial on using INTERRUPTs to get input from the mouse. (QB Chronicles #3) Fling-master
Morphing The Mouse Using CALL ABSOLUTE to program the mouse, and then replacing the standard arrow pointer with your own mouse graphic. (QDF #1) Lord Acidus
Extended Key Codes Made Easy A list of CHR$ values for just about every extended / compound key press you could ever need. Includes alt combinations and function (F) key codes. (QBNews Vol. 1 No. 2) William R. Hliwa, Jr.

Microsoft Library (.LIB) Format An explanation of the Microsoft .lib format. (QB Times #9) Nightwolf
Future Library Document A tutorial on using several of the functions of the Future Library, including making your library, setting the screen mode and using fonts. (QB Times #9) Stefan Hendriks
Using Utilities An interesting article on how and why you should use libraries / third party utilities to improve your QB program, with a focus on using QMIDI, BWSB or other sound addons. (QB:TM #2) 19day
Creating Your Own Library "Many people have wondered how to link other languages into Quickbasic. Some think it is not possible but to my knowledge C, Fortran, and of course ASM of been succesfully intergrated with QB code. To do this you need to compile this code into a library." This will show you how. (QBOA Issue 2) FlySwat99
Building A Library Simple guide to creating your own quicklibraries, then loading them up (one at a time or chained together) in QB. (QB Cult Magazine #3) Chris Charabaruk
Making Libraries A simple demonstration on how to create and use your own quicklibraries, generated from your QB subroutines. (BASIX Fanzine #10) Alan Copeland
QLB Tutor A very complete tutorial on inserting and using QuickLibraries in your program. Michael Hoopman
How To Make a QLB File A very brief tutorial explaining how to link multiple library files together and to create .qlb libraries. Glenn and Dav
Using C Routines in QuickBasic Teaches you how to use C/C++ code in QB by turning C .obj files into Quick Libraries. CGI Joe
Direct QB Manual The incredibly thorough and informative manual that comes packaged with Direct QB. This explains EVERYTHING about Enhanced Creations' awesome graphic library. Angelo Mottola

Dynamic Data Structures An introduction to dynamic data structures including: the stack, the queue, the linked list and the tree. (QB Times #9) Matthew R. Knight
Memory In QBasic Tricks to managing and preserving your runtime stack memory in QB, and how to use arrays and variable types. (QB:TM #5) Thav
Memory Usage A simple, yet effective method of freeing up some memory in your QB game. Create a memory handler to load individual tilesets instead of loading all of them at once. (QB:TM #9) Mandrake
Improving Your IQUEUE Managing your Data Stack in QB (with the help of ASM). (QBNews Vol. 1 No. 4) Jim Mack
Implementing a Stack in QBasic Explains how to create an unbounded memory stack in QB. Includes examples from the Wrox Press's 'Revolutionary Guide to QBasic'. (BASIX Fanzine #1) Adrian Sill
Using XMS in QB (Part 1) Nice tutorial on using XMS extended memory in QB. You must know some basic assembler first. (QB Chronicles #1) Fling-master
Using XMS in QB (Part 2) Expands on what you learned in the first tutorial with several new functions that will allow you to increase the amount of memory you can use. (QB Chronicles #2) Fling-master
Arrays Near and Far Some tricks on declaring arrays in QB, for both arrays less than 64KB and greater than 64KB. Covers commands like $DYNAMIC, $STATIC and TYPE. (BASIX Fanzine #13) RudeJohn
Why 64K? Discusses the theory behind memory segments and memory limits, with an emphasis on QB programming and dimensioning variables properly. (BASIX Fanzine #13) RudeJohn
Using EMS in QB A thorough tutorial on using EMS extended memory in QB. Includes information on all the most important interrupts that you will need if you use EMS. (QB Chronicles #3) Plasma357
Using EMS in QB (Part 2) This second edition of Plasma357's EMS series focuses entirely on using EMS memory to play WAV sounds in QB through the Soundblaster card. Very thorough. (QB Chronicles #4) Plasma357
Memory Moves With QB How to move data in QB using B$ASSN. (QBNews Vol. 1 No.1) David Cleary
Thanks For The Memories Some techniques on using HIMEM.SYS and XMS memory. (QBNews Vol. 3 No. 1) Robin Duffy
Dynamic Memory A VERY useful tutorial on using DYNAMIC MEMORY (to give your program more mem to use) Charles Johnson

Structured Programming
How To Use Subs Brief introduction to using subroutines / subprocedures in your QB programs. (QB:TM #2) NetherGoth
What is the difference between SUBs and FUNCTIONs? A short tutorial on SUB and FUNCTION usage. Written as a program, with the tutorial's text printed on screen when you execute the .BAS file. Kurt Kuzba
Subroutines, Functions, SHARED, GOSUB and GOTO A very thorough and complete look at subs and functions. Includes tons of example code. Anastasios Yalanopoulos
Basic Subroutines and Functions A good guide to subs and functions, covering the most important topics. Well-written. Unknown
Subs A short introduction to subroutines. Poorly written; in their own words, it's "clear as mud". qbasic@usa.com
Modular Programming An excellent introduction to programming subs and functions. Includes information on global variables, the module interface and commands you can't use in a sub/function. (BASIX Fanzine #15) David Tordrup
Structured Programming A great resource on structuring your algorithm so that it is easy to understand and follow. Covers everything from initializing datatypes and allocating memory to structuring your loops properly. Great! (BASIX Fanzine #15) David Tordrup
Structured Programming Turning spaghetti code into more managable program loops and subroutines. (BASIX Fanzine #4) Peter Cooper
Power Coding Simplifying your main program module, and making common sense subroutines. (QB Cult Magazine #8) QbProgger
Face Lift: Code Formatting How to organize and format your code so that it's easy to understand. (QDF #3) Lord Acidus
How To Write Bad Code A tongue-in-cheek tutorial on how and why you should write bad code. However, if you read it with an open mind, you might find some good hints on how to write *good* code. Hans Spiller

Customized Fonts Explains how to make your own 140-character "bitwise" memory-saving fonts in QB.(BASIX Fanzine #10) Jakob Krarup
Fonts: An Alternative Graphic Discusses the use of fonts as graphics rather than actual bitmap graphics. Includes several character charts. (BASIX Fanzine #12) RudeJohn
Fonts in QuickBasic An excellent tutorial on using custom fonts in QB -- both graphical fonts and by editing the standard DOS character set. (QB Cult Magazine #6) Sam Thursfield
Fonts in a Can Using a routine called PrintROMtable to produce a library of graphics fonts without a font library! (QBNews Vol. 2 No. 3) Larry Stone
Redefining Characters Change characters in the standard DOS font to your own graphical creations. This tutorial explains how to change ascii character 65 (A) into a small stick figure. Unknown
Transforming Text "Do you want to transform your text? Here are a few tips to modify your text to any kind of form!" (QB Times #6) Maxx

Using the Modem or COM Ports
Using The Modem In QBasic An introduction on using dial-up modems in QB. Covers the ports and the "Modem Language" you will have to use if you'd like to send information to another computer over a phone modem. (BASIX Fanzine #17) Matthew River Knight
Using The Modem In QBasic A modem tutorial that was featured in QBCM Issue #1. Large parts of this tutorial were plagiarized from Lord Acidus' QBasic Developers Forum modem tutorial, also listed here. (QB Cult Magazine #1) Matthew R. Knight
"Ground Control to Major Tom..." A great introduction to dial-up modem programming, telling you how to access the COM ports, dial numbers and more. (QDF #1) Lord Acidus
Using COM 3 and COM 4 with QB Getting around limitations with the COM 1 and COM 2 ports by using COM 3 and COM 4 instead. (QBNews Vol. 2 No. 4) Dick Dennison
The BASICS of QB's Serial Communications Sending information over COM ports to the modem or other serial devices. (QBNews Vol. 1 No. 4) Ranjit Aiyagari
Using The Modem in QBasic Simple modem programming. This was heavily plagiarized from Lord Acidus's modem tutorial. (QB Times #6) Matthew R. Knight
Programming The Parallel Port In QBasic Explains how to transfer data over the LPT1 parallel port, which is usually used for a printer. Aaron
Serial I/O Routines For QB 4.x A tutorial and library that will provide you with serial I/O communications in QB, as well as other DOS languages. This program will allow you to control 8250 and 16450 type communications ports (UARTS) at speeds of up to 115200 baud. Communication ports 1 - 4, and non-standard addresses are supported. QBSerial

Power Programming: Time Doing precise timing using TIMER, ON TIMER, dealing with midnight, and using TIMER alternatives in your program. (QB:TM #12) Seav
Timing Shows how to use the TIMER statement to do more precise timing in QB. (BASIX Fanzine #10) Jakob Krarup
Face Lift: TIMER Replacing your FOR...NEXT timing loops with more precise TIMER statements. (QDF #1) Lord Acidus
The UEVENT Bug If you are trying to use ON TIMER and ON UEVENT in the same program, it probably won't work. This will help you get around that bug. (QBNews Vol. 2 No. 4) Ray Crumrine
In Search of the Elusive UEVENT A different strategy for handling "events" in QB. (QBNews Vol. 1 No. 3) Jim Mack
Face Lift: Dealing With Military Time Brief tutorial on converting military time to 12-hour clock time. Lots of source. (QDF #4) Lord Acidus

GUI / Operating Systems
Creating Menus For Your Programs An article for newbies that covers: "simple 'press a key menus', menus with a 'highlight selection bar', graphical menus and even mosue driven menus. I'll discuss each type of menu with the pros & cons, an example how to make one." (QB Times #7) Nightwolf
Popup Windows Very thorough tutorial on using ASM to create a complete GUI windowing system in QuickBasic. (QBNews Vol. 2 No. 4) Christy Gemmel
BASIC Menuing and Graphics Beginner's look ar designing simple GUIs in QB, using only simple commands. (QBNews Vol. 1 No. 3) Ryan Snodgrass
'Menu' Screens "This little example is to show how you can have a 'menu' screen with various selections, and also have rather detailed information also presented to the user regarding each of his potential selections." (QBNews Vol. 1 No. 2) Don Avila
Creating A Soul Introduction to making your own Operating System. This is a long article explaining the most important aspects of OS's, and what yours should include. (QDF #3) Lord Acidus

Debugging / Optimizing
Marcade Goes Bughuntin' An introduction to debugging your QB source code, including some useful tricks that will save you quite a bit of frustration. (QB Times #9) Marcade
Advanced Speed Optimization Techniques A VERY useful collection of tips and tricks to optimize your code and speed up your programs. Highly recommended! (QB Cult Magazine #10) Toshi Horie
Debugging in QB One good method of debugging your QB program. Especially useful for determining at which loop number your program crashes (the "breakpoint"). (QB Chronicles #3) Fling-master
FPS: Frames Per Second Incorporating a FPS counter into your program to help you maximize your game engine's speed. (QB Times #8) Nightwolf
Errors, Error Traps and Fixing Errors Bughunting and beta testing is explained through good examples and a lot of source code. This tutorial goes through the most common errors you will see in QB, such as "Out of Stack Space" or "Illegal Function Call". Anastasios Yalanopoulos
Frames Per second A simple tutorial on how to add a FPS counter into your game program. Tal Bereznitskey

Numbering Systems
Binary Numbers An introduction to binary numbers and the binary counting system, and how to use them effectively in your QuickBasic program. (BASIX Fanzine #9) Alex Warren
Hexadecimal and Binary Numbers A short explanation of hexadecimal and binary numbering systems. Includes sample math problems that you might find helpful. (BASIX Newsletter #2) Screech
Hex Tutorial Brief explanation of hexadecimal numbers. (QB Times #1) abionnnn
Hexadecimal and Binary Notations A "quick little reference document" on hexadecimal and binary notations as well as the use of the logical operators AND and OR. Includes information on using QB commands like HEX$ and converting binary or hexadecimal numbers to different formats. Earl Montgomery
Hexadecimal Numbers An intro to the Hexadecimal number system. Very useful for ASM. Milo Sedlacek

Encryption / Compression
The Password Encryption Technique Nicely-formatted tutorial by SEAV Softwares that shows you some useful data-encryption techniques. SEAV says it best: "Let's suppose you have in your arcade game a password input dialog box (probably to a specified level) or a very hard riddle. You might want to encrypt the password or the answer to the riddle so that the player cannot find the answer by examining your code." SEAV
Simple Encryption Short example of one way to encrypt string variables. Nick Emblow
Data Encryption Some simple methods of Data Encryption, using a "key" statement to encode and decode text strings. (QB Cult Magazine #2) Lord Acidus
Big Brother Is Puzzled By You Encryption techniques in QB: how to encode / decode your message based on a key phrase. (QDF #4) Lord Acidus
File Compression Instructions / decriptor for the VirtuaSoft Implode compression algorithm. Useful if you're interested in creating your own file compression format. (VSNews Dec. '98) Danny Gump
The ZIP File Format All about ZIP archive compression. (QB Times #3) PKZip Website

PC Magazine's BASIC Techniques and Utilities
PC Magazine's BASIC Techniques and Utilities PC Magazine's BASIC Techniques and Utilities. A gigantic book that covers just about every advanced QuickBasic programming technique you can think of. This book has also been serialized, chapter-by-chapter in QB Cult Magazine. Ethan Winer
PC Magazine's BASIC Techniques and Utilities - PDF Version A PDF version of Ethan Winer's incredible book. Good for printing, but this does not come with the source code of the other archive. Ethan Winer
Chapter 1 An Introduction To Compiled BASIC. (QB Cult Magazine #5) Ethan Winer
Chapter 2 Variables and Constant Data. (QB Cult Magazine #6) Ethan Winer
Chapter 3 Programming Methods. (QB Cult Magazine #7) Ethan Winer
Chapter 4 Debugging Strategies. (QB Cult Magazine #8) Ethan Winer
Chapter 5 Compiling and Linking. (QB Cult Magazine #9) Ethan Winer
Chapter 6 File And Device Handling. (QB Cult Magazine #10) Ethan Winer
Chapter 7 Network and Database Programming. (QB Cult Magazine #11) Ethan Winer
Chapter 8 Sorting and Searching (QB Cult Magazine #12) Ethan Winer
Chapter 9 Program Optimization. (QB Cult Magazine #13) Ethan Winer
Chapter 10 Key Memory Areas in the PC. (QB Cult Magazine #14) Ethan Winer
Chapter 11 Accessing DOS and BIOS Services. (QB Cult Magazine #15) Ethan Winer
Chapter 12 Assembly Language Programming. (QB Cult Magazine #16) Ethan Winer
Chapter 12B Assembly Language Programming (continued). (QB Cult Magazine #17) Ethan Winer

Homayoon P.A.'s "Writing Organized QB Code" Tutorials
Writing Understandable Code Formatting your code so that it's to understand and easy to debug. Has good tips like commenting, naming your variables with meaningful names and indenting your code. Homayoon P.A.
Coding Techniques A short theory article explaining different ways to organize a program. Modular Programming and Procedural Programming are discussed, though this does not contain any actual code. Homayoon P.A.
A Modular Programming Way in QB A quick summary of subs, functions, and sharing variables between your modules. Homayoon P.A.

Danny Gump's Optimization Series
Optimize 1 Mathematical calculations and such in QB. You should know a little before reading this one. Danny Gump
Optimize 2 Using POKE and PEEK for graphics. Good examples, also discusses INTEGERS. Danny Gump
Optimize 3 Palette tutorial. Discusses PALETTE USING, and making palettes with OUT. Danny Gump
Optimize 4 Debabelizing (converting True-color to 8-bit color) by combining like colors and customizing your palette. Danny Gump
Optimize 5 Basics of sprites, and plotting of sprites. Danny Gump
Optimize 6 Double Buffering, part I and how it can improve your GET and PUT. Danny Gump
Optimize 7 Explains BLOAD and BSAVE, as well as dealing with memory offsets. Danny Gump
Misc. Graphics Techniques Danny Gump's QB graphics manifesto, which explains how to speed up and improve many different graphics techniques. You'll learn POKE and PEEK, Double Buffering (part II), faster ways to save and load a palette and more. Danny Gump

Submitted Miscellaneous Tutorials
Subs.txt Useful Subs. The title says it all!!! MEH!!! (I have always wanted to do that, lol) (Submitted by Nathan1993 on September 3, 2004) Nathan1993
Basic to Advance Keyboard Programming.txt Basic-Advance Keyboard Programming. This teaches basic keyboard(A-Z / 1-0) to advance( etc.) (Submitted by Kevin on December 22, 2004) x.t.r.GRAPHICS
MacQBKB.chm Microsoft QuickBasics Knowledge Base for Apple Macintosh.. Program in format CHM. 484 articles. Prepared and compiled by Macric. 771 kbs. (Submitted by Macric on May 20, 2006) Microsoft

Copyright Pete's QBASIC / QuickBasic Site, 1998-2013.
All rights reserved. Site owned and operated by Pete Berg. Programs and submitted content are property of their creators, and appear on this site by direct or implied permission. Pete's QBasic Site is powered by Coranto. This site was created entirely in Notepad.