Dec 062017

Pascal Libary of programs. | |||
---|---|---|---|

File Name | File Size | Zip Size | Zip Type |

ASCIIZ.PAS | 1324 | 543 | deflated |

ASMARRAY.PAS | 983 | 445 | deflated |

AVTWRITE.PAS | 2584 | 1168 | deflated |

B-SPLINE.PAS | 2903 | 1333 | deflated |

BEEPER.PAS | 2389 | 1139 | deflated |

BGISAVE.PAS | 2797 | 1063 | deflated |

BITMASKS.TXT | 4194 | 1206 | deflated |

BLANKIT.PAS | 2161 | 973 | deflated |

BOOTRES.PAS | 4169 | 1576 | deflated |

BOOTVARS.PAS | 1394 | 496 | deflated |

CAPTURE.PAS | 1899 | 908 | deflated |

CDPLAY.PAS | 4723 | 1651 | deflated |

CIRCLE.PAS | 3758 | 1606 | deflated |

COLDBOOT.PAS | 552 | 290 | deflated |

COPYIT.PAS | 2169 | 872 | deflated |

CSTR.PAS | 3622 | 1386 | deflated |

CSTRTEST.PAS | 844 | 427 | deflated |

DETADLIB.PAS | 1644 | 642 | deflated |

DIGITAL.PAS | 15972 | 3691 | deflated |

DIGITEST.PAS | 7263 | 1762 | deflated |

DSWRITE.PAS | 4029 | 1708 | deflated |

DUMPFILE.PAS | 2675 | 1081 | deflated |

DVWRITE.PAS | 1369 | 746 | deflated |

EASYFOS.PAS | 18276 | 5331 | deflated |

ELLIPSE.PAS | 1660 | 777 | deflated |

EMS-XMS.PAS | 1831 | 824 | deflated |

EMSSTUFF.PAS | 3390 | 1160 | deflated |

ENDECODE.PAS | 1932 | 893 | deflated |

EXEEND.PAS | 2294 | 963 | deflated |

EXEGIF.PAS | 3409 | 1410 | deflated |

FACTORS.PAS | 1076 | 566 | deflated |

FADEOUT.PAS | 2242 | 879 | deflated |

FASTVGA.PAS | 1459 | 674 | deflated |

FEXISTS.PAS | 1933 | 938 | deflated |

FILEMODE.TXT | 3640 | 1410 | deflated |

FINDSUBR.PAS | 3004 | 1214 | deflated |

FOSSIL.PAS | 4278 | 1396 | deflated |

FSTPRIME.PAS | 3742 | 998 | deflated |

FSTUPPER.PAS | 3128 | 1211 | deflated |

FSTWRITE.PAS | 2784 | 1216 | deflated |

GETLEGS.PAS | 1438 | 683 | deflated |

GRAPHPRC.PAS | 4917 | 1598 | deflated |

HEAPHELP.PAS | 2748 | 1084 | deflated |

HIDECURS.PAS | 689 | 339 | deflated |

IO.PAS | 13393 | 3250 | deflated |

MAKETDRW.PAS | 1041 | 585 | deflated |

MCGA-ROT.PAS | 3182 | 1226 | deflated |

MOVEFILE.PAS | 6744 | 1897 | deflated |

MYSHARE.PAS | 3313 | 1141 | deflated |

NEWBTMAP.PAS | 2201 | 1059 | deflated |

NEWVARS.PAS | 1784 | 761 | deflated |

NOBOOT.PAS | 2003 | 913 | deflated |

NOPAUSE.PAS | 2203 | 945 | deflated |

PAS_0693.LST | 5452 | 2045 | deflated |

PRIMES.PAS | 1564 | 712 | deflated |

PRIMES.TXT | 942 | 441 | deflated |

PROCFIND.PAS | 1408 | 657 | deflated |

RANDOM.PAS | 2143 | 960 | deflated |

RDASCIIZ.PAS | 2806 | 1252 | deflated |

RKEYINT.TXT | 11875 | 3956 | deflated |

RSANCRPT.TXT | 1702 | 673 | deflated |

RTMSWAP.PAS | 2007 | 873 | deflated |

SB.PAS | 3942 | 1487 | deflated |

SCALCHAR.PAS | 2190 | 998 | deflated |

SCBITMAP.PAS | 1399 | 727 | deflated |

SCRNSAVE.PAS | 3057 | 997 | deflated |

SCROLL1.PAS | 1713 | 698 | deflated |

SCROLLNG.PAS | 1215 | 633 | deflated |

SFECACHE.PAS | 6526 | 1744 | deflated |

SHADOBOX.PAS | 3237 | 1267 | deflated |

SHOWTDRW.PAS | 680 | 433 | deflated |

SOUNDS.PAS | 6530 | 2224 | deflated |

SPINCURS.PAS | 812 | 421 | deflated |

STATKEYS.PAS | 3576 | 1236 | deflated |

TBUTIL.PAS | 1973 | 842 | deflated |

TCTACTOE.PAS | 4814 | 1340 | deflated |

TESTDRIV.PAS | 1348 | 558 | deflated |

TESTINT.PAS | 2931 | 1399 | deflated |

TSKSWTCH.PAS | 1789 | 797 | deflated |

TSRTEST.PAS | 2018 | 1010 | deflated |

UN_CRT.PAS | 4007 | 1753 | deflated |

UPPER1.PAS | 797 | 410 | deflated |

UPPER2.PAS | 4015 | 1439 | deflated |

UTONE.PAS | 1967 | 865 | deflated |

VGADEMO.PAS | 4309 | 1845 | deflated |

WHERE.PAS | 3238 | 1278 | deflated |

XORSUM.PAS | 1427 | 767 | deflated |

# Download File PAS_0693.ZIP Here

## Contents of the BITMASKS.TXT file

Fido Pascal Conference PASCAL

Msg : 286 of 360

From : Ruurd Pels 2:282/317.19 28 May 93 16:31

To : David Todd 1:259/423.0

Subj : Masking......

Howdy David!

On 21 May 93, David Todd wrote the following message to All:

DT> Can anybody tell me how to bitmask? Well here what I'm, doing. I am

DT> setting the Map Mask Register to plane 0, and writing all the data needed

DT> for plane 0 to the screen with a Movsb, samething with plane 1, and so on.

DT> Now I want to mask out any pixels that are 0 on the palette. How would I go

DT> about doing that? Do I have to do a compare for each pixel to make sure

DT> it's not a 0, before I write it or what? Well thanks to anybody who can

DT> help me...

================= S T A R T O F L E C T U R E ========================

A lecture on Boolean Algebra. Just look at bit 3, counting from 0

from the left.

==============================AND=========================================

Before : 01101110 bit 3 is ON

Mask : 00001000

---------AND

Result : 00001000 equals mask if bit 3 is ON

========

So for ANDing bits, the truth table for each bit is:

AND | 0 | 1

------+--------+--------

0 | 0 | 0

------+--------+--------

1 | 0 | 1

Read this table as:

0 AND 0 equals 0

0 AND 1 equals 0

1 AND 0 equals 0

1 AND 1 equals 1

Use: To check if a bit is set.

============================OR============================================

Before : 01100110 bit 3 is OFF

Mask : 00001000

---------OR

Result : 01101110 bit 3 is ON

========

So you switched the bit ON, regardless of its state, without

affecting the other bits. For each bit, the truth table for each bit is:

OR | 0 | 1

------+--------+--------

0 | 0 | 1

------+--------+--------

1 | 1 | 1

Use: To switch a bit on regardless of its prior state.

====================================XOR===================================

Before : 01101110 bit 3 is on

Mask : 00001000

---------XOR

Result : 01100110 bit 3 is off

Mask : 00001000

---------XOR

Result : 01101110 bit 3 is on again

========

So for XORing bits, the truth table for each bit is:

XOR | 0 | 1

------+--------+--------

0 | 0 | 1

------+--------+--------

1 | 1 | 0

Use: To toggle a bit regardless of its state

===============================NOT========================================

The effect of NOTing is inverting each bit in a variable.

Truth table:

NOT(1) --> 0

NOT(0) --> 1

So if you NOT the mask, you get:

NOT(00001000) --> 11110111

So if you want to switch a bit off, regardless of state, you do this:

Before : 01101110 bit 3 is ON}

Mask : NOT(00001000) --> 11110111

---------AND

Result 01100110 bit 3 is OFF

========

===============================NOT========================================

Keep in mind that all operators are binary, except for NOT, which is unary.

=================== E N D O F L E C T U R E ==========================

By substituting a different value for the mask, you may manipulate more than

one bit at the same time.

Grtz, RFP 😉

--- FMail 0.94

* Origin: Mail Munger (2:282/317.19)

Msg : 286 of 360

From : Ruurd Pels 2:282/317.19 28 May 93 16:31

To : David Todd 1:259/423.0

Subj : Masking......

Howdy David!

On 21 May 93, David Todd wrote the following message to All:

DT> Can anybody tell me how to bitmask? Well here what I'm, doing. I am

DT> setting the Map Mask Register to plane 0, and writing all the data needed

DT> for plane 0 to the screen with a Movsb, samething with plane 1, and so on.

DT> Now I want to mask out any pixels that are 0 on the palette. How would I go

DT> about doing that? Do I have to do a compare for each pixel to make sure

DT> it's not a 0, before I write it or what? Well thanks to anybody who can

DT> help me...

================= S T A R T O F L E C T U R E ========================

A lecture on Boolean Algebra. Just look at bit 3, counting from 0

from the left.

==============================AND=========================================

Before : 01101110 bit 3 is ON

Mask : 00001000

---------AND

Result : 00001000 equals mask if bit 3 is ON

========

So for ANDing bits, the truth table for each bit is:

AND | 0 | 1

------+--------+--------

0 | 0 | 0

------+--------+--------

1 | 0 | 1

Read this table as:

0 AND 0 equals 0

0 AND 1 equals 0

1 AND 0 equals 0

1 AND 1 equals 1

Use: To check if a bit is set.

============================OR============================================

Before : 01100110 bit 3 is OFF

Mask : 00001000

---------OR

Result : 01101110 bit 3 is ON

========

So you switched the bit ON, regardless of its state, without

affecting the other bits. For each bit, the truth table for each bit is:

OR | 0 | 1

------+--------+--------

0 | 0 | 1

------+--------+--------

1 | 1 | 1

Use: To switch a bit on regardless of its prior state.

====================================XOR===================================

Before : 01101110 bit 3 is on

Mask : 00001000

---------XOR

Result : 01100110 bit 3 is off

Mask : 00001000

---------XOR

Result : 01101110 bit 3 is on again

========

So for XORing bits, the truth table for each bit is:

XOR | 0 | 1

------+--------+--------

0 | 0 | 1

------+--------+--------

1 | 1 | 0

Use: To toggle a bit regardless of its state

===============================NOT========================================

The effect of NOTing is inverting each bit in a variable.

Truth table:

NOT(1) --> 0

NOT(0) --> 1

So if you NOT the mask, you get:

NOT(00001000) --> 11110111

So if you want to switch a bit off, regardless of state, you do this:

Before : 01101110 bit 3 is ON}

Mask : NOT(00001000) --> 11110111

---------AND

Result 01100110 bit 3 is OFF

========

===============================NOT========================================

Keep in mind that all operators are binary, except for NOT, which is unary.

=================== E N D O F L E C T U R E ==========================

By substituting a different value for the mask, you may manipulate more than

one bit at the same time.

Grtz, RFP 😉

--- FMail 0.94

* Origin: Mail Munger (2:282/317.19)

December 6, 2017
Add comments