Thermal Printer
The COMX Thermal Printer came including a dedicated interface card, printing was done on thermal paper by using a head with 9 pins which could heat the paper and as such print both text and images. Someone told me that you should be careful when writing your own printer drivers as it was very easy to ‘burn’ the printer head completely.
The following information includes some guesses from my side, if you have any other or additional information please send me an email.
OUT 2 is used to control the thermal printer where:
Q = 0, b0-7: Pixel 1 to 8
Q = 1, b7: Pixel 9 (if b0-6=#21)
Q = 1, b3=1: Move head right
Q = 1, b0-7=#12: Move head left
INP 2 is used for the printer status, where:
b0=1: Printer Not Ready
b1=1: Energizing Head
b2=1: Head At Position
Picture to the right is graphic output from the Thermal printer generated by the emulator.

CALL and CARD Routines
The printer can be activated by using the CARD Tm commands as described below and on the Expansion Box page. If no expansion box is used the same commands can be activated by CALL statements:
CALL Syntax | CARD Syntax | Function |
CARD T0 | CALL (@C040, m) | Mode Selection |
CARD T1 | CALL (@C050) | Switch off the thermal printer with 8 line feeds, (m = 0) |
CARD T2 | CALL (@C060) | Enter the thermal printer Text mode (m = 1) |
CARD T3 | CALL (@C080) | Switch on the printer and TV display (m = 3) |
CARD T4 | CALL (@C0A0) | Disable keyboard input (m = 5) |
CARD T5 | CALL (@C0C0) | Memory dump (HEX & ASCII) |
CARD T6 | CALL (@C0D0) | Switch the printer to no line space (m = 8) |
CARD T7 | CALL (@C0E0) | Self test (m = 9) |
CALL (@C0F0,1) | Start screen capture | |
CALL (@C0F0,2,y) | Print screen line 0 to 'y' | |
CALL (@C0F0,3) | Stop screen capture | |
CALL (@C106) | Switch off the thermal printer without line feed | |
CALL (@C10C, S, D) | Memory Move from S (source address) to D (destination address) | |
CALL (@C10F) | Memory Modify | |
CALL (@CB05) | Help (m = 11) |
Note: if the expansion box is used the user should enable the standard printer card first before any assembly call is initiated. This can be done by the OUT 1 instruction or in BASIC by using any CARD Tm statement before the CALL statement.
When using the Screen capture function it is recommended not to use the F&M Screen editor or before use to turn it off by using POKE (@43F8,1). To start screen capture use CALL (@C0F0,1) to allow the COMX to store all screen data in regular RAM, after the data is printed on the screen use CALL (@C0F0,2,y) to print the screen lines 0 to y to the thermal printer. Stop the screen capture by using CALL (@C0F0,3).