4cbe7c1e2312bd08709996bce798b1bfd081fe4f
[qbasicapps.git] / networking / lpt2com.bas
1 ' RS232 signal emulator, send data from LPT to COM\r
2 ' made by Svjatoslav Agejenko\r
3 ' in 2002\r
4 ' H-Page: svjatoslav.eu\r
5 ' E-Mail: svjatoslavagejenko@gmail.com\r
6  \r
7 DEFINT A-Z\r
8 DECLARE SUB send (char$)\r
9 DIM SHARED prt\r
10 prt = &H378 ' LPT port\r
11 \r
12 PRINT "Svjatoslav Agejenko: n0@hot.ee"\r
13 PRINT "I used it to send characters from PC LPT port to"\r
14 PRINT "SUN Sparc Station COM port. So it simulates RS232 signals."\r
15 PRINT "Sends characters recieved from keyboard."\r
16 PRINT "uses wires: ground, pin 3"\r
17 PRINT "ESC to exit"\r
18 \r
19 1\r
20 a$ = INPUT$(1)\r
21 IF a$ = CHR$(27) THEN SYSTEM\r
22 PRINT a$;\r
23 send a$\r
24 GOTO 1\r
25 \r
26 SUB send (char$)\r
27 \r
28 a = ASC(char$)\r
29 \r
30 DIM bit(0 TO 8)\r
31 bit(0) = 0\r
32 bit(8) = 0\r
33 \r
34 b = 64\r
35 c = 7\r
36 2\r
37 IF a >= b THEN bit(c) = 1: a = a - b ELSE bit(c) = 0\r
38 b = b / 2\r
39 c = c - 1\r
40 IF c <> 0 GOTO 2\r
41 \r
42 FOR a = 0 TO 8\r
43 IF bit(a) = 0 THEN b = 255 ELSE b = 0\r
44 FOR c = 0 TO 9 ' NB!!! you pobably need to adjust this (9) value depending on\r
45 OUT prt, b     ' your system and QBasic interpreter speed. Also depends\r
46                ' on bitrate 2400 or 9600 etc... Timing must be\r
47 NEXT c         ' exact ! this setting works for my 486 DX2 40 MHz, QB 4.5   \r
48 NEXT a\r
49 \r
50 OUT prt, 0\r
51 \r
52 \r
53 END SUB\r
54 \r