+# send a keep alive
+sub pc92k
+{
+ my $nref = shift;
+ my $s = "PC92^$main::mycall^" . gen_pc9x_t() . "^K";
+ $s .= "^" . _encode_pc92_call($nref, 1);
+ $s .= "^" . scalar $nref->nodes;
+ $s .= "^" . scalar $nref->users;
+ return $s . '^H99^';
+}
+
+# send a 'find' message
+sub pc92f
+{
+ my $target = shift;
+ my $from = shift;
+ return "PC92^$main::mycall^" . gen_pc9x_t() . "^F^$from^$target^H99^"
+}
+
+# send a 'reply' message
+sub pc92r
+{
+ my $to = shift;
+ my $target = shift;
+ my $flag = shift;
+ my $ms = shift;
+ return "PC92^$main::mycall^" . gen_pc9x_t() . "^R^$to^$target^$flag^$ms^H99^"
+}
+
+sub pc93
+{
+ my $to = shift; # *, callsign, chat group name, sysop
+ my $from = shift; # from user callsign
+ my $via = shift || '*'; # *, node call
+ my $line = shift; # the text
+ my $origin = shift; # this will be present on proxying from PC10
+
+ $line = unpad($line);
+ $line =~ s/\^/\\5E/g; # remove any ^ characters
+ my $s = "PC93^$main::mycall^" . gen_pc9x_t() . "^$to^$from^$via^$line";
+ $s .= "^$origin" if $origin;
+ $s .= "^H99^";
+ return $s;
+}
+