ZXPC
ZXNet echo conference «hardware.zx»
From Aleksandr Majorov → To Kirill Frolov 20 July 2002
Hello Kirill!
20 Jul 02 00:06, Kirill Frolov -> Aleksandr Majorov:
AM>> I see only one problem - direct access to ports under NT
AM>> a little bit later: install the direct access driver and that’s it.
KF> Driver from Microsoft? No? To the garden.
What don't you like about a non-M$ driver?
Or did _all_ drivers for everything you have cost from M$?
[skipped]
AM>> Have you checked the impossibility of working or are you just talking?
[skipped]
KF> Yes, even in Windows this program only worked normally for me
KF> when it is an “active application”, and in the background everything is comatose.
You will probably be surprised, but on my server there is a link to life in the background!
And the active one is usually TMyl, or Remote Admin.
And the link works without problems!
Moreover, if I climbed onto the server via RA (at the same time loading the stone
very large!!!), then the link still works normally!
KF>>> And so that 100% of the people don’t eat?
AM>> Let it not eat 100%.
[skipped]
KF> He eats 100% of his data. In reality it means ~90%.
This means that my Windows does not know that there is some application
It consumes all resources and the entire system must slow down.
So it has been working without brakes for several years now. :) KF>>> And under Linux, BeOS, BSD of different versions and SCO with Solaris?
AM>> Come on, describe the problems with these OS.
AM>> What, there is no LPT port, or it suddenly moves to a different one
AM>> port?
KF> There is no access to it,
Yes ny?
KF> the link with other programs will be distorted, etc.
And if you put a link on the COM port, then it
will he fight with anyone? Nu-nu.
KF> There is /dev/ports somewhere,
KF> somewhere there is ioperm and port address
KF> must be calculated via /proc and
Is this so problematic?
KF> for Windows, by the way, there are also similar problems.
What do you mean?
[Windows killed]
AM>> Tell us how LPT differs from sequential in this regard
AM>> port?
KF> Using operating systems, it most often works only for output.
And entering information from _inputs_ is like “end of paper”,
"Printer ready" like why is it not needed? :)
KF> C designed for
KF> interface is not at all compatible with the link.
What, the serial port is specially designed
to an interface compatible with the link? ;) AM>> And at the same time, tell us how the serial port will help
AM>> for you with “non-standard hardware, laptop, and all sorts
AM>> there are Amigos and Macs."
KF> The serial port is opened as a file
Everywhere? Under all systems?
All controls are absolutely the same and you won’t have to rewrite anything?
KF> adjust the speed and work. All questions why and how it is
KF> works, what ports, interruptions and conflicts are taken care of by the axis.
KF> CPU load is less than a percentage.
Uh-huh, what should be put on Speck’s side?
Something like BB51 with harness?
[skipped]
AM>> Why aren’t they interested?
AM>> They work and what else is needed?
KF> As soon as I installed OS/2, the adventures began.
There is no need to install any OS :))
KF> Ended with a link via the serial interface
Schemes, program, description, sources to the studio?
Alexand
From Andrey Tihanov → To All 21 July 2002
Hello All!
Back in 1995, I had a link working through a converted tape port to
Spectrum, with COM port on PC. Just 3 wires and easy conversion
Spectrum, mainly for galvanic isolation. On ZX software
driver, simple terminal on PC. Normally held 4800 with a lace length of 5m,
I tried 9600, but it only worked on a cord no longer than 0.5m. Via the same port
my robotron 6329.02 worked via RS232 with the xon/xof protocol right up to the purchase of a PC in
1997
P.S. 4800 speed is certainly not that great, but with the file size on the Spectrum being
20-50kb, IMHO is quite normal.
Goodbye, Andrey.
From Kirill Frolov → To All 22 July 2002
Press RESET immediately, All!
21 Jul 02 00:28, Andrey Tihanov wrote to All:
AT> Back in 1995, my link worked through a converted tape recorder
AT> port on the Spectrum, with a COM port on the PC. Only 3 wires and simple
AT> rework in Spectrum, mainly for galvanic isolation.
With normal input/output buffers in the 38400 spec without errors,
the wire was about 3 meters long. All this without turbo mode.
Driver piece:
ATTENTION!
There is an error in the given code fragment that, if FAILED
SERIAL INTERFACE CONTROLLER IN THE CONNECTED COMPUTER
or when using an interface WITHOUT HARDWARE FLOW CONTROL SIGNALS
can lead to MODEM BUFFER OVERFLOW and all sorts of other sad
consequences. Cause of error: when the buffer is full, the signal is reset
CTS what blocks the transmitter in the connected computer, program
hopes that the transmitter will be guaranteed to be blocked and does not stop
reception before a pause occurs in the bit stream.
Turbo mode must be disabled. Z80 at 3.5Mhz, without WAIT or WAIT
only on odd-clock instructions (I don’t remember exactly). Connection diagram
partially corresponds to the scorpion circuit: TX taken from 1FFD (tx serial
printer), RX is connected to the BUSY port of the printer (rx, that is, dtr from the printerbusy with Vicomm modem), I don’t remember where the rest of the signals go.
;---------------------------------------
; RS232 EMULATOR ZX-LINK
;
TXPORT EQU #1FFD
RXMAX EQU 270
ZXL_INI LD A,1 ; initialization
JR ZXL_CTL
ZXL_OFF XOR A ; shutdown
ZXL_CTL ;LD (ZXL_DCD),A ; installation of DCD for PC
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; receiving data from PC.
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)
R.L.A. 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
EM A,(#FE); B3
RLA
RR E
JR$+2
JR$+2
JR$+2
JR$+2
JR$+2
NOP
NOP
EM A,(#FE); B4
RLA
RR E
JR$+2
JR$+2
JR$+2
JR$+2
JR$+2
NOP
NOP
EM A,(#FE); B5
RLA
RR E
JR$+2
JR$+2
JR$+2
JR$+2
JR$+2
NOP
NOP
EM A,(#FE); B6
RLA
RR E
JR$+2
JR$+2
JR$+2
JR$+2
JR$+2
NOP
NOP
EM A,(#FE); B7
RLA
RR E
JR$+2
JR$+2
JR$+2
JR$+2
JR$+2
NOP
NOP
EM 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 0TXMASK 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