6

I retrieved some 30 year old basic files from old floppy disks.

Now I am trying to run some games I made back then. Some of them are actually dependent on this file called MOUSSUBS.BAS. That file seems to be again dependent on MIXED.QLB and MOUSE.ASM?

I am running this in DOSBOX.

Does anyone accidently have these files or know some other way to get this working?

MOOUSSUBS.BAS

1
  • 2
    Retrocomputing Stack Exchange is a question and answer site for vintage-computer hobbyists interested in restoring, preserving, and using the classic computer and gaming systems of yesteryear. Thanks for the downvote! very constructive
    – Dirk Boer
    Nov 9, 2023 at 1:42

1 Answer 1

7

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
4
  • 2
    Oh my! 💖 It actually works!! Thanks a lot, this means a lot for me! I actually found some really old games that I completely forgot about
    – Dirk Boer
    Nov 9, 2023 at 13:39
  • I have a couple of websites. Can I help somewhere host alternatives for these files so it might help some other people in the future or will it be pretty stable host?
    – Dirk Boer
    Nov 9, 2023 at 13:40
  • 1
    You're welcome! I expect that host site will probably purge the files within 20 days. You should mirror the archive if you think you'll need it again, or you can download 'Microsoft Programmer’s Library 1.3' yourself (search the title) if you need the other QB files and documentation it has.
    – knol
    Nov 9, 2023 at 16:20
  • For anyone finding this and the old link is gone, here should be a mirror that I should exist for a very long time: storage.cdn.poules.com/various/…
    – Dirk Boer
    Nov 14, 2023 at 16:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .