From
Dmitriy Nesmachny
→
To
All
7 February 2003
Hello All!
Has anyone tried to connect PC-Spec via com?
There are specific questions:
The literature states that 1/0 in com'nik is represented by -10/+10, in one
I saw -5/+5 from the programmer connection diagrams on com. Which is correct?
How much will such a canoe consume? You can do without using
additional rectifier bridges at -5/-12 volts by using pure
electronic conversion circuits, and if possible, then how exactly (circuit)?
I heard out of the blue that when Alexander Mayorov connected Spec via LPT,
he made decoupling using optocouplers. How exactly is this done?
Thanks in advance.
Best regards, Dmitriy.
From
Aleksandr Majorov
→
To
Dmitriy Nesmachny
11 February 2003
Hello Dmitriy!
07 Feb 03 09:00, Dmitriy Nesmachny -> All:
[skipped]
DN> Has anyone tried to connect PC-Spec via com'y?
This is a question IMHO for FK0.
DN> There are specific questions:
DN> In the literature it is stated that 1/0 is represented in com'nik
DN> -10/+10, I saw in one of the programmer connection diagrams via com
DN> -5/+5. Which is correct?
Well, where does +/-10 come from on the computer?
There are only +/-5 and +/-12
In the COM port (if not glitchy) the signals are normal, TTL-level.
That is, roughly speaking, 0 ... +5
But RS-232 is just oppositely polar -5 ... +5
DN> How much will such a canoe consume?
Depends on the receiver/transmitter circuit and line length
[skipped]
DN> Out of the corner of my ear I heard that when
DN> Alexander Mayorov connected Spec through LPT, he made connections on
DN> optocouplers. How exactly is this done?
It is done using optocouplers! ;-)
╒═════════════════════════ Home ZX-LINK.HLP ═════════════════════════╕
area / SPBZXNET.GENERAL
from / Aleksandr Majorov
to / All
subj / ZX <-> PC link
date/01-03-99
time / 18:04:53
Hayushki, All!
Actually, the subject worked out.
File flies here/here.
The total file transfer time is 255 seconds(including issuing the command and writing to disk) is:
Computers:
Turbocharged yellow scorpion in turbo mode and stump-166
On Speck I used either access #3D13, Fast-loader or RAM-disk
PC ==> ZX
Normal 44 sec. = 5.8 sectors per second, CPS=1485, BPS=11880
Fast 41 sec. = 6.2 sectors per second, CPS=1587, BPS=12696
RAM-disk 35 sec. = 7.3 sectors per second, CPS=1869, BPS=14952
ZX ==> PC
Normal 41 sec. = 6.2 sectors per second, CPS=1587, BPS=12696
Fast 36 sec. = 7.1 sectors per second, CPS=1817, BPS=14536
RAM-disk 29 sec. = 8.8 sectors per second, CPS=2253, BPS=18024
connection diagram:
I connected via optocouplers, whoever doesn’t want to can
Connect directly at your own risk :-)
However, switching on without galvanic isolation
works fine.
ZX PC
(system connector) (LPT 25-pin)
Centr0 (18B) ─────────>──────────────── Error (15)
Centr1 (17A) ─────────>──────────────── Paper Out (12)
Kempj0 (12B) ─────────<──────────────── Data0 (2)
Kempj1 (12A) ─────────<──────────────── Data1 (3)
On the scorpion you need to make a small modification:
according to the Kempston joystick input diagram, they are pulled to the ground
resistors somewhere in the range of 100...510 Ohms.
These resistors need to be replaced with 3...10 KOhm.
Moreover, this will not affect the operation of the Kempston joystick!
(if someone needs it ;-)Galvanic isolation diagram:
ZX ┌───────┐ PC
│3 │
1┌─┴─┐ │
Centr0 ────▓▓▓▓──┤ │8 │
│ ├────────── Error
┌───────┤ │ │
│ 2└─┬─┘ ├──── +5
│ │7 │
│ └─────┐ │
│ ┌───────┘
│ │3 ├────── GND
│ 1┌─┴─┐ │
Centr1 ────▓▓▓▓──┤ │8 │
│ │ ├────────── Paper Out
└──┬────┤ │ │
│ 2└─┬─┘ │
│ │7 │
│ └─────┤
│ │
+5 ───────┬────┐3 │
│ │ ┌─┴─┐1 │
│ │ 8│ ├──────▓▓▓▓── Data0
Kempj0 ──────────┤ │2 │
│ │ │ ├───┤
│ │ └─┬─┘ │
GND ─────┼──────┘7 │
│ │ │
│ └────┐3 │
│ ┌─┴─┐1 │
│ 8│ ├──────▓▓▓▓── Data1
Kempj1 ──────────┤ │2 │
│ │ ├───┘
│ └─┬─┘
└──────┘7
Mikrykhi - 262KP1A or similar optical keys
with amplifiers, 300 ohm outputs.
Obviously, you can make a denouement completely differently,
it is possible not to make a decoupling at all, if someone
I want...
Port addresses:
ZX PC
output: #DD input: #379
bit0 ───────>─────── bit3
bit1 ───────>─────── bit5input: #1F output: #378
bit0 ───────<─────── bit0
bit1 ───────<─────── bit1
#379 - LPT-1 Printer status register
#378 - LPT-1 Data Register
*****************************************************************
Management
This version of zx-link works _only_ paired with
Spectrum terminal MMD version 2.20 and higher,
4.00 and above.
After starting zx-link it goes into standby mode
data or commands. From Speck's side, you can simply transmit
files, and they will be accepted into the current directory.
Everything else is organized at the level of control commands.
If you call zx-link with the key "/?" then a short one will be displayed
hint on control from the command line.
Command format on the command line:
/
There can be several commands on the command line,
separated by a space, they will be executed in the specified
sequences.
====================== HELP 1 ========================
/?1 /?2 /?2 first / second / third help page
/Q finish work
/I transmit system information
/H0 /H1 reset/set the reception flag in HOBETA format
/K0 /K1 reset/set the 'delete transferred files' flag
/E0 /E1 reset/set the 'show keys pressed' flag
/R= execute DOS command
/C= change the current directory. Please indicate the path in full!/V transfer the contents of the current directory as a file
/O= transfer files by mask
/F= Mark files by mask and transfer them using the MMD command
/S= pass lines
/D0...4 change disk to MMD
/W0...255 set end timer
/M= connect disk image for remote access
====================== HELP 2 ========================
/?1 /?2 /?2 first / second / third help page
Command line: / / ...
Remote control: Instead of the "/" symbol, the "." symbol is used. (21)
Several commands can be transmitted by a macro at the same time.
Each command must end with a SPACE or LINE FEED character.
Working with a disk image:
Remote sector read:
Request accepted: #0A, 'r
From
rNd
→
To
Dmitriy Nesmachny
11 February 2003
Hello Dmitriy!
I am responding to your letter dated 02/07/03, then Dmitriy Nesmachny wrote
to All, and then it was 9:00:00.
DN> The literature states that 1/0 in com'nik is represented by -10/+10, in
DN> I saw one of the schemes for connecting the programmer via com -5/+5. How
according to the standard (I read it in a book) the sensitivity threshold is +/-3v
DN> right? How much will such a canoe consume? You can do without
DN> the use of additional rectifier bridges at -5/-12 volts
DN> the use of purely electronic conversion circuits, and if possible, how
KP580VV51 (USAPP) power supply 5v
Bay W.B.R.
rNd
[Team: X-Tension] [FREE]
From
Kirill Frolov
→
To
Dmitriy Nesmachny
12 February 2003
Press RESET immediately, Dmitriy!
26 Nov 02 21:11, Yuri Potapov wrote to Kirill Frolov:
YP> in this case I have this idea
YP> on one side there is a green ZS Scorpion, there is no confusion
YP> on the other hand, not a very sophisticated PC running Linux
YP> most likely, the PC will have a CD, 1.44 drive, screw, modem
YP> but in general it should act as a server from/where I will be
YP> download
YP> files
YP> modem emulation is not needed
YP> much of what I will transmit should go as commands
YP>console
YP> the spec will have to play the role of a client, including how I do
YP> explained that it is possible to surf the Internet via Linux using
YP> regular terminal
That is, you need either a network (telnet, ssh...), which does not exist, or a connection
via serial port (Spectrum terminal emulation). Usually remote
control of a machine via a unix terminal is only possible via a network or
serial interface (modem).
YP> and this will already be more promising than trying to write in Spec now YP> browser and tcp/ip and so on
Well, it’s for such purposes, IMHO, that you need to write. Only with a view to
using the resources of a pussy that is not in the next room, but accessible
via the Internet. For example, try telneting cyberspace.org - you can get
account on a machine running SunOS and use it to access other
network information resources.
There is no network on the Spectrum yet, well, at least there is definitely no telnet there.
Therefore, there are two options left for you: ZX <- serial interface -> PC.
The role of a “serial interface” can be either a cable or a pair
modems.
If you already have an ISA modem installed on your Spectrum, then just connect
you will receive a multicard from the PC and you will receive a serial port. If you need
parallel and modem, or do you need several serial ports then
you will have to think about upgrading the modem connection circuit. If the modem is on
Spectrum is not available, that is, there are 2 options: through a multicard (for example, by
Kondratiev scheme) and through software emulation of asynchronous
Spectrum serial interface. In case of software emulation it is not necessary
The piss multicard is already in short supply.
The "minimal" null modem cable for connecting two computers contains
just three wires:
ZX PC
----------------- -----------------signal DB9S DB25S signal DB9S DB25S
TD 3 2 <----------> RD 2 3
RD 2 3 <-----------> TD 3 2
GROUND 5 7 <-----------> GROUND 5 7
Columns DB9S and DB25S indicate the pin numbers on the corresponding
connectors.
There are several standard connectors for this interface, and most
popular ones are DB9S and DB25S (the letter S means Socket, that is, a socket. This
connectors with “holes” on the cable and with “pins” on the computer). In modern
IBM PC computers usually use DB9.
The minimum cable version has some disadvantages, in particular it
provides only software flow control, which is completely unsuitable for
use in the case of software emulation of a serial interface on
Spectrum (Spectrum can only receive data in a port polling cycle, but when
in the absence of other signal wires, he cannot in any way communicate to another
whether the computer is ready to receive it or not). In case of hardware implementation
interface on the Spectrum, the use of a 3-wire cable is also undesirable,
since it is difficult for Spectrum with its slowness to guarantee timely
extracting received data from the receiver buffer. Mentioned disadvantage
There is no 3-wire cable in the 4-wire or 5-wire interface, where
hardware flow control is used:
ZX PC----------------- -----------------
signal DB9S DB25S signal DB9S DB25S
TD 3 2 <----------> RD 2 3
RD 2 3 <-----------> TD 3 2
RTS 7 4 <-----------> CTS 8 5
* CTS 8 5 <--(*)------> * RTS 7 4
GROUND 5 7 <-----------> GROUND 5 7
The signal marked with an asterisk '*' in the case of a 4-wire interface may not be
be used, but its non-use is undesirable: this signal provides
protection against overflow of the receiver buffer in the PC, just like a signal does
RTS for Spectrum.
5-wire interface provides a complete full-duplex transmission channel
information with hardware flow control. But if it is necessary to transmit
some control information outside the transmission channel, for example
ready/unready, reset/handshake, as often used in
modems, then you need a full-fledged interface consisting of 9 wires:
ZX PC
----------------- -----------------
signal DB9S DB25S signal DB9S DB25S
TD 3 2 <----------> RD 2 3
RD 2 3 <-----------> TD 3 2
RTS 7 4 <-----------> CTS 8 5
CTS 8 5 <-----------> RTS 7 4
DTR 4 20 <--------+--> DSR 6 6DSR 6 6 <--+-----)--> DTR 4 20
* DCD 1 8 <--+ +--> DCD 1 8
* RI 9 22 RI 9 22
GROUND 5 7 <-----------> GROUND 5 7
Signals marked with asterisks ('*') RI and DCD are used only in modems.
RI is an input at the terminal (computer) indicating the arrival of a call, DCD
signals the establishment of communication (presence of carrier). In this case, RI is not
is used, and the DCD is connected to the DTR signal from the remote side, which
provides "carrier appearance" when signaling the readiness of the remote side.
This was the wiring of a full-fledged null modem cable. She doesn't
coincides with the wiring of a regular modem cable!
In your case, I would use a 5-wire interface. As
cable, if it is impossible to get it ready-made, it is better to take a modem cable and
make a special adapter. I do not recommend making a cable
yourself, it’s better to take a ready-made one.
In a modem cable, all signals are connected one to one, and in a null modem
reception and transmission signals, RTS-CTS, DTR-DSR are swapped. Below is
complete pinout of the serial interface. There are several standards
here we mean the RS-232C interface, used in most
personal computers.
Designation Connector contact Direction
RS232 DB9 DB25 outputPG - 1 - protective ground
(protect ground)
TD 3 2 output data transmission
(transmit data)
RD 2 3 input data reception
(receive data)
RTS 7 4 output request transfer
(request to send) data
CTS 8 5 input ready for
(clear to send) data reception
DSR 6 6 input ready
(data set ready) devices
data transmission
SG 5 7 - signal
(signal ground) common wire
DCD 1 8 input detection
(data carrier detected) carrier
DTR 4 20 output ready
(data terminal ready) terminal
RI 9 22 input bell
(ring indicator)
Historically, although it no longer makes much sense,
that all devices using the RS-232C interface are divided into 2 types: devices
data transmission (DCE == Data Connection Equipment, e.g. modems) and final
equipment, terminals (DTE == Data Terminal Equipment, for example, whenWhen connecting a modem to a computer, the computer plays the role of a terminal). In fact
both devices are equivalent, but from this division they are designated differently
signals: DTR or DSR, RTS or CTS... and there is a little confusion. So here it is
the above table refers to DTE devices, that is, terminals
(computers). The pin numbers for DTE devices are correct, but for DCE
devices (modems) must be swapped TD and RD, CTS and RTS, DSR and DTR.
Hence, by the way, the difference between “straight” modem cables and “twisted” ones
null modem. And besides, in the table above there are only
signals used in the IBM-PC and most other computers. Full version
interface defines a larger number of signals on the DB25 connector.
When connecting an ISA multicard from an IBM-PC computer, problems may arise.
problems with connecting the remote connector cable ("miscarriage") to the multicard.
The fact is that there are several different options for pinout of contacts on
multimap. Here are the main ones:
Contact on the multicard Contact on the connector
Var.1 Var.2 Var.3 Var.4 DB9 DB25
(10) (10) (10) 1 - 1
3 5 3 3 3 2
2 3 4 5 2 3
7 4 8 7 7 4
8 6 7 9 8 5
6 2 9 11 6 6
5 9 1 13 5 71 1 5 15 1 8
4 7 2 14 4 20
9 8 6 18 9 22
Version 1 8-bit multicard loop
Ver.2 loop of 16-bit multicards
Version 3 cable for ports integrated on the motherboard
Version 4 wide cable to 25-pin connector
From
Kirill Frolov
→
To
Dmitriy Nesmachny
12 February 2003
Press RESET immediately, Dmitriy!
From everything written about how a multicard is connected, for example, by
Kondratiev's scheme should already be clear. Naturally, the ISA slot should
3 voltages are supplied: -12 volts, +12 volts, and +5 volts. Herself
The Kondratiev diagram for connecting an ISA modem (multi-card) to the Spectrum is here:
Original Kondratieff adapter circuit for connection
internal modem.
DD1
__ +---+
RD -----------------+1 | _____
| +------- IORD# (modem)
+---+ |
DD1 | +---+
+---+ |
A4 ----+1 | |
____ | +----+
IORQ --+ | |
+---+ | DD1
| +---+
+---+1 | _____
__ | +---+-- IOWR# (modem)
WR -----------------+ | |
+---+ |
|
+--------------------+
|
| DD2
| +--------+
+5v - | ---o R |
| | Q +-----+
+----/ C | |
| | |
A11 --------> D_ | |
_____ | Q O-- |
RESET --+---o S | |
| +--------+ |
| |
| DD3 |
| +---+ |
| |1 | |+----+ O--------------- RESET (modem)
| | |
+---+ |
|
|
|
| DD1
DD3 | +---+
+---+ +--+1 | ---
|1 | | +------ NMI
(modem) IRQ4 ----+ O---------+ |
| | +---+
+---+
A8 ------------------- A0 (modem)
A9 ------------------- A1 (modem)
A10 ------------------- A2 (modem)
D0..D7 ---------------- D0..D7 (modem)
+5v -------------------- A3..A10 (modem)
GND -------------------- AEN (modem)
List of elements:
DD1 1533LL1
DD2 1533TM2
DD3 1533ЛH1
Signals marked in brackets "(modem)" are connected to
corresponding pins of the ISA slot for the modem, the rest
the signals are connected directly to the computer bus.
Accessing modem registers via ports
The modem registers are accessible through the microprocessor I/O ports.
The address is calculated like this:
0xF0EF + (0x0800 if NMI interrupts are disabled) + (register_address*0x100)
The interrupt enable trigger from the modem switches only when
output to the modem ports.
NOTE: Instead of non-maskable (NMI), you can use maskable(INT) interrupt. Not all programs support this yet, but THIS IS MORE
CORRECT DECISION. THE USE OF NMI CAN POTENTIALLY RESULT IN
STACK OVERFLOW AND DISRUPTION OF NORMAL OPERATION OF PROGRAMS.
Just in case, I’m also bringing a modified one (so that it doesn’t work with the 7FFD port).
conflicted) Shepelev’s scheme:
Modified Shepelevsky scheme, supported in the Melon program.
D0..D7 ----------------------- D0..D7 (modem)
A8 -------------------------- A0 (modem)
A9 -------------------------- A1 (modem)
A10 -------------------------- A2 (modem)
A11 -------------------------- A3 (modem)
A12 -------------------------- A8 (modem)
A13 -------------------------- A9 (modem)
+5v ---------------------- A4 (modem)
+5v ---------------------- A5 (modem)
GND ----------------------- AEN (modem)
+---+
A14 --------+ 1 |
| +---+
A15-------+ | |
+---+ |
DD1.1 | +---+
+--+ 1 |
| o----+---- A7 (modem)
A6---------------------+ | |
+---+ +---- A6 (modem)
DD2.1
____ +---+
IORQ ----+---+ 1 |
__ | | +----------- IORD# (modem)
RD -----(---+ |
| +---+
| DD1.2| +---+
+---+ 1 |
__ | +----------- IOWR# (modem)
WR ---------+ |
+---+
DD1.3
+---+
GND -----+ 1 |
_____ | o----------- RESET (modem)
RESET-------+ |
+---+
DD2.2
List of elements:
DD1 1533LL1
DD2 1533LE1
Accessing modem registers via ports
The modem registers are accessible through the microprocessor I/O ports,
The port address is calculated as follows:
0x38BF + modem_register_address
In the original, the Shepelev scheme does not have the ability to use interrupts
from the modem, but this feature can be added by connecting one of the outputs
modem interrupts via an inverter with an "open collector" output
(chip 555ЛH2) with an INT signal (maskable interrupt) on the bus
ZX-Spectrum. An NPN bipolar transistor can act as an inertor
(for example KT315) in the corresponding connection circuit.
The above schemes have some disadvantages. For example, they
most likely will not work if you connect the modem and
computer with long (>10cm) wires. The whole problem here is
excessive inductance of conductors. If the modem does not work, you can
try passing signals A8,A9,A10,IOWR and IORD through the trigger
Schmidt installed in close proximity to the ISA slot or throughresistors with a resistance of 30-50 ohms.
Pin assignments of the short (8-bit) ISA slot:
+---------+---------------+-----------------+---------+
| contact | signal | signal | contact |
+-+-----+-+---------------+-----------------+-+-----+-+
| A1 | IOCHK | GND | B1 |
+-----+-----------------+-------------------+-----+
| A2 | D7 | RESET | B2 |
+-----+-----------------+-------------------+-----+
| A3 | D6 | +5v | B3 |
+-----+-----------------+-------------------+-----+
| A4 | D5 | IRQ2/9 (*) | B4 |
+-----+-----------------+-------------------+-----+
| A5 | D4 | -5v | B5 |
+-----+-----------------+-------------------+-----+
| A6 | D3 | DRQ2 | B6 |
+-----+-----------------+-------------------+-----+
| A7 | D2 | -12v | B7 |
+-----+-----------------+-------------------+-----+
| A8 | D1 | OWS2# | B8 |
+-----+-----------------+-------------------+-----+
| A9 | D0 | +12v | B9 |
+-----+-----------------+-------------------+-----+
| A10 | IOCHDRY | GND | B10 |
+-----+-----------------+-------------------+-----+ | A11 | AEN | SmemWR# | B11 |
+-----+-----------------+-------------------+-----+
| A12 | A19 | SmemRD# | B12 |
+-----+-----------------+-------------------+-----+
| A13 | A18 | IOWR# | B13 |
+-----+-----------------+-------------------+-----+
| A14 | A17 | IORD# | B14 |
+-----+-----------------+-------------------+-----+
| A15 | A16 | DACK3# | B15 |
+-----+-----------------+-------------------+-----+
| A16 | A15 | DRQ3 | B16 |
+-----+-----------------+-------------------+-----+
| A17 | A14 | DACK1# | B17 |
+-----+-----------------+-------------------+-----+
| A18 | A13 | DRQ1 | B18 |
+-----+-----------------+-------------------+-----+
| A19 | A12 | REFR# | B19 |
+-----+-----------------+-------------------+-----+
| A20 | A11 | BClock | B20 |
+-----+-----------------+-------------------+-----+
| A21 | A10 | IRQ7 | B21 |
+-----+-----------------+-------------------+-----+
| A22 | A9 | IRQ6 | B22 |
+-----+-----------------+-------------------+-----+
| A23 | A8 | IRQ5 | B23 |
+-----+-----------------+-------------------+-----+
| A24 | A7 | IRQ4 | B24 |
+-----+-----------------+-------------------+-----+
| A25 | A6 | IRQ3 | B25 |
+-----+-----------------+-------------------+-----+
| A26 | A5 | DACK2# | B26 |
+-----+-----------------+-------------------+-----+
| A27 | A4 | TC | B27 |
+-----+-----------------+-------------------+-----+
| A28 | A3 | BALE | B28 |
+-----+-----------------+-------------------+-----+
| A29 | A2 | +5v | B29 |
+-----+-----------------+-------------------+-----+
| A30 | A1 | OSC | B30 |
+-----+-----------------+-------------------+-----+
| A31 | A0 | GND | B31 |
+-----+-----------------+-------------------+-----+
Note: some modem (multi-card) models are designed
to connect to long (16-bit)
ISA slot. You can connect them without any problems
and into a short slot when used
interrupts in the range IRQ1..IRQ7.
NOTE: Instead of the Non-Maskable Interrupt (NMI) used in
Kondratiev circuit, you can use a maskable (INT) interrupt. Not yetall programs support this, but THIS IS A MORE CORRECT SOLUTION. USE
NMI CAN POTENTIALLY RESULT IN A STACK OVERFLOW AND INTERRUPTION OF NORMAL
PROGRAM OPERATIONS.
Everything should be clear by now with connecting ISA multicards and modems. Remaining
two more options: a serial port based on i8251 (K580VV51) - if necessary
I’ll find a diagram, but there’s a lot of soldering required, and the speed is only 9600. And another option is this
software emulation of a serial interface. Everything is here in terms of soldering
much simpler, you need two software-controlled ports (you need two binary
discharge) on the output and two ports on the input. If you plan to use
interface without flow control, you can get by with one output port and one
at the entrance. But this is a very unreliable solution; it requires the use of special
data transfer protocols that guarantee error-free data transfer. Yes
Another option is using flow control only in the direction from PC to ZX
(see above, 4-wire interface), but it’s still better to use a full-fledged
5-wire interface. Let's say we already have two output ports, two ports
at the entrance. The ports are based on TTL logic, that is, they transmit binary signals with
levels from 0 to +5 volts. They must be coordinated with the RS-232C interface. Below
there is a table explaining the coding of signals in TTL logic and interface
RS-232C:
Signal TTL logic RS-232C-----------------------------------
log. 0. 0..1.5 volts +3..12 volts
log. 1. 2..5 volts -3..-12 volts
Coordination is best accomplished using specially designed
this microcircuit (imported): receiver - 1489, transmitter - 1488. There are
and Soviet analogues of these microcircuits, but I don’t remember their designations. There is also
newer and easier-to-use microcircuits that allow TTL matching
logic with RS-232C interface, for example MAX-232. Convenience lies in
no need to have a power source with a voltage of -12 and +12 volts
(generated inside the microcircuit, on capacitors). But the price is at least 1.5
Few people will like the American dollar... On the other hand, 1488 and 1489 in
There is no price list at all.
I provide the pinout of microcircuits 1488 and 1489, I don’t have the pinout for MAX-232
hand.
receiver: transmitter:
+-----------+ +-----------+
| | | |
1A -o1 14o- VCC VEE -o1 14o- VDD
| | | |
1C -o2 13o- 4A 1A -o2 13o- 4A
| | | |
1Y -o3 12o- 4C 1Y -o3 12o- 4B
| | | |
2A -o4 1489 11o- 4Y 2A -o4 1488 11o- 4Y| | | |
2C -o5 10o- 3A 2B -o5 10o- 3A
| | | |
2Y -o6 9o- 3C 2Y -o6 9o- 3B
| | | |
GND -o7 8o- 3Y GND -o7 8o- 3Y
| | | |
+-----------+ +-----------+
Signal designation for the receiver (1489): A -- RS232 input, C -- control
hysteresis (TTL input), Y -- TTL output, VCC -- +5 volt power supply.
Signal designation for the transmitter (1488): A, B -- TTL inputs, Y -- output
RS232, VDD -- +12 volt power supply, VEE -- -12 volt power supply. GND is common everywhere
wire
The transmitter chip implements logical function conjunctions, below is the table
truth:
A input | B entrance | Y output
--------+--------+---------
0 | 0 | VDD
--------+--------+---------
0 | 1 | VDD
--------+--------+---------
1 | 0 | VDD
--------+--------+---------
1 | 1 | VEE
note: it is assumed that the missing input 1B is connected to logic 1.
If the transmitter chip will only be used for TTL negotiation
outputs with an RS232 interface, then the unused inputs of the transmitter should
submit log.1. (according to the truth table, otherwise signal transmissionthrough a microcircuit will be impossible).
I have no information on using the “hysteresis control input”.
At the receiver input, capacitors with a capacity of several
tens of nanofarads, apparently to suppress the “bounce” of the signal. (required here
clarification).
From
Kirill Frolov
→
To
Dmitriy Nesmachny
12 February 2003
Press RESET immediately, Dmitriy!
In the absence of microcircuits 1488 and 1489, you can match the signals with
using a number of discrete elements. So much simplified receiver circuit
consists of only two diodes (you just need to take into account signal inversion):
+ VCC (+5 volts)
|
---
/\n
-----
|
RS232 input -------+--------> TTL input
|
---
/\n
-----
|
-----GND
For a flow control circuit (5-wire cable), two such circuits are needed to
TD and RTS signals.
In case of extreme simplification, a direct connection of the TTL output to RS232 is possible
input (you only need to take into account the signal inversion). It will most likely be
work on most modern IBM-PC computers, but when connected to
other equipment may cause problems. The fact is that some
modern RS232 receivers consider a signal level less than +3 volts to be log. 1.
If direct connection is not desired, then a simple circuit can be used
transistor transmitter, such as that implemented in the ZS-Scorpion computer for
Connecting a serial printer:
+--------+ +5..12 volts
| |- |
1.5k| | |
|_| |
| b|/ e
+------| KT361A
| | to
- |
560ohm| | -
|_| | | 560ohm
1.5k | |_|
TTL ____ b|/ to |
exit --|____|--| KT315A +---+---> RS232 output
| e | |
| - |
--- GND | | --- 180pf
|_| ---
2.7k | |
+---+- -5..12 volts
For a flow control circuit (5-wire cable), two such circuits are needed to
TD and RTS signals.
The ZS-Scorpion computer already has one output and one RS232 input for
connecting a printer with a serial interface (signals "DSR" and "RS232" on
system connector). To implement an interface with flow control signals, you need
another entrance and another exit. Can use unused bit 5 of port
joystick kempston for input, and one of the unused bits of the FE port (bits 5,
6 and 7) for output. If you plan to use for signal matching
special microcircuits, it is better to put all signals there, and transistors and
Remove the diodes from the board. Or, as an option, the above circuits with diodes and
transistors only for unmatched signals.Total two out of three options (multi-card, 580BB51, software emulation)
I described the connections sort of like this. For software emulation, the driver remains. Here
he:
The raw version (driver piece) is designed for a speed of 38400 bps:
;---------------------------------------
; RS232 EMULATOR ZX-LINK
;
TXPORT EQU #CFF7
RXMAX EQU 270
ZXL_INI LD A,1
JR ZXL_CTL
ZXL_OFF XOR A
ZXL_CTL ;LD (ZXL_DCD),A
AND #01
RLCA
RLCA
LD (TXMASK),A
IN A,(#1F)
RLCA
RLCA
RLCA
AND #01
RET
; LINE SCAN BC=SIZE D=SPEED CY=NOTHING
LSCAN DI
PUSH IX
PUSH IY
LD HL,RXMAX
LD DE,RXBYTE
PUSH DE
LD IX,(M_BUFF)
LD IY,TXMASK
LD BC,TXPORT
LD A,(TXMASK)
OR#20
OUT(C),A
RXNEXT LD D,#9F ; TIME
RXWAIT IN A,(#FE)
R.L.A.
RET C
IN A,(#FE) ; 25..34 ~40
R.L.A.
RET C
IN A,(#FE)
R.L.A.
RET C
IN A,(#FE)
R.L.A.
RET C
IN A,(#FE)
R.L.A.
RET C
IN A,(#FE)
R.L.A.
RET C
IN A,(#FE)
R.L.A.
RET C
IN A,(#FE)
R.L.A.
RET C
DEC D
JP NZ,RXWAIT ; +14
IN A,(#FE)
R.L.A.
RET C
LD A,(TXMASK)
LD E,A ; +17
IN A,(#FE)
R.L.A. RET C
OUT (C),E ; +12
IN A,(#FE)
RLA
RET C
LD D,#7 ; +7
IN A,(#FE)
RLA
RET C
RXWAIT1 IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
IN A,(#FE)
RLA
RET C
DEC D
JP NZ,RXWAIT1
RXEND POP BC
EX DE,HL
LD HL,RXMAX
OR A
SBC HL,DE
POP IY
POP IX
JR NZ,RXOK
LD BC,#0101
XOR A
INC A
SCF
RET
RXOK LD D,LINKSPEED
LD B,H
LD C,L
XOR A
INC A
RET
RXBYTE IN A,(#FE)
RLA
JR C,RXBYTE1
DEC SP
DEC SP
JP RXWAIT
RXBYTE1 JR $+2
JR $+2
JR $+2
JR $+2
NOP
IN A,(#FE) ; B0
RLA
RR E
DEC HL
LD A,H
OR L
CP 1
SBC A,A
CPL
AND #20
OR (IY)
OUT (C), A
IN A,(#FE) ; B1
RLA
RR E
LD BC,RXBYTE
PUSH BC
LD BC,TXPORT
JR $+2
JR $+2
JR $+2
IN A,(#FE) ; B2
RLA
RR E
JR $+2
JR $+2
JR $+2
JR $+2
JR $+2
NOP
NOP
IN A,(#FE) ; B3
RLA
RR E
JR $+2
JR $+2
JR $+2
JR $+2
JR $+2
NOP
NOP
IN A,(#FE) ; B4
RLA
RR E
JR $+2
JR $+2
JR $+2
JR $+2
JR $+2
NOP
NOP
IN A,(#FE) ; B5
RLA
RR E
JR $+2
JR $+2
JR $+2
JR $+2
JR $+2
NOP
NOP
IN A,(#FE) ; B6
RLA
RR E
JR $+2
JR $+2
JR $+2
JR $+2
JR $+2
NOP
NOP
IN A,(#FE) ; B7
RLA
RR E
JR $+2
JR $+2
JR $+2
JR $+2
JR $+2
NOP
NOP
IN A,(#FE) ; B STOP
RLA
JR C,RXERR
LD A,E
CPL
LD (IX),A
INC IX
JP RXNEXT
RXERR LD A,(TXMASK)
OUT (C),A
JP RXEND
; SEND BLOCK IN MDMBUFF BC=SIZE
LTRANS DI
PUSH IX
LD E,C
LD D,B
LD IX,(M_BUFF)
LD BC,TXPORT
TXBYTE LD A,(TXMASK)
OR #08
OUT (C),A
LD A,(IX)
CPL
LD L,A
LD H,8
JR $+2
LD A,0
TXBIT RR L
SBC A,A
AND #08
OR 0
TXMASK EQU $-1
OUT(C),A
JP$+3
JP$+3
JP$+3
LD A,0
DEC H
JR NZ,TXBIT
JR$+2
LD A,0
LD A,(TXMASK)
OUT(C),A
JR$+2
JR$+2
JR$+2
INC IX
DEC DE
LD A,D
OR E
JR NZ,TXBYTE
LD B,4
DJNZ$
POP IX
RET
Unfortunately, there is one error here that does not manifest itself in any way when done correctly.
operation of the PC COM port but potentially very dangerous (as always
buffer overflow). The error there is that after filling
receiving buffer, Spectrum resets CTS so that the PC stops transmitting, after
this Spectrum receives the last byte (CTS signal blocks transmission
next byte, but the current one has already begun to be transmitted). It's just in process
When receiving the last byte, the Spectrum does not receive one byte, but how many they give.
The pisyuk usually doesn’t give more than one, but if it does, the Spectrum will
accept to the bitter end. In this case, the criterion for the end of transmission for
Spectrum serves as a long stop bit, that is, a pause in transmission of several bits
intervals. I'll definitely fix this bug, I'm just too lazy now, I'm tired of it
write a letter (>32kb already)...
Now regarding the encoding of information in the serial interface.Log.0. coded voltage +3..+12 volts, logic 1. -3..-12 volts. Data
are transmitted sequentially, starting from 0-bit and ending with the last. There are several
standard sending formats: 5,6,7 or 8 data bits, 1 or 0 parity bits
(or odd), 1 or more stop bits. Stop bit, same as start bit
definitely there. Usually they use the 8N1 format, that is, start bit, 8 data bits,
no parity and one (or more) stop bits. With 8 data bits controls
parity is not possible. In the 8N1 format, only 10 bits are transmitted for 8 information bits,
that is, 20% of the channel capacity is lost. In an inactive state,
when nothing is transmitted, the TD signal is in the log.1 state. (this means
pause). If the TD signal is long (more than one byte transmission)
is in log.0 state. then a sign of a wire break is formed. Transfer
starts with the start bit -- transmitted during one bit interval
log.0., all information bits are transmitted sequentially (one interval
by one bit), then the parity bits (if any) and then the proper number
stop bits (at least one, sometimes 1, 1.5, 2...) which are encoded by log.1.
The time period allocated for the bit interval is defined as the value
inversely proportional to speed. For example, at a speed of 38400 bps
(which is used in my source) the length of the bit interval is26.0416 microseconds or 91.1456 Z80 processor cycles at clock speed
3.5Mhz. When transmitting 10 bits of data (byte in 8N1 format), the mismatch
speeds cannot be more than 5%, and for reliable reception even less -
It must be taken into account that the signal in the cable is affected by various distortions. Receiver
can detect and signal certain errors. There are a number
standard speeds supported by most devices: 50, 75, 110, 150,
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200 bps.
On the Spectrum, without turbo mode, the achievable maximum is 38400 bits per second --
the limitation is imposed by the algorithm of the receiver (see source). C
turbo mode at 7MHz will be 57600, but the program needs to be adjusted to
specific implementation of turbo mode - it’s easier to turn it off for a while
reception and transmission.
Transferring files between ZX and PC can be done using the program
MMD (aka MacroMoDem) on Spectrum (together with a special modem driver,
supports your interface type, a compatible one must be used on the PC
program (XMD for example). It is possible to use other Spectrum
terminals (for example Melon - the source code was lying around somewhere, you can use any interface
screw), and on the PC X,Y,Z modem. If the task is to transfer files, then
IMHO it is better to use MMD - it can be programmed forautomatic operation. If you need to control the PC in the console (for example, in
Linux) then it would be better to use an ANSI or at least a BT VT52 compatible terminal,
capable of receiving files using the Z-modem protocol. Could be a good option
using Melon (may need adaptation to your interface). Yes
fragments from CP/M, I think I implemented VT52 there, but Z-modem is there naturally
no. Perhaps another ANSI terminal will appear... Idk. Without the Internet there is no point.
For now, the best option for you is MMD and Melon. Then maybe telnet
(ansi/vt220 terminal) and network... Without a network there will be no virtual disks. Although...
MAS for MMD emulated a turbojet engine on a PC via a link. But this is only inside MMD.
As I understand it, at least 2 people are currently working on the network issue
(groups) in the exUSSR and several foreigners. Everything is separate. Already have zxtcp,
zsock, uip, cpcip... someone threw something into zx.spectrum... IMHO the process is needed
just push hard in that direction.
In general, you have the task of choosing an interface: modems, multicards,
580ВВ51, emulation, maybe something else... all consistent. And parallel to
The PC will only have support in self-written programs and therefore
has no prospects (and RS232 also already has a place in the museum, it’s just that a lot has been done, but
Now USB rules).
From
Kirill Frolov
→
To
Dmitriy Nesmachny
12 February 2003
Press RESET immediately, Dmitriy!
07 Feb 03 09:00, Dmitriy Nesmachny wrote to All:
DN> Has anyone tried to connect PC-Spec via com?
I tried. Software emulation of RS232 by Spectrum at a speed of 38400 bps.
Minimum 5 wires: common, RX (data from PC), TX (data to PC), RTS (PC not
ready), CTS (Spectrum not ready). It is possible in three (RX and TX), but since
Spectrum cannot receive data all the time due to software
port emulation, bytes will be lost. It is possible via four wires RX, TX, RTS
then everything is fine, CTS is needed in case the PC is overloaded with data, and
This is a very unlikely situation. Maximum transfer speed 3.8kb/sec,
the real one (in MMD4.00, which adds its own brakes) is somewhat lower.
DN> There are specific questions:
DN> The literature states that 1/0 in com'nik is represented
DN> -10/+10, I saw it in one of the programmer connection diagrams via com
DN> -5/+5. Which is correct?
-12..-3 and 3..12. The PC port understands this: < +3 volts. this is log.1,
>=+3 volts. this is log.0. That is, it is possible to use TTL signal levels.
DN> How much will such a canoe consume? You can do without using DN> additional rectifier bridges for -5/-12 volts
DN> applications of purely electronic conversion circuits
It's possible. There is such a chip: MAX232.
DN> and if possible, then how exactly (scheme)?
If at TTL levels (it may not always work) - just connect
wires through the inverters, and on the speck side put protective diodes with the anode to
one common wire and the second cathode to the power supply (the output of the pisyuk is honest
+-12volts up to 20mA). Otherwise, MC1488 and MC1489 are needed to match the levels. Yes
and Soviet analogues, I don’t remember them. If there are no power sources + -12 volts then
you can use MAX232 (it's expensive). As a last resort, you can enter at
diodes, and the output is based on 315 transistors. See how the printer is connected with
serial interface in Scorpion - in fact, there is already RS232 there
interface without control signals, only TX and RX (DSR for printer).
DN> I heard out of the corner of my ear that when Alexander Mayorov connected Spec last
DN> LPT guy, he made decoupling using optocouplers. How exactly is this done?
Find on the Internet a diagram for matching the current loop with RS232. But most likely
this will be superfluous in your conditions, when the computers are nearby, direct
connection.See the following three letters (from the archives of this echo, by the way).
From
Eugene Palenock
→
To
Aleksandr Majorov
13 February 2003
Hello, Alexander!
11 Feb 03 13:25, Aleksandr Majorov -> Dmitriy Nesmachny:
AM> Why is there +/-10 on the computer?
AM> There are only +/-5 and +/-12
AM> In the COM port (if not glitchy) the signals are normal, TTL-level.
AM> That is, roughly speaking, 0 ... +5
AM> But RS-232 is just oppositely polar -5 ... +5
Use a multimeter to plug into any com port on the motherboard. There -11/+11 (1v is lost on
keys apparently)
Best regards, Evgeniy.
From
Dmitry Lomov
→
To
Kirill Frolov
13 February 2003
Hello, Kirill!
Once, Wed Feb 12 2003 06:55, Kirill Frolov wrote to Dmitriy Nesmachny:
KF> signals using a series of discrete elements. So much simplified
KF> the receiver circuit consists of only two diodes (you just need to take into account
KF> signal inversion):
KF> + VCC (+5 volts)
KF> |
KF> ---
KF> /
KF> -----
KF> |
KF> RS232 input -------+--------> TTL input
KF> |
KF> ---
KF> /
KF> -----
KF> |
KF> ----- GND
you forgot the resistor in the RS232 circuit ;)
All the best.
Dmitry. [ZX] [Quake]
np:h-192
From
Dmitry Lomov
→
To
Dmitriy Nesmachny
13 February 2003
Hello, Dmitry!
Once, Fri Feb 07 2003 09:00, Dmitriy Nesmachny wrote to All:
DN> The literature states that 1/0 in com'nik is represented
DN> -10/+10, I saw it in one of the programmer connection diagrams via com
DN> -5/+5. Which is correct? How much will such a canoe consume? You can
DN> do without the use of additional rectifier bridges
DN> -5/-12 volts by using purely electronic conversion circuits, and
DN> if possible, then how exactly (scheme)?
catch you in the next letter. there, however, with galvanic isolation, and pairs
There are no resistors (they were in another part of the device).
this is a .gif; I don't know which format looks better on the Spectrum. like, gifs
something to look at.
Best wishes.
Dmitry. [ZX] [Quake]
np:i-192
From
Kirill Frolov
→
To
Dmitry Lomov
16 February 2003
Press RESET immediately, Dmitry!
13 Feb 03 14:08, Dmitry Lomov wrote to Dmitriy Nesmachny:
DL> is .gif; I don’t know which format looks better on the Spectrum.
DL> it seems like gifs are something to watch.
If I'm not mistaken, there is no guarantee that on the capacitor
the required voltage will be found if you do not use a special homemade
port driver or homemade communications program.
From
Dmitry Lomov
→
To
Kirill Frolov
18 February 2003
Hello, Kirill!
Once, Sun Feb 16 2003 12:31, Kirill Frolov wrote to Dmitry Lomov:
DL>> is .gif; I don’t know which format looks better on the Spectrum.
DL>> it looks like gifs are something to watch.
KF> If I'm not mistaken, there is no guarantee that on
KF> the capacitor will have the required voltage if not used
KF> special homemade port driver or homemade communication
KF> program.
yes, that's right. but I don't see a problem with that.
Best wishes.
Dmitry. [ZX] [Quake]
np: Aria - I'm not crazy [stopped]
From
Kirill Frolov
→
To
Dmitry Lomov
19 February 2003
Press RESET immediately, Dmitry!
18 Feb 03 00:01, Dmitry Lomov wrote to Kirill Frolov:
DL>>> this is .gif;
KF>> If I'm not mistaken, there is no guarantee that on
KF>> the capacitor will have the required voltage if not used
KF>> special homemade port driver or homemade
KF>> communication program.
DL> yes, that's right. but I don't see a problem with this.
And I see. In the best case, you will have to write absolutely all the software yourself. B
the worst - drivers for the OS. Standard programs xyz-modem, terminal emulation and
PPP won't work - why the hell would such a link be needed if possible?
To do MAS-ovsky via LPT, everything is the same, just nothing but wires
necessary.
From
Aleksandr Majorov
→
To
Kirill Frolov
19 February 2003
Hello Kirill!
19 Feb 03 00:55, Kirill Frolov -> Dmitry Lomov:
[skipped]
DL>> yes, that's right. but I don’t see a problem with this.
KF> And I see. In the best case, absolutely all software will have to be written
KF> most. At worst - drivers for the OS.
And you can find out why “writing all the software” is the best option.
And write a driver for the OS, and in this case the entire existing
the software will work - is this the worst option?
Alexand
From
Kirill Frolov
→
To
Aleksandr Majorov
20 February 2003
Press RESET immediately, Aleksandr!
19 Feb 03 18:41, Aleksandr Majorov wrote to Kirill Frolov:
DL>>> yes, that's right. but I don’t see a problem with this.
KF>> And I see. In the best case, absolutely all software will have to be written
KF>> most. At worst - drivers for the OS.
AM> Can you find out why “writing all the software” is the best option.
AM> And write a driver for the OS, and in this case the entire existing one
AM> the software will work - is this the worst option?
Writing all the necessary software can be much simpler and easier
(you can fix existing programs) than writing a driver for the OS if
Of course, this does not apply to MS-DOS - everything is relatively simple there. And unlike
for other programs, the driver will have to be supported and corrected for each
next version of the OS - interfaces within the system change very often. In case
non-standard driver using the port in a standard way is often
excluded - another minus. Finally, driver installation may require
recompiling the kernel (in FreeBSD for example), and this will have to be done every time
update. Any error in the driver can lead to a crash
system operation. Homemade driver == unstable, unreliable system. ForIn order to write a driver correctly, you need to thoroughly understand
internal structure of the system - to a simple person who is not involved in
Professionally, such work is practically inaccessible... The most important thing is
homemade software will work on any OS (with some modifications), and
The driver needs to be written separately for each OS or even different versions of the same OS.
In general, it’s a bad idea to get into someone else’s system with your drivers...
From
Aleksandr Majorov
→
To
Kirill Frolov
20 February 2003
Hello Kirill!
20 Feb 03 00:28, Kirill Frolov -> Aleksandr Majorov:
[skipped]
AM>> Can you find out why “writing all the software” is the best option.
AM>> And write a driver for the OS, and in this case the entire existing one
AM>> the software will work - is this the worst option?
KF> It may be much easier to write all the necessary software and
KF> is easier (you can fix existing programs) than writing a driver
KF> under the OS, unless of course it concerns MS-DOS - everything is relative there
KF> simple.
It’s the same with drivers - you take the existing one and fix it for yourself.
KF> And unlike other programs, you will need a driver
KF> support and fix for each next OS version - inside
KF> system interfaces change very often.
Hmm, can I give you a couple of other examples of this?
From what I know (I’m obviously talking about Windows) there are
the type of “driver for 9x” is .vxd and the type of “driver for HT” is .sys.
With 98 and higher, another type of driver appeared, .WMD (possibly incorrect
wrote) - this is a multimedia driver.
Well, with 9x everything is simple, you can easily use access to ports and the driver there
actually not needed :)Drivers I have seen for direct access to ports from NT
(.sys drivers) worked without problems on NT4, 2000, XP
I don’t know how things are with this in the world of unicho-like ones, but it’s very
I doubt that everything is different there.
That with the release of a new version of the kernel, everyone has to rebuild all the drivers.
The new version of the kernel may have new features for drivers,
but for the old ones to be removed - this is the first time I’ve heard of this ;)
Downward compatibility is very useful and it is unlikely that it has been abolished in Unix :)
[skip]
KF> Finally, driver installation may be required
KF> kernel recompilation (in FreeBSD, for example), and this will have to be done when
KF> every update.
So, I heard something off the top of my head about being loaded during
work on modules. Those. the driver can be either embedded in the kernel,
and load up while working.
Is this not the case in BZD?
KF> Any error in the driver can lead to a crash
KF> system shutdown.
This means that this is such a bad and unstable system that it cannot
survive a driver crash ;)
KF> Homemade driver == unstable, unreliable system.
Since someone makes each driver themselves, it turns out
that all firewood is unstable? ;)
KF> In order to write a driver correctly, you need to be thorough KF> understand the internal structure of the system - a simple person
KF> not professionally engaged in such work
KF> practically inaccessible...
This is where I disagree with you.
Well, actually, everyone once didn’t know how to write drivers,
and everyone can learn ;-)
Next, for all operating systems (I’m obviously talking about Windows, but it’s unlikely that it’s different in Unix)
there is DDK.
And there is documentation and ready-made examples of drivers for everything!
KF> Most importantly, there will be homemade software
KF> work in any OS (with some changes),
Well, this is if you immediately write portable sources.
Here, try to transfer sources from VC++ using
MFC/ATL/WTL for juniors :)
[skipped]
KF> In general, it’s a bad idea to get into someone else’s with your drivers
KF> systemy...
If a person does not need to transfer the hardware to another OS,
then you can rivet the driver.
Alexand
From
Kirill Frolov
→
To
Aleksandr Majorov
21 February 2003
Press RESET immediately, Aleksandr!
20 Feb 03 19:20, Aleksandr Majorov wrote to Kirill Frolov:
KF>> It can be quite expensive to write all the necessary software
KF>> simpler and easier (you can fix existing programs) than
KF>> write a driver for the OS, unless of course it concerns MS-DOS --
KF>> everything is relatively simple there.
AM> It’s the same with drivers - you take the existing one and fix it for yourself.
So I don’t know where I can get a driver for OS/2. They're actually good for
they sell money...
KF>> And unlike other programs, you will need a driver
KF>> support and fix for each next OS version --
KF>> interfaces within the system change very often.
AM> Hmm, can I give you a couple of other such examples?
Linux, FreeBSD. In the first, modules from one version are not included in another, but in
the second is generally a monolithic core.
AM> From what I know (I'm obviously talking about Windows) there are
And I’m “obviously” not talking about Windows. However, for Windows driver source codes
Portable luggage (namely them, not something homemade) is much more difficult to get than under
free *nix, it seems to me... AM> I don’t know how things are with this in the world of Unicho-like ones, but strongly
AM> I doubt that everything is different there.
Common unichs are all monolithic. That is, the system is so big
an executable file that, upon startup, is loaded into memory in one fell swoop. And no drivers
It’s not there explicitly, the driver is a piece of this executable. Windows HT --
microkernel, driver is a separate downloadable program. Made in Linux
the ability to load and unload kernel modules during operation, but with
There is a problem with compatibility between versions (IMHO, it's an absolute mess
inside, and the further into the forest, the more firewood). If between minor numbers
versions, for example 2.4.9 and 2.4.18, it is sometimes compatible, then between older
numbers, such as 2.2.x and 2.4.x, don’t even dream about compatibility. Moreover, not
all drivers can be unloaded back or placed in a module.
AM> That with the release of a new version of the kernel, everyone needs all the drivers
AM> rebuild.
Naturally! Look how the producers of writing iron suffer: they have
on the sites there are a dozen identical (that is, different) versions for RedHat,
Mandrake, Suse, kernel from kernel.org, etc... Some just give source codes,
so that the user can assemble it for his own kernel. Well, then the support of the majoritydevices is available inside the kernel and is maintained by the kernel developers.
AM> The new version of the kernel may have new features for
AM> drivers, but to remove the old ones - this is the first time we hear
AM> ;) Upward compatibility is very useful and is unlikely to be available on Unix
AM> canceled :)
IMHO, the code writers there absolutely don’t care what they do inside...
They don’t work for Microsoft and are not responsible for anything.
AM> So, I heard something about being loaded in time
AM> work in modules. Those. the driver can be embedded in the kernel
AM> and load while working.
AM> Is this not the case in the BZD?
This was not the case in 4.5-release. The handbook said that after installation
you need to recompile the kernel for your system. Where is it going now?
(I think it’s 4.7-release and 5.0-tesing now) I don’t know, but in general it lags behind
Linux, it seemed to me so.
KF>> Any error in the driver can lead to a crash
KF>> system shutdown.
AM> So this is such a bad and unstable system that it cannot
AM> survive the driver crash ;)Monolithic because... However, NT is all so advanced, but nothing
can’t without rebooting (but Linux can...) and also crashes into a blue screen.
KF>> Homemade driver == unstable, unreliable system.
AM> Since each driver is made by someone themselves, it turns out that everything is firewood
AM> unstable? ;)
This is done by professionals. And then they test it on a large number
various systems. And if I write a driver, then I’ll test it
I can't do it normally.
KF>> In order to write a driver correctly, you need to be thorough
KF>> understand the internal structure of the system - simplicity
KF>> a person who is not professionally engaged in such work
KF>> this is practically inaccessible...
AM> This is where I disagree with you. Well, actually, everyone once didn’t know
AM> how to write drivers, and everyone can learn ;-)
You can study. Only in the first few attempts to write a driver is complete
it will turn out to be crap, and then the enthusiasm will end. You need to spend a lot of time and
strength
AM> Next, for all operating systems (I’m obviously talking about Windows, but it’s unlikely to be different in Unix) AM> is DDK. And there is documentation and ready-made examples of drivers for
AM> total!
You use your own self-written software, if you are not forced, you will provide documentation
write? Not for the user, but a guide for the programmer. I think not
you will, because it may be more difficult than writing the program itself (which
written “from bottom to top” if it is not too large or complex), and it will take time
too many... This is how all sorts of Linux systems write... RTFS (S==source) in short.
Of course there is something, but it seems to me that in Windows this is noticeably better (with
on the other hand, in msdn they somehow write in such a style that it’s difficult to read and understand
somewhat difficult).
KF>> Most importantly, homemade software will work in any OS (with
KF>> some changes),
AM> Well, this is if you immediately write portable sources.
AM> Here, try to transfer sources from VC++ using
AM> MFC/ATL/WTL for juniors :)
It's all Microsoft's fault... A lot of software has already been moved in the opposite direction
(via cygwin, djpp, mingw and other unixolators). Almost in Windows already
Now you can get a Unix-like environment.
AM> If a person does not need to transfer hardware to another OS, AM> then you can rivet the driver.
It will be much cheaper to bring the hardware and software to such a state that neither
No driver or non-standard software is needed. This is if we assume that the driver
worth something (at least average salary * time spent). And with
There will be no problems with compatibility in the future.
From
Aleksandr Majorov
→
To
Kirill Frolov
21 February 2003
Hello Kirill!
21 Feb 03 00:31, Kirill Frolov -> Aleksandr Majorov:
[skipped]
AM>> It’s the same with drivers - you take the existing one and fix it
AM>> yourself.
KF> I don’t know where I can get a driver for OS/2. They are actually good
KF> they sell for money...
And there is no documentation on creating drivers?
I don't believe it.
KF>>> And unlike other programs, you will need a driver
KF>>> support and fix for each next OS version --
KF>>> interfaces within the system change very often.
AM>> Hmm, can I have a couple of other such examples?
KF> Linux, FreeBSD. In the first, modules from one version to another are not
KF> are included, and the second one generally has a monolithic core.
Hmm, very interesting. It will be necessary to take an interest in this question.
AM>> From what I know (I'm obviously talking about Windows) they exist
KF> And I’m “obviously” not talking about Windows. However, under Windows source code
KF> get com-port drivers (namely them, not something homemade)
KF> much more difficult than under free *nix, it seems to me...
It seems to you wrong.On the website www.microsoft.com DDKs for all operating systems are distributed completely free of charge.
I just don’t know if the DDKs for 95 and 98 are still there.
And in the DDK itself, in addition to complete documentation, there are also a bunch of driver examples
(or driver templates) for everything.
AM>> I don’t know how things are with this in the world of Unicho-like ones, but
AM>> I strongly doubt that everything is different there.
KF> Common unixes are all monolithic. That is, the system is
KF> such a large executable file that, upon startup, is loaded in one fell swoop
KF> memory. And there are no explicit drivers there, a driver is just a piece of shit
KF> of this executable. Windows HT is a microkernel, the driver is separate
KF> downloadable program.
If I'm not mistaken, Linux is also based on microkernels.
Or am I buggy?
[skipped]
AM>> That with the release of a new version of the kernel, everyone needs all the drivers
AM>> rebuild.
KF> Naturally!
What a bad guy this guy is. No wonder Uncle Billy doesn't like him so much...
;-))))
KF> Look at the producers of writing iron
KF> they are tormented: they have a dozen identical (that is, different) on their sites KF> versions for RedHat, Mandrake, Suse, kernel from kernel.org, etc...
KF> Some people simply provide source code so that the user can compile it for his own kernel.
It’s easier IMHO with the distribution of source codes.
Well, gender juniors are more savvy, so reassemble
the core is not a problem for them.
And, IMHO, when you decide which drivers to “activate”
AKA pasting it into the kernel may be more convenient - no need to load the system
beyond measure ;)
Well, again, we take the source code and edit it to suit our hardware.
[skipped]
AM>> ;) Upward compatibility is very useful and unlikely on Unix
AM>> it was canceled :)
KF> IMHO, the code writers there absolutely don’t care what they are inside
KF> they'll screw it up... They don't work for Microsoft, and they're not responsible for anything.
Well, the fact that they are not responsible for anything - I would risk disagreeing.
[skipped]
AM>> Is this not the case in the BZD?
KF> This was not the case in 4.5-release. The handbook said that after
KF> installations, you need to recompile the kernel for your system. And where there
KF> it is moving now (like now it is 4.7-release and 5.0-tesing) not
KF> I know, but in general it lags behind Linux, it seemed to me.Hy IMHO BSD is positioned as a server OS.
And you certainly won’t install any threads on the server
left hardware/drivers.
And you won’t install a new OS every week.
[skip]
KF>>> Homemade driver == unstable, unreliable system.
AM>> Since each driver is made by someone himself, it turns out that everything
AM>> is the firewood unstable? ;)
KF> This is done by professionals. And then they test on a large number
KF> various systems. And if I write a driver, then I
KF> I couldn’t test it properly.
What kind of professionals are they if they don’t care what’s in there?
will they reward you and if they are not responsible for anything? ;)
And first of all, you write a driver for yourself.
So you can test it yourself normally.
[skip]
AM>> This is where I disagree with you. Well, actually, everyone once doesn’t
AM>> knew how to write drivers, and everyone can learn ;-)
KF> You can study. Only in the first few attempts to write a driver
KF> it will be complete bullshit, and then the enthusiasm will end. Need to spend
KF> a lot of time and effort.
I need to write a driver for a non-standard piece of hardware,
connected to LPT and communicating with its program in its own wayThe protocol took only a month.
Initially, the program only worked under 9x, but it was also required under HR.
There were no documents according to the protocol and there was no hardware connection,
but there was a diagram and sources of the .vxd driver and the raw version of the program.
I spent a couple of weeks looking at the protocol and delving into the raw materials.
Then I downloaded DDX for NT systems and created a driver.
Plus "gateway". Those. the program itself now communicates with the hardware
through the "gateway", and it already looks at what is on the OS and calls either
.vxd or .sys.
PS: I had no experience writing drivers for Windows at all.
ZZY: checked under all OS and on different machines - everything works
clearly and without problems.
AM>> Next, all operating systems (I’m obviously talking about Windows, but hardly in Unique
AM>> otherwise) is DDK. And there is documentation and ready-made examples
AM>> drivers for everything!
KF> You use your own self-written software, if you are not forced, documentation
KF> will you write? Not for the user, but a guide for the programmer.
KF> I think you won’t, because how can it be more difficult than it is
KF> write a program (which is written "bottom up", if not too much
KF> large or complex), and it will also take a lot of time...
Well, first of all, let’s remember the diver under the MMD that I sculpted onsome kind of leadership.
And MMD 4 itself, for which the manual was written
programmer in MMD language ;)
In general, I have some comments in the raw materials.
And they say that there are even too many of them :)
And the various structures are generally written out for me - what kind of variable,
what is it for, etc. And I don’t skimp on the length of names ;-)
KF> This is how they write all sorts of links... RTFS (S==source) in short.
KF> Of course there is something, but it seems to me that in Windows it’s noticeable
KF> better
It’s not a fact that it’s better in Windows.
KF> (on the other hand, in msdn they somehow write in such a style that
KF> this is somewhat difficult to read and understand).
MSDN is certainly useful, but...
In short, somehow I never needed MSDN.
It’s easier for me to get on the Internet, and there are a bunch of sites with source codes
and documents that are written more clearly, including
even in Russian ;-)
But with Windows everything is not so much better.
One of the “geniuses” is ListCtrl (the “list” element, well here
In the explorer on the right, this element is used. maybe like
"list of icons", and in table form).
Very convenient to use for displaying from databases.
The same MSDN says a brilliant thing:
that the maximum number of records is 100000 (or an order of magnitudeI don’t remember more). A very strange number, it doesn’t correlate at all
with the size of variables, etc. And too round!
So, MSDN says “it’s hard to imagine what will be needed
display more data." Dot.
[skipped]
KF>>> Most importantly, homemade software will work in any OS (with
KF>>> some changes),
AM>> Well, this is if you immediately write portable sources.
AM>> Here, try to transfer sources from VC++ using
AM>> MFC/ATL/WTL for juniors :)
KF> Microsoft is to blame for everything... On the other hand, there is a lot of software already
KF> moved (via cygwin, djpp, mingw and other unixolators).
KF> Almost in Windows you can already get a Unix-like one
KF> environment.
Wait.
If the OS offers a certain set of API functions, then why can’t you use them?
Well yes, obviously in other operating systems these APIs may not exist at all,
so what?
Somehow I strongly doubt that applications written under the GUI KDE
or the gnome (or whatever else is there) can be transferred to Windows
easier than the other way around.
As I understand it, all these “portability” means that you use
some special library, which itself has been transferred to Windows
and linykh.Those. In essence, you work with the system through a kind of “driver”.
As for MFC/ATL/WTL, I don’t see anything wrong with
use not so bad libraries that are quite
significantly speed up the process of writing software.
And don’t assure me that there is nothing like this under Linux - I don’t believe it ;)
AM>> If a person does not need to transfer the hardware to another OS,
AM>> then you can rivet the driver.
KF> It will be much cheaper to bring the hardware and software to such a state
KF> that neither a driver nor non-standard software is needed.
This is true.
Alexand
From
Kirill Frolov
→
To
Aleksandr Majorov
22 February 2003
Press RESET immediately, Aleksandr!
21 Feb 03 18:45, Aleksandr Majorov wrote to Kirill Frolov:
KF>> I don’t know where I can get a driver for OS/2. Actually, there aren't any
KF>> they sell well for money...
AM> And there is no documentation on creating drivers?
AM> I don’t believe it.
Exists. Only the necessary tools for creating drivers are also not available
They give away freebies. And OS/2 finally died (only for IBM so far).
KF>> And I’m “obviously” not talking about Windows. However, under Windows source code
KF>> com-port drivers (them, not something homemade)
KF>> it’s much more difficult to get than for free *nix, it seems to me...
AM> You think it’s wrong.
AM> On the website www.microsoft.com DDKs for everything are distributed completely free
AM> OS.
DDK != ready driver.
AM> But I don’t know if there are still DDKs under 95 and 98. But in DDK itself
AM> in addition to complete documentation there are also a bunch of examples of drivers (or
AM> driver templates) for everything.
An example and a driver are two very different things.
AM> If I'm not mistaken, Linux is also based on microkernels. AM> Or am I buggy?
You're glitching. That is, there were some attempts (at L4), but this is from the realm of fantasy
for now... Although with modularity it’s close.
AM>>> That with the release of a new version of the kernel, everyone needs all the drivers
AM>>> rebuild.
KF>> Naturally!
AM> What a bad guy this guy is. No wonder Uncle Billy doesn't like him so much...
AM> ;-))))
It's easier, faster, more compact...
KF>> etc... Some just give the source code so that the user can compile it himself
KF>> to your core.
AM> Distributing source codes is easier IMHO.
It's not easier for everyone. They also pick out from these sources what they don’t know
it should... Binaries are more difficult to disassemble.
AM> Well, people are more savvy when it comes to sex, so let's reassemble
AM> the core is not a problem for them.
What is there to think about? One button is enough.
make menuconfig; ./menuconfig; make dep; make; make modules; make install;
make modules_install; lilo; reboot. That's all.
AM> Well, and again, we take the source code and edit it to suit our hardware.
This is a very complex and time-consuming process, so as not to deal with it “for no reason.”
do." KF>> IMHO, the code writers there absolutely don’t care what they are inside
KF>> they'll screw it up... They don't work for Microsoft, and there's no way
KF>> answer.
AM> Well, here’s the thing that they are not responsible for anything - I’ll risk disagreeing.
Well, they are to some extent responsible to employers, but their area
interests do not always intersect with the area of interests of users who
use Linux for free.
KF>> This was not the case in 4.5-release. The handbook said that
KF>> after installation you need to recompile the kernel for your system. A
AM> Hy imho BSD is positioned as a server OS.
If you run X, you won’t be able to tell it apart from Linux...
KF>> This is done by professionals. And then they test it on a large scale
KF>> number of different systems. And if I write a driver, then
KF>> I couldn’t test it properly.
AM> What kind of professionals, if they don’t care what they’ll do inside there and
AM> if they are not responsible for anything? ;)
One does not interfere with the other.
AM> And you, first of all, write a driver for yourself. So you have it yourself AM> you will test normally.
I'm not crazy enough yet to write any more drivers for
yourself. Let others write who gets paid for this, and I’ll do something
I'll do something (useless)...
AM> Well, first of all, let’s remember the diver under the MMD that I sculpted
AM> some kind of guidance.
Neither the operating principle of the driver nor the structure of the program was explained there. When
you look at an unfamiliar source code, it is usually not clear how it is in general
works, and no comments will help.
KF>> This is how they write all sorts of links... RTFS (S==source) in short.
KF>> Of course there is something, but it seems to me that in Windows it’s noticeable
KF>> better
AM> It’s not a fact that it’s better in Windows.
There they force you to do things normally. And they test it at least somehow in advance.
KF>> (on the other hand, in msdn they somehow write in such a style that
KF>> this is somewhat difficult to read and understand).
AM> MSDN is certainly useful, but...
AM> In short, I never needed MSDN.
AM> It’s easier for me to go online, and there are a bunch of sites with source codesSources are good, but again you can understand some specifics, but how
in general, everything is incomprehensible.
AM> The same MSDN says a brilliant thing:
AM> that the maximum number of records is 100000 (or an order of magnitude
AM> more - I don’t remember). A very strange number, it doesn’t correspond at all
AM> with the size of variables, etc. And too round!
AM> So, MSDN says “it’s hard to imagine what will be needed
AM> display more data." Period.
In Linux there are several times more such glitches... (in terms of the number of graphic
toolkits).
KF>> Microsoft is to blame for everything... There is a lot of software on the other side
KF>> already transferred (via cygwin, djpp, mingw and other unixolators).
KF>> Almost in Windows you can already get a Unix-like one
KF>> environment.
AM> Wait.
AM> If the OS offers a certain set of API functions, then why are they not allowed?
AM> use?
You can... The problem is that another OS has similar functionality
functions not compatible with these.
AM> Somehow I strongly doubt that applications written under the GUI KDE AM> or gnome (or whatever else is there) can be transferred to Windows
AM> easier than the other way around.
I think it's easier. KDE uses the QT toolkit, Gnome uses the gtk toolkit.
Both are available for Windows. You can also run X under Windows.
AM> As I understand it, all these “portability” means that you use
AM> some special library, which itself has been transferred to Windows
AM> and lines.
Well, yes, that’s pretty much it, but under Linux there’s nothing special
necessary if we are not talking about graphics.
AM> And regarding MFC/ATL/WTL - I don’t see anything wrong with
I don't know what MFC, ATL and WTL are. Microsoft Foundation Classes --
The name doesn't say anything.
AM> use not so bad libraries, which are quite
AM> significantly speed up the process of writing software.
AM> And don’t assure me that there is nothing like that for Linux - I don’t believe it
Is this for graphics or something else? The point is that Microsoft is deliberately
everywhere invents its own, incompatible with anything except Microsoft products,
interfaces and standards. And Windows API, and character encoding and... whatever.
That same MSDN they put in some strange *.html that they are only the 6th IElooks. Inside is binary data. What for you ask? So that I can't from under
Linux read with Mozilla?
From
Aleksandr Majorov
→
To
Kirill Frolov
22 February 2003
Hello Kirill!
22 Feb 03 00:14, Kirill Frolov -> Aleksandr Majorov:
[skipped]
AM>> And there is no documentation on creating drivers?
AM>> I don’t believe it.
KF> Exists. Only the necessary tools for creating drivers
KF> are also not given out for free. And OS/2 finally died (YBM for now
KF> only).
Well, she died like that.
[skipped]
AM>> You think it’s wrong.
AM>> On the website www.microsoft.com DDKs are distributed completely free of charge
AM>> all OS.
KF> DDK != ready driver.
Have you seen this DDK?
There are examples of working drivers posted there!
How do you think manufacturers of hardware manage to release so quickly
Drivers for new Windows?
Yes, they just look at this DDK.
AM>> I just don’t know if DDKs for 95 and 98 are still there. But actually
AM>> DDK, in addition to complete documentation, there are also a bunch of driver examples
AM>> (or driver templates) for everything.
KF> An example and a driver are two big differences.
Okay, explain the difference between the working driver example...
ny for communicating with the printer via a COM port and “not an example”,
and a ready-made driver. AM>> If I'm not mistaken, Linux is also based on microkernels.
AM>> Or am I buggy?
KF> You're buggy. That is, there were some attempts (on L4) but this is from the area
KF> science fiction for now... Although modularity is close to that.
So, I have a strong opinion that Linux in its
The book states in plain text that Linux is nuclear...
[Windows killed]
KF>>> Naturally!
AM>> What a bad guy this guy is. It’s not for nothing that he doesn’t like Uncle Billy
AM>> like... ;-))))
KF> It’s simpler, faster, more compact...
Yes I know. There’s a reason why there’s a bunch of emoticons there :)
KF>>> etc... Some just give you the source code so that the user can compile it himself
KF>>> to your core.
AM>> Distributing source codes is easier IMHO.
KF> It’s not easier for everyone. They also pick out from these sources what they don’t know
KF> it should be... Binaries are more difficult to disassemble.
Explain what can be picked out of these raw materials so that
What are you not supposed to know?
And explain how they manage to write such terrible and evil viruses
under Windows, without seeing their sources. And everyone manages to find holes...Here I have a computer with a certain OS, I _have_ the right to know what’s there
and how it was done. Because this is _my_ car.
[Windows killed]
AM>> Well, and again, we take the source code and edit it to suit our hardware.
KF> This is a very complex and time-consuming process to avoid doing this
KF> "nothing to do."
When writing a driver for Windows, I didn’t notice any difficulty,
no labor intensity...
Maybe I was looking in the wrong place? :)
[skip]
AM>> Well, first of all, let’s remember the diver under the MMD that I sculpted
AM>> some kind of guidance.
KF> Neither the principle of the driver’s operation was explained there
FAQ? Entry points indicating what should go where,
What should be done and what should be returned - isn’t this a principle?
KF> neither program structure.
Structure of what program?
If it was the diver himself, then IMHO everything was written out.
And if the program for which this driver is written - then this
and it’s not necessary. For this is why the driver was created, so as not to
bother with the proceedings in the program itself.
KF> When you look at an unfamiliar source, as a rule,
KF> it is not clear how it generally works, and no comments will help.
I'm not talking about the raw drivers, but about its description.
[Windows killed] AM>> It’s not a fact that it’s better in Windows.
KF> There they force you to do it normally. And they test it somehow
KF> preliminary.
Horseradish.
HP 845 printer, connected via USB.
The first time I tried to print the driver from PageMaker
immediately fell into the GPL. Just yesterday I was running again - 35 out of 36 pages
I printed it without any problems. When printing, the 36th driver makes GPL and that's it.
Moreover, if you set the print quality to “draft” or “normal”,
then prints. But in this case the colors and quality are completely wrong
It couldn't be worse.
And in the “best” mode it prints only 1/5 of the sheet and that’s it, GPL.
What kind of testing is this?
[Windows killed]
AM>> In short, I never needed MSDN.
AM>> It’s easier for me to go online, and there are a bunch of sites with source codes
KF> Sources are good, but again you can understand some specifics
KF> but how it is, in general, is not clear.
This means that I am so completely wrong, because I still manage to understand everything in general.
[Windows killed]
AM>> If the OS offers a certain set of API functions, then why not?
AM>> use?
KF> You can... The problem is that there are similar ones in another OS KF> functionality functions are not compatible with these.
Are you suggesting that all manufacturers use the same API?
[skipped]
AM>> And regarding MFC/ATL/WTL - I don’t see anything wrong with
KF> I don't know what MFC, ATL and WTL are. Microsoft Foundation Classes
KF> - the name says nothing.
MFC is a library of various classes, there are graphics and all sorts of lists
etc. In general, a lot of things.
ATL - a lightweight library for creating ActiveX components
WTL is a rival of MFC.
*TL - Template Library (I think I wrote it correctly).
And I would like to see how you transfer the ActiveX component
and application under linykh ;)
AM>> use not so bad libraries, which are quite
AM>> significantly speed up the process of writing software.
AM>> And don’t assure me that there is nothing like this for Linux - don’t
AM>> I believe
KF> Is this for graphics or something else?
Well, Windows is graphical. So there are classes for work there
with Windows elements (buttons, lists, etc.)
And also support for all sorts of lists/arrays (the 1st MFC was created
back when STL was not yet a standard). Plus socket support
(synchronous/asynchronous). Plus multi-threading and synchronization...In short, it makes the work a lot easier :)
KF> The point is that Microsoft
KF> deliberately invents its own everywhere, incompatible with anything except
KF> Microsoft products, interfaces and standards.
Hey yes.
KF> And Windows API,
So, what API should they have used?
[skipped]
KF> That same MSDN, they are kind of strange
KF> *.html assumed that only IE 6 can view them. Inside - binary
KF> data. What for is the question asked? So that I can’t get out of Mozilla
KF> read?
You go to compulsory and read like on the MSN website for the 7th opera
A buggy HTML code is _deliberately_ produced. ;)
Alexand
From
rNd
→
To
Dmitriy Nesmachny
26 February 2003
Пpивет Dmitriy!
Отвечаю на ваше письмо от 20.02.03, тогда писал(а) Dmitriy Nesmachny
к Costa Pilnik, а было тогда на часах 8:30:41.
DN> Где взять? Инет не пpедлагать... :-( Может, вышлеш мануал?
большая она , ладно , лови ююк
section 1 of 2 of file com.zip by Taimyr 2.00
filetime 777662859
size 25261
begin 644 com.zip
M4$L#!!0``@`(`&Q6B[*<=0/6(``+M$`0`'````8V]M+G1X=+076;Q[7O
M!/@?!BIR03HD(U&RX]IU+Q+)N3!JQ[F2"MR'`((LT1816S(H.C=&V[^3I_LC
MFL!%@URXKI,"?;K`:,41E^3N
-16(0N>%01,SUQ-D;5PS&
M,?R1R.?Z01B-V.I:N;I8+2S-X:LIAU7V+>LS1UWX'H!`&-!Q!P1#F!96B$Y
M'@"*T!D)UG(X&8?*X5P(=/=F#O41 &
M"=#55-#5"= 2T7P.VRN52I6`_1"*R$T`6TS'V8ZGOFSTW@2NV(*L+#4_U]S"<:Z @X[' (## *^0&/1@Z/3ED_A YD
MW?$UG(:G7Y)[*[-;J_^YQ J#(`#LHD'D($O=^G2=S2_O%*_3V&I)8DIC%U/'
M?KQ3)(3^S <#+XA"UP..: -3"!27(&J)WBDP"SMP(SB:OT?N,?%;X,A9XA#$
M(S0<-=FB6# X$C[S138A*(%JPN0/P`CSR[PAO*4AI*3+8')YURR!1U-B&(X0C8H,N,!3)$8TB%)]!/B-: &?:ZQP(T#E4.'J
MB^#@.&B!# *DOCN@@ZG4C-!9@O@D$/I"YTA<,$1[CL,3MP(UW#;^1P@`E..A$9&(CVE%0;P(1C3'B,>
MOL9E@"*<#?LA=WKCLS?8HD&P0GSLJ.A0$^DCOK>Y7]O8W&ZP]]EBB1VV1-R2
MY(Y4VN1SFCA%FTWD)LSRL$_4;FV@P3@Z'8PK[ #4%>$.8@H(`Y`4R0S_G#
MWEG)T&&*V$0-UZ;%L2:#! GG9D'-YP@L$RU4G&(&8,<)6IPI_,?,Z_&6/%,@
M$]!4]-Q(],;YW GHRP!T>,2[P/*XR4/A@4`Q84:EW8() E:(CP"8@DSM:2(
MK0AGU.>3K)C!7V4N^`N$P!D'L'T1=2=ZNMY'.2XH1VK!Q`$E))O$#<]$?#
M2Z>QB$S*!#"9.0^#A-Y_G^26UN7,@!DSGHP5F3=GHFIYV6`,!@
M'+DG:%=>!:'[;[78#9]WOJ)@Y+#'DY=4(..P`ZD5Y9`(N4SUT!JP2?%^:Q
MZ<,K5_.Y1=ERF5H6KR[!YZO8`NTT[>?5?&Y^&5NNR):?7&/.*%]6$[[G
M749G2'*"J-/$AT-W@5J<="[W*BT4ZWX7)].ZR=7=$JL&P`C#L_R.`M>D4IV0-4SMP/
MJ :1N3ES).1-*,$"Q(G,$G'JS<_^A5YTSCNM7O0%30$_Y&@SP-.*EZ#
MC@$[N XJ1X<6@>,)9B]M^$1]"-AU-87EKL96UU1);O04?EE=PY;9WY(_8P0CT`G 5?)R7,8QT=X:MX(#<#Y3O89^SKK'-'OOU1ZOK
MS!NQ`'4Z'%/NE!=?M2RC3B(12SXH.G!%SSX&QI6.H'"P*NP5[S38TV&V-
M1NU!1?F1SWA/"$7H`'TI/(M)X$#;VT_9-;9P?;)S[TES
M1F^MT4AMAW]V']12NQJU_5KC2^A:NHZH_([=J]/I7Y]&[-[39DT-@GUT;1M,]!W8S:X/E#([<%@<]JU08R$MO
M>.2J$[#$'Z)AF/U22;7`) !X_17V(YH18$%7.6BP/YRB=8&;I0AP$,F$G<2
M?G !#!C5X>#I'R7=*'[LX,$XQ3!JC 'HS'2.*"04*=(_"LXVEXON;O8
MDH`C9/:47 IWD)3#[4+':9UR&H+PO-ABR7F!&W#0GNN !@`*5I+$&DL+G
MM/J)B,C>D2V0QI?;R/5HHEG2E9;CG,TE$)0XV[N,*4=]4ZJ?/2MW=VZCO
M-FOIRI%Z-NK;T%G-5H^7WTH]`E)&/_XX[3MF-"M>A^/M!UIV7$GXLPI+N+O*
M(144H;9[$/5@[N*8A^ V0A $7-?ET("F^9KQ^,F0S3T]_TH#'K",]Q:HJ0@
MCH)8;. >^KS')6>"EP!,!8Y4(GH>] ('K+?K.0%DB;[+=U+I783?JQ`ZC^
MO:%U`WC5QMD8GT6$U3"!E V=',HMW%S>X@/7P9.ZXGFE$U7)EJ)N7TX70S
MCKXJ4P76;KYFL?<*0O=]`!2"(-6!X"<*^J0.88J%#D)?F(".H*N$>*I73)#_
M*JEV:D!]A9 454_1251TA<]"CW%&J+G&J%S,(Q"=08"/7L=/JBS
M-FC>580F,LA1EDL+RE%M[!0)*6[((>GCIE?*$XYZPKE'Q5NG%@-U5F%?3MJ
MDY:6X1VYZW#P73!YPQZ(CP-^*M%=:$G"(3)`0'/6#UK=WMF)S*E96;YICQT1
M^ :.8"KO-.60@YNK3]$UN1E@#Z17F$RENBG>+;I5BQI1PGYG,R@'8;#-L">
M#%GSN;2<%C#,_#NO#,?81>]]=.('=E@2'/3$H4HPF7/0&68/CKM>[S9J#>?9LQYLO7%AAF0$E+L;MR#@..+C:WFP]0!VPW[ZF.M["0MU,"""L$
M([D@;JN] ,'@>01&QP%."FDQY"S8,W4$KN86CR56'@#O!N*6*HT'B_#TY?A%[ZX`#02S6Y,4K5!$I_4!:0
MK2SJ+!:%YY%>M,2B0.5W9 `NW8?4ZT24%S*I> 7#E/_F"VMFTJBR/Y)830J5
M%" Y]05KUO:;172=
MR?!"$$=J'[VA4. M.":S0KE^9+*
M^?5H`96[(Z7@DI,9]%),>RS(K(9NB.Q7QD<J0LC8[),C55BH+ZQV*Q<^(QRZSH7$W0&X(3
MALD:2O+;J9K2Y#24<.HR.A?USV B>91`);DJ2,R?*,=BIV#&%?;-J*>R1I1O
MZB3G6??MJ*>0"*/6$/TX8&W44@>C7G+&`*_4?9."##I861.*]K!W&O%(6"!2
M5NH'0).Q/W&)DMQ&O!$3>B?.0>9][%E3V3N=XD*/.,EE$Z3%4BP$YW.*H'Z
MD!=SI<2U#(CZ8(C9M>*=;28R;N(R;LL-&+57'(?=EKGXB#UD"38@E$W*NO,34]]X8`U-AC60&JXHC
M*^0S0MQRW$.>DO3$G(R5.96B0#5`4C2LU!P.,VA31HS4LJS:8H[)T=+]!04P
M$#^ZK02>Y.>0T:9J$U/V$-$A<$I;7=_`'"]X@V94
M5P8?NKHOV=^OU9_XV>+#&RK"3_5UM$Z6@#=>#PZ<0*IV[;L94M$HAM117 /<)*L#)IR,'PS/%/IL6'B7#)/)<6PQE>%
M4ELN8RP,$8W5Y.*ZLK8X&K0Z-K(IP7^69[$:/46!+S$2:!ED)/(
M_:'2)!6'ZZH.MT>''31AXE)96[HX9
M>1795XP?@28]XEWR'72$;*.)9)-R6*!")BQ*!3VL,A=%"!A9)4"F>3(C)
M#*F:':O?$MU!F AYHA ,LQMCOI:%K-H,_+1)87@)GX&!)K9V954%3('1Q
MI.0PREF^U@Q%;,Q,KD85QYIUCY`AZ&
M+./8V,H(C57W]OZL(I"-1GWFY*WM].Z,-;,6RU@E!G_Q>-OR*+Z-[U-DT$(O
M$G25N:;B4'$%1A6R[@1];" (.MQ'^ 55<0MX!0N+8B_#).#+O
MC6^";LQ!WTB/,GF#UQ2_AJZ'>QTI1M[3W:V-S>;M3V]PM%DK6?U7>W'C[9
MKK&Y_:?[CS=@0&5GCH3PTJ5[E+ETU'-7L:M&'S>KWYL,;^%+N-CX!!P4V[;/(2)SP5GT-&H
M53]K[#7W6,SFUOZQ!($]WFLT&;ZRD*,W&YN/]N..LN*I5'I=P[7PEDT^YEB0
MGZHE&_ITV*)+T/BL;3YZ_%"3MU'9@K9+'R3U0OJ!
M3>A)5:E.PZXK#6Z0V#!DD1,L@>*DGV=FAG- -V)X]2?JCJ#XO,59^6$';]
M?J$@T?@EA!-%]MO?,O7]%T".8I$UZ)0+L"Q1EF!KE>2ELXUII44=LW)ZL%$
M/F?ODMU@EP`-L?U3*8F!]PC?::,FU64IT,!5N^3*VK=V;'K.4,CXT"G2;D%H8=16JRG_8;-YB9!N;V"E+U8./A%HZ_O::^[>.W.ZKO$?7=47V/
MJ.^6ZJM3']9GR:]U6C>?>]R`M>7YM@+0R#KQ-/,-R78/]_]?'>NF(3P+1 !
MC7F*PI;$+"R4EXK7&,W;W]K!R,+W-N
M),^]7$X"B[6.J9))K8NP=_+Y+DLK4KO!WONO'=IXB>C";D#TD217$>C^N,#D
MBR%9%5%D6NT02KHX0$H0UAS?,@>N)4M867GU3)?S>VX;EKFYK$HJH(O6J:*C>*NZ:*>:W'G"WIM"[LMX3_)BA0:5$KL2'JS%2S/>)]=+DWW
M4('&^VP!N@J3?2H'"'D8I'].^B;N(IJCH'<%F;,`.NBIL2%6C1ISFS8%[8;
M-E.)/`^H(E&M.A)4I'##1AD/-%)&<"GY04LZ2>
M#968& `SBY DY"Z'@(^JA>:'#/I^C*YS/YZPIYU[/I(S-N%NQ1N(U
M1)D/=5,I<6Z*173RO33=I5/O*5V2TU,Z*.V>TFXGW=.6TBGW-)!QPCVE5Z7;
M-:_&? ><]YP?>6A0>F<'PS/6[8%#_7HH[X7"0"9XX*C)G#RH-;=V"A?D]_3[
M_Q263RD_2.5Z-H/M93D!^9[*1D_QO,7U,IN]W6Q8;"#;&LW]J3:L"4AKK%J-
MT4FD^STR-8X34U]NQ763FG%U=.;JRG-6(V@J7QA?11GG&8J)'6%O:TL522
M^
M;_&MV(5(T^A/EO)7.2M:LH35=N&I4#H3+Q)G9R5-4^N'+K=6F%6+BG[6T:
M) M4VLLQ*H$EP,A6*!0ED()2&MO7MS*M:WTKV^39?;5&(Z55_S!(*N@.2[8#!%X&?+:D5'9=8R ^"
M"/8F?^C'I&0#0K3.67S%@&30_()'-9]@]7R%R*>X#&"!O:3%?HWXWB124
M7:2I%W1DELAZ0VD6PA]BD#]%@#=0YSU;*25#/0AR?!UMRFMIESG!X-1S*?+D
M]# "@]:X(`&/5-;9T",1F4L2RGX!/NK'8HY<2G)QOQ5TP`J75^ZNL3MW5V[*
M=_Z$I>O03XM@LC U8"]-9ZPP98^+1*([E($[K!/_Q(&L1([?B/@Z]PNCN$91
M,']XA(&'PV7Y#I.O.5_+S ;=*5 9E9J&J1*RTW]J03:#N6.$9K/6S(9+.NQ
M`A$+_<2O[>C?Y%&E'K*0Z_1,)@4P649+&PY+_'*+OJG___:^]3>NXKS.P'^
M#S<"XF'+W>UNOD1)XP24:,T(ZTW"9W<=R"LT7Y_XR7@72P4EUE7!++%+%T[?J-7-%$TW9-SMD&UWSU$M!5&
M:ZUS17,X'5%(P[S%(_'%$5V!4#H(N2[9Y6-2_0G.;/J4UT-9=4%NJECJ-1L
M4B?$!2H]C$(+XHQ6W.@E%DPH,,B![&N-YZX![MA)OW$G*#Y.7N$F@YW
M#A'!BM^_D$F-!"EJ-^YE0HVW.@5K2T:9%_;BS-YC][6_0=7[FUO;1=>2(&T!FON*LJW'G>M)YC@2?+S+&I
M`D:**'3T)&WVP:0WGAQ,S.TV3O?-:J[_Z/TKPIR50X_,VO8;%NP[T_R)MG68^[XS>G!2LM7C59:#A%9$=XL!SB^]Q"%PGHU8
MZ??6E7^^<_<:ML4&.-PZZY^9#3WK5DZ6Z-:=V_8?;!U_QJ-4R7#2*M?N"VV
M_?Q)KMS0:_M)^I3I5'E.08*(_5&N4^^IN;=][>8=M3XWZ[>N9W_+>]X?TG:
MSKER>)VLIOCOL3D[AI22@="OEC314>-[LN!-,A-'"]B.&J3PUH.E#SP"]!Z
MT#;2VTEWD*A?#9MK>4F]D1^HLGO/FY#SWV2[7?BR"(_B/[ZKZ.ULWCW=?_R6M4R/')AY -.
MA(*4.Z4PHG^^:53V:.$#VI^K6_>N1T`.T.CM-NMLQQ!?%:>G5I=DT+
M8RW)U-=*QN)'A*F6'LNTTK0H^&Q6_=O;9N';ZI??^%)&>P!FVBWYV$V"NG4
MWZ/J&+P2Z;UFWCCU(1.`4^>,0)DIV0`=3=[_2,OW/O[SES@[J!#9N58.KF\n
MB1GX%!S:R)8>;".A RY5E9:9'8W_3OY1"6G')YY!O`YCM>X<=^WR1AKH%7DX+F'CR,+SJP?#<`E1QP[KE]3<_VKKW3Y7W_DFY^">]>)<4
M!NB?3N:@3IP@8(2G"BF`! 0(`M_@)>,G;WYV[(P2:%WN?#SJI2R<>&N,OJ#0
M=QKLK0U>A;JVGSP;9G398F0"S('P;4DH/@SQDIO?_D7W^ZAN'7;,&O3,_B08=QY#K7BGAK6G6=Z+??0
M,+XL_0/#<,L,%G_]/1J@3G[AMK!:;N'RXN%RX#->AB1+Q3U>+EX_ZF-Q#
M8MUNT'RWQ+SE:;N$B4L$5*-=R_%R%EM8)=";5P",".1S'*4M'($<]+$N[5
MTX57%_ 5W_M>M%:C"Z#5^O##H/.U0@LTT*_F/XM-+UZ-32CF(ON3[J."7':4
MRIT,COEFQT%=L%HK=^TM-I>:T2,6XF(%&?VH:"XJP(%'F=EICL('SG.4'D
MCF'$I$CX@Z,VZ-.9J0NQ$&.LPCQ#:6=6&DS)KV?SRMDH8C/1DL:>IGS:-4*/Q$N1([?[=:U;=O
M&/*6?H'_S3W_%]8-E798M1"Y2Q)*Y/U[<%+4)3>1(__][X:3@A-,`W?-^:H=QW!(D6U5G]AHI.3G,.[*IOY(F;^8I`(+S6)QS?T^/(P_-.A"WS
M7:@ZY-_@`7YD`?YYHM_^22[_P",.KWGOE0ZOO/^JA[<=G%R1`'B.U%^M<'97
MZ.QB^7TJ:$1W)YSE@7#7'L&_?,>XMF`98$HCJVO7Y31DD?1WZV
M(K+<:7%;'UTC.G%VS-?,+_6(1$D?/^"3-]DI@/F>@8?^)[<_SKID#9]:_@3?
MO'$'2]6IG#]-&XWDVLJ9JLU @IKGH$LWS5,Q?>N! 8
M9VMXF71-7ACYF[=WV>4B=5B62U;L+^M8N8XZ&.5S*N1T5(6H)G_`)S&,U7LX
M.!1^E7Z'?_U.9Q9(TAG[NQ)P-;YS4MO-[SFY)^.&=NPMGSPKQP_C`N;)R
MVXVX^W@.0!,#Z6FXSY):+T;S;)#1)`)@C@(0591:'1N)O
MC5F^2(`H2AZ^*;6HS^")+D#D$_A(AJE5$PFS@JIBA0G2+B,^49[CQ!9H@O^?
MZETU;!DF)ZQYY#L=#J5%4!^D(_KBM"R>+W18UT.,?3,3TOC&PK1:AH]2:#Y
M4)R(Q8ZC^7V<,9(KP*Z>]3-E'E"1+0UJED$_TTO,P4F858:,>!^<4,2&K]LB
M29WC(>CU9Y;JQHOL94>@TLZD^WPLL5)(Z1U^F41^LG$`KE"8>212]W.`7N4H
M%DR-8T?.L'OA9]'6K7JTB+(RP&4Q?ZB;7AZ:60CGR$-PDX[$-]'E+KK'4Q,PBDJ'.PC Q8@^!YGF"
M`C[6'PF63P;.Z3!5B.!2NB&OO5 TA)D(W."C=#PA,S*?2D@:F0*$BYIJ2L;
M]XIA%(@-058<4XO$0!R'58ZT.^Y1A3(DBO4@W.)S57AGG^$&`#X`8`;"#S3S
M!+#52RZ&T<0HC&F8C!D,<$!PBLT$$+"""/V@!G^D^Q"4AWA"::>60=/SG0
MS%(.G7V48Z,//:S9(911V.)WHU%R8"9YXE?I3CEKBDE#(6JI2"BF?4)3&_R
M!(F,6C4BP&.;':Q:BY87[.9AX!]&@0/.MC<439$R2)0E,H$O7CNG>@'Y]]X
M?_.-]4T1GP$H@5H!NU2?#('P:I$H6&9`I:'B?K3;348`P?@J`5>L@#HWNB5
MK8@OZ8=S@)7XTNS:09QAV*?I7L1I.!OP9
MY,H/BZ_4"S EI"WKM],A->P`TO'&!ZG?!18ZT@(_R>?ZVZ1N<_AE`W*DP/C*
M]CR-,J-D(*+5PH_.0"&^1[KN#)O#07P1]3Q8R0LZ<%:_,HS!:%*`[T:++L.8
M#HH3:.KB# +53$@/?B`PZFP:4+_AI%G9GZ$^X-9(D2*"12`: ?)#I_:@5
From
rNd
→
To
Dmitriy Nesmachny
26 February 2003
section 2 of 2 of file com.zip by Taimyr 2.00
M0AAL!B2YAJY'U3V