BBS: Inland Empire Archive Date: 01-19-93 (14:25) Number: 324 From: CORIDON HENSHAW Refer#: NONE To: ROB MCKEE Recvd: NO Subj: DISK SIZE Conf: (2) Quik_Bas
Hello Rob!
In a msg of <16 Jan 93>, Rob Mckee writes to Keith Watkins:
RM> FUNCTION Int2Long& (TheInt%)
RM> IF TheInt% < 0 THEN Int2Long& = TheInt% + 65536 ELSE Int2Long& =_
RM> TheInt%
RM> END FUNCTION
C'mon! You can do better than that ;)
===Chop===
'H2T 1.0
DEFINT A-Z:OPEN "B",#1,"CVTLONG.OBJ":OPEN "B",#2,"H"
DO:READ I$:IF I$="-1" THEN EXIT DO
PUT #2,,I$:LOOP:I$=" ":SEEK #2,1:DO UNTIL LOC(2)=LOF(2):GET #2,,I$
O$ = CHR$(VAL("&H"+I$)):PUT #1,, O$: LOOP:CLOSE:KILL "H"
DATA 800D000B6376746C6F6E672E61736DFC96260000064447524F55500C4356544C4F4E47
DATA 5F54455854044441544104434F4445055F44415441E5980700481400030501FC980700
DATA 4800000604010E9A040002FF025F900E000001074356544C4F4E470000003D88040000
DATA A201D1A01800010000558BEC57561E068B460633D2071F5E5F5DCA0200C28A02000074
DATA -1
===Chop===
Calling syntax is:
===Chop===
DECLARE FUNCTION CVTLong& (BYVAL SignedInteger%)
'SignedInteger% = QB/PDS INTEGER
'Returns: unsinged integer in form of a LONG
===Chop===
The above code is 100% ASM, and VERY fast.
\ Coridon Henshaw \ ³
\ Sirrus Software \ \ ³ /
\ Sysop, \ ÄÄÄÄ*ÄÄÄÄ
\ TCS Concordia \ / ³ \
\ 34:3416/18 \ ³
...Detour: The roughest distance between two points.
--- GEcho 1.00
* Origin: Politicly INcorrect and damn proud of it (1:250/820)

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