Ports
ZXNet echo conference «hardware.zx»
From Eugene Palenock → To Max Melnikov 27 March 2000
Hello Max!
10 Mar 00 09:33, Max Melnikov -> All:
MM> People, please post the addresses of the ports of various spectrum columns from them
MM> decryption, imho it will be useful for many, both for programmers and for
MM> iron masters.
MM> I’ll write on my own behalf which _exactly_ Quorum ports I know as
MM> decrypted.
MM> ┌───────┬─────────────── ────────────────┐
MM> │ Address │ Decryption │
MM> │ in ├─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┤
MM> │ HEX │f│e│d│c│b│a│9│8│7│6│5│4│3│2│1│0│
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─ ┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ 00 │ │ │ │ │ │ │ │ │0│ │ │0│ │ │ │0│ Computer configuration
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─ ┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ 7FFD │0│ │ │ │ │ │ │ │ │ │ │1│1│ │0│ │ Memory management
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─ ┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ FE │ │ │ │ │ │ │ │ │1│ │ │1│1│ │ │0│ Klava
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─ ┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ 7E │ │ │ │ │ │ │ │ │0│ │ │1│1│ │ │0│ Extended keyboard MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ 80FD │1│ │0│ │ │ │ │ │ │ │ │1│1│ │0│ │ Поpт СР/М
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ BFF7 │ │0│1│1│ │ │ │ │1│ │ │1│0│ │ │ │
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ |
MM> │ DFF7 │ │1│0│1│ │ │ │ │1│ │ │1│0│ │ │ │ > Часы по Глюкy
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ |
MM> │ EFF7 │ │1│1│0│ │ │ │ │1│ │ │1│0│ │ │ │ /
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
MM> │ ???? │ │ │ │ │ │x│ │x│1│1│0│1│ │ │ │ │
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ |
MM> │ ???? │ │ │ │ │ │x│ │x│1│1│0│1│ │ │ │ │ > Кемпстон мышь
MM> ├───────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ |
MM> │ ???? │ │ │ │ │ │x│ │x│1│1│0│1│ │ │ │ │ /
MM> └───────┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
MM> Пpо мышь скажy одно: адpеса поpтов стандаpтные (как описаные в одном
MM> из ZX-FORMAT'ов) я их не помню :(
FFDF - Y, FBDF - X, FADF - Keys
EF - CDOS modemMany also have PC modems based on the Kondratiev scheme - I don’t remember the ports, but
Something conflicted with him...
MM> These are not all ports, I just have information or a diagram about them
MM> implementations. Once again I ask: LEAVE THE INFORMATION, I REALLY NEED IT!!!
There are also different BB55 ports, their standards are different - for example, on ATAS-256 -
1F,3F,5F,7F - 1F joystick or printer, 7F - port programming, 5F&3F -
one - memory (only one bit - 256 is only accessible through it) the other -
output ULF volume (three bits in total). Because of this, the FUT formatter had
glitches - for some reason he was looking for printers and, having found BB55, he thought that it was a printer, but
memory 256 switched...
I remember in some Optrone they talked about a similar computer - only ports
The memory there is completely different and there are more than 2 screens
=== Start PROFI_IO ===
===================================================================================
* Area: ZX.SPECTRUM
* From: Vyacheslav Mednonogov, 2:5030/727.12@fidonet (14 Feb 99 21:12:28)
*To: All,
* Subj: From old stocks - Profi ports
===================================================================================
Get Msg, All!
=== Cut ===
─ ZX.SPECTRUM.ARCHIVE (2:5030/542.170) ────────────────── ZX.SPECTRUM.ARCHIVE ─
Msg: 5173 of 22398
From : Michael Markowsky 2:5020/378 26 Mar 97 11:45:02To : All 2:5030/461 28 Mar 97 01:34:40
Subj : Profi Ports
─────────────────── ──────────────────── ──────────────────── ────────────────────
Hello, All!
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 │ │ │
└────┴───────┴────────────── ────────────────────────────┘
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
═════ Border Register ══════
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
PORT EQU 0FEH - ZX-SPECTRUM port
Meaning of port bits:
For the record:
PORT.2-0 border color
PORT.3 tape recorder output
PORT.4 ZX-Sound output
For reading:
PORT.5-0 keyboard (high byte
address goes to the keyboard input)
PORT.6 tape recorder input
PORT.7
═══════════════════════════════ ════════════════════════════════
System register of the drive controller:
═══════════════════════════════ ════════════════════════════════
┌────┬───────┬────────────── ────────────────────────────┐
│ D0 │ │ Select drive /w││ D1 │ │ /w│
├────┼───────┼────────────── ────────────────────────────┤
│ D2 │ │ 0 - reset VG93 /w│
├────┼───────┼────────────── ────────────────────────────┤
│ D3 │ │ 1 - HRDY, 0 - IP signal emulation /w│
├────┼───────┼────────────── ────────────────────────────┤
│ D4 │ SIDE │ side selection not(0/1) /w│
├────┼───────┼────────────── ────────────────────────────┤
│ D5 │ │ 0 - double recording density (MFM) /w│
│ │ │ 1 - single recording density (FM) │
├────┼───────┼────────────── ────────────────────────────┤
│ D6 │ DRQ │ reading DRQ signal /r│
├────┼───────┼────────────── ────────────────────────────┤
│ D7 │ INTRQ │ reading signal INTRQ /r│
└────┴───────┴────────────── ────────────────────────────┘
/r - read-only
/w - available by write only
═══════════════════════════════ ═══════════════════════════════
The controller control register serves for
management of the interrupt controller from the computer and
512VI1, as well as for checking some. signals:
═══════════════════════════════ ═══════════════════════════════
┌────┬───────┬────────────── ────────────────────────────┐│ │ INT │ To write: 1-allow interruptions │
│ D0 │ / │ 0-disable interruptions │
│ │ RI │ Reading: reading the RING line of the computer │
├────┼───────┼────────────── ────────────────────────────┤
│ D1 │ │ │
│ D2 │ │ │
│ D3 │ ----- │ not used │
│ D4 │ │ │
│ D5 │ │ │
│ D6 │ │ │
├────┼───────┼────────────── ────────────────────────────┤
│ D7 │ DCD │ On reading: reading the DCD signal of the computer │
└────┴───────┴────────────── ────────────────────────────┘
Best wishes! Michael KLUG
-+-
+ Origin: KLUG's BBS ■ Freq: 1:00-5:30 ■ USR Courier V.Evr (2:5020/378)
=== Cut ===
Warm greetings, Slava!
[Russian Elephant is the Best Friend of Finnish Elephant] [CV2 - 85%]
+ Origin: -= MADE BY COPPER FEET =- (2:5030/727.12)
===End PROFI_IO ===
Best regards, Evgeniy.