BBS: Inland Empire Archive Date: 11-30-92 (21:22) Number: 381 From: RICH GELDREICH Refer#: NONE To: ALL Recvd: NO Subj: Mod Player asm/2 Conf: (2) Quik_Bas
'<<Part 2 Starts Here>>
Retf 8
ENDP SetBuffers
;=====================================================================
PROC GetCS
Mov ax, cs
Retf 0
ENDP GetCS
;=====================================================================
PROC GetOF
Mov ax, offset NewInt8
Retf 0
ENDP GetOF
;=====================================================================
PROC UnsignedComp
Push bp
Mov bp, sp
Mov ax, [ss:bp+08]
Cmp ax, [ss:bp+06]
Jae @@AboveOrEqual
Xor ax, ax
@@Back: Pop bp
Retf 4
@@AboveOrEqual:
Mov ax, 1
Jmp @@Back
ENDP UnsignedComp
;=====================================================================
END
'<<-Cut Here->>
Finally, here's QBMPASM.OBJ for those without TASM:
To execute this script, save it to a file and type DEBUG < filename
where "filename" is the name of this script file.
E165"QBMPASM.OBJ" 0
E200".q..92bMh/LMnpa9/BJHcVs5....IJbQWx46/BrQZpaMgJaQU.WJZ7rQdxaPU"
E23D"6X9kY9WH..EdTGEyZl0l7KPk3qQhtGEHpYA6C...ZCHK8...U4W1..EVGdZA."
E27A"E/TFJFMF3/1x2F3N7a5..Gc4U.12UOKm..3w3F/FJE2EIEI3YkMS..6/..2IE"
E2B7".DM70.M.F57pHJ/pWOG..4wj.P/73..E.BA2G3BoG2xYH3N2H/RYJ/.EKE4/."
E2F4".2U0HJ2J0JZF4JYIHxJ..gDYA.../IkF3FpEHhM..k3YA.../IkF3FpH4tM.."
E331"c3YH.../kEJCBJG5tIF2BoHB/ZY/.EA6G...7O.F08f/2..........UwV5Rk"
E36E"l4OY/4MQl3KMF3JI/3IEl2HAV2G6V2F2F2F./2E.l1Dwk1CsU1CsE1BoE1Bk."
E3AB"1Ak.19gk09gk08cU08cU07YE07YE06U.06U.05Qk/5Qk/5MU/4MU/4ME/3IE/"
E3E8"3IE/2E./2E./2Ak.1Ak.1AU.06U.06U./2E./2E./2EE/3IE/3IE./2E./2E."
E425"xnDzwnDzwXDysXDysXDxoHDxoHDxk1Dwk1DwknCvgnCvgnCucXCucXCtYHCtY"
E462"HCsU1CsU1CrQnBrQnBqMXBqMHBpIHBpE1BoE1BnAnAn6XAm6HAl2HAk.1Akwm"
E49F"9jsW9ioG9hk09fgW8eY08bMG7YAW6V.d5EB3iNadXMjPaNes/1BY97ul1/2sy"
E4DC"Na7REgP/.smpa92gUMC6PVp5D1d94P./.wj99u/..smVS6..iYc5..U97ul1/"
E519"2skNad97u/5/gymE81kiMc/2..a9LpWgvV1TgcF6Ae..gcFAAe0/gcF8A8..A"
E556"u1/gcL4Yc5A3k.1D85/wFL8X..AWwmsOE.9LpWgjcF6gXF4Ab/n.QL8H..s4."
E593".fTzvQ42.3X/J/IQ6I3ElnEJ.3b1J/IgDI3El1FJ.3X2J/IQII3ElPFJ.3b4J"
E5D0"/IwPI3ElpFJ.3X5J/IwTI3El2GJ.3z6J/6VW0...o/"
E100 B8 0 3C BA 65 1 33 C9 CD "!rC" BE 0 2 50 BD FB 2 55 BF 88 90
E117 "W3" DB B1 FA 8A F0 80 C1 6 32 E4 AC "<9v" 8 "<Zv" 2 2C 6 2C
E12F 7 2C 2E E3 E8 D3 E0 A C6 AA 2 D8 92 "IIMu" E0 80 FB 0 75 9 5A
E147 59 5B B4 40 CD 21 73 7 B4 9 BA 58 1 CD 21 CD 20 7 "Error!$"
G
Q
That is all. This program is very big, so take your time
putting it together. After posting this program, I re-downloaded
all of the messages and combined them just to make sure they were
uploaded correctly, so they will hopefully make it out to the inner
recesses of the FidoNET intact...
I have spent _many_ months optimizing my MOD playing
algorithms so they would be efficient enough to do in almost all
QB. On my 286/10, I've rated it to use about 95% processor time at
11,000 hertz. This may not sound like much, but the all-assembler
version of this algorithm(which is used in my first demo that we
will be releasing under Renaissance) is extremely efficient - it can
play any MOD up to 65,535 hertz on my 286/10 (and still have about
25% processor time remaining!). This test was done on my Tandy's
DMA DAC, which can play at very high sample rates.
As I said in QBMP15.BAS, I currently have not been able to
test this program in QuickBASIC 4.5, only PDS.
Have fun!
Rich Geldreich
PS. Some of the docs in the QB program wrapped, so be carefull
reconstucted the code.
--- MsgToss 2.0b
* Origin: Computer Co-Op - Voorhees, NJ | Ted Hare (1:266/29)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET