Implementation Guide
Implementation Guide
for
Table of Contents
1 Introduction .................................................................................................................. 5
1.1 General ................................................................................................................ 5
1.2 Scope and Purpose .............................................................................................. 5
1.3 Acknowledgement ............................................................................................... 5
2 Overview ....................................................................................................................... 6
2.1 Physical Interface ................................................................................................ 6
2.2 Logical Interface ................................................................................................. 6
2.3 Addressing ........................................................................................................... 6
2.4 Polling ................................................................................................................. 6
2.4.1 General Poll ................................................................................................. 6
2.4.2 Long Poll ..................................................................................................... 6
2.4.3 Response Timing ......................................................................................... 6
2.4.4 Data Integrity............................................................................................... 6
2.5 Timing ................................................................................................................. 6
2.6 Acknowledgement ............................................................................................... 6
2.7 Error Conditions .................................................................................................. 6
2.7.1 VGM Busy .................................................................................................. 6
2.7.2 Loop Break .................................................................................................. 6
2.7.3 Link Down................................................................................................... 7
2.7.4 Unsupported Commands ............................................................................. 7
2.7.5 Collision ...................................................................................................... 7
3 General Poll .................................................................................................................. 8
3.1 Required Event Exceptions ................................................................................. 9
3.2 Prohibited Event Exceptions ............................................................................... 9
4 Long Poll ..................................................................................................................... 10
4.1 SAS to MT Cross Reference ............................................................................. 10
4.2 Credit Unit ......................................................................................................... 10
4.3 ROM Signature Verification ............................................................................. 11
4.3.1 Command code: 21 (Required) .............................................................. 11
4.4 Meters and General Command .......................................................................... 12
4.4.1 Command code: 0F (Required) .............................................................. 12
4.4.2 Command code: 10 (Required) .............................................................. 12
4.4.3 Command code: 11 (Required) .............................................................. 12
4.4.4 Command code: 12 (Required) .............................................................. 12
4.4.5 Command code: 13 (Required) .............................................................. 13
4.4.6 Command code: 15 (Required) .............................................................. 13
4.4.7 Command code: 16 (Required) .............................................................. 13
4.4.8 Command code: 17 (Required) .............................................................. 13
4.4.9 Command code: 18 (Required) .............................................................. 13
4.4.10 Command code: 19 (Required) .............................................................. 14
4.4.11 Command code: 1A (Required) ............................................................. 14
4.4.12 Command code: 1E (Required) .............................................................. 14
4.4.13 Command code: 1F (Required) .............................................................. 14
4.4.14 Command code: 20 (Required) .............................................................. 15
Revision History
Date Version Modification
Added 3.2-Prohibited Event Exceptions, Added Appendix A-
5/12/15 1.6.0 Prohibited SAS Long Polls. Modified SAS Long Poll A0.
General Format Update.
Added Paytable ID Cross Reference Section 4.1 and SAS
1/15/14 1.5.0
Long Poll 7F.
10/22/12 1.4.1 Corrected long poll 7B.
Added SAS Long Polls 6F and 7B.
10/12/12 1.4.0 Modified Meter Cross Reference Section 4.1.
Added Asset Number Cross Reference Section 4.1.
Minor spelling and grammatical fixes; title page and revision
10/13/11 1.3.0
history reformatting.
Remove optional long polls and exceptions.
Modified useable address range.
Modified ROM signature command explanation.
Added special note for long poll ‘2F’.
Modified long poll ‘A0’ definition.
In ticket validation and redemption section, modified
explanation for Enhanced Validation with no validation ID set,
added that standard validation is the default configuration, and
10/22/10 1.2.2 added explanation of what the VGM does when the validation
buffer is full of unread.
Remove long poll ‘57’.
Remove exceptions 20, 2A, 36, 37, 73, 74, 7B.
Modify exception 3F to be required.
Make note that Jackpot meter is always zero in MT for long
polls 10, 19, 52.
Added note for long poll 50 and 4D that only validation type
00 is required.
Minor editing.
7/24/03 1.2.1 Added section 1.3 to acknowledge SAS Protocol Specification
document.
Added meter cross reference table.
7/22/03 1.2.0
Redefined required and optional concept.
Modifications and corrections based on comments gathered
7/20/03 1.1.0
from industry.
6/03/03 1.0.0 Initial release of document.
1 Introduction
1.1 General
The Automated Accounting and Reporting System (AARS) is a central monitoring system
(CMS) under implementation consideration by the Montana Gambling Control Division
(GCD). The primary purpose of the AARS is to automate the meter data collection, VGM
program information verification, gaming tax calculation, tax invoicing and tax collection.
Montana GCD has established, by rule, that all VGMs shall have the ability to communicate
with the AARS using the Slot Accounting System (SAS) Serial Communication Protocol,
version 6.00, with an EIA-232 physical interface.
This document will also define the minimum implementation requirement of polling
commands as directed by Montana GCD.
Specific command format and data structure should come from the SAS serial communication
protocol specification document.
1.3 Acknowledgement
This document is based on the SAS Protocol Specification document and should only be used
as a supplemental guide when implementing the protocol for the Montana jurisdiction. The
SAS Protocol Specification document describes the true and correct behavior of the protocol;
any deviation in this document is unintentional and the SAS Protocol Specification document
should be used as the deciding reference point if such a deviation exists. Corrections will be
made to this document in an expedient manner to reflect the SAS Protocol Specification
document when such a deviation is noted.
The SAS Protocol Specification document is the property of Gaming Standards Association
and International Game Technology.
2 Overview
The SAS serial communication protocol is a host-centric protocol. Data and event information are
requested or polled by the host; VGMs respond to requests or polls only when the machine address
used by the host matches the one configured in the VGM.
2.1 Physical Interface
The required physical interface between the host and the VGM is the EIA-232 interface.
2.2 Logical Interface
The serial data link shall operate at the speed of 19,200 bits per second (BPS), with 1 start bit, eight
data bits, a wake-up bit and one stop bit. The wake-up bit should be set in the first byte of the
message; the wake-up bit should be cleared for the remainder of the message. The VGM shall clear
the wake-up bit when responding to the host.
2.3 Addressing
The machine address for the VGM must be configurable by the operator, using numbers 1 through
127. Use of machine address zero (0) should only be used to turn off SAS.
2.4 Polling
2.4.1 General Poll
The host utilizes the general poll command to acquire critical event information from the VGM,
such as VGM door access and bill acceptance.
2.4.2 Long Poll
Long poll commands are used to access VGM meter accounting information, with the exception of
the ROM signature long poll request, where the VGM is required to calculate the CRC of its
memory based on the seed provided by the long poll command.
2.4.3 Response Timing
Upon receiving the entire host message, the VGM has 20 milliseconds to initial transmission of its
response. If the host does not receive the response within the 20 milliseconds, it may time out the
VGM and move on to the next polling target. Once the VGM has been timed out, further
transmission by the VGM is ignored by the host.
2.4.4 Data Integrity
Command and data integrity is verified with CCITT 16-bit CRC (Cyclical Redundancy Check).
The algorithm used for the CRC calculation is provided in the SAS protocol document.
2.5 Timing
Timing requirements are detailed in the protocol specification document in section 2.3; these
requirements will be strictly enforced.
2.6 Acknowledgement
The SAS protocol utilizes the implied acknowledgement (ACK) concept on the host. This concept
is detailed in section 3 of the protocol specification document. This concept is not followed on the
VGM side; therefore, the VGM must acknowledge receipt of messages from the host when required.
2.7 Error Conditions
2.7.1 VGM Busy
Refer to section 4.1 of the protocol specification document.
2.7.2 Loop Break
Refer to section 4.2 of the protocol specification document.
3 General Poll
The host issues general polls to request event exceptions from the VGM. The VGM shall maintain
all event exceptions in a first-in, first-out buffer (FIFO). Upon receiving a general poll addressed to
the VGM, the VGM shall respond with a single byte exception code. If no event exception is in the
buffer, the VGM shall respond with ‘00’ byte.
If a ROM signature verification result is pending, the VGM shall transmit the result instead of an
event exception in response to a general poll. Once the implied acknowledgement is determined by
the VGM, the VGM shall erase the ROM signature verification result.
The minimum number of event exceptions stored in the FIFO buffer is 20.
4 Long Poll
Long polls are utilized by the host to obtain data from the VGM. There are four (4) types of long
polls: type R, type S, type M and type G. The message types are detailed in section 2.2.2 of the
protocol specification document.
Minimum required and optional commands supported by the VGM are denoted in the following
detailed description and format guide.
Prohibited SAS Long Polls are listed in Appendix A. A VGM polled with any of the polls detailed
there should remain unresponsive and ignore the poll.
Note: All command and response examples will use a machine address of 1.
4.1 SAS to MT Cross Reference
All meters references in the remainder of this document follow the meter reference used in the SAS
Protocol Specification document. Table 4.1 cross-references the Montana Meter Name/Label with
the SAS Meter Label/Code Value.
The host will provide a variable seed in the polling command. The seed is used to calculate the
CRC value of the ROM device. The VGM shall include all critical data in its CRC calculation for
SAS long poll 21 including the BIOS, extended BIOS, MBR, OS partitions, game partitions, and
paytables. If a chain of trust is used in the boot process of the VGM, the calculation may be
performed on the start of the chain that contains the next link’s signature omitting the rest of the
boot chain from the CRC calculation. Graphics may be omitted from the CRC calculation. The
CRC reported by SAS long poll 21 shall be externally calculated outside of the VGM on the game
media and will match exactly.
The result of the computation is sent to the host in response to the next general poll command after
the completion of the computation.
During the computation or prior to sending the result to the host, if the VGM receives a second
ROM Signature Verification command, the computation shall restart with the new seed value.
4.3.1 Command code: 21 (Required)
Description: ROM Signature Verification
Poll: ’01 21 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – ROM verification seed value, binary format.
Byte 5 ~ Byte 6 – 16-bit CRC.
Response: ’01’
Byte 1 – VGM SAS address in binary format.
Note: Only two meters are required by the State of Montana, meter codes 00 and 01. All
other meter codes are optional.
5 Post Notes
The purpose of this document is to specify required polling commands by the Montana Gambling
Control Division. The intent is to clarify any and all vagueness or ambiguity in the protocol
specification document. Should ambiguity or vagueness persist, consult Montana GCD personnel
before proceeding with implementation.
Modification of interpretation by Montana GCD will be published no later than 7 days after such
modification, and shall be effective immediately. New submission of the protocol implementation
shall follow the modified interpretation without exception.