Serieporten och *host* Quick Basic

Permalänk

Serieporten och *host* Quick Basic

Jag skulle vilja läsa av pinnstatusen för DCD, DSR, CTS och RI i en serieport mha Quick Basic. Det är på en DOS/W95-maskin.
Jag har inte hittat någon information om man kan göra det, och isf hur.
Det vore även bra om jag kunde sätta statusen på pinnarna för DTR och RTS.

Parallellporten är ju enkel att ha att göra med, med kommandona OUT och INP. Frågan är hur det är med serieportarna...

Någon som vet?

Visa signatur

"I've got a plan so cunning, you could put a tail on it and call it a weasel!" - Edmund Blackadder
"Det man inte har, och inte får, det TAR man!" - Vargen
The Mad Modders - bygger och moddar :: Sysinfo - info om mina datorer :: Res till Poros

Permalänk
Medlem

Tror det var under förra istiden jag gjorde nått sånt men troligen är det nått sånt här

OPEN "COM1:9600,n,8,1,CS,DS,RS" AS#1 input och print blabla CLOSE #1

Behöver du mera info?

Visa signatur
Permalänk

Nej alltså inte så, det där kan jag. Med det där bara skickar man och tar emot data på rxd och txd, och de andra pinnarna jobbar som de ska med handskakningen, utan att man kan göra något.

Jag vill läsa av pinnarna en och en, om de är höga eller låga, utan att skicka eller så på rxd och txd.

Visa signatur

"I've got a plan so cunning, you could put a tail on it and call it a weasel!" - Edmund Blackadder
"Det man inte har, och inte får, det TAR man!" - Vargen
The Mad Modders - bygger och moddar :: Sysinfo - info om mina datorer :: Res till Poros

Permalänk
Medlem

Hmm ok men det är väll lika som med parallelporten om jag fattar den här sidan rätt. http://www.techlib.com/electronics/serialport.htm

Here is how the hardware works:

The serial port (com port) on your computer may be used as an abbreviated parallel port with three pins dedicated to output (pins 3,4 and 7) and four pins to input (pins 1,6,8 and 9). Pin 5 is ground and pin 2 is a serial pin that is not used. These pins are bipolar in nature, with current-limited swings as high as +-12 volts with the negative voltage indicating a logic low. Each com port has an 8 byte Input/Output address range that may be determined by looking at the properties of the com port under the system properties tab of the control panel. Com1 data range is 03F8 to 03FF, for example:

Bit Values
128 - 64 - 32 - 16 - 8 - 4 - 2 - 1

03F8 03F9 03FA 03FB 03FC 03FD 03FE 03FF
x x x x x x x x x x x x x x x x x x x x x x x x x 3 x x x x x x x x x x x x x x 7 4 x x x x x x x x 1 9 6 8 x x x x x x x x x x x x

We are only interested in 7 of the bits (in red); the bits for the three output pins and four input pins. The red numbers in the above chart represent the serial port 9-pin connector pin numbers. The data in the '64' bit of 03FB sets pin 3, the '1' and '2' bit of 03FC set pins 4 and 7, and the four MSBs of 03FE contain the four inputs from pins 8,6,9 and 1. Using the outputs is quite simple: set an output bit high and the pin goes high. Just read the four input bits to directly determine the logic levels on the input pins. A simple way to get access to these registers is to use the IN and OUT commands in Qbasic. Just remember that each bit has a value determined by its position in the byte. For example, to set pin 3 high, you would output a 64 to 03FB and to read pin 6 you would look for a 32 in the hex value in 03FE ( '32 AND 03FE' will evaluate as either 32 or 0 depending on whether that bit is a 1 or 0). You could set both pins 4 and 7 high by outputting a 3 into 03FC since 3 is '11' in binary. The output bytes may be read back with the IN command to verify that the output data is correct.

Visa signatur
Permalänk

Intressant... Då var det som jag hade hoppats. Tack för det

[edit]
Dock så har jag andra problem.
Jag kan absolut inte öppna någon com-port för att skicka data via rs232. Inte ta emot heller. Antingen får jag device timeout, eller också device not available.
I prompten kan jag inte skriva t.ex
ECHO HEJ >COM1

Då får jag skrivfel på enhetet COM1.
tvåan är det likadant på.
jag kan däremot sätta MODE hur jag vill på båda portarna.
Vad är det jag glömt/inte tänker på?

Aha... den väntar på alla jäkla handskakningssignaler. Hmm...

[edit]
Oh yes! På sidan "10 commonly asked questions about Quick Basic" Så var nummer 4 om problem med COM-portar. Hehe. Satte alla handskakningstimings till noll så gick det ju bra sen

Visa signatur

"I've got a plan so cunning, you could put a tail on it and call it a weasel!" - Edmund Blackadder
"Det man inte har, och inte får, det TAR man!" - Vargen
The Mad Modders - bygger och moddar :: Sysinfo - info om mina datorer :: Res till Poros

Permalänk
Medlem
Permalänk
Hedersmedlem

Låt gamla trådar vila.

*tråd låst*

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.