Canon X-07

Version Française
WikipédiA



A new inmate (2009), after some work on it, it works pretty fine.

What's in the box? Video interface The printers Software / Programmation

A machine I saw long time ago, when I was a student. It belonged to a friend, he had the full system with the color printer. I was really excited by this little computer!

What's in the box?
  1. CPU NSC-800, compatible with the Z80
  2. Coprocessor Toshiba T6834 that handles the keyboard, screen, characters, timer and power control.
  3. A clock/calendar with a powerful alarm
  4. Ram 8KB, up to 16 on the motherboard and up to 24 with an application card.
  5. Display LCD monochrom 120x32, or 4 lines with 20 characters
  6. RAM disk sizeable with one byte precision, files are saved even with power off
  7. Sound one voice with variable tone and duration.
  8. Serial port 8000 bauds, 7/8 bits, 2 stop, parity
  9. // port Centronics
  10. connector for storage on audio tape.
  11. expansion port
  12. volume and contrast controls


The rear panel
Here you'll find the volume control for the internal speaker and the large expansion port that makes the link with the X-720 video interface (to be verified). No other usage as far as I know.

But you can use it in an unexpected way: linking two particular pins runs the NMI routine through a vector that you can customize and that can react to an external event.


The right side
From left to right:
  • the cassette interface to read or write programs/data on a tape
  • the external power conector. Note that when the X-710 printer is ON, it delivers its power to the computer.
  • contrast control
  • the parallel port. Fully Centronics compatible... if you can find that type of connector! Then you can use a standard printer.


The left side
There you can find the serial port. Not exactly RS-232 compatible, an interface is requiered.


Under the machine
Three traps can be opened under the Canon:
  • one for the four batteries LR6/AA
  • the RAM expansion: one single chip (Toshiba TC5565PL-15L) to add 8KB and get a total of 16KB RAM.
  • the last one for the application cards. They contain ROM (up to 8KB) for programs and/or RAM (up to 8KB).


The video interface X-720

The peripherial X-720 allows you to connect your Canon X-07 to a TV color set via the scart port. You then have access to several text and graphic modes up to 256x192 monochrom or to 8 colors in low resolution!

Go to this page to learn more about its caracteristics!


The printers

The color printer X-710: a real pen plotter!

This printer has 4 color pens (black, blue, green, red). It can work in both graphic and text mode. In graphic mode, you drive the pen with a coordinate system to describe the drawing with pen up and down functions. It's something like the turtle programming in LOGO.


The power problem!

After so many years, the battery pack is dead. You could think that the printer will run with its external PSU. But no... If no battery is present, then the printer refuses to power on. Following the instructions of "Spéléo" on the Silicium site (in french), I managed to make it work. The idea is to connect the power input to the battery pins: this simulates that a battery is present.


Here is the picture of the two wires I soldered to pick up the input voltage.
The "+" is taken directly at the entry.
The "-" is taken under the diode (close to the yellow wire).

In the battery compartment, those wires are connected to the two pins (I took this connector from an old PC). Pay attention to the polarity!


Connecting a parallel printer

Without any problem, you can connect the Canon to a standard parallel printer. Here I made a test with a laser Xerox Docuprint P8E! You can use the commands "LPRINT" or "LLIST".
Below, the listing with LLIST, on the right, the result of the execution:


Here is the cable: I sacrified a cable from the X-710 cutting it and I soldered a female DB-25. What I do is to add to the Canon X-07 a standard Centronics connector. Of course, you can plug a printer to it, but why not imagine other links? To drive a ZIP // ? (Waow, this would be great!)
CANON X-07         DB-25 female
1 (brown)  ------> 2 (D0)
2 (red)    ------> 3 (D1)
3 (orange) ------> 4 (D2)
4 (yellow) ------> 5 (D3)
5 (green)  ------> 6 (D4)
6 (blue)   ------> 7 (D5)
7 (violet) ------> 8 (D6)
8 (grey)   ------> 9 (D7)
9 (white)  ------> 1 (Strobe)
11 (pink)  ------> 11 (Busy)
13 (black)  not connected (+5V)
15 (metal) ------> 18-25 + cover (gnd)
Here is the screen copy routine for a 24 dot matrix printer (Epson comp).
  • Lines 70 and 220 are here to test duration
  • In 80 the printer is openned "GPR:" as file #1 and send ESC + 48 to set the line spacing to 48/360, so 2/15 inch.
  • For every graphic line in 110 send ESC * 5 240 0 to set 72 DPI with 240 following bytes.
  • To get a reasonable size on paper, I send the pixels doubled (so 120x32 doubled in 72 DPI, this prints an image of 8,5 cm by 2,3 cm).
  • Between each graphic line send CR/LF (13/10) in 190
  • At the end of the page send FF (12) to eject the paper.

Routine to print the screen.



Result of the execution.
Here is the screen dump

The total time to print is 1'19", that's pretty slow! The BASIC takes time to create each line. The printer is inactive most of the time. I imagine that a direct memory access could make things faster than using POINT()...

Note that INIT prints "S1" when openning...

For a 9 dots printer you should change the line 80:
80 out#1,27:out#1,65:out#1,8:out#1,10


Software / Programmation

The BASIC

A Microsoft & Canon Basic (1983) fills 20KB of ROM. A complete one with some surprising features:
Cassette interface

The cable to load or save programs and data has three jacks
  • a red one to record with CSAVE "filename"
  • a grey one to read with CLOAD "filename"
  • a black one as the remote controler.
The computer has another command CLOAD? to verify the integrity of the data on tape after recording.
One problem I encounter: when reading, if the red jack is plugged in, I only get noise from the tape reader. I have to remove it to get the correct sound, I plug it when I record a program. This may be a problem with my tape recoder and not with the Canon itself.


Assembler NSC 800 / Z80

Too bad that I don't own the XP-140 application card containing a monitor-disassembler (to be confirmed...) so I use a tape program that appears to be excellent and smartly interconnected with BASIC. It is called "AS-VSN 3.0" by J.Outhier. Once loaded it remains in memory and its functions are called with key combinations (in command mode) or with EXEC (at run rime).

Well, how does it work? First, this BASIC don't have the BLOAD or BSAVE functions. So, to load the assembler (that is itself a binary bloc) a BASIC routine is required to poke the bytes into memory. That's the work of LOADAS.
First step, load LOADAS:
CLOAD [Return] if it's from the tape
LOAD"LOADAS" [Return] if it's from the RAM disk

Then execute it!
RUN [Return]

This message is then displayed:


Now, the assembler is available, ready to act following our instructions. And we still have the control of the BASIC interpreter!
You write your assembly program directly into BASIC lines with REM (or its equivalent ' with Shift 7), here is an example:
10 '[  
20 'LD A.$11
30 'LD HL.#PX
40 'LD BC.$200
50 'CALL $C92F
60 'RET
70 '#PX DEFB &119,31
80 ']
tells the assembler to start here
A=$11 function PSET in ROM
HL points to the pixel coordinates
B=2 (2 bytes to send), C=0 (zero to receive)
call the ROM routine that plots the point
end of the routine
buffer with the pixel's coordinates (119,31) down right on the screen!
tells the assembler to stop here.


A view of the program

Now I use Ctrl+A and the two-pass assembler starts working. It displays PASS 1, then PASS 2 then Ok if everything went right. The default address to create the routine is $1C00 (this can be modified with ORG). To run my routine, I type:
EXEC &H1C00 [Return]

Now I can see a pixel on the down right corner of the LCD screen.

Better, you can mix BASIC and Assembleur, let's complete the previous program to make it act automatically:
 0 CLS : GOTO 90
10 '[ 
20 'LD A.$11
30 'LD HL.#PX
40 'LD BC.$200
50 'CALL $C92F
60 'RET
70 '#PX DEFB &119,31
80 ']
90 PRINT"Assembly...":EXEC 11087
100 PRINT:PRINT"Execution..."
110 EXEC &H1C00
120 END
 >> clears the screen and skips the assembly part






 >> the & to tell that decimal values are used

 >> this EXEC is the same as Ctrl+A, the assembler creates our routine!
 >> and the BASIC executes the routine.


Running this last program, everything is done at once: the assembler creates the routine, executes it, you can see the expected pixel on the next picture!

This system looks to me very powerful because with a single source file you can work both on the assembly and BASIC parts. The assembler is resident and becomes part of the system (until you remove it with NEW or Reset).

The applications cards

The XP-140 card is a ROM/RAM card containing a monitor assembler. It brings news BASIC calls for memory managment (BSAVE, BLOAD, etc) and a m monitor debugger to help you debugging your assembly programs.

As many cards, it comes with 4KB RAM.


Manual and card kindly offered by Tibor Rado from Switzerland. Thanks to him!


The XP-110f card is a ROM/RAM card containing a Database program in two parts. One dedicated to addresses/phone book and another where you can define the type of data you want to work with. You can make quieries upon you data and print/view the results.

As many cards, it comes with 4KB RAM.


Manual and card kindly offered by Tibor Rado from Switzerland. Thanks to him!


The XP-150 card is a ROM/RAM card that extends the maths capabilities. It brings:
  • reverse trigonometric functions
  • hyperbolic functions
  • logarithms and exponentials
  • unit conversions
  • statistics
It comes with 4KB that brings your memory up to 24KB RAM. This bloc is saved with a lithium battery. A good idea is to use this bloc as a RAM disk using FSET 4096 to save your files.

Read the function list.



The XP-120f card is an application card turning your computer into a spreadsheet (in french).
Reading the manual, it appears to lack a lot of maths functions and the copy/paste don't seem to be present for formulas.

Even the 4KB RAM are not really convenient for personal usage as they are dedicated for sheet storage and as the computer boots under the "Table" program first. You have to jump to Basic with F4 with no return possibility (unless you switch off and on the computer).



The XP-130f card is an application card to print different types of graphs (in french).
It also brings 4 KB of RAM.

Ask for an access to my Cloud to get
the french User Manual.


Thanks to Pierre Héricourt for the scan!

Thanks to Jorge Alvarez for this card!


Memory expansions

The XM-100 card brings 4KB of RAM saved by a battery. No ROM is included.



The XR-100 is an IC TC5565PL-15L or HM6264LP-15 that doubles the amount of RAM from 8KB to 16KB.
You can download the installation guide in Français/English/Deutsch.


15 décembre 2007