Profi com-port
ZXNet echo conference «hardware.zx»
From Max Melnikov → To Wladimir Nickolaev 21 March 2001
Hello, Wladimir Nickolaev.
· ·· ---·.[ Local time 21:39 ].·-- -···
· ·· ---·.[ Wladimir Nickolaev and All ].·-- -···
· ·· ---·.[ Discussing Profi com-port ].·-- -···
WN> Tell us about the subzh and how it differs from the real one? Does it work with
WN> is it external hayes and is there software for it?
I asked about ports at one time, they told me, here’s what they say about the profile:
DESCRIPTION OF COMPUTER PORTS PROFI, PROFI+, PROFI 2+
Main peripherals in long addressing for PROFI,PROFI+,PROFI 2+
──────────────────────────────── ────────────────────────────────
Long addressing is valid in all operating modes PROFI, PROFI 2+
/w - means that the port is write accessible
/r - means that the port is readable
CPM - bit 5 of DFFD port
ROM14 - bit 4 ports 7FFD
╔════════════════════╗
CPM=0/1 & ROM14=0/1
╒═══════════╩════════════ ════════╩═════════╤══════╕
│ clock "AS" (register number) /w│ FFFF │
├──────────────────────── ──────────────────┼──────┤
│ port CMR1 (D0-D7 see below) /w│ DFFD │
├──────────────────────── ──────────────────┼──────┤
│ music coprocessor (data) │ BFFD │
├──────────────────────── ──────────────────┼──────┤│ music coprocessor (register number) │ FFFD │
├──────────────────────── ──────────────────┼──────┤
│ clock "DS" (data) │ FFEF │
├──────────────────────── ──────────────────┼──────┤
│ free addresses A8-A12 │ **** │
├──────────────────────── ──────────────────┼──────┤
│ port CMR0 (D0-D5 see below) /w│ 7FFD │
├──────────────────────── ──────────────────┼──────┤
│ other addresses are prohibited │ .... │
│ │ │
└──────────────────────── ──────────────────┴──────┘
Note: the purpose of ports CMR0, CMR1 will be described below
Basic peripherals in short addressing for PROFI,PROFI+,PROFI 2+
──────────────────────────────── ─────────────────────────────────
(basic addressing for SINCLAIR mode)
╔════════════════════╗
CPM=0 & ROM14=0
╒═══════════╩═══════════ ═════════╩═════════╤════╕
│ port "FF"/r clock "AS" /w│ FF │
├─────────────────────── ───────────────────┼────┤
│ keyboard D0-D4(D5)/r; border D0-D2 /w│ │
│ reading MG D6/w; record MG D3 /w│ FE │
│ BEEPep D4 /w│ │
├─────────────────────── ───────────────────┼────┤│ see "music registers." │*FD │
├─────────────────────── ───────────────────┼────┤
│ free │ FB │
├─────────────────────── ───────────────────┼────┤
│ free │ F7 │
├─────────────────────── ───────────────────┼────┤
│ watch "DS" │ DF │
├─────────────────────── ───────────────────┼────┤
│ VG93 (trdos=1) ; BB55 (trdos=0) - pyс │ 7F │
├─────────────────────── ───────────────────┼────┤
│ VG93 (trdos=1) ; BB55 (trdos=0) - port C │ 5F │
├─────────────────────── ───────────────────┼────┤
│ VG93 (trdos=1) ; BB55 (trdos=0) - port B │ 3F │
├─────────────────────── ───────────────────┼────┤
│ VG93 (trdos=1) ; BB55 (trdos=0) - port A │ 1F │
├─────────────────────── ───────────────────┼────┤
│**RQ VG93(trdos=1);see port "FF"(trdos=0)/w│ FF │
├─────────────────────── ───────────────────┼────┤
│ other addresses are prohibited │ .. │
└─────────────────────── ───────────────────┴────┘
Note:
1) the purpose of the VG93 registers coincides with those written in the table below;
2) the purpose of ports FE, FF (system register RQ VG93) will be described
below.
Main peripherals in short addressing
──────────────────── ─────────────────────for computers PROFI,PROFI+,PROFI 2+
─────────────────────────────────────
╔════════════════════╗
· CPM=1 & ROM14=0 ·
╒═══════════╩═══════════ ═════════╩═════════╤════╕
│ port "FF"/r; clock "AS" /w│ FF │
├─────────────────────── ───────────────────┼────┤
│ keyboard D0-D4(D5)/r; border D0-D2 /w│ │
│ reading MG D6/r; record MG D3 /w│ FE │
│ BEEPep D4 /w│ │
├─────────────────────── ───────────────────┼────┤
│ see "music registers." │*FD │
├─────────────────────── ───────────────────┼────┤
│ free │ FB │
├─────────────────────── ───────────────────┼────┤
│ free │ F7 │
├─────────────────────── ───────────────────┼────┤
│ watch "DS" │ DF │
├─────────────────────── ───────────────────┼────┤
│ VG93 registers - data register │ 7F │
├─────────────────────── ───────────────────┼────┤
│ VG93 registers - sector register │ 5F │
├─────────────────────── ───────────────────┼────┤
│ VG93 registers - track register │ 3F │
├─────────────────────── ───────────────────┼────┤
│ command register /w, status register /r VG93 │ 1F │├─────────────────────── ───────────────────┼────┤
│ **RQ VG93 - system register │ BF │
├─────────────────────── ───────────────────┼────┤
│ other addresses are prohibited │ .. │
│ │ │
└─────────────────────── ───────────────────┴────┘
Note: the purpose of the FE ports and the system register, see below
Extended peripherals in short addressing
───────────────────── ──────────────────────
only for computer PROFI 2+
══════════════════════════════
All ports selected by long addresses work even when
short addressing enabled (for example, ports CMR0, CMR1 can
mode to select both short and long addresses).
╔════════════════════╗
CPM=1 & ROM14=1
╒═══════════╩═══════════ ═════════╩═════════╤════╕
│ clock "AS" - register number /w│ FF │
╞═══════════════════════ ═══════════════════╪════╡
│ keyboard D0-D4(D5)/r; border D0-D2 /w│ │
│ reading MG D6 /r; writing MG D3 /w│ FE │
│ BEEPip D4 /w│ │
├─────────────────────── ───────────────────┼────┤
│ see "music registers." │*FD │
╞═══════════════════════ ═══════════════════╪════╡│ modem "condor" (external address) │ FB │
├─────────────────────── ───────────────────┼────┤
│ timer VI53/2 (external address) │ F7 │
├─────────────────────── ───────────────────┼────┤
│ port pyс ВВ51 (COM1) │ F3 │
├─────────────────────── ───────────────────┼────┤
│ port pyс VI53/1 (COM1) │ EF │
├─────────────────────── ───────────────────┼────┤
│ hard drive port IDE │ EB │
├─────────────────────── ───────────────────┼────┤
│ port pyс BB55 │ E7 │
├─────────────────────── ───────────────────┼────┤
│ data register VG93 │ E3 │
╞═══════════════════════ ═══════════════════╪════╡
│ clock "AS" (non-primary address) /w│ DF │
├─────────────────────── ───────────────────┼────┤
│ modem "condor" (external adp) │ DB │
├─────────────────────── ───────────────────┼────┤
│ timer VI53/2 (external address) │ D7 │
├─────────────────────── ───────────────────┼────┤
│ data register BB51 (COM1) │ D3 │
├─────────────────────── ───────────────────┼────┤
│ register channel 2 VI53/1 (COM1) │ CF │
├─────────────────────── ───────────────────┼────┤
│ hard drive port IDE │ CB │├─────────────────────── ───────────────────┼────┤
│ port BB55 (port C) │ C7 │
├─────────────────────── ───────────────────┼────┤
│ sector register VG93 │ C3 │
╞═══════════════════════ ═══════════════════╪════╡
│ watch "DS" │ BF │
├─────────────────────── ───────────────────┼────┤
│ modem "condor" (external adp) │ BB │
├─────────────────────── ───────────────────┼────┤
│ timer VI53/2 (external address) │ B7 │
├─────────────────────── ───────────────────┼────┤
│ controller control register │ B3 │
├─────────────────────── ───────────────────┼────┤
│ register channel 1 VI53/1 (COM1) │ AF │
├─────────────────────── ───────────────────┼────┤
│ hard drive port IDE │ AB │
├─────────────────────── ───────────────────┼────┤
│ port BB55 (port B) │ A7 │
├─────────────────────── ───────────────────┼────┤
│ track register VG93 │ A3 │
╞═══════════════════════ ═══════════════════╪════╡
│ clock "DS" (non-primary address) │ 9F │
├─────────────────────── ───────────────────┼────┤
│ modem "condor" (external adp) │ 9B │
├─────────────────────── ───────────────────┼────┤│ timer VI53/2 (external address) │ 97 │
├─────────────────────── ───────────────────┼────┤
│ similar to B3 (COM1) │ 93 │
├─────────────────────── ───────────────────┼────┤
│ channel register 0 VI53/1 (COM1) │ 8F │
├─────────────────────── ───────────────────┼────┤
│ hard drive port IDE │ 8B │
├─────────────────────── ───────────────────┼────┤
│ port BB55 (port A) │ 87 │
├─────────────────────── ───────────────────┼────┤
│ command register VG93 │ 83 │
╞═══════════════════════ ═══════════════════╪════╡
│ free │ 7F │
├─────────────────────── ───────────────────┼────┤
│ free │ 7B │
├─────────────────────── ───────────────────┼────┤
│ free │ 77 │
├─────────────────────── ───────────────────┼────┤
│ free │ 6F │
├─────────────────────── ───────────────────┼────┤
│ free │ 5F │
├─────────────────────── ───────────────────┼────┤
│ system register **RQ93 │ 3F │
╞═══════════════════════ ═══════════════════╪════╡
│ other addresses are prohibited │ .. │└─────────────────────── ───────────────────┴────┘
NOTE: (COM1) means that this address refers to the COM port.
══ Control Memory Registers ══
──────────────────────────────
CMR0 EQU 07FFDH - Sinclair 128 register
CMR1 EQU 0DFFDH - CP/M register
The meaning of the CMR1 port bits.
┌────┬───────┬────────────────── ────────────────────────────────┐
│ D0 │ SEGA3 │ │
│ D1 │ SEGA4 │ Number of the projected memory page (line) │
│ D2 │ SEGA5 │ │
├────┼───────┼────────────────── ────────────────────────────────┤
│ │ │ Selecting the position of the CPU segment projection window:│
│ D3 │ SCO │ 0 - window number 1 (C000-FFFF) │
│ │ │ 1 - window number 2 (4000-7FFF) │
├────┼───────┼────────────────── ────────────────────────────────┤
│ │ │ 1 - disables blocking of port CMR0 and turns off │
│ D4 │ NOROM │ ROM, placing in its place the RAM from seg 00 │
├────┼───────┼────────────────── ────────────────────────────────┤
│ │ │ 1 - blocks the operation of the controller from the TR-DOS ROM │
│ │ │ and enables controller ports for access from RAM ││ D5 │ CP/M │ (with ROM14=0). With ROM14=1 - modifies access │
│ │ │ to the extended periphery │
├────┼───────┼────────────────── ────────────────────────────────┤
│ │ │ Projects an additional screen seg 06 into the map │
│ D6 │ SCR │ processor memory in place of seg02 with bit D3 │
│ │ │ CMR0 must be at "1" (8000-BFFF) │
├────┼───────┼────────────────── ────────────────────────────────┤
│ │ │ 0 - "SPECTRUM" raster (video controller │
│ D7 │ 80DS │ expands seg05) │
│ │ │ 1 - Extended raster (seg06 & seg3A) │
└────┴───────┴────────────────── ────────────────────────────────┘
The value of the CMR0 port bits.
┌────┬───────┬────────────── ────────────────────────────┐
│ D0 │ SEGA0 │ Number of the projected memory segment │
│ D1 │ SEGA1 │ (column) │
│ D2 │ SEGA2 │ │
├────┼───────┼────────────── ────────────────────────────┤
│ │ │ Selecting the position of the screen raster "SPECTRUM"│
│ │ │ 0 - seg05, 1 - seg07 (at 80DS = 0) │
│ D3 │ POLEK │ -------------------------------------+- │
│ │ │ Screen position selection CP/M (80DS = 1): ││ │ │ 0 - screen of points seg04, attributes seg38 │
│ │ │ 1 - screen of points seg06, attributes seg3A │
├────┼───────┼────────────── ────────────────────────────┤
│ │ │ Switches ROM pages "SPECTRUM" │
│ D4 │ ROM14 │ 0 - Spectrum128, 1 - Spectrum48 (CP/M=0)│
│ │ │ -------------------------------------+- │
│ │ │ Modifier of external devices (CP/M=1)│
├────┼───────┼────────────── ────────────────────────────┤
│ D5 │ BLOCK │ Blocks the operation of the CMR0 port (NOROM=0) │
├────┼───────┼────────────── ────────────────────────────┤
│ D6 │ -+- │ Not used │
│ D7 │ │ │
└────┴───────┴────────────── ────────────────────────────┘
Sincerely, Max Melnikov... aka HighLander... aka Uncle Maximka...
.·∙.■▀■▄■...[ProDiGy]...[LImp BiZkiT]...[GirlS]...[MetaLlicA]...■▀■▄■.∙·.
`∙..∙·---──·─//─..[MW4]...[UnrEAl TouRNameNt]...[KiSh]..─/─·──---·∙..∙'