DIALOG

DIALOG is the original communications program supplied with the Monolog system. Written in Borland Turbo Assembler, it provides a terminal interface to the Monolog unit and handles the download of call records to disk. Two versions were supplied with the original documentation (dated 24 January 1990) — DIALOG1.COM for COM1 and DIALOG2.COM for COM2 — both at version 1.7a. A later version 1.8 is known to have been released, but documentation for it has not been found.

Session Example

The following shows a typical DIALOG session — startup, modem dial-out and sign-on to a Monolog unit:

DIALOG v1.8 — COM1 — 300 baud
Dialog - version 1.8 COM1
Filename for download TSTCHKLG.TXT
Number to dial 0123456789

OK
|
CONNECT

sign on >-----
Monolog 10521 0.82 32K
time on Tue 1 Jan 1980 07:12:54
last on Tue 1 Jan 1980 07:01:50
calls logged 10
>

The sign-on response identifies the unit by serial number (10521), firmware version (0.82) and RAM configuration (32K). The time on and last on timestamps record the current session start and the previous sign-on respectively. calls logged gives the number of records currently held in RAM.

Connection Modes

DIALOG supports two connection methods, both over the same 25-way D-type connector on the Monolog unit:

ModeMethodSpeedNotes
RemoteDial-up via modem (PSTN)300 baudStandard deployment method. DIALOG dials the Monolog control line number and connects via V21 modem.
LocalDirect RS-232 connection300 baud (Mk I)
9600 baud (Mk II)
Bench use. Mark II only for 9600 baud — see dialog.py for the modern Python implementation.

Command Line Automation

The full dial-up sequence could be automated by invoking DIALOG with command line parameters, eliminating the need for interactive entry at startup:

DIALOG1 [filename] [dial-up number] [password]
e.g.   DIALOG1 JOB12345.TXT 01252123456 MYPASS

When invoked this way, DIALOG automatically dials the number, signs on with the supplied password, waits at the prompt and then exits — leaving the operator to issue commands manually, or for a script to take over. Only data received in response to a DL or AL command is written to the download file; all other terminal output is displayed on screen only.

Download Protocol

The most significant discovery in reverse-engineering DIALOG was that Monolog switches serial modes mid-session when a download is initiated. The terminal session runs at 300 baud 7E1; but when DL or AL is issued, the unit silently switches to 300 baud 8N1 for the binary block transfer, then returns to 7E1 on completion. DIALOG handles this automatically.

ModeBaudFramePurpose
Terminal3007E1Interactive commands — all text in/out
Download3008N1Binary block transfer of call records

Block Transfer Sequence

The download uses a simple NAK/ACK handshake protocol:

StepMonolog sendsDIALOG respondsMeaning
Open0x15 (NAK)0x15 (NAK)Both ends signal ready
Block0x02 (STX) + data0x06 (ACK)Block received OK
Between0x15 (NAK)0x06 (ACK)Ready for next block
Close0x15 × 5, then 0x04 (EOT)Transfer complete

Once received, the binary packed block data is decoded by DIALOG into the readable call record format before writing to disk. The binary packing compresses each record — storing date, time, duration, digits and call type in a compact representation — which DIALOG expands into the familiar column-aligned text format used by CHECKLOG and PRINTOUT.

Limitations & Legacy

DIALOG was written for MS-DOS and relies on direct hardware port access for serial communication. As a 16-bit real-mode application it cannot run natively on any 64-bit operating system. It can be run under DOSBox or similar emulators, but the original software is no longer a practical tool for day-to-day use.

The protocol and record format have however been fully reverse-engineered, making it possible to replicate DIALOG's behaviour accurately in modern programming languages. The Python reimplementation — dialog.py — targets the Mark II's direct RS-232 port at 9600 baud and is available in the Downloads section.

NOTE
Download file only

Only data received in response to DL or AL commands is written to the download file. All other terminal output — STATUS, NUM, VB readings etc. — is displayed on screen only and is not saved to disk.