Introduction
Copy the ZIRC files to Doors:zirc.
A sample zirc.cfg.example file is included.
Edit the zirc.cfg file to match your system, and your BBS software.
Then jump to the section for your BBS software in use.
zirc.cfg
/* --- Configuration --- */
irc_host = '192.168.1.250' /* Your zircd host on your lan */
bbs_name = "Test Connection" /* Shows in /who realname field, DON'T add BBS to the name */
irc_port = 8888
irc_channel = '#BBS' /* If using the multi channel picker REMOVE this line */
term_mode = 'Zeus' /* This line is for the bbs software in use */
/* Set to 'Zeus' for Zeus BBS */
/* This line sometimes is not needed for Zeus. Try with and without. */
/* Set to 'CNet' for C-Net BBS */
/* Set to 'Excelsior' for Excelsior BBS */
/* Set to 'CLI' for Amiga shell */
/* Test the zirc client without having the server setup */
/* Once joined to the network with your own server remove these lines */
/* */
test_port = 8890
test_passwd = joSODZW3zvtF326MV45+PGHSm5KInKYCMIRKryU34Uc=
/* --- Configuration --- */
Zeus
Modify your Zeus mainmenu.zeus file so it looks like this:
CMD_T:
SetStatus '"In ZIRC chat"'
ExpandCC '"%51|"'
username=result
ClrScr
Clidoor '"doors:zirc/zirc-cli %51| %150|" RAW'
Signal Menuloop
Notes
%51= user nickname (Par$(1)in zirc-cli)%150= line number (Par$(2)in zirc-cli – used for carrier drop detection)%150is line number.%151is baud rate. Do not confuse them.- The
RAWflag enables char-by-char input with manual echo (recommended). - Carrier drop is detected via
zeus.library GetLineStatus()using the line number. If%150is omitted, zirc-cli will still run but will not detect carrier drop and the process will remain until zircd PING timeout (~3 min).
C-Net
Hit AL in the PFiles area, choose DOS file, file name DOORS:zirc/zirc-cli.
That’s all for the PFile section.
If you want to add it to the main menu, open bbsmenu in Notepad++ in the Main menu section 39. First copy the CTRL-Q from one of the other sections (it will show as |DC1 in reverse), then add #4DOORS:zirc/zirc-cli} so it looks like this – the DC1 will be in reverse colors: |DC1#4DOORS:zirc/zirc-cli}
Excelsior
zirc-cli runs as a DOS door (STDIN/STDOUT) under Excelsior, not as a C-Door. ECOM must be running before any DOS door will work.
zirc.cfg setting
term_mode = 'Excelsior'
Door setup in the Excelsior door editor
(See E.png for an example)
Program: Doors:zirc/zirc-cli
Arguments: %19 RAW
(%19 = user alias with spaces replaced by underscores - safe for IRC nicks)
(No second arg needed - term_mode = Excelsior in zirc.cfg sets the mode)
(%1 = user alias with spaces preserved - also works, zirc-cli converts them)
Stack: 65535 *** CRITICAL - default of 4000 will crash immediately ***
Priority: 0
Raw Mode: Recommended ON (the ^ flag in the door editor).
With RAW on, ECOM passes keystrokes char-by-char and zirc-cli handles
echo and enforces the 180-character limit before ECOM's internal
buffer can fill (prevents Guru 81000005 on long lines).
If RAW is OFF (cooked mode), ECOM echoes characters and delivers the
full line on Enter - this works but the 180-character limit is
enforced on receive; typing beyond it will cause a crash.
Notes
- Do NOT configure as a C-Door. Excelsior C-Doors pass the BBS port name asĀ
argv[1], not the user alias, which will cause zirc-cli to crash or use a garbage nickname likeEXCELSIOR!_Master_EX. - The stack size MUST be set to at least 65535. zirc-cli uses a 32KB string buffer internally; the default 4000-byte stack will be exhausted immediately and crash with error
#80000020or similar. - ECOM must be running (started in the Excelsior startup sequence) for stdin and stdout to be connected to the door process.
General Notes
Terminal font: zirc-cli uses CP437 (IBM PC) box-drawing characters for its border art (corners and lines). If connecting with SyncTERM or a similar terminal emulator set to Topaz or Amiga font, the border corners will appear as incorrect characters. Set the terminal font to IBM PC / CP437 for correct display. This applies to all BBS types, not just Excelsior.