ports
ZXNet echo conference «code.zx»
From Oleg Sazonov → To All 22 November 1998
Greetings, All!
I would like to know what ports they are
#1f,#3f,#5f,#7f, which IMHO are used
in one device. These ports are
spied from one game in 1987,
but what are they there for? :-/
All the best, All.
E-mail: Oleg_Sazonov.sp0007@zxnet.spb.ru
Write letters...
From Aleksandr Majorov → To Oleg Sazonov 25 November 1998
Hayushki, Oleg!
Once in morning 24-11-98 14:32:43 somebody Oleg Sazonov has
written to Aleksandr Majorov about 'ports'.
[ ]
OS>>> #1f,#3f,#5f,#7f, which are used IMHO
OS>>> in one device. These ports I
[ ]
AM>> Although, if I’m not mistaken, 580BB55 was connected to such ports
[ ]
OS> I have doubts that this was used for this purpose :-/
OS> there is a suspicion that this is for multiface (or whatever it is called?)
look at it for yourself:
============================================================================
More or less standard Spectrums worked with the following ports:
Address │ Write │ Read
───────┼──────────────────────────── ──┼─────────────────────────────────
NN FF │ 4 : SO - Sound │ 6 : TI - Tape Reading
│ 3 : TO - Record to tape │ 4 : |
│ 2 : G - Green. | │ 3 : |
│ 1 : R - Red. } BORDER │ 2 : } Keyboard data
│ 0 : B - Syn. | │ 1 : | (the row is set by clearing the bit
│ │ 0 : | in the high byte of the address)
───────┼──────────────────────────── ──┴─────────────────────────────────
XX FB │ ZX Printer Port
───────┼──────────────────────────── ──┬─────────────────────────────────XX 1F │ │ 4 : Fire |
│ │ 3 : Up |
│ │ 2 : Down } kempston
│ │ 1 : Left |
│ │ 0 : Right |
───────┼──────────────────────────── ──┼─────────────────────────────────
XX 3F │ │ 0 : Light pen
═══════╪════════════════════════════ ══╪═════════════════════════════════
7F FD │ System port version 128K │
│ 5: port blocking │
│ 4: ROM 48K/-128K │
│ 3: screen │
│ 7 pages / - 5 pages │
│ 2 : | │
│ 1 : } RAM page number │
│ 0 : | │
───────┼──────────────────────────── ──┼─────────────────────────────────
FF FD │ Select register number AY │ Read from register AY (in some cases
───────┼──────────────────────────────┤ on the Spectrum the address of this port
BF FD │ Write to register AY │ changed from FFFD to BFFD)
═══════╪════════════════════════════ ══╧═════════════════════════════════
│ Interface 1
XX EF │ Control │ Status
XX E7 │ DATA
XX F7 │ RS-232/NETWORK═══════╪════════════════════════════ ═════════════════════════════════════
│ TR-DOS
XX FF │ Control │ Status
│ 6 : -DDEN │ 7 : INTR
│ 4 : -SIDE │ 6 : DRQ
│ 3 : -HLT │
│ 2 : -RES │
│ 1 : | │
│ 0 : } drive number │
───────┼──────────────────────────── ──┼──────────────────────────────────
XX 1F │ Command │ Status
XX 3F │ Track
XX 5F │ Sector
XX 7F │ Data
═══════╧════════════════════════════ ═════════════════════════════════════
When running TR-DOS, it is necessary to block ports whose addresses match
give with VG93 ports and allow the operation of the drive controller ports. This
the task is performed by a special signal generated by the controller, which is also sent
turns on the new ROMs and turns on the TR-DOS ROM (or changes one of the address
ROM signals, if these codes are in a large-capacity common ROM).
Interface 2 simulates connecting the contacts of two joysticks in parallel
similar to the number keys.
The AY-3-8910 circuit contains 15 registers for the following purposes:
register │ use bits │ purpose
─────────┼─────────────────┼ ────────────────────────────0 │ 7 6 5 4 3 2 1 0 │ exactly Tone divider in
1 │ 3 2 1 0 │ rough channel A
─────────┼─────────────────┼ ────────────────────────────
2 │ 7 6 5 4 3 2 1 0 │ exactly Tone divider in
3 │ 3 2 1 0 │ rough channel B
─────────┼─────────────────┼ ────────────────────────────
4 │ 7 6 5 4 3 2 1 0 │ exactly Tone divider in
5 │ 3 2 1 0 │ rough channel C
─────────┼─────────────────┼ ────────────────────────────
6 │ 4 3 2 1 0 │ Noise height
─────────┼─────────────────┼ ────────────────────────────
7 │ 7 6 5 4 3 2 1 0 │ Control register
│ │ 7: -parallel input/output. port A
│ │ 6: -parallel input/output. port B
│ │ 5 : noise in C
│ │ 4 : noise in B
│ │ 3 : noise in A
│ │ 2: tone in C
│ │ 1 : tone in B
│ │ 0 : tone in A
─────────┼─────────────────┼ ───────────┬────────────────
8 │ 4 3 2 1 0 │ Level in │ 4: The amplitude is determined by the general
│ │ channel A │ envelope generator
─────────┼────────── ───────┼───────────┤
9 │ 4 3 2 1 0 │ Level in │ 3 : |
│ │ channel B │ 2 : } Volume level─────────┼────────── ───────┼───────────┤ 1 : |
10 │ 4 3 2 1 0 │ Level in │ 0 : |
│ │ channel C │
─────────┼─────────────────┼ ───────────┴────────────────
11 │ 7 6 5 4 3 2 1 0 │ exactly Period
12 │ 7 6 5 4 3 2 1 0 │ roughly envelope
─────────┼─────────────────┼ ────────────────────────────
13 │ 3 2 1 0 │ Form 0...3.9 _____
│ │ bend - 4...7.15 /|____
│ │ 8 |||\n
│ │ and her 10 ///\n
│ │ launch 11 |
│ │ 12 /|/|/|/
│ │ 13 /
│ │ 14 ////
─────────┼─────────────────┼ ─────────────────────────────
14 │ 7 6 5 4 3 2 1 0 │ Parallel port A
─────────┼─────────────────┼ ─────────────────────────────
15 │ 7 6 5 4 3 2 1 0 │ Parallel port B
─────────┴─────────────────┴ ─────────────────────────────
All registers can be both written and read; circuit AY-3-8912 is distinguished
The only problem is the lack of parallel port B.
The input frequency before being fed to the programmable dividers is pre-
but is divisible by 16.
============================================================================
as you can see something is wrong...
Well that's it *MAS* with a sledgehammer