C-DOS MODEM - What is the C-DOS? Setting modes.
How C-DOS carries out the transmission of data?
C-DOS MODEM
(C) Ars
In this issue, I keep the description
C-DOS modem. First of all I will say a few words
about the program itself. The very first program
support (as well as the first scheme of C-DOS
modem) belongs to the Moscow firm
"Allegro" (not to be confused with the Minsk ALIBRO).
By the way everyone knows what a C-DOS?
Actually, it stands for
Communication Data Operating System, that
translation itself does not require, however,
as it suggests that the trait in
Reduction CDOS nikchemu. Anyway, with the
a dash of this ...
Thus, the basic code completion and
Design C-DOS'a did Robert 'Modem'Co
under the wise leadership of KSA. And this
happened, judging by the date of copyright as much in
1994. Since then much water has flowed and
a lot of beer drunk ... I've seen a bunch of versions
C-DOS'a, namely: 2.00, 2.50, 3.00, 3.33,
3.34, 1.05, 1.06, 1.07, 1.10. That's all -
Moscow's version and they said so
say, in order of increasing bloat
(Bugs :-). Describe that for them to
What I will not, this can be read from
Moscow's network of newspapers. I just want to
pay attention to one fact:
navorachivanii or / and / xor obezglyuchivanii
C-DOS'a attended a crowd of people, and
namely: FANTOMASSOFT, KOLOVORAT 'Wolk,
MPR, etc. It was done a lot of useful
things, such as speakerphone, file HISTORY,
resolve the conflict AON'a and modem, etc.
Menu with a copyright that appears
Startup C-DOS'a, could not
accommodate all comers, and therefore it was
prudently expand and stretch. Between
Yet despite all these very useful
innovation has not been made of the elementary
obezglyuchivaniya this is really all
the required files of. Glitches and glyuchki roamed
from one version to another, carefully
preserve and enhance. : (And another thing
observation that can be done
naked eye: All major
Procedure C-DOS'a as in version 2.00, so
and 2.50, 3.00 ,..., shorter in all
others, too, are on one and the
same addresses in memory. What does this mean?
There is one small little idea ... Yes no
Never in my eyes have not seen the source code
Program C-DOS! All of the major improvements
program implemented in the most popular
to date under the assembly
called STS !...;-(
Generally, it is clear where I'm getting at. If
you really need a new C-DOS, then
deal only in the procedures of interaction with
iron. Shell - a foolish thing, it
can write any encoder. But kopanut
iron is a little deeper, it's excuse will be
complicated. This is not a shell encode
;-) So, I appeal to all 2day real
software 'hardware crackers: that is weakly
lomanut C-DOS'ku?? To date,
to my proposal otklinulas only
Group E-Mage of Grodno, for which she
thank you so much!
For the seed shall describe how the C-DOS
transmitting data. I cite
here the source of the transfer
obtained by disassembling.
Some teams (unnecessary in my
look?) I took in a comment. Honestly
speaking, I do not think that way
provides an accurate signal duration
in cycles, or provides something like
Payment transients. But can
I do not have rights or not yet
to understand: (
; Procedure Transmit
DI
LD HL, (Start); count
LD DE, (Length); address of the end
ADD HL, DE; block
LD (End), HL
LD B, # 40; top blokaNeader EXX; long piloton
; LD A, (IX + # 00)
CALL Out1
EXX
DJNZ Header
Next_N LD HL, (Start); beginning bytes
CALL Out0; start piloton
Next LD DE, (End)
; XOR A
; XOR A
BIT 0, (HL)
CALL Z, Out0; transfer of the 0-th
CALL NZ, Out1; bit byte
; LD A, (IX + # 00)
BIT 1, (HL)
CALL Z, Out0; next bit
CALL NZ, Out1; bytes
; LD A, (IX + # 00)
BIT 2, (HL)
CALL Z, Out0; etc.
CALL NZ, Out1
; LD A, (IX + # 00)
BIT 3, (HL)
CALL Z, Out0
CALL NZ, Out1
; LD A, (IX + # 00)
BIT 4, (HL)
CALL Z, Out0
CALL NZ, Out1
; LD A, (IX + # 00)
BIT 5, (HL)
CALL Z, Out0
CALL NZ, Out1
LD A, (IX + # 00)
BIT 6, (HL)
CALL Z, Out0
CALL NZ, Out1
; LD A, (IX + # 00)
BIT 7, (HL)
CALL Z, Out0
CALL NZ, Out1
; LD BC, # 0000
XOR A
OR (HL)
EX DE, HL
CALL PE, Out0; 9-th bit!
CALL PO, Out1; parity
; LD A, (IX + # 00)
INC DE
; LD BC, # 0000 in the version NormalPilotE NOP; CALL
Out1 (sawtooth NOP; tone end bytes)
NOP
SBC HL, DE; check endblok
EX DE, HL; Edition NormalNextJP JP NZ, Next; or JP NZ,
Next1
CALL Out1; end of the block
RET
Out0; LD BC, # 0000 formation
LD A, (Sys); meander for
XOR # 80; signal
OUT (# EF), A; logic 0
CALL Out0H; (high frequency)
XOR # 80
OUT (# EF), A
CALL Out0L
XOR A; setting the Z flag
RET
Out1 LD A, (Sys); formation
XOR # 80; meander for
OUT (# EF), A; signal
CALL Out1H; logic 1
XOR # 80; (low frequency)
OUT (# EF), A
CALL Out1L
RET
Out0H LD B, # 2C; conditionally: front
DJNZ $; wavefront
; NOP; for logich.0
RET
Out0L LD B, # 24, the trailing edge
DJNZ $; momentum
; NOP; logich.0 (polar
RET; sequence - a contradiction
, False)
Out1H LD B, # 5C
DJNZ $; the leading edge
; NOP; momentum
RET; transfer logic 1
Out1L LD B, # 55
DJNZ $; trailing edge
; NOP; momentum
RET; transfer logic 1
Start DW 0
Length DW 0
End DW 0
Sys DB # 20, the port status
; Modem
Now, comments on the procedure. First
just pay attention to how to implement
FM transmission -
procedures Out0 and Out1: logical 0 and 1
transmitted (modulated) in the frequency
send (signal shape - almost
meander), the frequency of the signal
"1" is approximately 2 times smaller than "0". In
Basically here are all similar to the
transfer format on the tape. By telephone
line signal is already in the form
sinusoidal signal. A input
Amplifier modem converts
(Demodulate) the signal again
rectangular.
Transmission of the information carried
blocks. In establishing konnekta
transferred title to the system
parameters: the type of version, phone number,
password, etc. When the file transfer unit
has a size of 1 sector + 2 bytes
checksum. Beginning of the block is entered
a variable Begin, length - in Length. In
early transfer of power immediately sent to
synchronization piloton (label Header),
representing a particular meander
duration and frequency Relevant to
logic 1. Next is transmitted more
short starter piloton frequency
logic 0. After that he passed
bit-byte, from 0 to 7 th bits. By
completion of the transfer of all 8 bits sent
parity bit: it logich.0 if in byte
even number of bits set or
logich.1 if the number ediniits - odd
Finally sent for final piloton
bytes (logich.1). At the end of the block
sent the same piloton as a sign
end transmission.
This procedure Transmit
corresponds to the Turbo. In modes
Normal and Turbo2 there are some differences.
In the Usual, is not compatible with
Turbo, the synchronizing signals are sent
transmission of each byte. In the
Turbo2, compatible with the Turbo, used
automatic adjustment of the duration
fronts in the process of admission, and initial
delays are reduced. In the Turbo2
speed is automatically set to
max for a given line, which, incidentally, very
important when sending large files.
Block transfer time of 16 kb in
no errors:
version time
Usual 1 min. 50.
Turbo 1 minute. 30.
Turbo 2 1 min. 08 with.
In the Turbo2 in establishing
optimal speed is
stepwise reduction in the rate of transmission,
up to the Turbo-version.
In conclusion, we present a procedure
installation modes (only the portion that
Regarding the procedure Transmit).
; Procedure Set_Version
LD A, (Vers); version number:
OR A; 0-Usual
JP Z, SetV_N; 1-Turbo
DEC A; 2-Turbo2
JP Z, SetV_T
SetV_T2 Call SetPil0
LD BC, # 2220
LD DE, # 5622; min duration
CALL SetOut; trailing edge
. . .
RET
SetV_T Call SetPil0
CALL SetOut0
. . .
RET
SetV_N LD A, # CD; each byte
LD HL, Out1; is piloton!
Call SetPil
Call SetOut0
. . .
RET
SetOut0 LD BC, # 2C24; values of duration
LD DE, # 5C5F; surface fronts for
SetOut LD A, B; Usual and Turbo
LD (OutOH +1), A
LD A, C; We arrange
LD (OutOL +1), A; constants
LD A, D; transfer
LD (Out1H +1), A
LD A, E
LD (Out1L +1), A
RET
SetPil0 XOR A; for Turbo-Version
LD HL, 0 for no pilotona
LD DE, Next; each byte
SetPil LD (PilotE), A
LD (PilotE +1), HL
LD (NextJP +1), DE
RET
At this time being everything, but I hope
that, together, we quickly
understand with C-DOS'om. Your ideas,
proposals and procedures adopted by FTL
BBS files FOR_CDOS - files are NOT
secret.
Other articles:
|
|
|
|
C-DOS MODEM - What is the C-DOS? Setting modes.
How C-DOS carries out the transmission of data?
|
|
|
|
|
|
|