I searched for the filenames and found that MOUSSUBS.BAS
and BITS.BAS
are from Microsoft QuickBASIC Programmer's Toolbox, a 1988 Microsoft Press book by John Clark Craig.
(at least according to https://woodshole.er.usgs.gov/openfile/of2005-1001/htmldocs/software_doc/qbasic/rsa2000.htm )
This following page has a transcription of the book as it would have appeared on the Microsoft Programmer’s Library 1.3 CD-ROM:
https://www.pcjs.org/documents/books/mspl13/basic/qbtools/
According to that, MOUSE.ASM
, MIXED.QLB
and so forth were convenience libraries provided as type-in listings in the Microsoft book. You can find the listings you need in the transcription if you search for the following introductory paragraphs:
moussubs:
MOUSSUBS
The MOUSSUBS toolbox presents a collection of subprograms for accessing
and using your mouse. Your computer must have CGA graphics capability > and
a mouse for this program to be useful. If you have a mouse but are > limited
to monochrome text modes, see the MOUSTCRS.BAS module.
The assembly-language subroutine named MOUSE.ASM must be assembled and
linked with these routines or included in the user library loaded with
QuickBASIC. See the MOUSE.ASM subprogram description in Part III of > this
book for more information on doing this.
mouse.asm:
; **********************************************
; ** MOUSE.ASM Macro Assembler **
; ** **
; ** Assembly subprogram for accessing the **
; ** Microsoft Mouse from QuickBASIC 4.00 **
; ** **
; ** Use: CALL MOUSE (M1%, M2%, M3%, M4%) **
; **********************************************
mixed.qlb:
MIXED.QLB consists of a handful of subprograms and functions
written in assembly language and in Microsoft QuickC. (The
assembly-language and C source listings for MIXED.QLB are in Part III.)
I'll look for the CD-ROM and see if there is an easier to copy listing for the files you need that I can copy here.
The CD-ROM appears to have the contents of the QuickBASIC Toolbox Companion Disks, where MOUSE.ASM
is found.
SAMPCODE\QB\TOOLBOX\DISK1\MOUSE.ASM
(This appears to be an interface wrapper to the standard mouse status interrupt.)
; **********************************************
; ** MOUSE.ASM Macro Assembler **
; ** **
; ** Assembly subprogram for accessing the **
; ** Microsoft Mouse from QuickBASIC 4.00 **
; ** **
; ** Use: CALL MOUSE (M1%, M2%, M3%, M4%) **
; **********************************************
;
; EXAMPLE OF USE: CALL Mouse (m1%, m2%, m3%, m4%)
; PARAMETERS: m1% Passed in AX to the mouse driver
; m2% Passed in BX to the mouse driver
; m3% Passed in CX to the mouse driver
; m4% Passed in DX to the mouse driver
; VARIABLES: (none)
; MODULE LEVEL
; DECLARATIONS: DECLARE SUB Mouse (m1%, m2%, m3%, m4%)
.MODEL MEDIUM
.CODE
public mouse
mouse proc
; Standard entry
push bp
mov bp,sp
; Get M1% and store it on the stack
mov bx,[bp+12]
mov ax,[bx]
push ax
; Get M2% and store it on the stack
mov bx,[bp+10]
mov ax,[bx]
push ax
; Get M3% into CX register
mov bx,[bp+8]
mov cx,[bx]
; Get M4% into DX register
mov bx,[bp+6]
mov dx,[bx]
; Move M2% from stack into BX register
pop bx
; Move M1% from stack into AX register
pop ax
; Set ES to same as DS (for mouse function 9)
push ds
pop es
; Do the mouse interrupt
int 33h
; Save BX (M2%) on stack to free register
push bx
; Return M1% from AX
mov bx,[bp+12]
mov [bx],ax
; Return M2% from stack (was BX)
pop ax
mov bx,[bp+10]
mov [bx],ax
; Return M3% from CX
mov bx,[bp+8]
mov [bx],cx
; Return M4% from DX
mov bx,[bp+6]
mov [bx],dx
; Standard exit, assumes four variables passed
pop bp
ret 8
; End of this procedure
mouse endp
end
MIXED.QLB
is a binary library found in SAMPCODE\QB\TOOLBOX\DISK2\MIXED.QLB
Here's a zip of the QB Toolbox example and library disks from the CD-ROM https://x0.at/vkxx.zip . This zip should have the libraries you need to run your game. Apologies for the file host.
- MD5: 43514317669dec747c4bf5f928fd44d0
- SHA1: 5bb427b1782d3d0f7c47eb4ef66b7268bcb8d96c