🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15786

Re: Statusport byte naar bits converteren.

#15786
From: Jan Van den Bergh
Date: Thu, 17 Aug 2000 07:53
32 lines
2451 bytes
In article <8nekll$iv2$1@news.planetinternet.be>, "RedX"
<RedX@mail.dma.be> wrote:
> Ik zit al een tijd met dit probleem. ik lees een byte in van de
> Statuspoort van LPT1 ( C: byte = inp(poortadres);    Pascal: byte :=
> port[poortadres];)
>  maar deze heeft andere waarden dan een byte ingelezen van een andere
>  poort:
> Er worden maar 5 bits gebruikt: 8,16,32,64 en 128. bits 8,16,32 en 64
> zijn geinverteerd: ze hebben een waarde van -8, -16, -32 en -64. bit 128
> is normaal. daarbij wordt er ook nog 127 bij de waarde van de byte
> geteld. Tot nu toe heb ik alle de 4 geinverteerde bits kunnen "losmaken"
> van de byte. als ik de 5de probeer geeft dit verkeerde resultaten. Het
> algoritme dat ik hiervoor gebruik is: (in pseudo-code)
> 
> lees BYTE BYTE - 127 absolute waarde van BYTE BIT1 = (BYTE en 8) / 8
> BIT2 = (BYTE en 16) / 16 BIT3 = (BYTE en 32) / 32 BIT4 = (BYTE en 64) /
> 64 BIT5 = (BYTE en 128) / 128
> 
> Dit werkt correct maar als ik een bit5 een 1 zou krijgen, geeft dit
> verkeerde waarden. Weet iemand een betere manier hiervoor? Op deze
> manier kan ik maar 4 bits invoer gebruiken op LPT1.

Een goede manier om te kijken of een  bit 1 is, is (in C):

bit = (byte & (1 << bitnr)) != 0;

Als je wil weten of de bit 0 is, vervang dan != door ==.

(Voor de conversie naar Pascal: & is "bitsgewijze AND", << is "shift
left", != is "verschillend van", == is "is gelijk aan".)

Jan.
Technical Details
Message-ID: <966495179.238356@marvin>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!newscon01.news.prodigy.com!prodigy.com!newsfeed.cwix.com!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!umbra!janv
References: <8nekll$iv2$1@news.planetinternet.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,a3337484a0f4caf0
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2000-08-16 23:53:08 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!newscon01.news.prodigy.com!prodigy.com!newsfeed.cwix.com!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!umbra!janv
From: "Jan Van den Bergh" <janv@cs.kuleuven.ac.be>
Newsgroups: be.comp.programming
Subject: Re: Statusport byte naar bits converteren.
Date: Thu, 17 Aug 2000 08:53:02 +0100
Organization: KULeuvenNet
Lines: 33
Message-ID: <966495179.238356@marvin>
References: <8nekll$iv2$1@news.planetinternet.be>
NNTP-Posting-Host: marvin.kulnet.kuleuven.ac.be
X-Trace: naxos.belnet.be 966495179 13380 134.58.127.3 (17 Aug 2000 06:52:59 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: Thu, 17 Aug 2000 06:52:59 +0000 (UTC)
X-Newsreader: Pan 0.8.0
Cache-Post-Path: marvin!unknown@umbra.cs.kuleuven.ac.be
X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/)