SAS-Implementation-Guide-v1 5 0-1 15 2014
SAS-Implementation-Guide-v1 5 0-1 15 2014
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 .............................................................................................. 7
2.7 Error Conditions.................................................................................................. 7
2.7.1 VGM Busy ................................................................................................... 7
2.7.2 Loop Break .................................................................................................. 7
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
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 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.
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.
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.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.
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.
Event
Exception Description
Code
00 No activity
11 Slot door was just opened
12 Slot door was just closed
13 Drop door was just opened
14 Drop door was just closed
15 Card cage was just opened
16 Card cage was just closed
17 AC power was just applied to the VGM
18 AC power was just lost from the VGM
19 Cashbox door open
1A Cashbox door closed
1B Cashbox removed
1C Cashbox installed
1D Belly door was just opened
1E Belly door was just closed
27 Cashbox full
28 Bill jam
29 Bill acceptor hardware failure
2B Bill rejected
Operator changed configuration options, including denomination, VGM
3C
address or any gaming option specific to the VGM
3D A cash out ticket has been printed
3F Validation ID not configured
47 $1.00 bill accepted, non-RTE mode
48 $5.00 bill accepted, non-RTE mode
49 $10.00 bill accepted, non-RTE mode
4A $20.00 bill accepted, non-RTE mode
60 Printer communication error
61 Printer paper out error
70 Exception buffer overflow
7A Game soft meter reset to zero
86 Game is out of service
8C Game selected
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.
Note: All command and response examples will use a machine address of 1.
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.
Byte 9 – Largest configured maximum bet for the VGM in binary format.
Byte 10 – Current configured progressive group for the VGM in binary format.
Byte 11 ~ Byte 12 – Game options selected by the operator in binary format.
Byte 13 ~ Byte 18 – Paytable ID* in ASCII format.
Byte 19 ~ Byte 22 – Theoretical base pay back percentage for max bet in ASCII format.
No decimal point, it is implied.
Byte 23 ~ Byte 24 – 16-bit CRC.
*Required SAS Paytable ID cross reference is detailed in Section 4.1.
4.4.14 Command code: 20 (Required)
Description: Send Dollar Value of Bills Meter
Poll: ’01 20’
Response: ’01 20 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Dollar value of all bills received, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.
4.4.15 Command code: 31 (Required)
Description: Send $1.00 Bills In Meter
Poll: ’01 31’
Response: ’01 31 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $1.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.
4.4.16 Command code: 32 (Required)
Description: Send $2.00 Bills In Meter
Poll: ’01 32’
Response: ’01 32 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $2.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.
4.4.17 Command code: 33 (Required)
Description: Send $5.00 Bills In Meter
Poll: ’01 33’
Response: ’01 33 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $5.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.
Response: ’01’
Byte 1 – VGM SAS address in binary format.
Byte 5 ~ Byte… – 2-byte game numbers of all enabled games in ASCII format.
Byte… ~ Byte… – 16-bit CRC.
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.