1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
FujiChat - an Atari 8-bit IRC client.
Features:
- Join and chat in an IRC channel (only one at a time, for now).
- Send and receive private messages to/from other users.
- Runs a TCP/IP stack on the Atari, including TCP, DNS, and SLIP.
- Works with all Atari 8-bit computers (400/800/XL/XE) provided they
have at least 48K of RAM and a supported RS232 port.
- Works with SIO2PC, Atari 850, or ICD P:R: Connection RS232 ports.
- Supports up to 9600 baud serial connection (depending on hardware used).
- Fully open source (BSD licensed).
- Ready-to-boot ATR image also supplied (fujichat.atr).
Contents:
README - you're reading it now.
doc/ - documentation, including (possibly obsolete) design notes.
src/ - FujiChat source, excluding uIP library.
uip/ - Modified/hacked-up version of Adam Dunkels' uIP, used as a library.
If you just want to run FujiChat and don't care about compiling it, you
can grab the latest build from:
http://urchlay.naptime.net/repos/fujichat/plain/src/fujichat.atr
Paste that into your browser and "Save as", or else use wget to download it.
To compile FujiChat:
- Install cc65. Needs to be a snapshot or release later than the
2.11.0 release, but older than about December, 2015. Version 2.13.3 is
what the author currently uses. The code uses the old cc65 rs232.h API,
which was replaced with a new serial.h API sometime in 2015. This will
be rectified eventually in the FujiChat source.
- Install axe. This can be found at http://urchlay.naptime.net/repos/axe/
or use the clone URL git://urchlay.naptime.net/axe.git
Make sure cc65 and axe are both found in your $PATH, then:
$ cd src
$ make
$ make disk
This will build an ATR image called fujichat.atr. This is a bootable image
with DOS 2.0S and everything you need to run FujiChat. See doc/README
for more detail.
Running FujiChat:
fujichat.atr is a bootable DOS 2.0S floppy disk. It must be booted with
BASIC disabled (remove cartridge on 400/800/1200XL, hold Option down
on XL/XE).
The first time FujiChat boots, it'll ask what serial port driver you
want to use. Once you've selected this, you'll be prompted to reboot.
It's not recommended to choose 1 (no driver/manual setup); this option
exists mainly for testing.
After the serial driver has been selected, FujiChat will boot into
its main menu. The first thing you'll want to do is choose S for Setup.
You'll be prompted for all the settings. The main ones are:
- Baud rate. 4800 is the "safe" choice here, and works on most hardware.
9600 baud may or may not work for you. 19200 baud probably won't work
for anyone (yet?)
- Local IP address and Peer IP address. You shouldn't have to change
these (just press Enter for the defaults), *unless* your LAN is
already using the 192.168.0/24 net block! If this is the case, try
10.0.0.1 and 10.0.0.2 for these.
- DNS server. Most people will enter their ISP-assigned DNS server here.
In a pinch, you might try 8.8.8.8 (Google's public DNS server).
If you run DNS service on your local Linux/whatever system, you can
use the same IP as you entered for Peer IP address here.
- IRC server. You can choose one of the listed servers, or enter any
hostname or IP address instead.
- Server port. Normally 6667. Some servers may support other port numbers,
but there doesn't seem to be any real advantage to using them. Do NOT
enter the port number for secure IRC here; FujiChat does NOT support
SSL/TLS encryption (and never will: the Atari would take a week to
do the math needed to initiate a secure connection).
- Your nickname. The name you want to be known by, on IRC. This should
be a short name, and different IRC networks allow different lengths. All
networks allow at least 9 characters here, and FujiChat is limited to
20. If you're new to IRC, you should know that spaces are not allowed
here, and only some punctuation is allowed. Best bet is to stick with
alphanumerics. Mixed case is allowed (you could be johnsmith, Johnsmith,
or JohnSmith). Try to choose a name unlikely to already be in use.
- Your 'real' name. This is visible to all users on IRC, so you probably
don't want to put your *real* name. The default is "FujiChat User", which
is fine. Unlike the nickname, this doesn't have to be unique.
- Autojoin channel. If you enter 0 here, FujiChat won't automatically join
any channel (you would use the /join command after connecting, instead).
Normally channel names are prefixed with a # (e.g. #atari), but on
Freenode, some channels have two # instead (e.g. ##atari). If the
channel you want to join requires a NickServ login or similar, don't
try to autojoin it. You'll have to connect, then manually authenticate
(e.g. /m NickServ id <username> <password>), then manually join
the channel.
- Background and foreground colors. Standard decimal Atari color register
values (hue * 16 + luminance). The defaults are 192 and 12, which gives
a dark green background with very bright green text.
- Disable bell. FujiChat is capable of using either the regular Atari
"buzzer" audio bell, or a visible "bell" that briefly flashes the
border color. Saying Y here disables both visual and audio bells.
- Visual bell. When you say Y here, you'll get the visual bell described
above, and no audio bell. If you say N, you'll get the audio bell.
- Bell on msg. If you like to be notified when you get a private message,
say Y here. If you find this annoying or distracting, say N.
- Show ping/pong. Default is N, and most people will want to leave it this
way. Every few minutes, the IRC server sends a "ping" to FujiChat (or
any other IRC client), and FujiChat responds with a "pong" to let the
server know it's still "alive". If the pong never arrives, the server
assumes the client is dead, and drops the connection. Showing the
ping/pong messages is probably only useful for development/testing; in
normal use they just waste screen space.
- Hide MOTD. Every time you connect to an IRC server, it sends you a
"message of the day", which contains lots of general info about the
IRC network. Unfortunately, on some networks, the MOTD is really
long and verbose, and takes several minutes to receive and display
on the Atari. There's no way to prevent the server sending the MOTD,
and the server won't respond to commands (such as joining a channel)
until it's done sending the MOTD. However, hiding the MOTD (not
printing it) will speed up connection times, because the Atari isn't
very fast at printing text and scrolling its sreen. Leave this option
enabled, unless you're very curious about what's in the MOTD (and
also very patient).
- Is this correct [Y/n]. If you made a mistake entering one of the
settings, say N here and you'll get a chance to re-enter them.
- Save this config [Y/n]. Normally you'll say Y here, to save the config
to D:FUJICHAT.CFG. If you're just testing a different config, you can
say N. The config will remain in memory and FujiChat will use it. If
you reload the setup/config program from within FujiChat, the settings
from memory will be used as defaults for the prompts.
- Start FujiChat now [Y/n]. Does just what it says. If you're using the
SIO2PC for both disk emulation and RS232, wait for FujiChat to finish
loading (it'll show a "connect to server" prompt), then exit your disk
emulation software (or e.g. "stop emulation" in Respeqt), then run the
start_slip.sh script (or whatever else you use to start SLIP service
on your PC/Mac/whatever). Press Enter to connect to the IRC server,
and if you did everything just right, it should Just Work...
Notes:
Docs for uIP have been removed from this distribution, partly to save
space, and partly because the included version of uIP has been modified.
If you want to write a new app using uIP, you're better off starting
with the original sources, not my hacked-up mess.
Limitations:
As said before, FujiChat is only able to join one IRC channel at a time.
If your channel requires authentication with e.g. Freenode's NickServ
before being allowed to join it, you'll have to configure FujiChat
*not* to auto-join the channel. Once connected, you'll have to manually
authenticate, then manually /join the channel.
A lot of features found on IRC clients for more modern systems just
don't exist, either because of limited memory on the Atari, or because
the author just hasn't gotten around to adding them yet. There's no nick
list, logging, multiple windows, scrollback, triggers... channel text
from channel operators doesn't show an @ next to their nick... nick
completion (tab completion) doesn't exist, although you *can* use the
Tab key to respond to the most recent user who sent you a PM.
There are known bugs in FujiChat:
The /msg command (and several others) doesn't correctly quote its
argument, which means if you say "/msg somebody Hello, I'm on my Atari",
they'll receive only the first word (the "Hello,"). Temporary workaround:
say "/msg somebody :Hello, I'm on my Atari" (in other words prefix your
message with a colon).
The /ping command doesn't play nice with modern FreeNode servers, meaning
you get either no ping responses, or else it prints a ping time >= 2500
seconds.
Not really a bug, but a missing feature: non-ASCII characters (accented
letters, British pound symbol, etc) are printed as inverse video
gibberish. At some point these will be handled more gracefully.
|