Revenge From Mars - XINA Notes
Compiled by Jack A. Robinson, last updated 25-Apr-2001.
Modified 03-Aug-2022 for nestreble.ca 

  1. XINA Background
  2. XINA Command List (brief)
  3. XINA Command List Usage
  4. Adding an Ethernet Card

XINA Background

Revenge From Mars pinball is controlled by a personal computer located in the head of the game.  The Operating System controlling the PC is called XINA, which is unique in it's command structure. (Ordinary UNIX / DOS commands do not work.)  A total of 99 XINA commands are available to view, alter, and execute the parameters surrounding the game.  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 artwork-panel on the head.  Up above is 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 - I simply use a 6-to-5 pin pig-tail adapter.)  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.  

There are three commands that may be of general interest:  fb, attack_mars, and scenemgr.  Many others are interesting (e.g. pinevents), but these three are likely to be the most commonly used by the average RFM home owner.

If you have additional information about XINA's command set ('cause I don't have a complete set of  information, please e-mail Jim Hicks (jimhicks@attglobal.net) as he collects bug reports.  (Thanks!)


Warning: 
DO NOT issue commands or alter settings using the XINA command set unless you know what you are doing and understand the implications.  I will not be held liable for any damage caused to your machine by using these commands.

 

Back to Top

XINA Command List (brief)

Be sure to read the background XINA information in the section above titled XINA Background.  

Warning:  DO NOT issue commands or alter settings using the XINA command set unless you know what you are doing and understand the implications.  I will not be held liable for any damage caused to your machine by using these commands.

Keyboard Function-Key Commands:

F1 - Help
F2 - Flip Screen
F3 - Shell (toggle)
F4 - Start (same as Start button on Front-door)
F5 - Escape (same as Escape button on Front-door)
F6 - Down (same as Down button on Front-door)
F7 - Up (same as Up button on Front-door)
F8 - Enter (same as Enter button on Front-door)


XINA v1.18 Command List:

?                 Flags                 Ping
Attack_Mars       FlapGate              Pool
Audio             FlipRamp              Price_Current
Bitmap            Flip                  Price_Dyn
Bootdata          FUpdate               Price_Table
BPool             Game                  PrintOut
BS                GX                    PS
Clear             Help                  PTY
CMOS_Buffer       History               Pub
CMOS              HSTD                  Queue
CONF              HTTPD                 Ramps
Continue          IFStat                RASYS
Credit            IGMP                  Reboot
DCS               Info                  Replay
DeffMGR           KEvents               Reslist
DEVS              Kill                  Resources
DGStat            LampMGR               Routes
DipSW             Lamp                  Route
DispMGR           LeffMGR               RTC
Diverter          LockPost              SceneMGR
Down              Loops                 SEM
Drive             Martians              Sleep
DropTGT           MEM                   Stack
Dump              Midas                 Start
Echo              MON                   Switch
Enter             Multi                 Term
Errors            NetStat               TimeRQ
Escape            Net                   Time
Ether             NonFatal              UpdtMGR
EventLOG          NSLookup              Up
Exit              PAL                   VDAI
Fatal             PDB                   ZC
FB                PinEvents             Zombie

 

Back to Top

XINA Command List Usage
(with thanks to Jim Hicks for his contributions to this section!)

Be sure to read the background XINA information in the above section titled XINA Background.  

Warning:  DO NOT issue commands or alter settings using the XINA command set unless you know what you are doing and understand the implications.  I will not be held liable for any damage caused to your machine by using these commands.

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.  Note:  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.  (If you do, please e-mail me with an explanation - thanks!)

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.

XINA v1.18 Command List Usage:

? 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

Back to Top

Adding an Ethernet Card
(with thanks to an anonymous PB2K techy for their contributions to this section!)

Why?
Good question!  Maybe because you saw the SW:E1 machines network-linked together at Pinball Expo '99.   Maybe because with an Ethernet card installed you can access your RFM's internal commands via the Internet.  (To check earnings, diagnostics, etc.)  Or perhaps you own more than one PB2K machine and you're going to have your own tournament?  To tell the truth I have not installed an Ethernet card in my machine, but I wanted to document the procedure as I know it.  Again, perform this kind of operation at your own risk.


Ethernet Card Specifications
I've been told that RFM only supports one brand of Ethernet Card, an SMC (brand) ETHEREZ 16BIT ISA 10MBPS RJ-45 network card. (mfg part# SMC8416T, typically goes for $31 USD at places like www.buy.com but this card is becoming increasing difficult to find   This network 
card needs to be installed into the extra ISA slot in the RFM (v1.4 or better) pinball machine motherboard.  After the settings are configured for the network adjustments, you can connect to the XINA command shell via telnet or alternately you can connect to the machine using a web browser (a simple httpd server is built in!).  

Ethernet Configuration Instructions

Note that depending on the motherboard in the RFM machine, you may have to adjust the BIOS setup setting prior to getting the network card working in order to avoid an IRQ conflict. This can be determined if there is a problem by configuring the network adjustments, setting an IP address/mask, and then using the keyboard (or serial port) to access a command prompt and run 'ping'.  If the 'ping' works (the lights on the card blink or device on the network responds to the ping, etc.), then you don't need to change the BIOS.  If you get some kind of "ez" error message, then you will have to do the following:.

Remove the PRISM board, plug in a keyboard and power up the box.  If you are lucky and your monitor "syncs up" to the BIOS screen, then you can see what you are doing.  If not, you may want to temporarily plug in a PC monitor instead of the Pin2000 monitor.  

You will need to 'Disable' the 'Built in OnBoard Audio' in the 'Integrated Peripherals' menu.  On some RFM motherboards, the onboard audio uses the IRQ that the default setting of the EtherEZ network card uses.

Here are the key strokes that should effect the change:

  1. Remove the PRISM board/plug in PC monitor and keyboard
  2. Power up (you will see the normal PC BIOS startup because the PRISM card is out)
  3. Press DEL to enter setup (the BIOS setup should appear)
  4. Press the RIGHT ARROW key (move to the INTEGRATED PERIPHERALS menu)
  5. Press the ENTER key (enter the INTEGRATED PERIPHERALS menu)
  6. Press the RIGHT ARROW key (move to the right hand column of menu items)
  7. Press the DOWN ARROW key (move to the BUILT IN ONBOARD AUDIO menu)
  8. Press the PAGE UP key (change the adjustment from ENABLE to DISABLE)
  9. Press the ESC key (leave the INTEGRATED PERIPHERALS menu)
  10. Press the DOWN ARROW key (move to the SAVE AND EXIT menu)
  11. Press the DOWN ARROW key
  12. Press the DOWN ARROW key
  13. Press the ENTER key (SAVE AND EXIT)
  14. Press the Y key (confirm)
  15. Press the ENTER key (do it)
  16. Replace the PRISM board
  
The default username / password are set to "PIN2000 / MANAGER", which you may want to change since all RFM machines are initially set to the same values.  (But who would want to hack into a pinball machine?)

Back to Top

Copyright © 2000, 2001 Jack A. Robinson.  All rights reserved.
Revised: April 25, 2001

Sourced from: https://web.archive.org/web/20011127091456/http://members.home.net/ratherplaypinball/rfmnotes.htm