wiki:vtech/cqfd-scientus

The CQFD Scientus is the French version of the VTech Precomputer Developer. At this time VTech France had launched a new branch CQFD (it is French for "QED")

CQFD was announced in 1998 and stopped in 2001 (sources: https://www.lsa-conso.fr/cqfd-une-deuxieme-marque-pour-vtech,27091 , https://www.lesechos.fr/2001/02/vtech-france-a-la-recherche-dun-nouveau-souffle-710803 )

This machine is likely based on the same z80 chipset as many other VTech laptops? Unless it's a 6803, that is what MAME says for the Genius Junior 4000 which I think is the German version of this.

Interestingly it has an AM27C040 UVPROM, meaning the machine was produced in relatively small quantities so a custom mask ROM was not appropriate.

It uses the same soundchip as the IQ unlimited laptop (https://alexandre.botzung.fr/fr/vtech-i-q-laptop), VTECH part number 27-05992-0-0. It appears to be based on TI MSP50C3x microcontroller (https://www.ti.com/lit/ug/spsu006c/spsu006c.pdf?ts=1617221600403) based on TI markings on the chip, and matching pinout.

The display is a mixed text/graphics one. It is based on a 14 x 4 characters matrix, but some characters have a 1px border around them, and some don't. This allows to display graphics in the central area, and text on the sides.

It is laid out as follows:

  • 3 continuous columns of 1 char width
  • 1 area of 7x4 chars
  • 1 continuous column of 1 char width
  • 3x4 characters with borders on both the side and bottom

Besides the ROM, soudchip, and CPU glob, there is an audio amplifier and a 74HC175 (quad flip flop) on board.

The motherboard is behind the display, and connected with wires to the bottom part of the laptop with the keyboard, printer and mouse port, and audio output.

Cartridge port pinout is apparently standardized for all VTech Z80 and 68HC05 machines:

  • A15, A12, A7, A6, A5, A4, A3, A2, D7, D6, D5, D4, D3, GND, GND, VCC, ??1, N/C
  • GND, A14, A13, A8, A9, A11, A16, A10, A1, A0, D0, D1, D2, ??2, A17, A18, ??3, N/C

TODO: confirm which pins are /RD, /WR, /CE (these are probably the 3 remaining pins).

??1 is connected directly to the CPU ??2 and ??3 are also connected to the 74HC175 but it is not clear how that is used.

(I have confirmed this wiring, and compared it with existing documentation of the Z80 machines which are more known).

I suspect the 74HC175 could be used to convert from Motorola to Intel bus style, then? And provide separate /OE and /CE signals to the cartridge (and possibly /WE if a writable cartridge exists). But it's strange to use a flip flop gate for that?

A look at the ROM

The ROM dump is attached to this page (see attachment section at the bottom) and I'm in the process of disassembling and studying it.

It is based on the 68HC05 CPU which is a ver simple CPU core. To workaround the limitations of the CPU, a set of short subroutines are used (for example to push and pop the A and X registers from a software managed stack), as well as code generation on the fly (usually writing generated code at addresses 5F to 62, which must be in some internal RAM).

Registers have been identified that likely handle memory mapping. They are read-write, so it's possible to know the current bank number.

  • $29: Selects what is banked at 4000
  • $2A: Selects what is banked at 8000
  • $2B: Selects what is banked at D000
  • $2C: Selects what is banked at C000

Page at 4000 is used to map 16K segments of the ROM. Each segment begins with a jumptable in the form of several JMP instructions. Page at 8000 can also be used to map segments of the ROM.

Some code also checks for writable areas when mapping things. So it appears it's possible to put RAM there too.

I'm not sure if $2B and $2C are both used to control the mapping of the whole C000-FFFF area, and how they work together. I expect I will learn more about it as I study the code that is supposed to run from 4000 and 8000, as the main code seems to make almost no use of this higher area directly.

The section at 2000 onwards is always visible by the CPU and a large part of it is code that selects a bank and then jump to a specific routine inside it. It also contains the subroutines mentionned above (stack management, ...) and some other code (uppercase/lowercase ASCII detection).

ASCII strings in the ROM are terminated with an FF byte.

No 68HC05 style reset vector found in the ROM so far. I suspect (from MAME stub drivers) that there is an internal ROM in the 68HC05 that does the reset and early init. I don't know how much of it will be needed. So far I found nothing that appears to jump outside the ROM space or otherwise use the internal ROM, but I have only disassembled a couple kilobytes of code in the resident bank.

Work in progress in disassembling the ROM is available on my github: https://github.com/pulkomandy/vtech-cqfd-disasm

Other machines released under the CQFD brand

  • CQFD Station PC
  • CQFD Scientus
  • CQFD Kicétou
  • Maxou le tigre
  • CQFD PriMus
  • Souris'Max
  • Top'Souris
  • Pic'Souris
  • Super Eddy
  • Boubou le Panda

They also distributed Capsela construction sets.

Last modified 3 years ago Last modified on Aug 12, 2021, 10:05:30 PM

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.