Frequently Asked Questions

Ask us a Question about ABC:


Q: What's the difference between QBasic and QuickBASIC (referred to QB)?
A: QBasic is freeware, it is bundled with every distribution of DOS/Windows since v5.0 of DOS (I believe). If you have Windows 95/98, do a search for QBASIC.EXE on your CD, and you'll find it. QuickBASIC, however, is not freeware, and its copyright HAS NOT run out (like some might think). I guess people will believe anything, but anyway, QuickBASIC (or QB), is a commercial compiler. Unlike QBasic, QB can compile your code into executables. MS no longer sells QB... in fact, does MS sell any DOS products anymore?
Q: What's the difference between QuickBASIC and PDS?
A: PDS (Professional Development System aka BASIC 7.1), offers several more features than what QuickBASIC 4.5 offers.
REDIM PRESERVE
    Unlike QB's REDIM, using PRESERVE will preserve the data while reallocating the memory space.
ISAM
    ISAM is IBM's "Indexed Sequential Access Method" for handling files. Kind of like a database.
Better IDE
    Not a whole lot better, but you can utilize XMS/EMS so that you can use that extra memory for your programs (IDE only).
There's a few more tidbits, but those are the ones I'm familiar with.
Q: How can I compile my programs?
A: When you ask this question, I'm assuming you're using QBasic, which is an interpreter. Compilers will generate .EXEs and/or object/library files. Unfortunately, finding FREE BASIC compilers is tough, let alone good ones. The only compiler that will compile your QBasic code without modification is QuickBASIC or PDS. PowerBASIC comes close, but you may experience conflicting variable names since PB supports a wider range than what QBasic supports. Check out the compilers section and try some out for yourself.
Q: What is Postit! and how to use it?
A: Postit! is a binary script encoder like UUE, or Mime. It IS NOT something you use to compress programs. To transfer binary files over the FidoNet QUIK_BAS echo, one must strip certain characters using some algorithm of encoding/decoding. A few programmers worked together to create Postit! for that purpose. What's great about Postit! is that to decode the file, you just run it under QBasic. You DO NOT need to have Postit! on your system. After you run the Postit! code under QBasic, you will see a new (usually .ZIP) file in the directory. How do you know the name? Look at the Postit! code to find out what file it created.
Don't have QBasic? Download DEPOST a command-line program. Run it from your MS-DOS Prompt.
Example Postit! code:
DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2
SUB V1:OPEN "O",1,"MINES.ZIP",4^6:Z&=3774:?STRING$(50,177);
:

As you can see, the file created when you run the Postit! code is MINES.ZIP If you download the ABC Readers and ABC Packets instead, this extra process can be skipped.
Q: When are the ABC packets released?
A: On the first day of every other month, but I usually release them a day or two before, so maybe that confuses people... Jan. 1, Mar. 1, May 1, July 1, etc... I'm really getting tired of this question, but I won't release the ABC Packets on a monthly basis, contrary to popular belief, it was never my intention. If anything, a quarterly distribution would be more appropriate (saves me time, and less files to download/upload). If you plan to contribute, I suggest you send in your source codes at least a few days before the release date, else I can't guarantee that your code will make it for that month.
Q: How to use playlist in ABC XReader?
A: For some reason I left this out of the documentation in v1.8. As of XREAD16D, you can setup MUSIC.LST to play multiple songs. Here's the documentation that I left out:

[Revision 1.6d] Using MUSIC.LST --------------------------------------------------------
Sample MUSIC.LST (include extension on ALL files):
BREATH.GDM
C:\MUSIC\GDMS\CLUTCH.GDM
C:\GAMES\SF2\SONICBOM.GDM
SOUND\LALA.LA
E:\OKAY\ENOUGH\ALREADY.GDM
If MUSIC.LST is not found, the current music being played will be looped. If the music file is not found, the reader will cease to play any music. This also holds if the music file is corrupt/invalid format. There is no limit as to how many files you can place in the MUSIC.LST file. All selections are choosen dynamically, and in top-down order. Once all selections have been played, the list will be looped (starting from top).

The first selection played will be the one provided on command line or specified in the configuration. For example, using the sample MUSIC.LST will not play BREATH.GDM first, but whatever music file is specified on the command line or the configuration file first.

Notes: When I tried loading a 4-channel module, then played a 12+ channel module (a converted .669 file), some of the channels were distorted. However, when I swapped the order of the two, there were no problems. My suggestion is to load the "big" modules first (ones that take up a lot of memory or the most channels).

Q: Will you ever release the reader source codes?
A: I had announced my intentions to post the source codes at the beginning of the year (1999), however, I'm trying to sort out the barrage of files in my C:\QB directory. I can't remember which libraries are needed, etc... When I find the time, but I've been saying that for a while now, I'll post it all. I think the next question is the one reason why people want the source codes.
Q: What's the structure of the .CDE and .UPD file?
A: It can all be summed up in one line:
      COPY /B *.ABC+*.IDX  ABCyymm.CDE
Which means, if you know the size of *.ABC, you can access *.IDX and read the subseqeuent indexes. This is where .UPD comes in to play. I automatically generate the .UPD file which contains the numbers of snippets and the size of each .ABC packet. Just add up all the sizes and you can seek to that position in the .CDE file and read the indexes. The number of snippets per packet will help you in determining how many indexes to read.
Q: Can I write my own ABC reader and distribute it?
A: The answer was always yes, but I never told anyone about the structure of the .CDE and .UPD file, so some people only had a bare bones reader. If you want to write a replacement to my ABC Express Reader, I strongly encourage it. I will no longer update my ABC Readers. I will only post the finished product of your reader on this site, please don't send me your betas or bare bone readers. I've received 2 ABC readers for DOS, which look promising, but the authors have faded in the dark (ie. I don't know what they're doing now), and 1 for Win3.1, but the author's homepage has vanished.
Q: What is the history of BASIC?
A: Oh boy, where to start... we'll go way back to the late 60's, several professors at Dartmouth had a problem: their students "were wasting their time" in learning Fortran. Well, they (the profs) got together and wrote up a programming language called the Beginner's All-purpose Symbolic Instruction Code, or BASIC. BASIC (of course) became hugely popular, perhaps too popular because some gurus were offended that programming should be that easy! One says: "I suck, I've learn Fortran for nothing!" So anyway, when microcomputers were being introduced to hobbyists in the 70's, the computers came with BASIC as the actual operating system; yes, that's right, every single program on the machine had to be written in BASIC! (Wow, they had it good). In fact, the first program that Bill Gates sold was a compiler for BASIC, and the rest is history.
Timeline is very sketchy
  • 1964 - John G. Kemeny and Thomas E. Kurtz invented BASIC
  • 1970-80's - BASIC blossoms, becomes the operating system
  • 1983 - True BASIC by Kemeny and Kurtz is released
  • 1982 - BASICA/GWBASIC released
  • 1987 - QuickBASIC and PDS released
  • 1988 - Stripped down version of QuickBASIC called QBasic is released with the DOS 5.0 operating system.
  • 1992 - VB/DOS released, so called upgrade of QB Anyway, the rest can be deduced, I'm not sure about the exact timeline, but something like that. Let me know if you find something different.

Q: Is BASIC Y2K compliant?
A: Yes, as long as your OS and hardware is Y2K compliant of course!
Q: Is there a decompiler for QB?
A: Reverse engineering is copyright infringement, even if you wanted to decompile your own executables, it wouldn't resemble BASIC code at all. Decompilers are usually just disassemblers, which just translate the hex codes to "readable" assembly code. I have seen a rare post on the newsgroup from someone who claimed to have a decompiler for QB, but I really doubt much can be done with it. I wouldn't rule out decompiling simple BASIC programs, but when you're talking about 1000+ lines of source code, that's where you're out of luck.
Q: Why do you have Postit! codes rather than just .ZIP files?
A: This is mainly due to my ABC Readers, and partly due to laziness because I never did get binary support to my Readers. Also, I never imagined that someone would donate their own webspace so that I could put up all the source codes instead of just the ABC Packets. See, the ABC Readers (but not v1.10) can actually decode the Postit! codes from within the reader, so you never really had to take the extra process of running it under QBasic to extract the .ZIP file. Again, the main reason is because of the ABC Readers, see my new All Code Reader which can support any type files.
Q: Why don't you update your ABC Readers?
A: So many reasons why not to. The design is flawed, I haven't changed the file structure of the *.ABC and *.IDX files at all. That's 5 years old! I didn't feel like doing a complete overhaul of the ABC Packets if I did change the structure, too many people were already using it. All in all, an update would require changes in the file structure, so no, I won't update my ABC Readers. I have, however, started on the All Code Reader, which is MUCH MUCH better. It can internally compress your ASCII files so as to save space, handle longer descriptions than what the ABC Readers offered, handle any type files, allow screen shots, and a few more goodies. Unfortunately it's a Windows based reader, but I think the majority of people have that on their system. I've also partially completed a Linux version, so this All Code Packet concept can be extended to more Operating Systems.
Q: Where can you get QBASIC?
A: If you're running Windows 95/98, it should be on your CD-ROM, just search for QBASIC.EXE and you'll find it. If you're using an older system and don't have QBasic, you can do a web search for it, you'll probably find it without much trouble.
Q: Where can I get QB, PDS, or VBDOS?
A: These three products aren't being sold by Microsoft anymore, so asking them would be a waste of time. You can still find old copies if you're lucky. provantage.com used to sell them, ebay.com is a good site for selling and buying.