Documentation

Original schematics, firmware source code, hardware photos, and technical reference for the 1991 HACKTIC Demon Dialer.

Schematic

The original schematic (v1.00) shows the complete circuit: MC68HC05C8 CPU, 4×3 keypad matrix on PORTB/PORTD, 7-bit R-2R DAC ladder on PORTC for audio output, and RS-232 serial interface via the on-chip SCI.

Demon Dialer schematic v1.00
Schematic v1.00 — Original HACKTIC design

Hardware

Original Demon Dialer v1.10

The original HACKTIC-produced unit with MC68HC05C8 one-time-programmable CPU. The PCB measures approximately 55×35mm and connects to a standard 4×3 keypad module.

Don Froula's Build

Don Froula recreated the Demon Dialer using the UV-erasable MC68HC705C8S variant, allowing firmware development and debugging. His build progressed from breadboard prototype to finished perfboard unit.

Programming Setup

Programming the MC68HC705C8S required a dedicated programmer board and DOS/Windows 95 software to burn the firmware onto the UV-erasable chip.

Original Packaging

Firmware Source Code

The complete firmware is 3,991 lines of Motorola 68HC05 assembly (demon131.asm, v1.31). Below are key excerpts showing the tone generation engine and frequency tables.

Memory Map & Variables

demon131.asm — RAM Variables (ORG $0030) Lines 64–98
ORG $0030 TONE1CT RMB 2 ; Tone 1 counter value TONE1ST RMB 2 ; Tone 1 step value TONE2CT RMB 2 ; Tone 2 counter value TONE2ST RMB 2 ; Tone 2 step value TONEOUT RMB 1 ; Current output sample TONE1 RMB 3 ; JMP instruction for tone 1 handler TONE2 RMB 3 ; JMP instruction for tone 2 handler TONE3 RMB 3 ; JMP instruction for tone 3 handler TICKER RMB 2 ; 8.192 kHz ticker (tone duration) KEYBUF RMB 4 ; 4-byte keyboard buffer KEYS RMB 1 ; # of keys in keyboard buffer MODE RMB 1 ; Current operating mode (piom mmmm)

Frequency Table

demon131.asm — FREQTBL Lines 221–277
ORG $0148 FREQTBL RMB 24 ; 12 user-definable frequencies FDB 5600 ; 12 — 700 Hz ─┐ FDB 7200 ; 13 — 900 Hz │ FDB 8800 ; 14 — 1100 Hz ├─ MF FDB 10400 ; 15 — 1300 Hz │ FDB 12000 ; 16 — 1500 Hz │ FDB 13600 ; 17 — 1700 Hz ─┘ FDB 5558 ; 18 — 694.8 Hz ─┐ FDB 6161 ; 19 — 770.1 Hz │ FDB 6819 ; 20 — 852.4 Hz ├─ DTMF Rows FDB 7520 ; 21 — 940.0 Hz ─┘ FDB 9648 ; 22 — 1206.0 Hz ─┐ FDB 10654 ; 23 — 1331.7 Hz ├─ DTMF Cols FDB 11892 ; 24 — 1486.5 Hz │ FDB 13112 ; 25 — 1639.0 Hz ─┘ FDB 11040 ; 26 — 1380 Hz ─┐ FDB 12000 ; 27 — 1500 Hz ├─ R2 Forward FDB 12960 ; 28 — 1620 Hz │ FDB 13920 ; 29 — 1740 Hz │ FDB 14880 ; 30 — 1860 Hz │ FDB 15840 ; 31 — 1980 Hz ─┘ FDB 17600 ; 40 — 2200 Hz Red Box FDB 19200 ; 53 — 2400 Hz Supervisory FDB 20800 ; 55 — 2600 Hz Blue Box

DTMF Tone Data Table

demon131.asm — ROMMDS (DTMF Mode) Lines 3340–3370
; DTMF key mapping: format byte, dB level, freq1 index, freq2 index ; Format byte bits: play-while-pressed, timing, tone count DTMF FCB %01011010,$66,18,22 ; 1 → 694.8 + 1206.0 Hz FCB %10011011 FCB %01011010,$66,18,23 ; 2 → 694.8 + 1331.7 Hz FCB %10011011 FCB %01011010,$66,18,24 ; 3 → 694.8 + 1486.5 Hz FCB %10011011 FCB %01011010,$66,19,22 ; 4 → 770.1 + 1206.0 Hz FCB %10011011 FCB %01011010,$66,19,23 ; 5 → 770.1 + 1331.7 Hz FCB %10011011 ; ... continues for all 12 keys + shifted keys

Tone Generation Engine

demon131.asm — Timer Interrupt (8192 Hz) Lines 3050–3090
; The timer interrupt fires at 8192 Hz. ; Each tick: adds step to counter, uses high byte as sine table index. ; Two independent tone generators are summed and output to PORTC. TON1_A LDA TONE1CT ; Load 16-bit counter low byte ADD TONE1ST+1 ; Add step low byte STA TONE1CT ; Store counter low LDA TONE1CT+1 ; High byte ADC TONE1ST ; Add step high (with carry) STA TONE1CT+1 ; Store counter high TAX ; X = counter high byte = sine index LDA SINTBL,X ; Look up in 256-entry sine table ADD #64 ; Add DC offset (center at $40) STA TONEOUT ; → 7-bit DAC value on PORTC

Tone Reference

DTMF Frequencies

1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

MF (Blue Box) Frequencies

Digit Frequency 1 Frequency 2
1 700 Hz 900 Hz
2 700 Hz 1100 Hz
3 900 Hz 1100 Hz
4 700 Hz 1300 Hz
5 900 Hz 1300 Hz
6 1100 Hz 1300 Hz
7 700 Hz 1500 Hz
8 900 Hz 1500 Hz
9 1100 Hz 1500 Hz
0 1300 Hz 1500 Hz
KP 1100 Hz 1700 Hz
KP2 1300 Hz 1700 Hz
ST 1500 Hz 1700 Hz
2600 2600 Hz single tone

Red Box Coin Tones

Coin ACTS Pattern
5¢ (Nickel) 1700 + 2200 Hz 1 × 66ms burst
10¢ (Dime) 1700 + 2200 Hz 2 × 66ms bursts, 66ms gap
25¢ (Quarter) 1700 + 2200 Hz 5 × 33ms bursts, 33ms gap

Hacktic Magazine #14/15 (1991)hacktic.nl/magazine/1448.htm

Project MF — Originally created by Phiber Optik (Mark Abene) as a living simulation of a blueboxable phone line: projectmf.com (archived)