GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - qb40/all: All of the stuff made with QuickBASIC in DOS.

BranchesTags
Open more actions menu

Latest commit

 

History

10 Commits
10 Commits

Folders and files

NameName
Last commit message
Last commit date
Ball
Ball
 
 
Data
Data
 
 
Game/Stone
Game/Stone
 
 
My softwares
My softwares
 
 
Pic
Pic
 
 
Picture
Picture
 
 
ProgramAndLibraries_1of2
ProgramAndLibraries_1of2
 
 
SOURCE
SOURCE
 
 
UtilitiesAndExamples_2of2
UtilitiesAndExamples_2of2
 
 
hexit157
hexit157
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
11.CFG
11.CFG
 
 
3DLIB.BAS
3DLIB.BAS
 
 
3DPIC.TXT
3DPIC.TXT
 
 
3DPIC1.TXT
3DPIC1.TXT
 
 
3DSTAR.BAS
3DSTAR.BAS
 
 
3DSTAR.MAK
3DSTAR.MAK
 
 
3DSVIEW.SOF
3DSVIEW.SOF
 
 
3DTEST.TST
3DTEST.TST
 
 
3DTEST2.TST
3DTEST2.TST
 
 
3DTEST3.TST
3DTEST3.TST
 
 
3DTEST4.TST
3DTEST4.TST
 
 
3DTEST5.TST
3DTEST5.TST
 
 
3DTEST6.TST
3DTEST6.TST
 
 
3DTEST7.TST
3DTEST7.TST
 
 
3DTEST8.TST
3DTEST8.TST
 
 
3SIMULAT.BAS
3SIMULAT.BAS
 
 
3_D.BI
3_D.BI
 
 
3_D.LIB
3_D.LIB
 
 
3_D.QLB
3_D.QLB
 
 
567.WAV
567.WAV
 
 
9CODE386.BAS
9CODE386.BAS
 
 
9CODE386.RED
9CODE386.RED
 
 
A
A
 
 
A.TXT
A.TXT
 
 
AAAA.DAT
AAAA.DAT
 
 
ABSOLUTE.ASM
ABSOLUTE.ASM
 
 
ABSOLUTE.scp
ABSOLUTE.scp
 
 
ANIMUS.MAK
ANIMUS.MAK
 
 
AS.PRO
AS.PRO
 
 
ASD.WAV
ASD.WAV
 
 
ASM.LLI
ASM.LLI
 
 
ASM.TST
ASM.TST
 
 
ASM.bi
ASM.bi
 
 
ASM1.LLI
ASM1.LLI
 
 
ASM2.TST
ASM2.TST
 
 
ASM3.TST
ASM3.TST
 
 
ASM4.TST
ASM4.TST
 
 
ASMCODE.SOF
ASMCODE.SOF
 
 
ASMCODE1.SOF
ASMCODE1.SOF
 
 
ASMDEBU1.SOF
ASMDEBU1.SOF
 
 
ASMDEBU1.TST
ASMDEBU1.TST
 
 
ASMDEBUG.EXE
ASMDEBUG.EXE
 
 
ASMDEBUG.RDP
ASMDEBUG.RDP
 
 
ASMDEBUG.SOF
ASMDEBUG.SOF
 
 
ASMDEBUG.TST
ASMDEBUG.TST
 
 
ASSEMBL0.TXT
ASSEMBL0.TXT
 
 
ASSEMBL1.RDP
ASSEMBL1.RDP
 
 
ASSEMBLE.TXT
ASSEMBLE.TXT
 
 
ASSEMBLY.RDP
ASSEMBLY.RDP
 
 
BALL.WMP
BALL.WMP
 
 
BALL1.CFG
BALL1.CFG
 
 
BALL1.PIC
BALL1.PIC
 
 
BALL1.WMP
BALL1.WMP
 
 
BALL2.WMP
BALL2.WMP
 
 
BALLGAM3.TXT
BALLGAM3.TXT
 
 
BALLS.WMP
BALLS.WMP
 
 
BC.EXE
BC.EXE
 
 
BCOM40.LIB
BCOM40.LIB
 
 
BINARY.TXT
BINARY.TXT
 
 
BITAMP.TXT
BITAMP.TXT
 
 
BITAMP2.TXT
BITAMP2.TXT
 
 
BITAMP3.TXT
BITAMP3.TXT
 
 
BMP.INI
BMP.INI
 
 
BMPEDIT.RDP
BMPEDIT.RDP
 
 
BMPTOCF1.SOF
BMPTOCF1.SOF
 
 
BMPTOCFG.RDP
BMPTOCFG.RDP
 
 
BMPTOCFG.SOF
BMPTOCFG.SOF
 
 
BMPTOCFS.SOF
BMPTOCFS.SOF
 
 
BQLB40.LIB
BQLB40.LIB
 
 
BRUN40.EXE
BRUN40.EXE
 
 
BRUN40.LIB
BRUN40.LIB
 
 
BUIL.WMP
BUIL.WMP
 
 
Back.bmp
Back.bmp
 
 
Back1.bmp
Back1.bmp
 
 
Buil.BMP
Buil.BMP
 
 
CFGTO3DS.RDP
CFGTO3DS.RDP
 
 
CFGTO3DS.SOF
CFGTO3DS.SOF
 
 
CHARS.FON
CHARS.FON
 
 
CHECK.INI
CHECK.INI
 
 
CHKSUM.TST
CHKSUM.TST
 
 
CHOCO.TXT
CHOCO.TXT
 
 
CHOCO1.TXT
CHOCO1.TXT
 
 
CHOCO2.TXT
CHOCO2.TXT
 
 
CMPINF.TST
CMPINF.TST
 
 
COFFE.BMP
COFFE.BMP
 
 
COSMIC2.BAS
COSMIC2.BAS
 
 
COSM_ADV.PCX
COSM_ADV.PCX
 
 
COUNTER.PCX
COUNTER.PCX
 
 

Repository files navigation

			  "README.DOC" File
	     Release Notes for MICROSOFT(R) QuickBASIC
	     Version 4.0 for IBM(R) Personal Computers
			  and Compatibles

	     (C) Copyright Microsoft Corporation, 1987

THIS FILE CONTAINS IMPORTANT INFORMATION CONCERNING VERSION 4.0	OF
MICROSOFT(R) QuickBASIC. PLEASE	READ THE ENTIRE	FILE BEFORE USING
QuickBASIC.

This file has seven parts:

     PART	CONTENTS


	1	Information about additions and	changes	to the
		Learning and Using Microsoft QuickBASIC	manual.

	2	Information about additions and	changes	to the
		BASIC Language Reference manual

	3	Information about additions and	changes	to the
		Programming in BASIC: Selected Topics manual

	4	Using your Mouse with QuickBASIC

	5	Using QuickBASIC with 3.5-inch floppy disks

	6	Supplementary information on mixed-language programming

	7	Using Btrieve with QuickBASIC

===< Part 1: Changes for Learning and Using Microsoft QuickBASIC >===========

Page	Correction
----	----------
---	Some keyboards have an extra set of DIRECTION (i.e. arrow) keys, in
	addition to those on the numeric keypad. A bug in the ROM BIOS of
	some machines with these keyboards can interfere with the QuickBASIC
	editor.	Disk 3 (disk 2,	if you are using 3.5-inch disks) includes a
	program, FIXSHIFT.COM, that fixes this bug. If you have	such a
	keyboard, run this program by typing FIXSHIFT. If your machine does
	not have the bug, FIXSHIFT displays a message telling you so.
	Otherwise FIXSHIFT prompts you for the appropriate actions. FIXSHIFT
	takes about 450	bytes of memory. Except	for the	BIOS bug, it has no
	effect on other	programs you run.

---	QuickBASIC Version 4.0 supports	Hercules (R) display adapters.
	See the	entry for the SCREEN statement in Part 2, below.

xxii	If you install an IBM (R) Personal System/2 (TM) Video Graphics
	Array display adapter (VGA) in a non-PS/2 machine, the VGA adapter
	should be the only adapter in the system, and you should not use
	mono modes (SCREEN 10) if you have a color monitor. Similarly, you
	should not use color modes (SCREEN 1, 2, 7, 8, 9, 11, 12, 13) if you
	have a monochrome monitor.

11	Suggestions for	using QuickBASIC with a	single-floppy system:

		Disk 1
		======
		QB.EXE
		Your program source file
		(Optional: Operating system files)
		(Optional: QB.QLB)

		Disk 2
		======
		BC.EXE
		LINK.EXE
		LIB.EXE
		BRUN40.EXE
		BRUN40.LIB

		Disk 3
		======
		BCOM40.EXE

	When you make executable files and Quick libraries from	within the
	environment, you have to swap the disks	in and out of your disk
	drive to make the proper programs and libraries	available. When
	specific files cannot be found on the currently	inserted disk,
	you will see the prompt "Cannot find file <filename>." Before you
	switch disks, type B: and press	ENTER. (You can	do this	because,
	even though you	do not have a physical drive B,	DOS recognizes a
	logical	drive B.) Insert the appropriate disk when prompted. Note
	that when the linker prompts for a path, you must also include the
	name of	the file for which it is searching.

12	See Part 4 of this file	for additional information on installing
	and using your Mouse with QuickBASIC.

--	There is a new option to LINK.EXE

	Option:	 /NOE[XTDICTIONARY]

	If the linker suspects that a public symbol has	been redefined,	it
	prompts	you to link again with the /NOE	option.	When you do so,	it
	searches the individual	object files, rather than "dictionaries" it
	has created, to	resolve	conflicts. For example,	when linking a
	program	with NOEM.OBJ or NOCOM.OBJ, you	must use the /NOE option.

--	NOEM.OBJ is a supplied object file. It allows stand-alone executable
	files compiled with the	/O option to be	substantially smaller when
	run on machines	equipped with a	math coprocessor (8087 or 80287).
	Note that programs linked with NOEM.OBJ	do not run on machines that
	do not have a math coprocessor.	If all your stand-alone	executable
	files are always run on	machines with coprocessors, you	can use	the
	following method to change the library that contains floating-point
	emulation routines (BCOM40.LIB)	to produce smaller executable files:

		LIB BCOM40.LIB -QB4EM.OBJ+NOEM.OBJ;

	This command replaces the emulator math	support	in the stand-alone
	run-time library with support specific to the coprocessor.

	Alternatively, you can explicitly link NOEM.OBJ	from the command
	line on	a case-by-case basis.  For example, to create PROG.EXE
	using NOEM.OBJ,	compile	PROG.BAS with the /O option (either from
	within QuickBASIC or from the command line), then link as follows:

		LINK PROG.OBJ+NOEM.OBJ/NOE;

245	PTR86 is no longer supported. Use VARSEG and VARPTR instead.
	Also, when used	with a communications device LOF now returns the
	amount of space	remaining (in bytes) in	the output buffer. In
	previous versions this was returned in the input buffer. Also, note
	that a variable	and SUB	procedure could	have the same name in previous
	versions. In Version 4.0, this causes a "duplicate definition" error.

===< Part 2: Changes for BASIC Language	Reference >==========================

Page	Correction
----	----------
18	The program FLPT.BAS, as printed in the	manual,	produces a run-time
	error. The program has been corrected in the on-disk version.
	See the	\SOURCE	directory on disk 3 (or	disk 2 if you are using
	3.5 inch disks).

84	The description	of CALL	ABSOLUTE says the file ABSOLUTE.OBJ must be
	linked with the	program. This file is no longer	supplied. Link with
	QB.LIB instead.

122	String concatenation is	not permitted in a CONST statement.

373	The SCREEN statement now includes mode 3 for Hercules display
	adapters. The following	is a brief summary of screen mode 3.
	See your Hercules documentation	for details.

		- QuickBASIC supports Hercules Graphics	Card, Graphics
		  Card Plus, InColor Card, and 100% compatibles

		- You must use a monochrome monitor

		- Hercules text	mode is	SCREEN 0; Hercules Graphics mode
		  is SCREEN 3.

		- You must load	the Hercules driver (QBHERC.COM) before	running
		  your program.	If the driver is not loaded, SCREEN 3 statement
		  gives	an "Illegal function call" error message. Type QBHERC
		  to load the driver.

		- Text dimensions are 80x25 (9x14 character box); bottom
		  2 scan lines of 25th row are not visible.

		- Resolution is	720x348	pixels,	monochrome.

		- Number of screen pages supported is 2.

		- The PALETTE statement	is not supported.

		- In order to use the Mouse, you must follow special
		  instructions for Hercules cards in the Microsoft Mouse
		  Programmer's Reference Guide. (This must be ordered
		  separately; it is not	supplied with either the QuickBASIC
		  or the Mouse package.)

477		- The "Advanced feature unavailable" error message may occur
		  if you are using DOS Version 2.1 when	trying to use a	fea-
		  ture supported only in later versions	(i.e. file locking).

484		- The "Duplicate definition" error message also	occurs if you
		  have a SUB or	FUNCTION procedure with	the same name as a
		  variable. In previous	versions, this did not cause an	error.

513		- Message 2024 ("Name : symbol multiply defined, use /NOE")
		  should be numbered 2044

--------< New or Revised Error Messages	>--------------------------------

Error Number	Explanation
------------	-----------

L1003		New message: "/QUICKLIB, /EXEPACK incompatible"
		You specified both options, /QUICKLIB and /EXEPACK, but
		these two options cannot be used together.

L2024		Message	should read: "<name> : symbol already defined"
		Explanation: The linker	has found a public-symbol
		redefinition. Remove extra definition(s).

L2043		Message	should read: "Quick library support module missing"
		You did	not specify, or	LINK could not find, the object
		module or library required for creating	a Quick	library.
		In the case of QuickBASIC, the library provided	is BQLB40.LIB

L4003		This message should be deleted from documentation.

U4157		LIB warning message: "Insufficient memory, extended
		dictionary not created."

U4158		LIB warning message: "Internal error, extended dictionary
		not created."
		Both of	these LIB warnings just	indicate that LIB was unable
		to create the extended dictionary. The library is still
		valid, but the linker cannot take advantage of extended
		dictionaries to	link faster.

===< Part 3: Changes for Programming in	BASIC: Selected	Topics >============

141		In the "Information Returned" column for the LOC function, the
		description should read: "The amount of space remaining (in
		bytes) in the output buffer". (Note that this is a change from
		the behavior of	LOF in previous	versions of QuickBASIC).

===< Part 4: Using your	Mouse with QuickBASIC >=============================

--------< New Mouse Driver for Use with	QuickBASIC >------------------------

	QuickBASIC Version 4.0 can be used with	any mouse that is 100%
	compatible with	the Microsoft Mouse. However, you must use a
	Microsoft Mouse	driver Version 6.00 or later. Earlier versions may
	cause unpredictable behavior when used with QuickBASIC.	MOUSE.COM,
	Version	6.11 is	supplied with QuickBASIC Version 4.0.

	Especially if you are writing programs that use	the mouse, you
	should use the supplied	version	of the mouse driver when working in
	QuickBASIC. Previous versions have included MOUSE.SYS, which is
	installed by including the line	DEVICE=MOUSE.SYS in your CONFIG.SYS
	file. This version of QuickBASIC includes MOUSE.COM, which is not
	installed via CONFIG.SYS. To install MOUSE.COM,	just type MOUSE	at
	the DOS	prompt.	To include MOUSE.COM automatically when	your machine
	boots, make sure MOUSE.COM is in your search path, then	put the	line

		MOUSE

	in your	AUTOEXEC.BAT file. To free up memory, you can remove the
	mouse driver at	any time by typing MOUSE OFF at	the DOS	prompt.
	This will restore between 9K and 10.5K of memory with Version 6.11.

--------< Using	Mouse Function Calls from QuickBASIC Programs >------------

	If you are programming for the Microsoft Mouse,	you should obtain
	the Microsoft Mouse Programmer's Reference Guide and the library
	MOUSE.LIB that comes with it. (These are not included in QuickBASIC
	or Mouse package and must be ordered separately). Most of the
	information in the Mouse programmer's reference guide applies
	directly to QuickBASIC Version 4. However, the following additional
	restrictions must be observed:

	Certain	Mouse function calls (Functions	9 & 16)	require	you to set
	up an integer array and	pass the address of the	array to the mouse
	driver.	For previous versions, the only	restriction on this array
	was that it had	to be $STATIC (the default array type).	In QuickBASIC
	Version	4.0, however, the array	also must be in	a COMMON block if you
	will be	making the Mouse function call from within the QuickBASIC
	environment.  In addition, it is recommended that the support code
	for the	Mouse call be in a Quick library or linked into	the
	executable file	when making Mouse function calls from QuickBASIC.

	To produce a Quick library for using Mouse function calls from
	within the QuickBASIC environment, use the following command line
	(produces MOUSE.QLB):

		LINK MOUSE.LIB/QU,MOUSE.QLB,,BQLB40.LIB/NOE;

	An example from	PIANO.BAS (included with the Microsoft Mouse
	Programmer's Reference) for using Mouse function call 9:
		DEFINT A-Z
		DECLARE	SUB MOUSE (M1, M2, M3, M4)
		DIM Cursor(15, 1)
		COMMON Cursor()		 ' ensures array data is in DGROUP
		.
		.  (set	up Cursor() for	mouse cursor shape desired)
		.
		M1 = 9:	M2 = 6:	M3 = 0
		CALL MOUSE(M1, M2, M3, VARPTR(Cursor(0,	0)))

	In addition to the above, note that Mouse function calls 21-23
	require	dynamically allocated storage out of the home data segment.
	The recommended	way to do this is to allocate space in a dynamic
	string variable	based on the return value from function	call 21,
	using the STRING$ or SPACE$ function, and using	VARPTR on this
	string variable	just prior to calling Mouse function call 22 or	23.

===< Part 5: Using QuickBASIC with 3.5-inch Floppy Disks >=============

    If you have	two 3.5-inch floppy-disk drives

	Copy the files from the	distribution disks to three other disks,
	as follows:

		Disk 1:	All files from distribution disk 1, plus all BRUN40
		and BQLB files appearing on distribution disk 2

		Disk 2:	BCOM40.LIB, BC.EXE, LINK.EXE, LIB.EXE

		Disk 3:	BASIC source files, Quick libraries, and QB.QLB

	Most of	the time you can just use disks	1 and 3, with disk 1 in
	drive A	and disk 3 in drive B. When you	make a Quick library or
	an executable file to run from DOS, you	will see the prompt:

		Cannot find file <filename>

	Insert disk 2 in drive A and press ENTER. If the program requires
	a Quick	library, make sure both	the Quick library and the corresond-
	ing stand-alone	(.LIB) library are on the disk in drive	B.

    If you have	only a single 3.5-inch floppy disk drive

	Prepare	disks 1, 2, and	3 as with a 2-drive system. However, when
	you see	the prompt "Cannot find file <filename>", type B: and press
	ENTER before inserting the proper disk.	(You can do this because,
	even though you	do not have a physical drive B,	DOS recognizes a
	logical	drive B.) Insert the appropriate disk when prompted. Note
	that when the linker prompts for a path, you must also include the
	name of	the file for which it is searching.

===< Part 6: Supplementary Information on Mixed-Language Programming >======

--------< Linking from within QuickC or	with QCL >--------------------------

	Microsoft QuickC and the QCL command both set the /NOI linker
	by default. Therefore, you should not link from	within QuickC, or
	with QCL, when your program contains modules written in	a case-
	insensitive language such as BASIC. Use	LINK to	link your program
	from the command line.

--------< Pascal and Fortran Modules in	QuickBASIC Programs >---------------

	Modules	compiled with Microsoft	Pascal or Fortran can be linked	with
	BASIC programs,	as described in	the Microsoft Mixed-Language
	Programming Guide. They	can also be incorporated in Quick libraries.
	However, QuickBASIC programs containing	code compiled with Microsoft
	Pascal must allocate at	least 2K near-heap space for Pascal. This can
	be done	by using the DIM statement to allocate a static	array of 2K or
	greater	in the NMALLOC named common block, for example,	as follows:

		DIM name%(2048)
		COMMON SHARED /NMALLOC/	name%()

	The Pascal runtime assumes it always has at least 2K of	near-heap
	space available. If the	Pascal code cannot allocate the	required
	space, QuickBASIC may crash. This applies to Pascal code in Quick
	libraries as well as Pascal code linked	into executable	files. The
	situation is similar for Fortran I/O, which also requires near
	buffer space, and which	can be provided	by the same means as the
	Pascal near malloc space.

--------< STATIC Array Allocation >---------------------------------------

	If you are writing assembly-language modules for use in	QuickBASIC
	programs, see Section 2.3.3, "Variable Storage Allocation," in the
	BASIC Language Reference. Assembly-language code should	not assume
	data is	in a particular	segment. To avoid problems, pass data using
	the SEG	or CALLS keywords, or use FAR pointers.	Alternatively, you
	can declare all	arrays dynamic (still using far	pointers) since
	dynamic	arrays are handled identically by BC and within	QuickBASIC.

--------< Quick	Libraries with Leading Zeros in	the First Code Segment >--

	A Quick	library	containing leading zeros in the	first CODE segment
	is invalid, causing the	message "Error in loading file <name> -
	Invalid	format" when you try to load it in QuickBASIC. For example,
	this can occur if an assembly-language routine puts data that is
	initialized to zero in the first CODE segment, and it is subsequently
	listed first on	the LINK command line when you make a Quick library.
	If you have this problem, do either of the following:
	(1) link with a	BASIC module first on the LINK command line, or
	(2) make sure that, in whatever	module comes first on the LINK
	command	line, the first	code segment starts with a non-zero byte.

===< Part 7: Using Btrieve with	QuickBASIC >=========================

	If you use Btrieve with	QuickBASIC, you	must make a small change to
	your programs for QuickBASIC Version 4.0. Currently your programs
	contain	a statement that obtains the address of	the field buffer for
	an open	file. For example:

	OPEN "NUL" AS #1
	FIELD #1, 20 AS	CITY$, 10 AS STATE$
	FCB.ADDR% = VARPTR(#1)		        'This statement obtains
						 the address

	In QuickBASIC Version 4.0, you should change the indicated statement
	to return the address of the first variable in your field buffer
	minus a	constant, as follows:

	OPEN "NUL" AS #1
	FIELD #1, 20 AS	CITY$, 10 AS STATE$
	FCB.ADDR% = SADD(CITY$)	- 188	        'CITY$ is the first field
						 buffer	variable

	Your programs should function correctly	with Btrieve with this change.

About

All of the stuff made with QuickBASIC in DOS.

qb40.github.io/all/

Topics

40allbasicdosmademsdosqbquickquickbasicstuff

Resources

Readme
Activity
Custom properties

Stars

6 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.