aboutsummaryrefslogtreecommitdiff
path: root/Scripting/Perl/PoserRPC.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Scripting/Perl/PoserRPC.pl')
-rwxr-xr-xScripting/Perl/PoserRPC.pl313
1 files changed, 313 insertions, 0 deletions
diff --git a/Scripting/Perl/PoserRPC.pl b/Scripting/Perl/PoserRPC.pl
new file mode 100755
index 0000000..6141667
--- /dev/null
+++ b/Scripting/Perl/PoserRPC.pl
@@ -0,0 +1,313 @@
+#!/usr/bin/perl
+########################################################################
+#
+# File: PoserRPC.pl
+#
+# Purpose: Scrap file for testing Poser's RPC mechanism
+#
+# Description: This file contains a hodgepodge of scripts and
+# commands used to test out parts of Poser's RPC.
+# Don't take anything in this file too seriously;
+# it's provided only for completeness' sake.
+#
+########################################################################
+
+use EmRPC; # EmRPC::OpenConnection, CloseConnection
+use EmFunctions;
+use EmUtils; # Wait, TapPen, TapButton
+
+use constant hostSignalReserved => 0;
+use constant hostSignalIdle => 1;
+use constant hostSignalQuit => 2;
+use constant hostSignalSessionStarted => 3;
+use constant hostSignalSessionStopped => 4;
+
+EmRPC::OpenConnection(6415, "localhost");
+
+if (1)
+{
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispType, "xxxx");
+ print "hwrDispType", ($err ? ": err = $err" : (" = ", $result)), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispRev, "xx");
+ print "hwrDispRev", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispVers, "xx");
+ print "hwrDispVers", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispAllDepths, "xx");
+ print "hwrDispAllDepths", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispMaxDepth, "xx");
+ print "hwrDispMaxDepth", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispBootDepth, "xx");
+ print "hwrDispBootDepth", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispMaxGrays, "xx");
+ print "hwrDispMaxGrays", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispHorizontal, "xx");
+ print "hwrDispHorizontal", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispVertical, "xx");
+ print "hwrDispVertical", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispVRAMBaseAddr, "xxxx");
+ print "hwrDispVRAMBaseAddr", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispVRAMSize, "xxxx");
+ print "hwrDispVRAMSize", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispColor, "xx");
+ print "hwrDispColor", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispName, pack ("x32"));
+ print "hwrDispName", ($err ? ": err = $err" : (" = ", $result)), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispBaseAddr, "xxxx");
+ print "hwrDispBaseAddr", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispDepth, "xx");
+ print "hwrDispDepth", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispWidth, "xx");
+ print "hwrDispWidth", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispHeight, "xx");
+ print "hwrDispHeight", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispRowBytes, "xx");
+ print "hwrDispRowBytes", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispBacklight, "x");
+ print "hwrDispBacklight", ($err ? ": err = $err" : (" = ", unpack ("c", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispBrightness, "x");
+ print "hwrDispBrightness", ($err ? ": err = $err" : (" = ", unpack ("c", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispContrast, "x");
+ print "hwrDispContrast", ($err ? ": err = $err" : (" = ", unpack ("c", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispDbgIndicator, "xx");
+ print "hwrDispDbgIndicator", ($err ? ": err = $err" : (" = ", unpack ("n", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispEndAddr, "xxxx");
+ print "hwrDispEndAddr", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispBufferMask, "xxxx");
+ print "hwrDispBufferMask", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispResolutionX, "xxxx");
+ print "hwrDispResolutionX", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispResolutionY, "xxxx");
+ print "hwrDispResolutionY", ($err ? ": err = $err" : (" = ", unpack ("N", $result))), "\n";
+
+ my ($err, $result) = HwrDisplayAttributes (0, hwrDispMemAccessOK, "x");
+ print "hwrDispMemAccessOK", ($err ? ": err = $err" : (" = ", unpack ("c", $result))), "\n";
+}
+
+if (0)
+{
+ TapButtonSync("OK");
+}
+
+if (0)
+{
+ Wait();
+ $err = HostSessionClose (""); # Don't save
+ die "$err" if $err;
+ $err = HostSessionQuit ();
+ die "$err" if $err;
+}
+
+
+if (0)
+{
+ my ($err, $signal);
+
+ ########################################################################
+ print "Waiting for idle\n";
+
+ do {
+ ($err, $signal) = HostSignalWait (0x7fffffff);
+ if ($err)
+ {
+ HostSignalResume ();
+ die "Error $err while waiting for hostSignalIdle";
+ }
+ } while ($signal != hostSignalIdle);
+
+ ########################################################################
+ print "Closing session\n";
+
+ $err = HostSessionClose (""); # Don't save
+
+ ########################################################################
+ print "Waiting for session to close\n";
+
+ do {
+ ($err, $signal) = HostSignalWait (0x7fffffff);
+ if ($err)
+ {
+ HostSignalResume ();
+ die "Error $err while waiting for hostSignalSessionStopped";
+ }
+ } while ($signal != hostSignalSessionStopped);
+
+ ########################################################################
+ print "Creating session\n";
+
+ $err = HostSessionCreate ("PalmIII", 1024, "C:\\ROMs\\spp\\rom30dbg.rom");
+
+ ########################################################################
+ print "Waiting for session to start\n";
+
+ do {
+ ($err, $signal) = HostSignalWait (0x7fffffff);
+ if ($err)
+ {
+ HostSignalResume ();
+ die "Error $err while waiting for hostSignalSessionStarted";
+ }
+ } while ($signal != hostSignalSessionStarted);
+
+ ########################################################################
+ print "Closing session\n";
+
+ $err = HostSessionClose (""); # Don't save
+
+ ########################################################################
+ print "Waiting for session to close\n";
+
+ do {
+ ($err, $signal) = HostSignalWait (0x7fffffff);
+ if ($err)
+ {
+ HostSignalResume ();
+ die "Error $err while waiting for hostSignalSessionStopped";
+ }
+ } while ($signal != hostSignalSessionStopped);
+
+ ########################################################################
+
+ HostSignalResume ();
+ print "Done!\n";
+}
+
+if (0)
+{
+ $addr = MemPtrNew (100);
+ printf ("0x%08X\n", $addr);
+ EmRPC::WriteBlock ($addr, "1234567890");
+ $str = EmRPC::ReadBlock ($addr, 10);
+ print $str, "\n";
+ MemPtrFree ($addr);
+}
+
+if (0)
+{
+ TapPen (100, 100);
+}
+
+if (0)
+{
+ $vers = HostGetHostVersion ();
+ printf ("HostGetHostVersion() = 0x%08X\n", $vers);
+}
+
+if (0)
+{
+ $num = DmNumDatabases (0);
+ print "DmNumDatabases(0) = ", $num, "\n";
+
+ $localID = DmFindDatabase (0, "MemoDB");
+ printf ("DmFindDatabase(0, \"MemoDB\") = 0x%08X\n", $localID);
+
+ ($err, %results) = DmDatabaseInfo (0, $localID);
+ printf ("DmDatabaseInfo(0, 0x%08X) = 0x%08X\n", $localID, $err);
+ print ("results: \n");
+ print ("\tname = ", $results{name}, "\n");
+ print ("\tattributes = ", $results{attributes}, "\n");
+ print ("\tversion = ", $results{version}, "\n");
+ print ("\tcrDate = ", $results{crDate}, "\n");
+ print ("\tmodDate = ", $results{modDate}, "\n");
+ print ("\tbckUpDate = ", $results{bckUpDate}, "\n");
+ print ("\tmodNum = ", $results{modNum}, "\n");
+ print ("\tappInfoID = ", $results{appInfoID}, "\n");
+ print ("\tsortInfoID = ", $results{sortInfoID}, "\n");
+ print ("\ttype = ", $results{type}, "\n");
+ print ("\tcreator = ", $results{creator}, "\n");
+}
+
+if (0)
+{
+ $block = EmRPC::ReadBlock (0, 256);
+ EmRPC::PrintString ($block);
+}
+
+if (0)
+{
+ my ($form) = FrmGetActiveForm();
+ my ($num_objects) = FrmGetNumberOfObjects($form);
+
+ for $ii (0..$num_objects - 1)
+ {
+ my ($line) = "$ii. ";
+ my ($object_type) = FrmGetObjectType($form, $ii);
+
+ my ($type) = ("frmFieldObj", "frmControlObj", "frmListObj", "frmTableObj",
+ "frmBitmapObj", "frmLineObj", "frmFrameObj", "frmRectangleObj",
+ "frmLabelObj", "frmTitleObj", "frmPopupObj", "frmGraffitiStateObj",
+ "frmGadgetObj", "frmScrollBarObj")[$object_type];
+
+ $line .= " $type";
+
+ if ($object_type == frmControlObj)
+ {
+ my ($obj_ptr) = FrmGetObjectPtr ($form, $ii);
+ my ($address, $label) = CtlGetLabel($obj_ptr);
+ $line .= " \"$label\"";
+ }
+ elsif ($object_type == frmLabelObj)
+ {
+ my ($label_id) = FrmGetObjectId ($form, $ii);
+ my ($address, $label) = FrmGetLabel($form, $label_id);
+ $line .= " \"$label\"";
+ }
+ elsif ($object_type == frmTitleObj)
+ {
+ my ($address, $title) = FrmGetTitle($form,);
+ $line .= " \"$title\"";
+ }
+ else
+ {
+ $line .= " <no label>";
+ }
+
+ my (%bounds) = FrmGetObjectBounds($form, $ii);
+ $line .= " ($bounds{left}, $bounds{top}, $bounds{right}, $bounds{bottom})";
+
+ print "$line\n";
+ }
+}
+
+if (0)
+{
+ $err = HostSessionClose ("");
+ printf ("HostSessionClose() = 0x%08X\n", $err);
+
+ $err = HostSessionQuit ();
+ printf ("HostSessionQuit() = 0x%08X\n", $err);
+}
+
+if (0)
+{
+ HostGremlinNew (0, 3, 0, -1, 10000, "Memo Pad") == 0 || die "HostGremlinNew failed, stopped";
+}
+
+EmRPC::CloseConnection();
+
+
+