I don't mind answering questions from newbies. I even like it. Mostly because I admire teachers. Both of my parents taught, and I think it is much easier to learn if you can ask questions and get answers. So, I answer what I can, in the areas I know about.
That first computer was going to be a tool to help me write a novel. The novel never was finished, but I bought a copy of QuickBASIC 4.5 and got interested in programming. My first program of any size or complexity was CLAUDE, a conversational program that was a clone of an earlier program called RACTER. Some people might call CLAUDE an artificial intelligence program. After they use it a while, they realize it is an artificial stupidity program.
CLAUDE still lives. I still get postcards and letters from people who are amused by it. There are links below for getting both the program and the source code. The CLAUDE executable lives in an AI repository, in the directory for "Classics". I am deeply humbled.
The biggest change in my BASIC programming came when I began to incorporate assembly language in my programs. In this, I followed the lead and the advice of two very influential programmers, Ethan Winer and Tom Hanlin. I credit them with teaching me how to make assembly language work for me. If anyone were to see a resemblance between my coding style and Ethan Winer's, I would count it a high compliment.
I studied all the assembly language code I could find when I was first learning. There wasn't a lot of code that was easy to get my hands on. You'll find that most of the code I've made available for download here is assembly language source code. I'm hoping that some of the programmers who download it also read it and use it as a springboard to learn assembly language, until they write better code than me. Ideally, they would share some of it with others.
Another major piece of software that I released to the public was a shareware library for PowerBasic v3.0b or higher, called MAXLIB. MAXLIB was written in 8086 assembly language and designed to let PB/DOS programmers access either EMS or XMS in the most painless possible way. I still think it was a great piece of software, and it attracted a steady trickle of registrations for several years. It had users in 14 countries on three continents by the time I finally withdrew it from the market in 1997.
Out of respect for the many fine folks who paid good money for MAXLIB, I do not plan to release MAXLIB to the public domain. But, I have decided to release the source code to one part of it - the module that lets you create EMS arrays. There is a link below for getting this EMSARRAY code, along with documentation.
Although you can't register MAXLIB anymore, you can still download the evaluation version and use it for your personal use (if you don't mind getting a short nag message at the end of your program). It, too, can be downloaded below. It doesn't come with source code. But you can use it to put data into XMS arrays.
One outgrowth of my programming was that I eventually combined my interest in writing with my interest in programming and became a technical writer for a living. Since I started tech writing I do not code as much as I used to. I have no large projects in the works. My life has grown far more hectic. Computing marches on. And I find that my programming knowledge has not kept pace, as it once did.
Lucky for me, there is still a community of DOS BASIC programmers with whom I can share my knowledge, and my source code.
PBFormat executable and documentation: a source code formatter for PowerBasic code. Could be adjusted for use with QB45, QBasic, or FirstBasic source code.
Libraries and source code for PowerBasic v3.0c and above:
MAXLIB library and documentation: a library of EMS/XMS access routines (no source code, and personal use only).
EMSArray source code and documentation: a subset of MAXLIB. Create and manage arrays in EMS.
PBFiles source code and documentation: a library of assembly language file access routines, with critical error trapping.
PBInline source code and documentation: a set of routines for PB's inline assembler.
Source code for QuickBASIC v4.5:
CLAUDE source code: See how CLAUDE is put together. QB45 code included.
QBFiles source code and documentation: a library of assembly language file access routines, with critical error trapping.
QBExtend source code and documentation: a library of 41 assembly language routines for QuickBASIC 4.5.