Powerbasic

 BBS: Inland Empire Archive
Date: 03-22-92 (03:22)             Number: 79
From: DARYL POSNETT                Refer#: 78
  To: JAMES VAHN                    Recvd: NO  
Subj: Powerbasic                     Conf: (2) Quik_Bas

JV>DP>No argument here about that, but as yet, no one has been able to put
JV>DP>forth a proof similar to my argument that BASIC is
JV>DP>any easier or faster to
JV>DP>develop with.  For me it isn't, I use both languages, some things are
JV>DP>eaiser with BASIC and some things are easier with C.

JV>Ack!  For a guy that is opposed to language wars, do you realize you
JV>spend more time on the subject than anyone I've ever met!  :-)

Perhaps you'd like to meet some of my friends.  Seriously, I didn't
start this, someone made a mis-statement about C and I responded.  I use
both BASIC and C and tried to take a middle objective ground.  It is
clear to me that BASIC programmers in general don't want to hear
anything that doesn't place their language of choice in a favorable
light, even the TRUTH.  I do like to debate, and my argument still
holds, nobody has been able to prove that BASIC is eaiser to use or
provides for faster development than C.  If you prefer it, that's
fine, but that isn't proof, and it appears that people would rather
get mad, whine, or spread more untruths than admit that BASIC doesn't
have any inherent advantage (other than being easy to learn) over
other general purpose languages.

JV>How about showing me how to tell if hardware alternate register maps
JV>are supported on a LIM 4 EMS driver or if it is emulated in software
JV>and whether it works or not.  Also how to tell if data aliasing is
JV>supported..

JV>In BASIC please..  Thanks!                           jim

Calling EMS function 59h subfunction 00 returns the EMS hardware
capabilities. Pass the segment:offset of a buffer in ES:DI , the number
of alternate register sets is returned in an integer at offset 02.

Of course these functions are meant to be operation system functions and
can be disabled.  They typically are not used by application code.


TYPE EmsHardware
        EmmRawPageSize                  AS INTEGER
        NumberAlternateRegisterSets     AS INTEGER
        SizeMappingContextSaveArea      AS INTEGER
        NumberDMARegisterSets           AS INTEGER
        DMAOperationType                AS INTEGER
END TYPE

DIM EmsH AS EmsHardware
DIM Regs AS RegTypeX

Regs.ax = &h5900
Regs.es = VARSEG(EmsH)
Regs.di = VARPTR(EmsH)

CALL INTERRUPTX (&h67,Regs,Regs)


Software only EMS emulators that simulate page mapping by copying blocks
of data in memory cannot perform data aliasing.

To test for this capability

        1. Map on logical page into at least two physical pages.
        2. Write data to one of the physical pages
        3. if the data written in step 2 appears in each of the other
           physical pages that the logical page was mapped into,
           data aliasing is supported.


I hope this information helps, you might take a look at the Waite Groups
MS-DOS Developers guide. I develop cross compilers and programmers tools
and have yet to have much use for EMS.

As far as the language discussion goes, might I suggest that If I am the
sole recipient of your message then perhaps you too are guilty of admiring
the emperors new clothes.

Daryl
___
 X SLMR 2.0 X Have you tried an Applied Design Group product today ?

--- Maximus 2.00
 * Origin: Inland Empire Archive (1:346/10)
Outer Court
Echo Basic Postings

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