XINA is actually an application layer on top of PC-XINU, a multithreaded
operating system originally created by Douglas Comer and documented in
a very well known two volume set of books. (XINU information:
public.ise.canberra.edu.au/~chrisc/xinu.html)
PC-XINU won over other operating systems for a few reasons. For example,
making Linux into a real-time system
with thread support would involve modifying the kernel, which then
obligated Williams into releasing the kernel modifications to the
public under the GPL. WMS Legal didn't care much for that. Comer's
XINU license was much more friendly to the lawyers; namely, we could
do anything we wanted to it with no obligations.
XINU also turned out to be quite easy to turn into a real-time system,
and in the end proved to be as easy as Linux or BSD to work with in an
embedded application, if not easier.
It is much easier to interface to the game PC via a keyboard, rather
than using the front-door panel (which only has 4 buttons). To hook up a
keyboard, unlock and remove the backglass panel on the head. On the
PC cage plug in a standard IBM PC/AT keyboard into the keyboard port
(note that this PC has an old-fashion 5-pin DIN plug rather than the
newer 6-pin mini-DIN plug). In most cases, the PC will detect the
connection of the keyboard and place the machine into the SHELL mode.
Also note that you can capture all printouts / command responses by
connecting a PC to the serial port (9600 baud, 8, N, 1) and by having
the PC run a terminal program (HyperTerminal).
Typing HELP or ? will display the list of commands shown below.
Most XINA commands are common between RFM and SW:E1 games, though the XINA
level in RFM 1.5 includes communication options and code that are not available
in released levels of SW:E1 (it appears that much of the XINA code used on
the SW:E1 during the tournament at Pinball Expo 99 was incorporated in
XINA 1.17 in RFM 1.3/1.4). In addition there are some game-specific
commands in RFM (there were apparently some cool game-specific commands
for SW:E1 that were removed for production code build).
Many of the
XINA commands available in RFM 1.5 are useful for advanced diagnostics or
debugging of gameplay only and are of limited general use. During the
development of a Pinball 2000 game, many such commands were added by the
developers. Not all remain in the release level of code.
Typing the command (with no other text) will display the proper
usage of the command, parameters, acceptable values, etc. Some
exceptions to this are obvious, such as commands like HELP, REBOOT, etc.
Commands/arguments should be typed in all lowercase.
(They are displayed here in upper/lower case for easier reading).
If a command's function is not obvious in what it performs, the
listing below will say "(function unknown)" to indicate that I do
not know what the command does.
Syntax: A <parameter> is manditory, <param1 | param2> means one of param1
or param2 is mandatory. A [parameter] is optional, [param1 | param2] means either
of param1 or param2 is optional. A 'N' means a numeric value, 0 to ?, based on
the command.
| ? | Produces a listing of commands, same as "HELP" |
| Usage: | ? |
| | |
| Attack_Mars | Starts / stops the Attack_Mars mode. Can be used to start Attack Mars mode for practice. |
| Usage: | attack_mars < Start | Stop | FlagRamps | FlagMS | FlagModes > |
| | |
| Audio | Adjusts audio properties |
| Usage: | AUDIO INIT |
| | AUDIO INFO |
| | AUDIO Quiet {0-5} |
| | AUDIO Volmin |
| | AUDIO Voldef |
| | AUDIO Volmax |
| | AUDIO Vol++ |
| | AUDIO Vol-- |
| | |
| Bitmap | Displays bitmap memory allocations |
| Usage: | bitmap < Info | Main | Waste > |
| | |
| BOOTDATA | Change / view which boot image is booted |
| Usage: | bootdata < Current | ROM | Flash > [Verify] |
| | |
| BPOOL | (function unknown) |
| Usage: | bpool |
| | |
| BS | (function unknown) |
| Usage: | bs < debugon | debugoff | off | on > |
| | |
| CLEAR | (function unknown) |
| Usage: | clear < cmos > |
| | |
| CMOS_Buffer | Displays flash CMOS memory utilization |
| Usage: | cmos_buffer < view | headers | reset | off > |
| | |
| CMOS | Displays ROM CMOS memory utilization |
| Usage: | cmos < view | headers | flash | prologue | reset | off > |
| | |
| CONF | Provides XINA status / table information |
| Usage: | conf |
| | |
| Continue | Used internally for continuing programming scripts |
| Usage: | continue |
| | |
| Credit | Manages current credits |
| Usage: | credit < init | info | dec > |
| | |
| DCS | Manages the digital sound system |
| Usage: | dcs N [track [pan]] |
| | dcs < + | - > |
| | dcs raw <N> |
| | dcs quiet [track] |
| | dcs trkvol <trk vol> |
| | dcs trkpan <trk pan> |
| | dcs signals [clear] |
| | dcs version |
| | dcs [warm] reset |
| | |
| DEFFMGR | (function unknown) |
| Usage: | deffmgr < list[_N] | debug<on|off> | log<on|off> | entry<addr> | names[_N] | unreq<addr> > |
| | |
| DEVS | Displays a listing of device names |
| Usage: | devs |
| | |
| DGSTAT | (function unknown) |
| Usage: | dgstat |
| | |
| DIPSW | Shows the dip switch value |
| Usage: | dipsw |
| | |
| DISPMGR | (function unknown) |
| Usage: | dispmgr < list[_N]debug<on|off> | entry<addr> | frames | fclear | locks[_N] | log<on|off> | on | off > |
| | |
| Diverter | Shows info regarding the diverter (ramp) |
| Usage: | diverter < debugon | debugoff | info > |
| | |
| DOWN | Same as the Down button on the Front-door |
| Usage: | down |
| | |
| DRIVE | (function unknown) |
| Usage: | drive < 0-47 | list | off | highon | highoff > |
| | |
| DROPTGT | Status of right ramp drop target |
| Usage: | droptgt < debugon | debugoff | info > |
| | |
| DUMP | Provides a memory dump |
| Usage: | dump <address> [count] |
| | |
| ECHO | Allows a command to be echoed to the window / log |
| Usage: | echo |
| | |
| ENTER | Same as the Enter button on the Front-door |
| Usage: | enter |
| | |
| ERRORS | Displays a summary of known errors |
| Usage: | errors |
| | |
| ESCAPE | Same as the Escape button on the Front-door |
| Usage: | escape |
| | |
| ETHER | Displays Ethernet network statistics |
| Usage: | ether < info > |
| | |
| EventLOG | Manages the event log buffers |
| Usage: | eventlog < dump[depth[count]] | flush | stats | types > |
| | |
| EXIT | Exit a running script |
| Usage: | exit |
| | |
| FATAL | Displays a listing of the fatal error log |
| Usage: | fatal |
| | |
| FB | Monitor adjustments, i.e. flips display. Useful for flipping the monitor when the playfield glass is removed. |
| Usage: | fb < clear | bars | border | pillars | vsyncs | flip | sync V(0:1) H(0:1) > |
| | |
| FLAGS | Displays flag values / state |
| Usage: | flags < local | global | static > |
| | |
| FlapGate | Monitor status of left / right flap gates |
| Usage: | flapgate < debugon | debugoff | info > |
| | |
| FlipRamp | Monitor status of up / down ramp |
| Usage: | flipramp < debugon | debugoff | info > |
| | |
| FLIP | Toggle state of flippers |
| Usage: | flip disable [all|0-3] | enable[all|0-3] | player<all|0-3> | computer<all|0-3> | on<all | 0-3> | off <all | 0-3>| debug > |
| | |
| FUpdate | Firmware Update |
| Usage: | fupdate < load<com1 | com2> <baudrate> [sf | sfonly] > |
| | fupdate enable |
| | fupdate disable |
| | |
| GAME | Change / view game parameters. |
| Usage: | game < info | tilt | over | name | collect > |
| | |
| GX | Displays various GX processor configuration registers |
| Usage: | gx < crs | ccrs | bcrs | mcrs | dcrs | id | cx5520 > |
| | |
| HELP | Produces listing of available commands, same as "?" |
| Usage: | help |
| | |
| HISTORY | Shows last commands entered from the keyboard |
| Usage: | history |
| | |
| HSTD | Displays High Score To-Date Tables |
| Usage: | hstd |
| | |
| HTTPD | Displays Internet hyperlink values |
| Usage: | httpd < list | stats > |
| | |
| IFSTAT | Switches between interface 0 or 1 |
| Usage: | ifstat < intf > |
| | |
| IGMP | Connect / disconnect via network to other machines |
| Usage: | igmp < join | leave> <group> |
| | |
| INFO | (function unknown) |
| Usage: | info |
| | |
| KEVENTS | Toggle values of key event settings |
| Usage: | kevents resource pid <on | off> |
| | kevents proc_create <on | off> |
| | kevents proc_suicide <on | off> |
| | kevents proc_kill <on | off> |
| | kevents proc_reap <on | off> |
| | kevents sem_create <on | off> |
| | kevents sem_delete <on | off> |
| | kevents hook_exec <on | off> |
| | |
| KILL | Terminate a process |
| Usage: | kill < process-id > |
| | |
| LAMPMGR | Monitor the lamp matrix |
| Usage: | lampmgt < list[_n] | matrixes[_n] | debug<on|off> | log<on|off> | on | off > |
| | |
| LAMP | Perform lamp tests, change lamp settings |
| Usage: | lamp test |
| | lamp lamp <all | N> <duty> |
| | lamp blink <all | N> <duty> |
| | lamp blink rate <time> |
| | lamp effect <all | N> <duty> |
| | lamp mask <all | N> <duty> |
| | lamp dump <lamp | blink | effect | mask> |
| | lamp saver <on | off | on_time N | off_time N> |
| | |
| LEFFMGR | (function unknown) |
| Usage: | leffmgr < list[_n] | debug<on|off> | log<on|off> | unreq <addr> | names[_n] > |
| | |
| LockPost | Monitor the jet bumper exit post |
| Usage: | lockpost < debugon | debugoff | info > |
| | |
| LOOPS | (function unknown) |
| Usage: | loops < debugon | debugoff | info > |
| | |
| Martians | Displays parameters about the two bouncing Martians |
| Usage: | martians < debugon | debugoff | info > |
| | |
| MEM | Displays current memory utilization |
| Usage: | mem < stat | free | usage <PID> | allocs [entries] | allocs_d [ entries [size]] > |
| | |
| MIDAS | (function unknown) |
| Usage: | midas <info | enable | disable> |
| | midas monitor [on | off] |
| | midas debug_level [N] |
| | midas send <ack | nack | rvi | eot> |
| | midas send cash door <open | close> |
| | midas send cash <5p | 10p | 20p | 50p> |
| | midas send cash <L1 | L2 | L5 | L10> |
| | midas send token <5p | 10p | 20p | 50p> |
| | midas send token <L1 | L2 | L5 | L10> |
| | midas send hstd <N> |
| | |
| MON | Reboots the machine with an extensive log displayed |
| Usage: | mon |
| | |
| MULTI | Provides current status of various flags |
| Usage: | multi < list [N] > |
| | |
| NetStat | Displays the current network status |
| Usage: | netstat |
| | |
| NET | Control / monitor the Ethernet network capability |
| Usage: | net < start | monitor [mac] <on | off> | nif <N> > |
| Example: | net monitor 0x00 0xe0 0x29 0x0f 0xeb 0xf6 on |
| | |
| NonFatal | Displays the non-fatal error log |
| Usage: | nonfatal |
| | |
| NSLookup | Network Service Name Lookup |
| Usage: | nslookup |
| | |
| PAL | (function unknown) |
| Usage: | pal < on | off > |
| | |
| PDB | Displays current status of the Power Driver Board |
| Usage: | pdb |
| | |
| PinEvents | Triggers a multitude of events |
| Usage: | pinevents game <on | off> all |
| | pinevents game <on | off> game_init |
| | pinevents game <on | off> add_player |
| | pinevents game <on | off> cycle_players |
| | pinevents game <on | off> game_start |
| | pinevents game <on | off> game_restart_game |
| | pinevents game <on | off> game_restart_ball |
| | pinevents game <on | off> ball_start |
| | pinevents game <on | off> first_ball |
| | pinevents game <on | off> ball_serve |
| | pinevents game <on | off> ball_serve_state |
| | pinevents game <on | off> outhole_made |
| | pinevents game <on | off> valid_playfield |
| | pinevents game <on | off> score |
| | pinevents game <on | off> endball_begin |
| | pinevents game <on | off> endball_kill |
| | pinevents game <on | off> game_over |
| | pinevents game <on | off> bonus |
| | pinevents game <on | off> match |
| | pinevents multi <on | off> all |
| | pinevents multi <on | off> audit_complete |
| | pinevents btime <on | off> all |
| | pinevents btime <on | off> ball_search |
| | pinevents btime <on | off> status_report |
| | pinevents btime <on | off> chase_ball |
| | pinevents tilt <on | off> plumb |
| | pinevents tilt <on | off> ball_roll |
| | pinevents tilt <on | off> game |
| | pinevents tilt <on | off> slam |
| | pinevents update <on | off> request |
| | pinevents update <on | off> update |
| | pinevents update <on | off> group |
| | pinevents update <on | off> object |
| | pinevents update <on | off> delay_pid |
| | |
| PING | Determine if a link / host is available |
| Usage: | ping host [size] |
| | |
| POOL | (function unknown) |
| Usage: | pool < stat > |
| | |
| Price_Current | Displays the current value of coins |
| Usage: | price_current |
| | |
| Price_Dyn | Displays status of dynamic (multiple coins) pricing |
| Usage: | price_dyn |
| | |
| Price_Table | Displays the price / coin table |
| Usage: | price_table |
| | |
| PrintOut | Displays via shell various printouts / audit logs |
| Usage: | printout < audits | adjustments | hstd | hourly | daily | pricing | fatal | nonfatal | everything > |
| | |
| PS | Displays CPU processes in memory |
| Usage: | ps |
| | |
| PTY | Check status of COM / Printer port |
| Usage: | pty < stat [N] > |
| | |
| PUB | (function unknown) |
| Usage: | pub < game | sound1 | sound8> dump <address> [<count>] > |
| | |
| QUEUE | (function unknown) |
| Usage: | queue < sleep | ready > |
| | |
| RAMPS | (function unknown) |
| Usage: | ramps < debugon | debugoff | info > |
| | |
| RASYS | (function unknown) |
| Usage: | rasys < debugon | debugoff > |
| | |
| REBOOT | Reboots (re-starts) the machine, smaller log entries |
| Usage: | reboot |
| | |
| Replay | Display / change replay values |
| Usage: | replay <info | buckets | check | reset> |
| replay add N [random | low | middle | high] [debug] |
| replay boost <ah | ar | coin | gs | go | rf> |
| | |
| Reslist | Displays a lengthy resource manager / system list |
| Usage: | reslist |
| | |
| RESOURCES | Displays a list of resources in use |
| Usage: | resources |
| | |
| ROUTES | Displays current network routing information |
| Usage: | routes |
| | |
| ROUTE | Configure network routing information |
| Usage: | route add <dest> <mask> <gateway> <metric> <ttl> |
| route delete <dest> <mask> |
| | |
| RTC | Access various RTC chip registers |
| Usage: | rtc < dump > |
| | |
| SCENEMGR | Manage the 12+ scenes (modes) (including bonus waves) |
| Usage: | scenemgr < awardshot<id> | awardswitch<id> | debugoff | debugon | info | reset<id> | resetall | select<id>| start<id> | stopall > |
| | Notes: the scenemgr command can be used to manage which scene is active in the game and/or display information on the status of an active scene. The command can be used be used at the beginning of the game to select the starting scene, including selecting scenes in the middle group that are not normally selectable by the action buttons. For example, use "scenemgr select 8" to select "Drive-In Demolition" as your first scene. All other gameplay continues options/rules continue normally. During gameplay scenemgr can be used to start another scene at anytime using the format: scenemgr resetall stopall start N where N = 0 - "Fuel Bonus Wave" 1 - "Saucers Bonus Wave" 2 - "Weapons Bonus Wave" 3 - "Alien Abduction" 4 - "Martian Happy Hour" 5 - "Secret Weapon" 6 - "Tower Struggle" 7 - "Question Mark" 8 - "Drive-In Demolition" 9 - "Paris In Peril" 10 - "Big-O-Beam" 11 - "Mars Kneads Women" |
| | |
| SEM | Shows status of semaphores |
| Usage: | sem |
| | |
| SLEEP | Pause execution of program by delay factor |
| Usage: | sleep < delay > |
| | |
| STACK | (function unknown) |
| Usage: | stack < history > |
| | |
| START | Same as the Start button on the Front-door |
| Usage: | start |
| | |
| SWITCH | Perform switch diagnostics |
| Usage: | switch < debug | callbacks | timers | counters > |
| switch test < on | off > |
| switch trace < on | off > |
| switch break number |
| | |
| TERM | Manage the serial (terminal) port |
| Usage: | term < on | off | capslock | control | swap > |
| | |
| TIMERQ | (function unknown) |
| Usage: | timerq |
| | |
| TIME | Displays the current date and time |
| Usage: | time |
| | |
| UPDTMGR | Manages scenes, backgrounds, sounds, music |
| Usage: | updtmgr < list | update > |
| | |
| UP | Same as the Up button on the Front-door |
| Usage: | up |
| | |
| VDAI | (function unknown) |
| Usage: | vdai info |
| | |
| ZC | (function unknown) |
| Usage: | zc |
| | |
| ZOMBIE | (function unknown) |
| Usage: | zombie process-id |
What you need is a wireless bridge. Logitech used to make one
called the "Play Link", which was marketed for network capable
consoles link PS2 and XBox. Like just about everything good for
Pin2000, it's no longer made. I was fortunate enough to pick one up
when they were on clearance at geeks.com for $9.99 (wish I'd
bought more than one!) You see used ones pop up on eBay fairly often.
There are probably other bridges out there, but the Play Link is
inexpensive, simple, and works great. All you have to do is run
the provided network cable from your P2K network card to one
of the Play Link cubes, and connect the other cube to your router.
The two cubes automatically make an RF connection. There's
no configuration to do. It's essentially a "wireless cable"
from your pinball to the router. I run the network cable down
the back of the machine (along with the other cables, like the
parallel cable that goes to the driver board) and put the cube down
in the bottom of the cabinet. The cube has a little wall-wart
power supply that you can plug into the utility power outlet with
the help of the adapter cord that comes with the machine.