FujiChat features: - handle incoming PONG (with latency) - nick tab completion (FujiChat's was very lame) - option to not show ping/pong - hide motd - settable real name (currently hardcoded "FujiNetChat User") Other stuff: - at least one keyboard macro (for ChanServ auth) - error numerics should go to the current screen - autojoin on startup - add an optional 2nd parameter to /join (key). spec calls for it, I've never seen it used. - decide whether to allow mass joins: /join #chan1,#chan2,#chan3 not sure how widely supported it is on various networks. right now, it works with libera, but only the first channel gets a screen. better to do it client-side, /join #chan1 #chan2 #chan3, accept lots of arguments (but don't support keys). - /join also supports "/join 0", which parts all channels. don't have to do anything special for it, but do document it. - 'dead' screens (channels we've parted) should show some kind of indicator, and not accept input. - use GR.1 for the activity indicators, so they can be colorful. See also: ideas.txt ... Config file. At minimum, these: Server Port SSL? Nick Channel/query list Extras: AltNick Colors (BG/FG/BAK) (per-channel? or just one set?) Screen layout (pre-create channel and query windows) Macros (with Select key, 1-9, 0 for #10) CTCP VERSION response (config utility can auto-detect OS type?) The config will be created by a separate tool, FNCHATCF. This should have a built-in list of known IRC servers to choose from, plus the ability to add more. Maybe store them in a file called FNCHATCF.SRV. Distribution disk: MyDOS, with a menu as .AR0 where you can select whether or not to run the config tool. If there's no config file, just run the tool. Maybe another menu option to read the README? Use MyDOS because cc65's exec() works with it (no writing my own exec() function this time around). Menu might just be: FujiNetChat v0.0-YYYYMMDD-githash config file loaded . [Option] Read the manual. [Select] Connection setup. [Start] or [Return] Connect to IRC server. [Escape] Exit to DOS. ...and if there's no config file on D: or in memory, the Start option is greyed out. Reserve a memory area for the config, so after FNCHATCF runs FNCHAT, there's no need to reload the config. There won't be a /server command in the client, so connecting to a different server means re-running the config tool. On disconnect: [R]econnect, [C]onfig, [Q]uit, [B]oot: [R] Quit will exit to DOS. If that can be made to work, anyway.