🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15797

Re: Statusport byte naar bits converteren.

#15797
From: RedX
Date: Thu, 17 Aug 2000 00:00
41 lines
2437 bytes
'K zal dat eens proberen. maar ik denk niet dat dit hiervoor gaat werken.
De statusport geeft een rare byte.

RedX


Jan Van den Bergh <janv@cs.kuleuven.ac.be> schreef in berichtnieuws
966495179.238356@marvin...
> 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: <8nhbp6$ket$1@news.planetinternet.be>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <8nekll$iv2$1@news.planetinternet.be> <966495179.238356@marvin>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,a3337484a0f4caf0
X-Google-Attributes: gidfcea4,public
From: "RedX" <RedX@mail.dma.be>
Subject: Re: Statusport byte naar bits converteren.
Date: 2000/08/17
Message-ID: <8nhbp6$ket$1@news.planetinternet.be>
X-Deja-AN: 659436848
References: <8nekll$iv2$1@news.planetinternet.be> <966495179.238356@marvin>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
X-Complaints-To: abuse@planetinternet.be
X-Trace: news.planetinternet.be 966537830 20957 212.239.129.254 (17 Aug 2000 18:43:50 GMT)
Organization: Planet Internet NV
X-MSMail-Priority: Normal
NNTP-Posting-Date: 17 Aug 2000 18:43:50 GMT
Newsgroups: be.comp.programming