Table of Contents
This information was extracted from the V.Smile Motion schematics which was (accidentally?) published by the FCC with the certification for the console.
Local copy of the document: vsmile-motion-schematics.pdf
Port A
The use of Port A changes a bit on various generations of machines
V.Smile Motion
V.Link SPI
- IOA0: SPI clock
- IOA1: MOSI
- IOA2: MISO
- IOA3: Busy
- IOA4: Chip select
Console type
Console | IOA14 | IOA15 |
---|---|---|
V.Smile | 0 | x |
V.Smile Pocket | 0 | x |
V.Smile Motion | 1 | 0 |
Cyber Pocket | 1 | 1 |
Other
- IOA11: Only a pull down resitor?
- IOA12: Only a test point on the motherboard?
V.Smile Pocket
- IOA0-IOA11: LCD STN interface
- IOA13: LCD backlight control
- IOA14: Read as 0 according to notes in V.Smile Motion schematics
Port B
ROM and cartridge
- IOB0: extra address bit for the cartridge port, access second half of ROM
- IOB1: Set to 0 to enable cartridge ROM
- IOB2: Set to 0 to enable internal ROM
Note: these can be used with the “External Memory Control” register, in that case they are controlled by the CPU core automatically depending on the address being accessed.
For example in external address mode 2 or 3 (4 ROMs mode):
Pin | Address range |
---|---|
IOB0 | 100000-1FFFFF |
IOB1 | 200000-2FFFFF |
IOB2 | 300000-3FFFFF |
ROMCSB | 008000-0FFFFF |
In external address mode 0: ROMCSB is the only one used for the whole range (note: ROMCSB is not wired to anything, so in this area no ROM will be enabled)
In external mode 1 (2 ROMs mode):
Pin | Address range |
---|---|
IOB1 | 200000-3FFFFF |
ROMCSB | 008000-1FFFFF |
Additionally, the end of the address space can also receive RAM (in the cartridge), this is configured separately and different RAM sizes are possible.
Power control
- IOB3: Labelled “RESTART”, not used?
- IOB4: “A/D”, related to the ADC?
- IOB5: Voltage detect (ADC measurement of battery level or power supply)
- IOB6: Pulled to ground by the ON button
- IOB7: Pulled to ground by the OFF button
Port C
Configuration
Language | IOC3 | IOC2 | IOC1 | IOC0 | Value |
---|---|---|---|---|---|
No screen (v1.02+) | 0 | 0 | 0 | 0 | 0 |
No screen (v1.02+) | 0 | 0 | 0 | 1 | 1 |
Italian (v1.03), UK English variant (without subtitle) (v1.02) | 0 | 0 | 1 | 0 | 2 |
US English variant (without subtitle) (v1.02+) | 0 | 0 | 1 | 1 | 3 |
US English variant (with alternate subtitle “TV Learning System”) (v1.02+) | 0 | 1 | 0 | 0 | 4 |
US English audio variant without “V.Smile!” speech sample (v1.02+) | 0 | 1 | 0 | 1 | 5 |
UK English audio variant without “V.Smile!” speech sample (v1.02+) | 0 | 1 | 1 | 0 | 6 |
Chinese | 0 | 1 | 1 | 1 | 7 |
Portuguese | 1 | 0 | 0 | 0 | 8 |
Dutch? (same data as US English) | 1 | 0 | 0 | 1 | 9 |
UK English variant (without subtitle) (v1.03), Italian (v1.00, v1.02) | 1 | 0 | 1 | 0 | A |
German | 1 | 0 | 1 | 1 | B |
Spanish | 1 | 1 | 0 | 0 | C |
French | 1 | 1 | 0 | 1 | D |
UK English (with standard subtitle) | 1 | 1 | 1 | 0 | E |
US English (with standard subtitle) | 1 | 1 | 1 | 1 | F |
The standard English subtitle is “Learning System” in v1.02+ and “TV Learning System” in v1.00. Values below 7 have the same behavior as US English in v1.00, except that values below 6 boots to a blinking blue VTech logo in white when no cartridge is inserted.
Note that Italian and the subtitle-less variant of UK English swap places in v1.03.
IOC4: if 1: show logo animation at boot
IOC5: currently unknown, maybe LCD/TV detection? Unused in V.Smile motion schematics, test point in older consoles?
Power control
- IOC6: audio output enable
- IOC7: Power control (on V.Smile motion: microphone power control and wireless controller control)
Controllers
- IOC8: Controller A clear to send (to controller)
- IOC9: Controller B clear to send (to controller)
- IOC10: Controller A request to send (from controller)
- IOC12: Controller B request to send (from controller)
- IOC13: UART Rx (from controller)
- IOC14: UART Tx (to controller)
- IOC15: Controller power?