Section One BBS

Welcome, Guest.


Subject: Re: MPL Bitwise Operators Date: Thu Jan 13 2022 12:25 pm
From: g00r00 To: LEE WESTLAKE

 LW> Is someone able to clarify as to how bitwise operators are implemented
 LW> in MPL?

 LW> For example: the expression "a := b xor c;" currently returns "Unknown
 LW> identifier: xor"' during compilation.

MPL is supposed to support your typical bitwise operators (keywords
and/or/xor/shl/shr) but clearly something is not working.

There are also three functions that allow you to check, set, and toggle bits in 
any integer type that MPL supports which can be used for now until I figure out 
what happened.

This is in a WHATSNEW from way back in 2011 (The number you pass is the actual
bit you want to check, set or toggle ie 1-32)

 + New MPL function "BitCheck" accepts a bit position and checks it against
   an integer, returning true or false if the bit is on.  So for example in
   the Records, the third bit in UserFlags is UserDeleted:

     GetThisUser
     If BitCheck(3, UserFlags) Then WriteLn('User is marked deleted');

   Note that this was implemented before actual bitwise math, which also
   made it into this version.  Keep reading! :)

 + New MPL function "BitToggle" accepts a bit position and an integer and
   toggles the bit.

     GetThisUser
     BitToggle(3, UserFlags);  // undeletes if they are deleted or deletes if
                               // they are not deleted.

 + New MPL function "BitSet" accepts a bit position and an integer and sets
   the bit ON/OFF based on a boolean:

     GetThisUser
     BitSet(3, UserFlags, True);  // user is marked as deleted

... What do you mean, QWK? It took me over an hour to read!
--- Mystic BBS v1.12 A48 2022/01/12 (Windows/32)
 * Origin: Sector 7 * Mystic WHQ (1:129/215)

Previous Message       Next Message
In Reply To: MPL Bitwise Operators (LEE WESTLAKE)
Replies: Re: MPL Bitwise Operators (Nick Andre)Re: MPL Bitwise Operators (LEE WESTLAKE)