File: b3msbas.bi
< Prev TOC Next >
'
' b3msbas.bi
' 1-Jan-1999
' Bullet 3 Basic main include for ms basic7/vbdos
' Copyright (C)1999 Cornel Huth http://40th.com/
'
' - this includes the files b3msbdef.bi and b3msbtyp.bi
' -------------------------------------------------------------------------------------------
' - all pointers are 32-bit (seg:off for RM, sel:off for 16-bit PM)
' -------------------------------------------------------------------------------------------
' - strings are passed by 32-bit pointer so varlen$ must be converted to fixed-length strings
' for Basic and VARPTR/VARSEG used on those fixed-length strings to pass these addresses as
' a long, and by-value
' - - - - - - - - - -
' NOTE: The above note also includes TYPE xyz AS STRING * n; you cannot use a typevar.strg
' if .strg is any string type (including fixed-length) since the compiler (bc.exe)
' converts this to var-length string and then passes the SEG address of the descriptor,
' which is not the correct pointer needed by Bullet
'
' Protos below generally use "BYVAL someBufferPtr AS LONG" to describe pointer arguments
' when the pointer is to an unknown type. Protos use "SEG var&" or "SEG rec AS xxx"
' when dealing with pointers to known types (or known to be a TYPE, such as recordPtr).
' In all cases, the pointer is to point to the actual data and not a basic descriptor
' (see your compiler manual for the definition of a descriptor, and how BASIC uses them).
'
' Here is one way to calculate the 32-bit pointer of a non-(fixed-len)string:
'
' passFarPtr& = (VARSEG(someVar) * 65536) + (VARPTR(someVar))
'
' If "someVar" is not a static variable it's possible BASIC will move it the next
' time a basic statement or function is called, so recalulate passFarPtr after calling
' any basic statement/function and before using it again to pass to Bullet
'
' See the .bas examples for more tips
'
' - the /Ot compiler switch (quick call) should not be used for modules that include callback functions
' - ss==ds==DGROUP assumed in b3dos16.lib and b3os216.lib version and required for Basic callbacks
DEFINT A-Z 'recommended
' Note: In b3msbtyp.bi, the maximum DBF fields has been set to 32 and the node size to 512.
' These can be changed to other valid values, but in Basic they must be hard-coded at compile-time.
REM $INCLUDE: 'b3msbdef.bi'
REM $INCLUDE: 'b3msbtyp.bi'
DECLARE FUNCTION BltBasicSetOnExit%(nada%)
DECLARE FUNCTION BltBasicGetAddrForCallBackData% (SEG cbDataPtr&)
DECLARE FUNCTION BltBasicGetAddrForCallBackIx4% (SEG cbIx4Ptr&)
DECLARE FUNCTION BltBasicGetAddrForUserSortCmp% (SEG uscPtr&)
DECLARE FUNCTION BltBasicGetAddrForCryptoData% (SEG cryptoDataPtr&)
DECLARE FUNCTION BltBasicGetAddrForCryptoIx4% (SEG cryptoIx4Ptr&)
DECLARE FUNCTION BltBasicGetAddrForBuildKey% (SEG buildKeyPtr&)
DECLARE FUNCTION BltBasicGetAddrForParseExp% (SEG parseExpPtr&)
DECLARE FUNCTION BltDataInfoFile% CDECL (BYVAL filenamePtr AS LONG, BYVAL asMode&, SEG dbfInfoPtr AS BLTDBFINFO, SEG noFieldsPtr&, BYVAL zero&)
DECLARE FUNCTION BltDataCreateFile% CDECL (BYVAL fileID&, BYVAL fields&, SEG fieldListPtr AS BLTFD, BYVAL filenamePtr AS LONG, BYVAL maMode&, BYVAL zero&)
DECLARE FUNCTION BltDataOpenFile% CDECL (SEG dhPtr AS BLTDH, BYVAL mode&)
DECLARE FUNCTION BltDataCloseFile% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataFlushHeader% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataCopyHeader% CDECL (SEG dhPtr AS BLTDH, BYVAL filenamePtr AS LONG)
DECLARE FUNCTION BltDataReadHeader% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataZapHeader% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataAddRecord% CDECL (SEG dhPtr AS BLTDH, SEG recordPtr AS ANY, SEG recNoPtr&)
DECLARE FUNCTION BltDataDebumpRecord% CDECL (SEG dhPtr AS BLTDH, BYVAL recNo&)
DECLARE FUNCTION BltDataMarkRecord% CDECL (SEG dhPtr AS BLTDH, BYVAL recNo&, BYVAL tagChar&)
DECLARE FUNCTION BltDataUpdateRecord% CDECL (SEG dhPtr AS BLTDH, BYVAL recNo&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltDataGetRecord% CDECL (SEG dhPtr AS BLTDH, BYVAL recNo&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltDataSort% CDECL (BYVAL indexnamePtr&, BYVAL filenamePtr AS LONG, BYVAL newFilenamePtr AS LONG, BYVAL cbPtr&, BYVAL zero&)
DECLARE FUNCTION BltDataPack% CDECL (BYVAL filenamePtr AS LONG, BYVAL newFilenamePtr AS LONG, BYVAL cbPtr&, BYVAL zero&)
DECLARE FUNCTION BltMemoCreateFile% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoCloseFile% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoOpenFile% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoFlushHeader% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoReadHeader% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoAdd% CDECL (SEG dhPtr AS BLTDH, BYVAL bytesToSize&, BYVAL bytesToWrite&, BYVAL bufferPtr AS LONG, SEG memoNoPtr&, BYVAL rsvFlag&)
DECLARE FUNCTION BltMemoDelete% CDECL (SEG dhPtr AS BLTDH, BYVAL memoNo&)
DECLARE FUNCTION BltMemoGet% CDECL (SEG dhPtr AS BLTDH, BYVAL memoNo&, BYVAL startOffset&, SEG bytesToReadPtr&, BYVAL bufferPtr AS LONG)
DECLARE FUNCTION BltMemoGetSize% CDECL (SEG dhPtr AS BLTDH, BYVAL memoNo&, SEG availLinkPtr&, SEG memoSizePtr&)
DECLARE FUNCTION BltMemoUpdate% CDECL (SEG dhPtr AS BLTDH, SEG memoNoPtr&, BYVAL startOffset&, BYVAL bytesToWrite&, BYVAL bufferPtr AS LONG)
DECLARE FUNCTION BltIx4InfoFile% CDECL (BYVAL filenamePtr AS LONG, BYVAL asMode&, SEG ix4InfoPtr AS BLTIX4INFO, BYVAL zero&)
DECLARE FUNCTION BltIx4CreateFile% CDECL (BYVAL nodeSz&, BYVAL sortCC&, BYVAL cp&, BYVAL cc&, BYVAL stPtr AS LONG, BYVAL kxPtr as LONG, SEG dhPtr AS BLTDH, BYVAL filenamePtr AS LONG, BYVAL zero&, BYVAL maMode&, BYVAL zero2&)
DECLARE FUNCTION BltIx4OpenFile% CDECL (SEG khPtr AS BLTKH, BYVAL mode&)
DECLARE FUNCTION BltIx4CloseFile% CDECL (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4FlushHeader% CDECL (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4CopyHeader% CDECL (SEG khPtr AS BLTKH, BYVAL filenamePtr AS LONG)
DECLARE FUNCTION BltIx4ReadHeader% CDECL (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4ZapHeader% CDECL (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4KeyForRecord% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4DeleteKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&)
DECLARE FUNCTION BltIx4StoreKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&)
DECLARE FUNCTION BltIx4EqualKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4EqualOrGreaterKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4EqualOrLesserKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4FirstKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4LastKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4NextKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4PrevKey% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltLockEx% CDECL (SEG lockExPtr AS BLTLOCKEX, SEG slotPtr&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockEx% CDECL (SEG lockExPtr AS BLTLOCKEX, SEG slotPtr&)
DECLARE FUNCTION BltLockDataHeader% CDECL (SEG dhPtr AS BLTDH, BYVAL mode&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockDataHeader% CDECL (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltLockDataRecord% CDECL (SEG dhPtr AS BLTDH, BYVAL mode&, BYVAL recNoStart&, BYVAL recCount&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockDataRecord% CDECL (SEG dhPtr AS BLTDH, BYVAL recNoStart&, BYVAL recCount&)
DECLARE FUNCTION BltLockIx4File% CDECL (SEG khPtr AS BLTKH, BYVAL mode&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockIx4File% CDECL (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltGetVar& CDECL (BYVAL index&, SEG rcPtr&) 'AS LONG
DECLARE FUNCTION BltSetVar% CDECL (SEG valPtr&, BYVAL index&)
DECLARE FUNCTION BltIx4Insert% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY, SEG actionPtr&)
DECLARE FUNCTION BltIx4InsertEx% CDECL (SEG iuexPtr AS BLTIUEX, SEG slotPtr&)
DECLARE FUNCTION BltIx4Update% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&, SEG newRecPtr AS ANY, SEG actionPtr&)
DECLARE FUNCTION BltIx4UpdateEx% CDECL (SEG iuexPtr AS BLTIUEX, SEG slotPtr&, BYVAL maMode&)
DECLARE FUNCTION BltIx4GetFirst% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetNext% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetPrev% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetLast% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetEqual% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetEqualOrGreater% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetEqualOrLesser% CDECL (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltFuncIx4Reindex% CDECL (SEG khPtr AS BLTKH, BYVAL workFilePtr AS LONG, BYVAL nodePackPct&, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltFuncIx4SortCmp% CDECL (SEG khPtr AS BLTKH, BYVAL arg1ptr AS LONG, BYVAL arg2ptr AS LONG, BYVAL hvBufferPtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltWriteAtFile% CDECL (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, SEG offsetPtr&, BYVAL zero&)
DECLARE FUNCTION BltReadAtFile% CDECL (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, SEG offsetPtr&, BYVAL zero&)
DECLARE FUNCTION BltCloseFile% CDECL (SEG handlePtr&, BYVAL zero&)
DECLARE FUNCTION BltCreateDir% CDECL (BYVAL dirnamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltCreateFile% CDECL (BYVAL filenamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltDeleteFile% CDECL (BYVAL filenamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltMoveFile% CDECL (BYVAL currNamePtr AS LONG, BYVAL newNamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltLengthFile% CDECL (BYVAL handle&, SEG lengthPtr&, BYVAL zero&)
DECLARE FUNCTION BltOpenFile% CDECL (BYVAL filenamePtr AS LONG, BYVAL mode&, SEG handlePtr&, BYVAL zero&)
DECLARE FUNCTION BltReadFile% CDECL (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltSeekFile% CDECL (BYVAL handle&, BYVAL mode&, SEG posPtr&, BYVAL zero&)
DECLARE FUNCTION BltUpdateDirEntry% CDECL (BYVAL handle&, BYVAL zero&)
DECLARE FUNCTION BltWriteFile% CDECL (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltLockFile% CDECL (BYVAL handle&, BYVAL mode&, SEG lockOffsetPtr&, SEG lockBytesPtr&, BYVAL timeout&, BYVAL zero&)
DECLARE FUNCTION BltIsRemote% CDECL (BYVAL handle&, BYVAL drive&, SEG isRemotePtr&, SEG flagsPtr&, BYVAL zero&)
DECLARE FUNCTION BltMemAlloc& CDECL (BYVAL mode&, BYVAL count&, SEG rcPtr%, BYVAL zero&) 'bmaPtr& = BltMemAlloc(...)
DECLARE FUNCTION BltMemFree% CDECL (BYVAL mode&, SEG bmaPtr&) 'rc = BltMemFree(bmaPtr&)
DECLARE FUNCTION BltSetHandleCount% CDECL (SEG maxHandlesPtr&)
DECLARE FUNCTION BltTestCallBack% CDECL ALIAS "_ll_testCallBack" (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltGetSortSequenceTable% CDECL (BYVAL cpID&, BYVAL ccID&, BYVAL bufferPtr AS LONG, BYVAL charsetFlag&)
DECLARE FUNCTION BltGetCountryInfo% CDECL (SEG cpIDptr&, SEG ccIDptr&, BYVAL charsetFlag&)
DECLARE FUNCTION BltGetExtendedError% CDECL (SEG exRCptr%, SEG xeClassPtr&, SEG xeActionPtr&, SEG xeLocusPtr&)
DECLARE FUNCTION BltGetMemoryAvail& CDECL (BYVAL mode&) 'AS LONG
DECLARE FUNCTION BltGetVersion% CDECL (SEG verDosPtr&)
DECLARE FUNCTION BltUpperCaseO% CDECL (BYVAL strgPtr AS LONG, BYVAL maxSize&, BYVAL zero&)
DECLARE FUNCTION BltCloseMutexSem% CDECL (BYVAL handle&)
DECLARE FUNCTION BltCreateMutexSem% CDECL (BYVAL namePtr AS LONG, SEG handlePtr&, BYVAL attrFlags&, BYVAL stateFlag&)
DECLARE FUNCTION BltRequestMutexSem% CDECL (BYVAL handle&, BYVAL timeout&)
DECLARE FUNCTION BltReleaseMutexSem% CDECL (BYVAL handle&)
DECLARE SUB BltMemSet CDECL (SEG strucPtr AS ANY, BYVAL value&, BYVAL length&) 'fast zero-fill of BLTKH/BLTDH
DECLARE SUB BltMemCpy CDECL (BYVAL destPtr AS LONG, BYVAL srcPtr AS LONG, BYVAL length&)
' end b3msbas.bi
All content Copyright © 1999 Cornel Huth. All rights reserved.