home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / bas / asilib11 / asilib.doc next >
Text File  |  1994-10-23  |  21KB  |  357 lines

  1.  
  2.                      ASILIB version 1.1 programmer's toolkit
  3.                     for 80/20 software's ASIC compiler
  4.  
  5.          ASILIB Copyright (C) 1994 Douglas Herr ■ all rights reserved
  6.  
  7.  
  8. WHAT IS ASILIB?
  9.  
  10.     ASILIB is a library of subroutines which greatly extend the capabilities
  11.     of the ASIC compiler.  All ASILIB subroutines were written in Assembly
  12.     language.
  13.  
  14.  
  15. WHY USE ASILIB?
  16.  
  17.     80/20 Software's ASIC compiler is a simple, reliable compiler that
  18.     produces fast, compact compiled programs.  However, ASIC's built-in
  19.     capabilities are quite limited compared with many other programming
  20.     languages.  Fortunately for us, ASIC has provision for linking external
  21.     subroutines to the main code in order to provide additional capabilities.
  22.  
  23.     Do you want to use EMS or XMS memory?  Do you want more graphics modes?
  24.     Do you want fast, reliable file I/O, or want to use more than 3 files
  25.     at a time?  This is where ASILIB comes in.  ASILIB's subroutines provide
  26.     many functions and screen modes which are impossible with ASIC alone, as
  27.     well as many other handy functions.
  28.  
  29.  
  30. DISCLAIMER
  31.  
  32.     Each ASILIB routine has been tested extensively, but since I cannot
  33.     foresee every possible use or abuse of ASILIB, I cannot be held
  34.     responsible for any damages resulting from its use.
  35.  
  36.  
  37. DISTRIBUTION and REGISTRATION
  38.  
  39.     ASILIB is user-supported shareware, NOT public domain software.  The
  40.     ASILIB files you have received are the complete ASILIB package,
  41.     fully linkable with your ASIC object modules to create stand-alone
  42.     .EXE programs.  These files may be distributed freely in un-altered
  43.     form, but if you use ASILIB in your ASIC programs, you are expected to
  44.     register.
  45.  
  46.     The advantages of registering are many:
  47.  
  48.     Registered users receive the latest version available when they register
  49.     and may upgrade at any time for the paltry fee of $10.00.
  50.  
  51.     Registered users will receive an updated ASILIB.LIB
  52.  
  53.     Your registration fee supports my efforts, and encourages me to continue
  54.     development of ASILIB.
  55.  
  56.     No royalties are required and registration costs only $25, and you will
  57.     have confidence that you are using a version of ASILIB which has not been
  58.     altered by others.
  59.  
  60.     Register by sending $25 to:
  61.  
  62.               Douglas R. Herr
  63.               P. O. Box 207
  64.               Sacramento, CA  95812
  65.               U. S. A.
  66.  
  67.               telephone (916) 721-8762, voice only
  68.               CompuServe 71247,3542
  69.  
  70.  
  71.     Please specify which size disk you prefer.  Complete assembly-language
  72.     source code for ASILIB is an additional $25.
  73.  
  74.     Any questions or problems should be sent to me at the above address.
  75.     Please include a stamped, self-addressed envelope if you are not a
  76.     registered user, or for fastest response, send a message on CompuServe.
  77.  
  78.     ASILIB is a rapidly evolving library, so it is likely that by the time
  79.     you register there will be several additional routines or refinements
  80.     to existing routines available.
  81.  
  82. HOW DO I USE ASILIB?
  83.  
  84.     ASILIB is designed for use with 80/20 Software's ASIC compiler
  85.     version 4.0 or greater.  To use ASILIB, you must use ASIC's "object
  86.     file output" feature.  This also requires that you have a copy of
  87.     Microsoft's LINK.EXE or a similar linker.  Many ASILIB subroutines
  88.     also require ASIC's Extended math option.
  89.  
  90.     From the ASIC development enviornment, select "Advanced options" from
  91.     the Compile menu, and choose:
  92.  
  93.     1)  Obj output file
  94.     2)  liBrary names ...
  95.         enter ASILIB
  96.     3)  Link.exe path ...
  97.         enter the name of the directory where LINK.EXE is located.
  98.  
  99.     From the DOS command line, compile and link your ASIC source code
  100.     using ASICC: (lower case- you supply the correct name)
  101.  
  102.     ASICC yoursrc[.asi] B/OBJ [E] LIB=ASILIB LNK=C:\linkpath
  103.  
  104.  
  105.     ASILIB's documentation has been divided into several files in order to
  106.     keep each one down to a managable size.  The .DOC files are:
  107.  
  108.     ASILIB.DOC     this file
  109.     INPUT.DOC      keyboard input subroutines
  110.     DATA.DOC       data manipulation subroutines
  111.     DISK.DOC       disk and file management subroutines
  112.     EMSXMS.DOC     Expanded and Extended Memory subroutines
  113.     GRAPHICS.DOC   subroutines for graphics
  114.     MULTIWIN.DOC   multiple pop-up windows (text mode)
  115.     SYSTEM.DOC     subroutines which determine PC equipment or status
  116.     TEXT.DOC       video input and output subroutines (text modes)
  117.  
  118.  
  119.  
  120. SUBROUTINE REFERENCE
  121.  
  122. Documentation for ASILIB's subroutines can be found in the following .DOC
  123. files:
  124.  
  125. Name           description                                      .DOC file
  126.                                                                         
  127. AllocEMS       allocate an expanded memory block               EMSXMS.DOC
  128. AllocDOS       dynamic memory allocation from DOS memory area  SYSTEM.DOC
  129. AllocXMS       allocate an extended memory block               EMSXMS.DOC
  130. ANSIColor      determines color attribute used by ANSI.SYS       TEXT.DOC
  131. BitBlockBytes  graphics screen manipulation                  GRAPHICS.DOC
  132. BitPlaneBytes  calculates bytes required for BitPlaneSave    GRAPHICS.DOC
  133. BLINKOFF       disable blinking attributes                       TEXT.DOC
  134. BLINKON        enable blinking attributes                        TEXT.DOC
  135. Border         changes color of screen border                    TEXT.DOC
  136. BufferDim      re-dimension graphics memory buffer           GRAPHICS.DOC
  137. CircleAspect   DrawCircle options                            GRAPHICS.DOC
  138. ClearEOL       clears a row from cursor to edge of screen        TEXT.DOC
  139. ClearKey       clears the keyboard 'type ahead' buffer          INPUT.DOC
  140. Color16        calculate color value for changing palette    GRAPHICS.DOC
  141. Color256       calculate color value for changing palette    GRAPHICS.DOC
  142. ColorAttr      calculate color attibute                          TEXT.DOC
  143. CopyMem        copies a block of memory                          DATA.DOC
  144. CursorColor    enables InColor color palette, sets cursor color  TEXT.DOC
  145. CursorOFF      makes text cursor invisible                       TEXT.DOC
  146. CursorON       places cursor on text screen                      TEXT.DOC
  147. DayName        returns ASCII day name given day number 1-7       DATA.DOC
  148. DiskWP         traps "drive not ready" errors                    DISK.DOC
  149. DotBAK         renames existing file as backup (.BAK) file       DISK.DOC
  150. DrawBox        draws a box on a graphics screen              GRAPHICS.DOC
  151. DrawCircle     draws a circle on graphics screen             GRAPHICS.DOC
  152. DrawLine       draws a line on graphics screen               GRAPHICS.DOC
  153. DriveSpace     determine free and total space on a disk          DISK.DOC
  154. EMGet          copies data from EMS memory block to an array   EMSXMS.DOC
  155. EMMove         move data within an EMS memory block            EMSXMS.DOC
  156. EMSSpace       determines available EMS memory                 EMSXMS.DOC
  157. EMPut          copies data to an EMS memory block              EMSXMS.DOC
  158. EXEName        returns full drive and path name of program     SYSTEM.DOC
  159. FExist         see if a file or subdirectory exists              DISK.DOC
  160. FCopy          copy a file to another disk or directory          DISK.DOC
  161. FClose         close a file opened by FCreate or FOpen           DISK.DOC
  162. FCreate        creates a new file for fast binary I/O            DISK.DOC
  163. FFlush         flushes ASILIB and DOS file buffer                DISK.DOC
  164. FGet           buffered input from a file opened by FOpen        DISK.DOC
  165. FGetCHR        fast 1-byte input from a file opened by FOpen     DISK.DOC
  166. FGetPos        get file position for file opened by FOpen        DISK.DOC
  167. FGetSTR        fast string input from a file opened by FOpen     DISK.DOC
  168. FCount         counts the number of files matching a template    DISK.DOC
  169.  
  170. FillArea       fills an irregular region on graphics screen  GRAPHICS.DOC
  171. FillBox        fills a box on graphics screen                GRAPHICS.DOC
  172. FillEOL        fills from cursor position to edge of screen      TEXT.DOC
  173. FillPattern    establish fill pattern                        GRAPHICS.DOC
  174. FLoad          quickly loads a disk file into far memory         DISK.DOC
  175. FLoadEMS       quickly loads a disk file into EMS memory       EMSXMS.DOC
  176. FLoadXMS       quickly loads a disk file into XMS memory       EMSXMS.DOC
  177. Floppies       determine number of floppy drives installed     SYSTEM.DOC
  178. FloppyType     determine type of floppy drive installed        SYSTEM.DOC
  179. FOpen          opens an existing file for fast input or output   DISK.DOC
  180. FPut           fast output to a file opened by FOpen or FCreate  DISK.DOC
  181. FPutCHR        fast byte output to file opened by FOpen/FCreate  DISK.DOC
  182. FPutCRLF       CR+LF output to file opened by FOpen or FCreate   DISK.DOC
  183. FPutSTR        string output to file opened by FOpen or FCreate  DISK.DOC
  184. FreeEMS        releases expanded memory block                  EMSXMS.DOC
  185. FreeDOS        releases memory block allocated by ASILIB         DATA.DOC
  186. FreeXMS        releases extended memory block                  EMSXMS.DOC
  187. FSaveEMS       save EMS memory block as a disk file            EMSXMS.DOC
  188. FSaveXMS       save XMS memory block as a disk file            EMSXMS.DOC
  189. FSeek          set the file pointer position for a file          DISK.DOC
  190. FSize          determine size of a file opened by ASILIB         DISK.DOC
  191. GBaseSeg       direct ASILIB graphics to an alternate buffer GRAPHICS.DOC
  192. GCopy          copies one page of Graphics memory to another GRAPHICS.DOC
  193. GCursor        puts a text cursor on graphics screen         GRAPHICS.DOC
  194. Get2           get 2 bytes from far memory                       DATA.DOC
  195. Get4           get 4 bytes from far memory                       DATA.DOC
  196. GetBitBlock    save part of graphics screen                  GRAPHICS.DOC
  197. GetBitPlane    save part of a plane of graphics screen       GRAPHICS.DOC
  198. GetBorder      determine border color on CGA, EGA, VGA systems   TEXT.DOC
  199. GetCMD         returns case-sensetive command line parameter   SYSTEM.DOC
  200. GetCPU         determine processor installed                   SYSTEM.DOC
  201. GetCRT         determine video system                          SYSTEM.DOC
  202. GetPOS         determine current cursor position                 TEXT.DOC
  203. GClear         clear portion of Graphics screen              GRAPHICS.DOC
  204. GetDOSVer      determine DOS version installed                 SYSTEM.DOC
  205. GetDot         determine pixel status on graphics screen     GRAPHICS.DOC
  206. GetKey         returns first key pressed                        INPUT.DOC
  207. GetScreen      copies screen to restore later                    TEXT.DOC
  208. GetScreenSize  determines the dimensions of the screen           TEXT.DOC
  209. GetView        determine current graphics viewport           GRAPHICS.DOC
  210. GLoad          copies a graphics image file to video memory  GRAPHICS.DOC
  211. GLoadEMS       copies a graphics image from EMS to screen    GRAPHICS.DOC
  212. GLoadXMS       copies a graphics image from XMS to screen    GRAPHICS.DOC
  213. GPage          combines UseGPage and ShowGPage subroutines   GRAPHICS.DOC
  214.  
  215. GPrint         print text on a graphics screen               GRAPHICS.DOC
  216. GPrintDOWN     text on graphics screen from top to bottom    GRAPHICS.DOC
  217. GPrintUP       text on graphics screen from bottom to top    GRAPHICS.DOC
  218. GPrintX        expanded text on graphics screen              GRAPHICS.DOC
  219. GPrint2X       expanded text on graphics screen              GRAPHICS.DOC
  220. GPrintDOWNX    expanded text on graphics screen              GRAPHICS.DOC
  221. GPrintDOWN2X   expanded text on graphics screen              GRAPHICS.DOC
  222. GPrintUPX      expanded text on graphics screen              GRAPHICS.DOC
  223. GPrintUP2X     expanded text on graphics screen              GRAPHICS.DOC
  224. GraphColor     set color attribute used by ASILIB graphics   GRAPHICS.DOC
  225. GSave          saves a graphics screen as a file             GRAPHICS.DOC
  226. GSaveEMS       saves a graphics screen in EMS memory         GRAPHICS.DOC
  227. GUCursor       puts underscore cursor on graphics screen     GRAPHICS.DOC
  228. HGraph         establish Hercules graphics mode              GRAPHICS.DOC
  229. HGraph0        same as HGraph, but clears only page 0        GRAPHICS.DOC
  230. HideMouse      make mouse cursor invisible                      INPUT.DOC
  231. HRam8043       switch to RamFont 43-row mode                     TEXT.DOC
  232. HRam9025       switch to RamFont 90-column mode                  TEXT.DOC
  233. HRam9043       switch to RamFont 90-column, 43-row mode          TEXT.DOC
  234. HScroll        quick horizontal scroll of text screen            TEXT.DOC
  235. HText          return to text mode from Hercules graphics    GRAPHICS.DOC
  236. I2TOSTR        convert a 2-byte integer to a string              DATA.DOC
  237. I4TOSTR        convert a 4-byte integer to a string              DATA.DOC
  238. IsATT          determines if ATT-type display installed        SYSTEM.DOC
  239. IsEMS          determines if EMS is installed                  EMSXMS.DOC
  240. IsEVGA         determines if EGA or VGA is installed           SYSTEM.DOC
  241. IsMouse        determine if mouse is available                 SYSTEM.DOC
  242. IsSEVGA        determines if a Super EGA/VGA is installed      SYSTEM.DOC
  243. IsXMS          determines if XMS driver is installed           EMSXMS.DOC
  244. JaNein         German language version of YesNo                 INPUT.DOC
  245. KeyIfWaiting   returns key if one is waiting in keyboard buffer INPUT.DOC
  246. KeyOrButton    returns first keyboard or mouse input            INPUT.DOC
  247. KeyWaiting     determines if a key has been pressed             INPUT.DOC
  248. LinePattern    DrawLine and DrawBox option                   GRAPHICS.DOC
  249. LoadPCX        read, decode and display a .PCX-format file   GRAPHICS.DOC
  250. MathChip       find math coprocessor                           SYSTEM.DOC
  251. ModeColor      switch to color text mode                         TEXT.DOC
  252. ModeMono       switch to monochrome monitor                      TEXT.DOC
  253. Mode43         switch to EGA 43-row mode (VGA 50-row mode)       TEXT.DOC
  254. MonthName      returns ASCII month name given month number       DATA.DOC
  255. MouseLimit     limit range of mouse motion                     SYSTEM.DOC
  256. MousePos       position mouse cursor on the screen             SYSTEM.DOC
  257. MouseStatus    returns mouse position and button status         INPUT.DOC
  258. MovePOS        move current cursor position                      TEXT.DOC
  259.  
  260. OuiNon         French language version of YesNo                 INPUT.DOC
  261. Paint          quick complete color change, entire screen        TEXT.DOC
  262. Palette16      change color palette in E/VGA 16-color modes  GRAPHICS.DOC
  263. Palette256     change color palette in 256-color modes       GRAPHICS.DOC
  264. Path           returns the path in the program's enviornment   SYSTEM.DOC
  265. PCXInfo        get important information about a .PCX file   GRAPHICS.DOC
  266. Put2           put 2 bytes in a far memory block                 DATA.DOC
  267. Put4           put 4 bytes in a far memory block                 DATA.DOC
  268. PutBitBlock    restore graphics screen saved earlier         GRAPHICS.DOC
  269. PutBitPlane    restore graphics plane saved earlier          GRAPHICS.DOC
  270. PutDot         turn Graphics pixel on or off                 GRAPHICS.DOC
  271. PutScreen      restores a screen saved by GetScreen              TEXT.DOC
  272. RAMsize        determines installed base RAM                   SYSTEM.DOC
  273. ReColor        quick selective color change, entire screen       TEXT.DOC
  274. RTrim          used to trim blanks off the end of a string       DATA.DOC
  275. ScreenMem      allocates memory required to store a screen       TEXT.DOC
  276. ScreenMode     set text/graphics screen mode                 GRAPHICS.DOC
  277. ScreenOrigin   control position of video buffer on screen    GRAPHICS.DOC
  278. SetPOS         position the cursor on the screen                 TEXT.DOC
  279. SetView        establish active graphics viewport            GRAPHICS.DOC
  280. ShowGPage      changes graph page visible on the screen      GRAPHICS.DOC
  281. ShowGraphPlane select visible color plane in 16-color graphs GRAPHICS.DOC
  282. ShowMouse      make mouse cursor visible                        INPUT.DOC
  283. ShowTPage      switch visible screen page (text mode)            TEXT.DOC
  284. SiNo           Spanish language version of YesNo                INPUT.DOC
  285. SmallText      GPrint and GLineEdit option                   GRAPHICS.DOC
  286. SnowOFF        disable CGA "snow" control                        TEXT.DOC
  287. SnowON         enable CGA "snow" control (ASILIB's default)      TEXT.DOC
  288. SortI2HI       sort integer array, highest first                 DATA.DOC
  289. SortI2LO       sort integer array, lowest first                  DATA.DOC
  290. SortI4HI       sort long integer array, highest first            DATA.DOC
  291. SortI4LO       sort long integer array, lowest first             DATA.DOC
  292. StdText        restores normal text size on graphics screen  GRAPHICS.DOC
  293. STRCHR         finds the first matching character in a string    DATA.DOC
  294. STRICHR        find matching char. in a string, case-insensetive DATA.DOC
  295. STRIPCHR       remove specified character from string            DATA.DOC
  296. STRISTR        find substring in a string, case-insensetive      DATA.DOC
  297. STRLEN         determine length of ASIC or ASILIB string         DATA.DOC
  298. STRLWR         converts text to lower case                       DATA.DOC
  299. STRREV         reverses all characters in a string               DATA.DOC
  300. STRRCHR        finds the last matchimg character in a string     DATA.DOC
  301. STRRSTR        find last matching substring in a string          DATA.DOC
  302. STRSTR         find first matching substring in a string         DATA.DOC
  303. STRUPR         converts text to upper case                       DATA.DOC
  304. SVGA132        switch to 132-column text mode                    TEXT.DOC
  305. SVGA16         set SuperVGA 16-color modes                   GRAPHICS.DOC
  306. SVGA256        set SuperVGA 256-color modes                  GRAPHICS.DOC
  307. SWAPB          swaps specified number of bytes                   DATA.DOC
  308. SYSTEM         SHELL-like command; run another program         SYSTEM.DOC
  309.  
  310. TClear         quickly clear entire screen                       TEXT.DOC
  311. TCenter        centers a string on the screen                    TEXT.DOC
  312. TCopy          copies one screen page to another (text or Herc)  TEXT.DOC
  313. TFill          fill entire screen with specified character       TEXT.DOC
  314. TGetCHR        determine character & color at screen location    TEXT.DOC
  315. TLoad          loads a disk file into video memory               TEXT.DOC
  316. Tprint         quick print to screen or virtual screen           TEXT.DOC
  317. Tprintce       quick print and clear to end of line              TEXT.DOC
  318. TPutCHR        print a single character on the screen            TEXT.DOC
  319. TPage          combines UseTPage and ShowTPage subroutines       TEXT.DOC
  320. Today          returns today's date                              DATA.DOC
  321. UCursorON      places underscore cursor on text screen           TEXT.DOC
  322. Use32k         Hercules memory management                    GRAPHICS.DOC
  323. Use64k         Hercules memory management                    GRAPHICS.DOC
  324. UseGPage       change active graphics page                   GRAPHICS.DOC
  325. UseTPage       set active page in text mode                      TEXT.DOC
  326. VGA13X         extended 256-color modes for standard VGA     GRAPHICS.DOC
  327. VScroll        quick vertical scroll of screen                   TEXT.DOC
  328. WClear         quick clear portion of screen                     TEXT.DOC
  329. WFill          quickly fill a portion of a text-mode screen      TEXT.DOC
  330. WFrame         quick window outline draw                         TEXT.DOC
  331. WPaint         quick complete color change, part of screen       TEXT.DOC
  332. WReColor       quick selective color change, part of screen      TEXT.DOC
  333. WRestore       restores portion of screen saved by WindowSave    TEXT.DOC
  334. WSave          copies a portion of screen to restore later       TEXT.DOC
  335. WindowMem      allocates memory needed to store screen           TEXT.DOC
  336. XMGet          copies data from extended memory to DOS memory  EMSXMS.DOC
  337. XMPut          copies data to extended memory from DOS memory  EMSXMS.DOC
  338. XMSSpace       determines  XMS memory available                EMSXMS.DOC
  339. YesNo          waits for "Y" or "N" key to be pressed           INPUT.DOC
  340.  
  341.  
  342. If ASIC isn't your primary programming language, you may want to consider
  343. my other programming libraries:
  344.  
  345. QLIB  for QuickBASIC, PDS 7.x and VBDOS
  346. ASM16 for 16-bit assembly-language programming
  347. ASM32 for 32-bit assembly-language programming with the CauseWay extender
  348.  
  349. Call or write for a review copy of any of these fine software packages.
  350.  
  351. Doug Herr
  352. P. O. Box 207
  353. Sacramento, CA  95812
  354.  
  355. (916) 721-8762
  356. CompuServe 71247,3542
  357.