/\/ Amiga Chat Network \/\ /\/ ACN \/\
zirc-cli – BBS Setup

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)
  • %150 is line number. %151 is baud rate. Do not confuse them.
  • The RAW flag enables char-by-char input with manual echo (recommended).
  • Carrier drop is detected via zeus.library GetLineStatus() using the line number. If %150 is 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 like EXCELSIOR!_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 #80000020 or 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.