BBS: Inland Empire Archive Date: 02-09-93 (20:00) Number: 332 From: MARK BUTLER Refer#: NONE To: GLEN PANNICKE Recvd: NO Subj: Re: READABLE CODE IN COMP Conf: (2) Quik_Bas
Once upon a time Glen Pannicke uttered these sage words to Matthew Miller:
MM> Do you think you can give me a copy of your "pulldown.bas" program
MM> I am having alot of trouble with it.
GP> You don't want a copy of MY code. ;-) It's got so many bugs
GP> in it! Would you like a copy of the code MHB posted? It's
GP> very good & takes up 1\2 of the mem mine does? His requires
GP> compilation through BC and cannot be run through QB4 because
GP> of some library calls. Lemme know and I'll send it Net.
Thanx for the compliment Glen :-)
Here's a nice little ASM MemCopy that will plug right into the code
with only minor modifications to the declaration and calls for
MemCopy. Compile the ASM code below to memcopy.obj and use it in a
QLB in order to run 'pulldown' in the QB/QBX IDE.
The declaration for MemCopy in the pulldown code should be changed
from...
DECLARE SUB MemCopy ALIAS B$ASSN (BYVAL blah%, etc etc...
to...
DECLARE SUB MemCopy (FromSeg%, FromOfs%, ToSeg%, ToOfs%, Nbytes%)
and...
...any calls to MemCopy throughout the code also will need altering
to reflect the parameter list in the declaration.
==========================8< Cut Here 8<=============================
PAGE 56,132
TITLE MemCopy.ASM - QuickBasic callable memory block copy bin file
;
; MemCopy.ASM - (C)1991 by Brent Ashley
; Copies blocks of memory quickly - to be used for screen saves.
;
; QB/QBX declaration:
;
; DECLARE SUB MemCopy (FromSeg%, FromOfs%, ToSeg%, ToOfs%, Nbytes%)
.MODEL medium, BASIC
.CODE
MemCopy PROC USES si di ds es, FromSeg:PTR WORD, FromOfs:PTR WORD, \
ToSeg:PTR WORD, ToOfs:PTR WORD, \
Nbytes:PTR WORD
; load ds:si with source, es:di with destination
mov bx,FromOfs
mov si,[bx]
mov bx,ToSeg
mov es,[bx]
mov bx,ToOfs
mov di,[bx]
mov bx,Nbytes
mov cx,[bx]
; ds last (used to access data)
mov bx,FromSeg
mov ds,[bx]
; do the copy
cld
rep movsb
ret
MemCopy ENDP
END
==========================8< Cut Here 8<=============================
For those of you who do not have MASM or TASM here is a little debug
script to reconstruct MEMCOPY.OBJ. Just save the following snippet to
a file called MEMCOPY.SCR and enter...
DEBUG < MEMCOPY.SCR
==========================8< Cut Here 8<=============================
n MEMCOPY.OBJ
e100 80 D 0 B 6D 65 6D 63 6F 70 79 2E 61 73 6D FF 96 2C 0 0 C 4D 45 4D
e118 43 4F 50 59 5F 54 45 58 54 5 5F 44 41 54 41 6 44 47 52 4F 55 50 5
e12F 5F 54 45 58 54 4 44 41 54 41 4 43 4F 44 45 39 98 7 0 48 0 0 5 7 1
e148 C 98 7 0 48 0 0 3 6 1 F 98 7 0 48 2B 0 2 7 1 E4 9A 4 0 4 FF 2 5D
e164 90 E 0 0 3 7 4D 45 4D 43 4F 50 59 0 0 0 3E 88 4 0 0 A2 1 D1 A0 2F
e17E 0 3 0 0 55 8B EC 56 57 1E 6 8B 5E C 8B 37 8B 5E A 8E 7 8B 5E 8 8B
e197 3F 8B 5E 6 8B F 8B 5E E 8E 1F FC F3 A4 7 1F 5F 5E 5D CA A 0 C3 8A
e1AF 2 0 0 74
Rcx
B3
W
Q
==========================8< Cut Here 8<=============================
That's all there is to it. :-)
úùþ[-M-H-B-]þùú
--- timEd/B7 * TSR Tagline v1.3 - press <ctrl><alt><del> to activate.
* Origin: Terminal Oasis, Portland OR (1:105/330.5)

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