src/mess/drivers/pv9234.c
| r14403 | r14404 | |
| 4 | 4 | |
| 5 | 5 | 20-mar-2010 skeleton driver |
| 6 | 6 | |
| 7 | | This, it seems, is a satellite TV receiver. It converts the satellite |
| 8 | | signal (often encrypted) into standard signals to plug into a TV set. |
| 7 | http://www.vetrun.net/forums/showthread.php?t=395 |
| 8 | http://colibri.net63.net/powervu.htm |
| 9 | http://www.growl.de/d9234/ |
| 9 | 10 | |
| 11 | Google 'powervu 9234' for plenty more info. |
| 12 | |
| 13 | Meant for payTV providers to decrypt signals from the satellite and pump |
| 14 | them out on a local cable network. The powervu encryption is very secure. |
| 15 | |
| 16 | There is a menu system, and with the right equipment, many secrets can |
| 17 | be found! |
| 18 | |
| 10 | 19 | ****************************************************************************/ |
| 11 | 20 | #define ADDRESS_MAP_MODERN |
| 12 | 21 | |
| r14403 | r14404 | |
| 21 | 30 | : driver_device(mconfig, type, tag) { } |
| 22 | 31 | |
| 23 | 32 | DECLARE_WRITE32_MEMBER(debug_w); |
| 33 | DECLARE_WRITE32_MEMBER(debug1_w); |
| 34 | DECLARE_WRITE32_MEMBER(debug2_w); |
| 24 | 35 | UINT32 *m_p_ram; |
| 25 | 36 | }; |
| 26 | 37 | |
| 27 | 38 | |
| 39 | /* |
| 40 | This is the serial output to a terminal, used for debugging. |
| 41 | The boot process goes something like this: |
| 28 | 42 | |
| 43 | Start |
| 44 | |
| 45 | Config: 0x00001080 (Max Config: 00003C80) |
| 46 | MV 00000004.00000003 |
| 47 | DL Avail |
| 48 | IOP Com. O.K. 00000004 |
| 49 | Check CRC ... |
| 50 | CRC O.K. |
| 51 | Launch App |
| 52 | ************** |
| 53 | * Ver 2.05 * |
| 54 | ************** |
| 55 | Compiled by: FURLANO |
| 56 | Date & time: Nov 3 1997, 15:34:29 |
| 57 | All printing enabled. Press space bar to toggle on/off. |
| 58 | Time stamping enabled. Press 't' to turn on/off. |
| 59 | Press 'o' to toggle printing of MPEG Xport error messages. |
| 60 | */ |
| 29 | 61 | WRITE32_MEMBER( pv9234_state::debug_w ) |
| 30 | 62 | { |
| 31 | | printf("%02x %c\n",data,data); // this prints 'Start' to the console. |
| 63 | if (data) |
| 64 | { |
| 65 | printf("%02x %c\n",data,data); // this prints 'Start' to the console. |
| 66 | logerror("debug=%02x %c\n",data,data); |
| 67 | } |
| 32 | 68 | } |
| 33 | 69 | |
| 70 | WRITE32_MEMBER( pv9234_state::debug1_w ) |
| 71 | { |
| 72 | UINT8 i,j; |
| 73 | if (data) |
| 74 | { |
| 75 | for (i = 0; i < 4; i++) |
| 76 | { |
| 77 | j = (data & 0xff000000) >> 24; |
| 78 | data <<= 8; |
| 79 | printf("%c",j); // this prints 'OFF' to the console. |
| 80 | logerror("debug1=%02x %c\n",j,j); |
| 81 | } |
| 82 | printf("\n"); |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | WRITE32_MEMBER( pv9234_state::debug2_w ) |
| 87 | { |
| 88 | if (data) |
| 89 | logerror("debug2=%02x\n",data); // ignore the huge amount of zeroes here |
| 90 | } |
| 91 | |
| 34 | 92 | static ADDRESS_MAP_START(pv9234_map, AS_PROGRAM, 32, pv9234_state) |
| 93 | // AM_RANGE(0x00000000, 0x00000033) AM_WRITE something |
| 94 | // AM_RANGE(0x00000044, 0x00000047) AM_WRITE something |
| 95 | // AM_RANGE(0x00000060, 0x0000006b) AM_WRITE something |
| 96 | // AM_RANGE(0x00007000, 0x00007003) AM_WRITE something |
| 97 | // AM_RANGE(0x00008000, 0x00008003) AM_WRITE something |
| 98 | AM_RANGE(0x00008014, 0x00008017) AM_WRITE(debug1_w) |
| 99 | // AM_RANGE(0x00008020, 0x00008027) AM_WRITE something |
| 100 | AM_RANGE(0x000080c0, 0x000080c3) AM_WRITE(debug2_w) |
| 35 | 101 | AM_RANGE(0x000080cc, 0x000080cf) AM_WRITE(debug_w) |
| 102 | // AM_RANGE(0x000080d0, 0x000080d3) AM_WRITE something |
| 36 | 103 | AM_RANGE(0x0003e000, 0x0003efff) AM_RAM AM_BASE(m_p_ram) |
| 37 | 104 | AM_RANGE(0x00000000, 0x0007ffff) AM_ROM AM_REGION("maincpu",0) //FLASH ROM! |
| 38 | 105 | AM_RANGE(0x00080000, 0x00087fff) AM_MIRROR(0x78000) AM_RAM AM_SHARE("share1")//mirror is a guess, writes a prg at 0xc0200 then it jumps at b0200 (!) |