The MVP, or “Modulating Video Processor” is a combined modulator and video scrambler.
The MVP accepts baseband composite NTSC video and audio as inputs, applies sync-suppresion and video-inversion scrambling, and outputs modulated video at a 45.75 MHz IF. The IF-out may then be connected to a suitable upconverter and launch amplifier.
There was a variant, the “MVP-PAL”, which accepted PAL video instead of NTSC. I'd like to obtain one of these units, or find out more about the differences between it and the standard (NTSC) MVP. If you happen to know anything about the MVP-PAL, please contact me.
The Option DIP switches are located on the rear panel, below the Aux/GND screw terminals.
Option | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
RF | 0 | 0 | 0 | 0 | x | x | x | 0 |
Baseband | 1 | 0 | 0 | 0 | x | x | x | 0 |
Mixed | 0 | 1 | 0 | 0 | x | x | x | 0 |
SSE | 1 | 1 | 0 | 0 | x | x | x | 0 |
Alternate | 0 | 0 | 1 | 0 | x | x | x | 0 |
Special | 1 | 0 | 1 | 0 | x | x | x | 0 |
Timing Camouflage | 0 | x | x | x | x | 1 | x | 0 |
Data Camouflage | 0 | x | x | x | x | x | 1 | 0 |
Alignment | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
Switch position | Sync scrambling mode |
---|---|
0 | Clear |
1 | 6 dB |
2 | 10 dB |
3 | Scene change – 16 fields |
4 | Scene change – 3 seconds |
5 | Dynamic – 15 seconds |
6 | Dynamic – 30 seconds |
7 | Dynamic – 60 seconds |
8 | Dynamic – 16 fields. Linear change, for test purposes only. |
9 | Clear |
A | |
B | |
C | |
D | |
E | Clear. In remote mode: firmware revision displayed on Service Code Indicator. |
F | Clear. In remote mode: Remote Address displayed on Service Code Indicator. |
Switch position | Video scrambling mode |
---|---|
0 | Clear |
1 | Constant inversion |
2 | Scene Change switching – 16 fields |
3 | Scene Change switching – 3 seconds |
4 | Dynamic – 15 seconds |
5 | Dynamic – 30 seconds |
6 | Dynamic – 60 seconds |
7 | Dynamic – 16 fields. Linear change for test purposes only. |
8 | Clear |
9 | |
A | |
B | |
C | |
D | |
E | |
F |
Start | End | Function |
---|---|---|
0000 | 00FF | (CPU internal?) Zero page RAM |
0100 | 01FF | (CPU internal?) Stack RAM |
4400 | 440F | Oki MSM26X42B RTC nCS0: U17 (74HCT32) pin 8 CS1: tied to Battery Backed VCC nWR: white PAL pin 16 nRD: white PAL pin 15 RTC read and write are fully-decoded (only active when nCS0 is active). nCS0 is active when either nWR or nRD are active. |
4800 | U1 (74HC245). Rear panel OPTION dip switches, low 8 bits. DIR=0, OE=yellow PAL pin 19. |
|
4801 | U3 (74HC245). Rear panel REMOTE ADDRESS BCD thumb-wheel MSBs. DIR=0, OE=yellow PAL pin 18 |
|
4802 | U2 (74HC245). Rear panel REMOTE ADDRESS BCD thumb-wheel LSB, and SERVICE NUMBER BCD thumb-wheel MSB. Low nibble: Remote Address LSB. High nibble: Service Number MSB DIR=0, OE=yellow PAL pin 17 |
|
4803 | U4 (74HC245). Rear panel SERVICE NUMBER BCD thumb-wheel LSBs. DIR=0, OE=yellow PAL pin 16. |
|
4C00 | U5 (74HC245). Front panel, VIDEO and SYNC hex thumb-wheel switches. Low nibble: SYNC High nibble: VIDEO DIR=1, OE=yellow PAL pin 15 |
|
4C01 | Front panel 7-segment LED display, left digit | |
4C02 | Front panel 7-segment LED display, middle digit | |
4C03 | Front panel 7-segment LED display, right digit | |
5000 | 5007 | Interface FPGA I/O, functions unknown |
8000 | FFFF | 27C256 EPROM Chip select: not-A15 from U43 (74HC04) pin 8 Output enable: PHI2 clock from CPU pin 31 |
U6 (74HC245) – address not known. DIR = RAM /WE, OE = white PAL pin 18. “B” bus connects to the CPU/RAM/ROM data bus. “A” bus connects to the other 74HC245s and the front panel board.
The switches have pull-up resistors, and have their common pin connected to ground. To get the selected value in binary form, invert the value read from the port.
The firmware contains a table which maps a binary code to segment data values:
Input | Character | Segment Code |
---|---|---|
0-9 | Digits 0-9 | 48, F9, 8C, A8, 39, 2A, 0A, F8, 08, 38 respectively. |
10 | Blank | FF |
11 | F | 1E |
12 | P | 1C |
13 | U | 49 |
14 | S | 2A |
15 | b | 0B |
16 | y | 29 |
The segment data bits map to a byte as follows:
A F B G E C D * *=decimal point Segments: FGED*CBA Bits: 76543210
The operation manual for the MVP-II is (at the time of writing) available from http://systemindustrialgroup.com/Enter/support/MVP_op.pdf.
The MVP communicates with a headend controller using the Biphase In and Out ports on the back panel. The data format is Manchester-encoded data, in the same format and at the same data rate as the Jerrold FM data channel commands used to send commands to cable receivers. For more on the FM data channel format, see GI/Jerrold FSK data format.
The input circuit is an LM311 comparator with a 75-ohm terminated input and a threshold of around 1V.
The output driver is a SN75158 which feeds the Biphase output port via a 75-ohm series resistor.
As the voltage levels in use are (broadly) 0V/5V, it is possible to drive the input and output with an Arduino or similar 5V-powered processor.
The MVP's logical address may be set between 260097 and 260999 (3F801 hex to 3FB87 hex, or 774001 octal to 775607 octal) using the BCD thumbwheel switches on the back panel.
The following code can convert the decimal logical address to and from the four-byte logical address sent over the biphase network:
void mvp_addr_to_la(const uint32_t addr, uint8_t *la) { // NOTE: The address entered on the MVP's panel and on the ACC is one higher than the address in the packet. uint32_t real_addr = addr - 1; // encapsulate the LA la[0] = 0xE0; // geocode 0-7 la[1] = 0xBF; // octal 77 => headend equipment la[2] = 0x40 | ((real_addr >> 6) & 0x3F); // LA high 6 bits la[3] = 0x00 | (real_addr & 0x3F); // LA low 6 bits } uint32_t mvp_la_to_addr(const uint8_t *la) { uint32_t real_addr = 0; // NOTE: The address entered on the MVP's panel and on the ACC is one higher than the address in the packet. real_addr = ((uint32_t)la[3] & 0x3F); real_addr |= ((uint32_t)la[2] & 0x3F) << 6; real_addr |= ((uint32_t)la[1] & 0x3F) << 12; real_addr |= ((uint32_t)la[0] & 7) << 18; return real_addr + 1; }
Return packets (on the MVP's Biphase Out port) have the following format:
Where return data from a command is described below, only the payload contents will be described.
The following commands are understood by the MVP:
Outgoing command bytes: | 0xFD 0x60 (year) (month) (day) (hour) (minute) |
---|---|
Response payload bytes: | None |
Field | Contents |
---|---|
year | Current year, modulo 16. Valid range is 0 to 15. |
month | Current month. Valid range is 0 to 11. |
day | Current day. Valid range is 0 to 30. |
hour | Current hour. Valid range is 0 to 23. |
minute | Current minute. Valid range is 0 to 59. |
Sets the MVP scrambler's realtime clock.
Outgoing command bytes: | 0xFE (LA3..LA0) |
---|---|
Response payload bytes: | None |
This command causes the addressed MVP scrambler to reboot.