home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / mslang / proclc / info.txt < prev    next >
Text File  |  1994-03-22  |  27KB  |  631 lines

  1. ──────────────────────────────────────────────────────────────────
  2. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3.                  C o d e R u n n e R  (R)
  4. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5. ──────────────────────────────────────────────────────────────────
  6.            Omega Point, Inc.
  7.              25 Birch Road
  8.           Framingham, MA 01701
  9. ──────────────────────────────────────────────────────────────────
  10.           TEL:  (508) 877 - 1819
  11.          FAX:  (508) 877 - 0915
  12. ──────────────────────────────────────────────────────────────────
  13.  
  14.  
  15. CodeRunneR is a library and startup code for C programmers
  16. optimized for creating highly efficient and reliable TSRs
  17. (Terminate and Stay Resident programs). After four years as a
  18. commercial product and its use by thousands of professional
  19. developers, CodeRunneR has become de facto TSR standard and
  20. a synonym for small, fast and rock solid TSRs.
  21.  
  22. Here is what the experts say about CodeRunneR:
  23.  
  24.  
  25. ■      "the size of any program you develop with
  26.        CodeRunneR will astound you"
  27.  
  28. ■      "CodeRunneR will make your C TSRs smaller than
  29.        you could imagine"
  30.  
  31.                                Mark Davidson, Computer Language
  32.  
  33.  
  34. ■ "the cream of the crop"
  35.                                              Tom Swan, PC-World
  36.  
  37.  
  38. ■      "CodeRunneR not only solves problems, it inspires
  39.        new possibilities. It is destined for the Programmer's
  40.        Hall of Fame."
  41.  
  42.         Joe Campbell, Author of "C Programmer's Guide to 
  43.                      Serial Communications"
  44.  
  45.  
  46. ■      "CodeRunneR and its associated Professional
  47.        Developer's Kits are highly useful set of utilities that
  48.        open the difficult world of TSR programming to anyone
  49.        who can grasp the C language."
  50.  
  51. ■      "The video routines make saving and displaying
  52.        screen information a breeze"
  53.  
  54.                           R. Bradley Andrews, Dr. Dobbs Journal
  55.  
  56.  
  57. ■      "professional development tool that'll let you create
  58.        compact, fast TSRs"
  59.  
  60.                               Gary Entsminger, Micro Cornucopia
  61.  
  62.  
  63. ■      "Using the TSR template provided with CodeRunneR,
  64.        you can get your first TSR application up and
  65.        running in days instead of weeks."
  66.  
  67. ■      "one of the best BBS support lines I have seen yet.
  68.        The response time to the questions I posted on the
  69.        BBS was excellent."
  70.  
  71. ■      "The CodeRunneR product excels in its TSR
  72.        capabilities, coexistence with other DOS applications
  73.        and technical support."
  74.  
  75.                          Victor R. Volkman, The C Users Journal
  76.  
  77.  
  78.  
  79.  
  80. ──────────────────────────────────────────────────────────────────
  81.                      TIME SAVING FEATURES
  82. ──────────────────────────────────────────────────────────────────
  83.  
  84.  
  85. In addition to the top quality and unique capabilities of the code
  86. and the wide scope of the library, CodeRunneR package includes
  87. the following time and effort saving features:
  88.  
  89. ■      Quick Start templates and our PopFEATURE collection
  90.        (fully operational, useful TSRs with C source) will help
  91.        you create professional quality TSRs the first day. A
  92.        dozen useful TSRs with full source include expression
  93.        parsing calculators, calendar, text browser, ASCII chart,
  94.        keyboard decoder, stopwatch, terminal TSR with file
  95.        transfers, ...etc.
  96.  
  97. ■      On-Line Context-sensitive Hypertext Help (a TSR using
  98.        1.3K with LIM or 30K without LIM) has all CR functions
  99.        and variables cross-referenced and linked to related topics
  100.        as well as miscellaneous useful PC/AT technical facts.
  101.        The TSR allows cut & paste of code into a foreground
  102.        application.
  103.   
  104. ■      The printed documentation consists of a 300 page
  105.        Reference manual and a 60 page Quick Start manual. The
  106.        main reference includes a chapter on efficient C
  107.        programming covering 36 techniques for optimizing size
  108.        and speed of C programs. The Quick Start manual guides
  109.        you quickly through the how-to phase in a pragmatic
  110.        manner. It includes a chapter of the most often asked
  111.        questions with answers.
  112.  
  113. ■      The package also contains a large collection of tips and
  114.        discussions from the CodeRunneR Technical Support BBS
  115.        (spanning 3 years; over 800K of text). The collection is a
  116.        treasure of real life, practical problems and solutions, a
  117.        gold mine of ideas and strategies from hundreds of
  118.        programmers.
  119.  
  120. ■      Our In-Depth Technical support is unmatched in the
  121.        industry. You can discuss with our TSR experts topics
  122.        from strategies and algorithms for implementing your TSR
  123.        to tracking down difficult bugs and optimizing your TSR.
  124.  
  125. ■      You can call, FAX or leave technical questions/code on the
  126.        Tech Support BBS at any time (including weekends) and
  127.        they'll be addressed and resolved usually within hours from
  128.        the request. Registered users can download fixes and
  129.        updates from the BBS as soon as they are available (we
  130.        don't use phrase "known bug").
  131.  
  132. ■      CodeRunneR works with all major C compilers (TC, BC,
  133.        MSC, Watcom, Zortec).
  134.  
  135. ■      No royalties are required for the programs linked with
  136.        CodeRunneR and its associated add-on kits.
  137.  
  138. In addition to the main package, there are 3 Professional
  139. Developer's Kits (add-on) for specialized needs: PDK-1,2 and 3.
  140. For example PDK-1 has a background communications library,
  141. LIM access and ability to move TSRs to LIM, copy protection,
  142. print spooler,...etc.
  143.  
  144. Finally, there is an Advanced Developer's Kit ADK-1, a library
  145. for creating multi-application swappers. It includes PopSWAP, a
  146. fully functional software carousel-like TSR for fast swapping of up
  147. to 10 applications (easily extensible to any number).
  148.  
  149.  
  150.  
  151. ──────────────────────────────────────────────────────────────────
  152.                      TECHNICAL HIGHLIGHTS
  153. ──────────────────────────────────────────────────────────────────
  154.  
  155.  
  156. ■      CodeRunneR has over 300 functions hand crafted in pure
  157.        assembler for size and speed. The library is fully granular
  158.        so that only the used facilities are linked in.
  159.   
  160. ■      Our unique memory manager discards initialization code
  161.        and data before switching to resident mode. This means
  162.        that any signon/help screens, command line/file parsers,
  163.        set-up menus, ...etc. will not take any memory in TSR
  164.        mode. Similarly disposed are any library facilities used
  165.        only at load time such as startup code,
  166.        hardware/environment identification routines, non-
  167.        applicable video, keyboard, COM handlers ...etc.
  168.  
  169. ■      TSRs can use DOS/Networks safely. A set of efficient file
  170.        i/o and directory functions provides full DOS directory/file
  171.        access.
  172.  
  173. ■      The CodeRunneR task switcher supports execution of
  174.        multiple threads in resident or non-resident mode. Context
  175.        switching, stack allocation and thread entry control/locking
  176.        is handled automatically (with facilities to override the
  177.        defaults).
  178.  
  179. ■      TSR can define up to 256 simultaneous dynamic hotkeys,
  180.        which may include multikey combinations such as Ctrl-
  181.        Shift-Home. On extended keyboards the distinction can be
  182.        made between Left and Right Ctl (or Alt) keys as well as
  183.        between dedicated and non-dedicated cursor keys. The
  184.        hotkeys can be added, removed or redefined at any time
  185.        during TSR operation. The standard CodeRunneR header
  186.        allows external programs to examine and modify hotkeys
  187.        of a resident program.
  188.  
  189. ■      There are three different hotkey handlers: Hardware
  190.        level, BIOS level (for triggering TSR by other applications
  191.        via simulated hotkeys) and Timer-Hotkeys (for triggering
  192.        TSR with applications which take over the keyboard
  193.        exclusively). Any of the three handlers (or combination)
  194.        triggers TSR by calling user specified C function with a
  195.        hotkey value as a function argument.
  196.  
  197. ■      Two event schedulers are available: Tiny and Master
  198.        scheduler. The Tiny scheduler is small and highly 
  199.        efficient, useful for single event scheduling. The Master
  200.        scheduler allows any number of events to be scheduled and
  201.        pending simultaneously. When some event becomes due,
  202.        the TSR is triggered via a call to a specified C function
  203.        with the pointer to the event structure as an argument.
  204.  
  205. ■      Interrupt traps trigger user's C function when specified
  206.        software or hardware interrupts occur. The traps can be
  207.        added and removed in TSR mode. The hooked interrupts
  208.        are automatically restored when TSR unloads. The C
  209.        service function can examine and modify caller's CPU
  210.        registers (via structures) and in each trigger instance
  211.        specify whether to return to the caller (IRET) or pass
  212.        control to the original interrupt handler. An alternate
  213.        assembly language interrupt handler can be enabled if
  214.        necessary. A template for custom interrupt service in
  215.        assembler with an interface to CodeRunneR task switcher
  216.        is included.
  217.   
  218. ■      Very compact and accurate BCD floating point library
  219.        supports from 12 to 248 digits of precision and exponents
  220.        up to ±16383. It is ideal for business/financial
  221.        computations since it eliminates the fraction rounding
  222.        errors which are common with regular binary floating
  223.        point.
  224.  
  225. ■      Ultra compact video functions perform lightning fast
  226.        screen output. They automatically handle variable screen
  227.        sizes and different video adapters. Another rich set of
  228.        functions automates save and restore operation of screen
  229.        windows, cursor position and type, fonts, palette, RGB
  230.        colors, ...etc.
  231.  
  232. ■      Memory management functions support mixed far and
  233.        near allocation and allow full control of the amount of
  234.        memory which should remain resident. The compaction is
  235.        done before going resident to eliminate gaps between near
  236.        heap and stack as well as between the far heap and
  237.        compacted near heap.
  238.  
  239. ■      Stack diagnostic functions provide information about
  240.        resident stack use by different threads. This is helpful in
  241.        minimizing the stack use in the final stages of
  242.        development.
  243.  
  244. ■      Large number of functions cover all aspects of PC/AT
  245.        hardware, BIOS and DOS control, such as printers, COM
  246.        ports, sound, time, delays, old/new keyboards, key
  247.        stuffing, video, interrupt controllers, ...etc.
  248.  
  249. Please inquire about any features of interest which you didn't see
  250. listed in this brief overview.
  251.  
  252.  
  253.  
  254. ──────────────────────────────────────────────────────────────────
  255.                         PDK-1  Features
  256. ──────────────────────────────────────────────────────────────────
  257.  
  258.                      Serial Communications
  259.  
  260. The main part of PDK-1 is the interrupt driven serial
  261. communications library. Due to its compactness it is ideally suited
  262. for TSRs. Its speed makes it perfect for background, low
  263. overhead, communications.
  264.  
  265. ■      Support for multiple channels limited only by available
  266.        hardware. It can service cases from the single channel
  267.        single interrupt (IRQ) to the multichannel configurations
  268.        with separate or shared IRQs (with one or two interrupt
  269.        controllers). Also supported are two types of commercial
  270.        multiport boards (Digiboard type with base-2 ID and
  271.        Stargate type with bit-mask ID).
  272.  
  273. ■      Standard PC/AT UART 8250 and the high performance
  274.        FIFO 16550 are supported.
  275.  
  276. ■      Automatic or manual flow control (RTS/CTS, DTR/DSR,
  277.        XON/XOFF) is changeable at any time during operation.
  278.  
  279. ■      User's C function can be triggered in real time by any
  280.        conditions of the COM channel (modem status lines
  281.        change, ring, loss of carrier, errors, break, receive buffer
  282.        above critical mark, output buffer below critical mark,
  283.        ...etc).
  284.  
  285. ■      Buffered serial I/O provides several types of buffers, from
  286.        simple flat and circular buffers to chained buffers. With
  287.        chained buffers, the library interrupt handlers automatically
  288.        switch from one buffer to the next. This is very helpful
  289.        with packet protocols where the chained buffers perform
  290.        automatic separation of the packet envelope from its
  291.        content, greatly speeding up and simplifying the packet
  292.        merge/split functions.
  293.  
  294. ■      Several types of polled I/O, from the ultra fast streamlined
  295.        version to variations with built in timeouts.
  296.   
  297. ■      ANSI Terminal Emulator via a single functions
  298.        ansi_chr(). The TERM.C sample utilizes this function to
  299.        implement a tiny ANSI terminal emulator.
  300.  
  301. ■      Facilities to reduce system overhead (from other interrupt
  302.        sources) in time critical situations include quick handlers
  303.        for timer and keyboard interrupts and ability to increase
  304.        priority of COM interrupts at hardware level.
  305.  
  306. ■      Multitasking functions sleep() and awake() simplify
  307.        conversions of a straight non-background C code into a
  308.        multitasking code for background operation. The sleep()
  309.        suspends execution, freezing the state of the thread.
  310.        Subsequent awake() (which can be triggered by a
  311.        full/empty buffer, timeout or any other event source)
  312.        resumes original thread as if sleep() has just returned.
  313.  
  314. ■      Very fast and small checksum and CRC functions
  315.        (compatible with X/YMODEM protocols).
  316.  
  317. ■      Powerful HyperCOM program (C source included)
  318.        demonstrates many library features. It supports
  319.        XMODEM, YMODEM/BAT multifile background
  320.        transfers, logon scripts, dial directory, ANSI Terminal
  321.        emulator.
  322.  
  323.                           LIM Support
  324.  
  325. ■      LIM (EMS) detection and LIM API support.
  326.  
  327. ■      Mixed model functions convenient for operating on LIM
  328.        pages.
  329.  
  330. ■      TSR can move to LIM using a single call move_to_lim().
  331.        Code, Data or both can be moved. In all cases the move is
  332.        transparent to the C code. The library will retain in low
  333.        memory only the minimum interrupt handlers (such as
  334.        timer for schedulers, keyboard for hotkeys, DOS idle,...).
  335.        This leaves around 1K in low memory, the rest is in
  336.        LIM. When a trigger condition is detected by the low
  337.        memory handlers (event due, hotkey pressed, DOS became
  338.        idle), the LIM state is saved, the TSRs image is remapped
  339.        into the CPU address space and the control is passed to the
  340.        original interrupt handlers. Upon thread return the LIM
  341.        state is restored, so that the foreground applications can
  342.        safely use LIM. Any number of TSRs can be moved to
  343.        LIM, each leaving a small footprint in conventional
  344.        memory (or in high memory with QEMM, 386Max or
  345.        DOS 5 UMBs with 0K low memory overhead).
  346.  
  347.                         Print Spooling
  348.  
  349. ■      The printer trap buffers printer data and triggers a C
  350.        service function when buffer reaches a specified critical
  351.        level. 
  352.  
  353. ■      Special technique is used to allow DOS access (for buffer
  354.        flushing to a file) even when printing is done through DOS
  355.        (i.e. when DOS is "officially" busy).
  356.  
  357. ■      Data can be captured with or without passing them to the
  358.        printer. The LPT status returned to the foreground
  359.        application is fully customizable. All or just selected
  360.        printers can be monitored.
  361.  
  362.                 Registration & Copy Protection
  363.  
  364. PDK-1 includes registration facility designed for copy protection.
  365. The protection method works as follows: 
  366.  
  367. You make available to potential customers an unregistered version
  368. of your program as a demo copy with some features disabled.
  369. With the demo you include a User Register program UREG (C
  370. source included in PDK-1). If the user decides to buy your
  371. program s/he can call in and request an Unlock Code (asked by
  372. UREG). A sales person at your site runs Internal Register program
  373. IREG, fills in user name and company. The end user does same
  374. with  UREG. Based on this information the IREG will produce a
  375. unique number, the Unlock Code which the sales person tells the
  376. customer who enters it into the UREG's Unlock Code field. If the
  377. Unlock Code is valid UREG unlocks the primary application and
  378. simultaneously stores the encrypted user's name and company into
  379. some file from  your package. The application can check and
  380. display at convenient time this information which should
  381. discourage software pirating. 
  382.  
  383. Besides the functions for generating, checking and locating the
  384. valid Unlock Code, several functions are supplied for defeating
  385. debugging or patching by would-be pirates.
  386.  
  387.  
  388.  
  389. ──────────────────────────────────────────────────────────────────
  390.                         PDK-2 Features
  391. ──────────────────────────────────────────────────────────────────
  392.  
  393.  
  394. PDK-2 covers wider area of applications than PDK-1 or PDK-3,
  395. containing the facilities developers have often asked for.
  396.  
  397.                       EXE Merge Facility
  398.  
  399. ■      Multiple EXE files are merged into a single EXE file. Each
  400.        member EXE file can switch over to another one with a
  401.        single call. The calling member EXE is discarded from the
  402.        memory and the new member EXE is spawned. This
  403.        facility is useful when there are several variations of a
  404.        program or when there is a setup program plus one or
  405.        more main executables. The EXE Merge packages all
  406.        programs into a single EXE file which greatly simplifies
  407.        consistent updates and installation by end users.
  408.  
  409.                           Spawn Over
  410.  
  411. This facility allows programs to spawn another application by
  412. swapping themselves to XMS, EMS or disk. Only a 1.4K
  413. footprint is left from the parent process. Upon exit of the child
  414. program, the parent program is restored.
  415.  
  416. ■      To gain speed only the minimum necessary swapping is
  417.        done. Depending on the size of child program
  418.        spawn_over() will first try to utilize any free memory. If
  419.        that isn't sufficient it compacts the parent program (free
  420.        heap/stack space) and only if that isn't enough it swaps out
  421.        the minimum necessary parts of the parent program.
  422.  
  423. ■      Parent program can designate section of memory as shared
  424.        with the child program. This memory is not swapped out
  425.        and it can be accessed by the spawned program for fast
  426.        two-way information exchange.
  427.  
  428.                           XMS Support
  429.  
  430. ■      XMS API allows access to extended memory. The
  431.        functions are similar to LIM support in PDK-1.
  432.  
  433. ■      XMS functions will also enhance the swappers in PDK-3
  434.        and ADK-1 for swapping graphics state and foreground
  435.        applications to XMS. Except for the initial XMS presence
  436.        check and xms_alloc() call, the rest is transparent to the
  437.        C code (handled internally by the swappers).
  438.  
  439. ■      Official XMS specifications are included in the PDK-2
  440.        manual.
  441.  
  442.                 Keyboard Stuffing & Monitoring
  443.  
  444. ■      TSRs can feed scan codes directly to hardware so they
  445.        are indistinguishable from the real keys, even by
  446.        applications which read hardware directly. This feature is
  447.        available only on PS/2 and better AT clones (such as
  448.        Compaq). A software emulation is provided for machines
  449.        lacking this capability (detection included).
  450.  
  451. ■      High speed key feeding (at BIOS level) with a mechanism
  452.        to handle applications which flush keyboard between keys
  453.        received.
  454.  
  455. ■      Embedded command codes automate setting of keyboard
  456.        flags (Shift, Ctl,..) without requiring special attention from
  457.        C code.
  458.  
  459. ■      C service function can be awakened when the output string
  460.        has been passed to the foreground application.
  461.  
  462. ■      A C function can watch all keystrokes and decide on
  463.        action: pass, remove or substitute the keys typed.
  464.  
  465.                     Time Slicing Functions
  466.  
  467. ■      Function wait(N) suspends current thread for N timer ticks.
  468.        The control returns either when N ticks have expired or
  469.        when another thread calls wait_done().
  470.  
  471. ■      Function waitfor() is similar to wait() except that it also
  472.        supplies a pattern and the address (such as video memory).
  473.        The thread is awakened when either time expires or the
  474.        pattern appears at specified location. This is useful for
  475.        programs which control other applications (such as
  476.        automated testers, screen data grabbers) where the TSR
  477.        stays idle until some prompt occurs on the screen.
  478.  
  479.                       Far Call Interface
  480.  
  481. This facility is similar to software traps except that it allows
  482. external programs to call into TSR (without using interrupts) and
  483. to activate a TSR.
  484.  
  485.                          Traps to LIM
  486.  
  487. The TSRs which use move_to_lim() facilities cannot set interrupt
  488. vectors to point into LIM since the TSR image in LIM can get
  489. swapped out by other applications. The PDK-2 ltrap facility allows
  490. interrupt trapping by setting up an indirect handler in low
  491. memory which handles LIM state saving/restoring and TSR
  492. triggering.
  493.  
  494.                   Utilizing System Idle Time
  495.  
  496. Functions idle_on() and idle_off() allow TSRs which need to do
  497. time consuming processing in the background (e.g. printing) to
  498. utilize system idle time. Whenever system is idle the specified C
  499. service function is called with high frequency.
  500.  
  501.                       Dual Monitor Access
  502.  
  503. This set of functions allow CodeRunneR video functions to operate
  504. on a selected monitor on systems with two monitors. The selection
  505. can be changed at any time.
  506.  
  507. ■      Automatic screen overflow handler can redirect data
  508.        scrolled off at the top of the primary monitor to the bottom
  509.        of the secondary monitor.
  510.  
  511. ■      A useful sample program DMON demonstrates dual
  512.        monitor functions. It can clone parts of the screen from the
  513.        primary to the secondary monitor.
  514.  
  515.  
  516.  
  517. ──────────────────────────────────────────────────────────────────
  518.                         PDK-3 Features
  519. ──────────────────────────────────────────────────────────────────
  520.  
  521.  
  522. With PDK-3 you can, in less than an hour, turn any application
  523. (graphics & floating point, too) into a TSR taking only 1.5K of
  524. RAM without any modifications to the application. You can also
  525. use PDK-3 for non-TSR applications which are too large to fit in
  526. 640K: a tiny TSR (1.5K) loads temporarily before your main
  527. application and serves as a swapper between several large
  528. components of the main application.
  529.  
  530. PDK-3 performs its magic via the in-depth support for spawning
  531. applications from the TSR, swapping TSR or foreground
  532. application and swapping graphics. The TSR can spawn another
  533. application in several ways: by swapping foreground application to
  534. disk, LIM or XMS, by swapping itself, by remapping LIM pages,
  535. by using unused space from COMMAND.COM when at DOS
  536. prompt.
  537.  
  538. ■      Graphics swapping allows pop-up over graphics
  539.        application. All major video adapters are supported
  540.        (Hercules, CGA, MCGA, EGA, S/VGA). The graphics
  541.        image can be swapped to disk, LIM or XMS.
  542.  
  543. ■      Mouse API is supported including interrupt driven
  544.        triggers on mouse events (movement, button clicks or
  545.        Shift, Alt, Ctl + button clicks).
  546.  
  547. ■      Mouse, graphics, math coprocessor, ... can be used by
  548.        spawned programs without interfering with their use by
  549.        foreground applications.
  550.  
  551. ■      Three fully operational spawn templates are supplied.
  552.        They allow building your custom spawner by few simple
  553.        changes in the header files (to set-up application name,
  554.        memory size, graphics use and swap medium).
  555.  
  556. The swapping to LIM (XMS) requires PDK-1 (PDK-2)
  557. respectively. The swap functions handle different swap media
  558. transparently to C code.
  559.  
  560.  
  561.  
  562. ──────────────────────────────────────────────────────────────────
  563.                         ADK-1 Features
  564. ──────────────────────────────────────────────────────────────────
  565.  
  566.  
  567. The Advanced Developers Kit ADK-1 contains very powerful
  568. multi-application swapping capabilities. Multiple (graphics)
  569. applications can be suspended, saved  (to disk, EMS or XMS) then
  570. restored and resumed at any time from within the TSR. Any
  571. CodeRunneR trigger mechanisms can be used to initiate the
  572. switch (hotkeys, timer, interrupts from applications, phone ring,
  573. ...etc).
  574.  
  575. ■      The ADK-1 C interface is very simple, just few powerful
  576.        functions: app_start(), app_suspend(), app_resume(). Yet
  577.        it allows full dynamic customization via APP_CTL and
  578.        SWAP_CTL structures.
  579.  
  580. ■      For speed, only the minimum necessary swapping is
  581.        done. The use of available swap media (disk, EMS, XMS)
  582.        can be dynamically adapted and mixed within the same
  583.        swap operation for optimum performance. The resulting
  584.        swapping is 2-3 times faster than with the DOS 5 swapper
  585.        DOSSHELL. Yet the ADK-1 sample swapper PopSWAP
  586.        is three times smaller than DOSSHELL (or 30 times if
  587.        LIM is available).
  588.  
  589. ■      Generic I/O functions allow uniform access to files, EMS
  590.        or XMS, with each media presented as a linear read/write
  591.        space addressable via single 32-bit pointer. Read/Write
  592.        blocks can be any size (the 32-bit read/write count is
  593.        used).
  594.  
  595. ■      Full source for all ADK-1 library functions (ASM) is
  596.        included.
  597.  
  598.  
  599.  
  600. ──────────────────────────────────────────────────────────────────
  601.                         PRICE & ORDERING
  602. ──────────────────────────────────────────────────────────────────
  603.  
  604.  
  605. The prices for CodeRunneR and the add-on kits are:
  606.  
  607.        CodeRunneR                  $ 195
  608.        PDK-1, 2 or 3               $  99
  609.        CodeRunneR + 3 PDKs         $ 429
  610.        ADK-1                       $ 995
  611.  
  612. For US orders add $5 for regular shipping, $10 for 2nd day or $15
  613. for next day delivery. For Canada add $10 for Air Mail or $50 for
  614. FEDEX. For other countries add $25 for Air Mail. Alternatively
  615. provide your FEDEX number to be used for shipping. On
  616. international orders we accept VISA, MasterCard, AMEX (please
  617. include card number & exp. date) or a bank check in US funds
  618. (prepaid).
  619.  
  620. ──────────────────────────────────────────────────────────────────
  621.         Omega Point, Inc.
  622.           25 Birch Road
  623.            Framingham, MA 01701
  624.  
  625.           TEL:  (508) 877 - 1819
  626.           FAX:  (508) 877 - 0915
  627. ──────────────────────────────────────────────────────────────────
  628.  
  629.  
  630.  
  631.