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.