0% found this document useful (0 votes)
61 views26 pages

Implementation Guide

Uploaded by

geekrd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views26 pages

Implementation Guide

Uploaded by

geekrd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Implementation Guide

for

SAS Serial Protocol


Montana Department of Justice – Gambling Control Division

May 12, 2015


Version 1.6.0
Montana SAS Implementation Guide Page | 2

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

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 3

4.4.15 Command code: 31 (Required) .............................................................. 15


4.4.16 Command code: 32 (Required) .............................................................. 15
4.4.17 Command code: 33 (Required) .............................................................. 15
4.4.18 Command code: 34 (Required) .............................................................. 16
4.4.19 Command code: 35 (Required) .............................................................. 16
4.4.20 Command code: 36 (Required) .............................................................. 16
4.4.21 Command code: 37 (Required) .............................................................. 16
4.4.22 Command code: 46 (Required) .............................................................. 16
4.4.23 Command code: 48 (Required) .............................................................. 17
4.4.24 Command code: 54 (Required) .............................................................. 17
4.4.25 Command code: 6F (Required) .............................................................. 17
4.4.26 Command code: 7B (Required).............................................................. 18
4.4.27 Command code: 7E (Required) .............................................................. 18
4.4.28 Command code: A0 (Required) ............................................................. 18
4.4.29 Command code 7F (Required) ............................................................. 19
4.5 Multi-game Command ...................................................................................... 20
4.5.1 Command code: 2F (Required) .............................................................. 20
4.5.2 Command code: 51 (Required) .............................................................. 20
4.5.3 Command code: 52 (Required) .............................................................. 20
4.5.4 Command code: 53 (Required) .............................................................. 21
4.5.5 Command code: 55 (Required) .............................................................. 21
4.5.6 Command code: 56 (Required) .............................................................. 21
4.6 Ticket Validation and Redemption ................................................................... 22
4.6.1 Command code: 4C (Required).............................................................. 22
4.6.2 Command code: 4D (Required) ............................................................. 22
4.6.3 Command code: 3D (Required) ............................................................. 23
4.6.4 Command code: 50 (Required) .............................................................. 23
5 Post Notes .................................................................................................................... 25
Appendix A: Prohibited SAS Long Polls ...................................................................... 26

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 4

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.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 5

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.

1.2 Scope and Purpose


The scope and purpose of this implementation guide is to supplement the SAS Serial
Communication Protocol document, version 6.00, hence referred to as the protocol document.
This document will attempt to provide precise interpretation for the polling commands
defined in the protocol document.

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.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 6

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.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 7

2.7.3 Link Down


Refer to section 4.3 of the protocol specification document.
2.7.4 Unsupported Commands
If the VGM receives a polling command that is not supported by the VGM, the VGM shall not
respond to the command in any manner. Any response to such a command shall constitute support
of the command. Refer to section 4.4 of the protocol specification document.
2.7.5 Collision
The required physical interface for the Montana implementation is EIA-232, point-to-point interface.
Since the VGM should only respond to host polls upon detecting a matching machine address, a
collision should not occur. However, should the VGM detect a host transmission during its attempt
to transmit, the VGM shall yield to the host and abort its transmission. Refer to section 4.5 of the
protocol specification document.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 8

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.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 9

3.1 Required Event Exceptions


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

3.2 Prohibited Event Exceptions


Event Exception
Description
Code
7E Game Start
7F Game End

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 10

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.

Table 4.1 Meter Cross Reference


SAS Meter Label Montana SAS Meter Montana Meter
Meter Label Code Value Name
Total Coin in $$PL 0000 Money Played
Total Coin out $$WN 0001 Money Won
Total Canceled Credits $$PD 0004 Money Paid
Total Drop $$TL 0024 Money In
Current Credits $$CR 000C Current Credits

Table 4.2 VGM Information Cross Reference


SAS Label Montana Label SAS Long Poll
Gaming Machine Asset Number / House ID VGMID 7B (Asset Number)
Paytable ID Program Name 1F (Paytable ID)

4.2 Credit Unit


All ‘credit unit’ references in the following sections refer to the base denomination of the VGM.
The base denomination of all VGMs in the state of Montana is one (1) cent.

1 credit unit = 1 cent

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 11

4.3 ROM Signature Verification


The VGM is required to perform a calculation to verify the program content of its ROM(s) upon
request. The calculation utilizes the CCITT 16-bit CRC algorithm defined in section 5 of the
protocol specification document.

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 21 00 00 XX XX’


Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – ROM signature, binary format.
Byte 5 ~ Byte 6 – 16-bit CRC.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 12

4.4 Meters and General Command


4.4.1 Command code: 0F (Required)
Description: Send Meters from command codes 10 through 15.
Poll: ’01 0F’
Response:
’01 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Cancelled meter value in number of credits, BCD format.
Byte 7 ~ Byte 10 – Coin in meter value in number of credits, BCD format.
Byte 11 ~ Byte 14 – Coin out meter value in number of credits, BCD format.
Byte 15 ~ Byte 18 – Total drop meter value in number of credits, BCD format.
Byte 19 ~ Byte 22 – Jackpot meter value in number of credits, BCD format.
(Always zero in MT)
Byte 23 ~ Byte 26 – Games played meter value in number of games, BCD format.
Byte 27 ~ Byte 28 – 16-bit CRC.

4.4.2 Command code: 10 (Required)


Description: Send Jurisdictional Cancelled Credit Meter
Poll: ’01 10’
Response: ’01 10 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Cancelled credit meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.3 Command code: 11 (Required)


Description: Send Coin In Meter
Poll: ’01 11’
Response: ’01 11 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Coin in meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.4 Command code: 12 (Required)


Description: Send Coin Out Meter
Poll: ’01 12’
Response: ’01 12 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Coin out meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 13

4.4.5 Command code: 13 (Required)


Description: Send Total Drop Meter
Poll: ’01 13’
Response: ’01 13 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Total drop meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.6 Command code: 15 (Required)


Description: Send Games Played Meter
Poll: ’01 15’
Response: ’01 15 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Games played meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.7 Command code: 16 (Required)


Description: Send Games Won Meter
Poll: ’01 16’
Response: ’01 16 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Games won meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.8 Command code: 17 (Required)


Description: Send Game Lost Meter
Poll: ’01 17’
Response: ’01 17 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Games lost meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.9 Command code: 18 (Required)


Description: Send Games Since Last Power Up and Door Closure Meter
Poll: ’01 18’
Response: ’01 18 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Games played meter since last power up, BCD format.
Byte 5 ~ Byte 6 – Games played meter since last door closure, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 14

4.4.10 Command code: 19 (Required)


Description: Send Meters 11 Through 15
Poll: ’01 19’
Response: ’01 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Coin in meter value in number of credits, BCD format.
Byte 7 ~ Byte 10 – Coin out meter value in number of credits, BCD format.
Byte 11 ~ Byte 14 – Total drop meter value in number of credits, BCD format.
Byte 15 ~ Byte 18 – Jackpot meter value in number of credits, BCD format.
(Always zero in MT)
Byte 19 ~ Byte 22 – Games played meter value in number of games, BCD format.
Byte 23 ~ Byte 24 – 16-bit CRC.

4.4.11 Command code: 1A (Required)


Description: Send Current Credit Meter
Poll: ’01 1A’
Response: ’01 1A 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Current credit meter value in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.12 Command code: 1E (Required)


Description: Send Bill Meters
Poll: ’01 1E’
Response: ’01 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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, BCD format.
Byte 7 ~ Byte 10 – Number of $5.00 bills, BCD format.
Byte 11 ~ Byte 14 – Number of $10.00 bills, BCD format.
Byte 15 ~ Byte 18 – Number of $20.00 bills, BCD format.
Byte 19 ~ Byte 22 – Number of $50.00 bills, BCD format.
Byte 23 ~ Byte 26 – Number of $100.00 bills, BCD format.
Byte 27 ~ Byte 28 – 16-bit CRC.

4.4.13 Command code: 1F (Required)


Description: Send Gaming Machine ID and Information
Poll: ’01 1F’
Response: ’01 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Game ID in ASCII format.
Byte 5 ~ Byte 7 – Additional game ID in ASCII format. ASCII zero if not used.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 15

Byte 8 – VGM denomination code in binary format.


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.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 16

4.4.18 Command code: 34 (Required)


Description: Send $10.00 Bills In Meter
Poll: ’01 34’
Response: ’01 34 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $10.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.19 Command code: 35 (Required)


Description: Send $20.00 Bills In Meter
Poll: ’01 35’
Response: ’01 35 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $20.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.20 Command code: 36 (Required)


Description: Send $50.00 Bills In Meter
Poll: ’01 36’
Response: ’01 36 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $50.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.21 Command code: 37 (Required)


Description: Send $100.00 Bills In Meter
Poll: ’01 37’
Response: ’01 37 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Number of $100.00 bills accepted, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

4.4.22 Command code: 46 (Required)


Description: Send Credit Amount of All Bills Accepted
Poll: ’01 46’
Response: ’01 46 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Value of all bills accepted in number of credits, BCD format.
Byte 7 ~ Byte 8 – 16-bit CRC.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 17

4.4.23 Command code: 48 (Required)


Description: Send Last Accepted Bill Information
Poll: ’01 48’
Response: ’01 48 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 – Country code, BCD format.
Byte 4 – Bill denomination code, BCD format.
Byte 5 ~ Byte 8 – Number of accepted bills of this type, BCD format.
Byte 9 ~ Byte 10 – 16-bit CRC.

4.4.24 Command code: 54 (Required)


Description: Send SAS Version ID and Gaming Machine Serial Number
Poll: ’01 54’
Response: ’01 54 00 00 00 00 00 … 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 – Length of data field, binary format.
Byte 4 ~ Byte 6 – Implemented SAS version number, ASCII format.
Byte 7 ~ Byte… – Gaming machine serial number, ASCII format, variable length.
Byte… ~ Byte… – 16-bit CRC.

4.4.25 Command code: 6F (Required)


Description: Send Selected Meters for Game N
Poll: ’01 6F 00 00 00 00 … 00 XX XX”
Byte 1 – VGM SAS address in binary format.
Byte 2 – Selected extended meters command.
Byte 3 - Number of data bytes to follow, in binary format.
Byte 4 ~ Byte 5 – Selected game number, (0000=gaming machine) BCD format
Byte 6 – Byte 7 - Meter code* for the first requested meter, binary format.
Variable – Additional meter codes* in binary, maximum of 11 meter-codes.
Byte… ~ Byte… – 16-bit CRC.
Response: ’01 6F 00 00 00 00 … 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 - Number of data bytes to follow, in binary format.
Byte 4 ~ Byte 5 – Selected game number, (0000=gaming machine) BCD format.
Byte 6 ~ Byte 7 – Meter code* for the following meter, binary format.
Byte 8 – Meter size in number of bytes (Must support a min of 5 BCD)
Byte… ~ Byte Meter value for the first meter (0 to 9 bytes)
Byte… ~ Byte Code/size/value for additional meters
Byte… ~ Byte… – 16-bit CRC
*Required SAS Meter code values are detailed in Section 4.1.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 18

4.4.26 Command code: 7B (Required)


Description: Extended Validation Status
Poll: ’01 7B 00 00 00 00 00 00 00 00 00 XX XX
Byte 1 – VGM SAS address in binary format.
Byte 2 – Extended validation status
Byte 3 - Number of data bytes to follow, in binary format.
Byte 4 ~ Byte 5 – Control Mask (Set bit to 1 to allow control of corresponding functions in control
bits) (should always be set to 0000)
Byte 6 – Byte 7 – Status Bit Control (Set Bit = 1 to enable function, 0 to disable function, if
corresponding mask bit=1) (should always be set to 0000)
Byte8 ~ Byte 9…Number of Days before cashable and hand pays receipts expire (0000 = do not
change, 9999 = never expire) (should always be set to 0000)
Byte 10 ~ Byte 11 Default number of days before restricted tickets expire (0000 = do not change,
9999 = never expire) (should always be set to 0000)
Byte 12 ~ Byte 13… – 16-bit CRC
Response: ’01 7B 00 00 00 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 - Number of data bytes to follow, in binary format.
Byte 4 - Byte 7 – Gaming machine asset number or house ID*.
(Always report the MT VGMID #)
Byte 8 – Byte 9 – Status bits (Bit =1 if function currently enabled, 0 if function currently disabled)
Byte 10 ~ Byte 11 – Cashable ticket and receipt expiration (Number of days before cashable tickets
and handpay expire (9999= never expire)
Byte 12 ~ Byte 13 – Restricted ticket default expiration (Default number of days before restricted
tickets expire (9999=never expire)
Byte 14 ~ Byte 15 – 16-bit CRC
*Required SAS Asset number cross reference is detailed in Section 4.1.

4.4.27 Command code: 7E (Required)


Description: Send Current Date and Time
Poll: ’01 7E’
Response: ’01 7E 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Date in MMDDYYYY format, BCD format.
Byte 7 ~ Byte 9 – Time in HHMMSS 24-hour format, BCD format.
Byte 10 ~ Byte 11 – 16-bit CRC.

4.4.28 Command code: A0 (Required)


Description: Send Enabled Features

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 19

Poll: ’01 A0’


Response: ’01 A0 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Selected game number, ‘0000’ for gaming machine, BCD format.
Byte 5 ~ Byte 7 – Feature codes, reference table 4.5.36, binary format.
Byte 8 ~ Byte 10 – Reserved for future use, ’00 00 00’.
Byte 11 ~ Byte 12 – 16-bit CRC.
Table 4.5.36: Feature Codes
Byte Bit Description
5 0 – Jackpot multiplier 0 = Inactive, 1 = Active
1 – Reserved 0 (reserved)
2 – Bonus awards 0 = Inactive, 1 = Active
3 – Tournament 0 = Inactive, 1 = Active
4 – Reserved 0 (reserved)
5 ~ 6 – Validation style 00 = Standard
01 = System
10 = Enhanced
11 = reserved
7 – Voucher redemption 0 = Disabled, 1 = Enabled
6 0 ~ 1 – Meter model flag 00 = Meter model not specified
01 = Won credits metered when won
10 = Won credits metered when played or
paid
11 = reserved
2 – Vouchers to drop and 0 = Vouchers not included
cancelled credits 1 = Vouchers included
3 – Extended Meters 0 = Not Supported, 1 = Supported
4 – Component Authentication 0 = Not Supported, 1 = Supported
5 – Reserved 0 (reserved)
6 – Advanced Fund Transfer 0 = Not Supported, 1 = Supported
7 – Multi-denom Extensions 0 = Not Supported, 1 = Supported
7 0 – Maximum Polling Rate 0= Not Specified, 1 = 40 milliseconds
1 – Multiple SAS progressive 0 = Not Supported, 1 = Supported
win reporting (long poll 87)
2 ~ 7 – Reserved 0 (reserved)

4.4.29 Command code 7F (Required)


Description: Receive Date and Time
Poll: ’01 7F’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Date in MMDDYYYY format, BCD format.
Byte 7 ~ Byte 9 – Time in HHMMSS 24-hour format, BCD format.
Byte 10 ~ Byte 11 – 16-bit CRC.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 20

Response: ’01’
Byte 1 – VGM SAS address in binary format.

4.5 Multi-game Command


4.5.1 Command code: 2F (Required)
Description: Send Selected Meters for Game N
Poll: ’01 2F 00 00 00 00 00 … 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Selected meters for game N command code.
Byte 3 – Number of data bytes to follow, in binary format.
Byte 4 ~ Byte 5 – Selected game number, BCD format.
Byte 6 – Meter code* for the first requested meter, binary format.
Variable … – Additional meter codes* in binary, maximum of 10 meter-codes.
Byte… ~ Byte… – 16-bit CRC.
Response: ’01 2F 00 00 00 00 … 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 – Number of data bytes to follow, in binary format.
Byte 4 ~ Byte 5 – Selected game number, BCD format.
Byte 6 – Meter code* for the following meter, binary format.
Byte 7 ~ Byte... – Meter value, 4 or 5 bytes depending on meter, BCD format.
Byte… Additional meter code*, binary format.
Byte… ~ Byte… -- Additional meter value matching the meter code preceding it.
Byte... ~ Byte... – 16-bit CRC.
*Meter code value detailed in table C-7 of appendix C in the protocol specification document.

Note: Only two meters are required by the State of Montana, meter codes 00 and 01. All
other meter codes are optional.

4.5.2 Command code: 51 (Required)


Description: Send Total Number of Games Implemented
Poll: ’01 51’
Response: ’01 51 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Number of games implemented on VGM, BCD format.
Byte 5 ~ Byte 6 – 16-bit CRC.

4.5.3 Command code: 52 (Required)


Description: Send Game N Meters
Poll: ’01 52 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Selected game number, BCD format.
Byte 5 ~ Byte 6 – 16-bit CRC.
Response: ’01 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX’

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 21

Byte 1 – VGM SAS address in binary format.


Byte 2 – Command code.
Byte 3 ~ Byte 4 – Selected game number, BCD format.
Byte 5 ~ Byte 8 – Coin in meter in number of credits, BCD format.
Byte 9 ~ Byte 12 – Coin out meter in number of credits, BCD format.
Byte 13 ~ Byte 16 – Jackpot meter in number of credits, BCD format.
(Always zero in MT)
Byte 17 ~ Byte 20 – Games played meter, BCD format.
Byte 21 ~ Byte 22 – 16-bit CRC.

4.5.4 Command code: 53 (Required)


Description: Send Game N Configuration
Poll: ’01 53 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Selected game number, BCD format.
Byte 5 ~ Byte 6 – 16-bit CRC.
Response: ’01 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Selected game number, BCD format.
Byte 5 ~ Byte 6 – Game ID in ASCII format.
Byte 7 ~ Byte 9 – Additional game ID in ASCII format. Pad with ASCII ‘0’ if none.
Byte 10 – Game denomination in binary format.
Byte 11 – Maximum bet for game N in binary format.
Byte 12 – Progressive group number in binary format.
Byte 13 ~ Byte 14 – Game options selected by the operator, binary format.
Byte 15 ~ Byte 20 – Pay table ID, ASCII format.
Byte 21 ~ Byte 24 – Theoretical base pay back percentage for max bet, ASCII format.
Byte 25 ~ Byte 26 – 16-bit CRC.

4.5.5 Command code: 55 (Required)


Description: Send Selected Game Number
Poll: ’01 55’
Response: ’01 55 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 4 – Selected game number in ASCII format. ‘0000’ if none selected.
Byte 5 ~ Byte 6 – 16-bit CRC.

4.5.6 Command code: 56 (Required)


Description: Send Enabled Game Numbers
Poll: ’01 56’
Response: ’01 56 00 00 00 00 … 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 22

Byte 3 – Length of data field, binary format.


Byte 4 – Number of games enabled, binary format.
Byte 5 ~ Byte… – 2-byte game numbers of all enabled games in ASCII format.
Byte… ~ Byte… – 16-bit CRC.

4.6 Ticket Validation and Redemption


There are three ticket validation methods used in the SAS protocol, standard, enhanced and system
validation. The enhanced method is the method of choice for the state of Montana.
Enhanced validation provides for a VGM generated 16-digit validation number. The enhanced
validation algorithm is described with example in section 15.15, page 15-25 of the protocol
specification document. To generate the enhanced validation number, the VGM is required to
maintain the VGM machine validation ID number and the validation sequence number in non-
volatile memory. The VGM shall use standard validation as its default configuration. The VGM
validation ID and the validation sequence number are configured by the CMS. In the absence of a
validation ID from the CMS, the VGM shall halt and prevent game play. The VGM shall halt and
prevent game play when it is configured to Enhanced Validation and the validation buffer becomes
full of unread records.
This function shall be configurable in the VGM configuration menu.
Standard validation provides for a VGM generated 8-digit validation number. The standard
validation algorithm is described with example in section 15.14, page 15-24 of the protocol
specification document.

4.6.1 Command code: 4C (Required)


Description: Set Enhanced Validation ID
Poll: ’01 4C 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 5 – VGM validation ID number, binary format.
Byte 6 ~ Byte 8 – Starting sequence number, binary format.
Byte 9~ Byte 10 – 16-bit CRC.
Response: ’01 4C 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 5 – VGM validation ID number, binary format.
Byte 6 ~ Byte 8 – Current sequence number, binary format.
Byte 9~ Byte 10 – 16-bit CRC.
The host may use this command to retrieve current validation ID and sequence by setting the VGM
ID to zero in the poll. If the VGM is not configured for enhanced validation, this command is
ignored.

4.6.2 Command code: 4D (Required)


This long poll command is used in response to 2 exceptions reported by the VGM.
 For exception ‘3D’, cash out ticket has been printed.
 For exception ‘3E’, hand pay has been validated.
Description: Send Enhanced Validation Information
Poll: ’01 4D 00 XX XX’

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 23

Byte 1 – EGM SAS address in binary format.


Byte 2 – Send enhanced validation information command code.
Byte 3 – Function code, binary format:
00 = read current validation information.
01~1F = Validation information from buffer index n.
FF = Look ahead at current validation information.
Byte 4~ Byte 5 – 16-bit CRC.
Response: ’01 4D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 – Type of validation, binary format
Byte 4 – Buffer index number, binary format.
Byte 5 ~ Byte 8 – Validation date in MMDDYYYY format, BCD format.
Byte 9 ~ Byte 11 – Validation time in HHMMSS 24-hour format, BCD format.
Byte 12 ~ Byte 19 – Validation number (enhanced or system), BCD format.
Byte 20 ~ Byte 24 – Ticket/hand pay amount in units of cents, BCD format.
Byte 25 ~ Byte 26 – Sequential ticket number, roll over at 9999, binary format.
Byte 27 – Validation system ID, BCD format:
00 = Enhanced validation number calculated by the VGM.
01 ~ 99 = System ID code (indicate system validation).
Byte 28 ~ Byte 33 – Reserved, set all bytes to ‘00’.
Byte 34~ Byte 35 – 16-bit CRC.
Note: Only Validation Type Code “00” (Cashable ticket from cash out or win, no hand pay
lockup) is required for Montana.

4.6.3 Command code: 3D (Required)


Description: Send Cash Out Ticket Information
Poll: ’01 3D’
Response: ’01 3D 00 00 00 00 00 00 00 00 00 XX XX’
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 ~ Byte 6 – Standard validation number (calculated by VGM), BCD format.
Byte 7 ~ Byte 11 – Ticket amount in units of cents, BCD format.
Byte 12 ~ Byte 13 – 16-bit CRC.
If the EGM is configured for enhanced or system validation, the validation number data field
should be all zeros in the response.

4.6.4 Command code: 50 (Required)


Description: Send Validation Meters
Poll: ‘01 50 00 XX XX‘
Byte 1 – VGM SAS address in binary format.
Byte 2 – Command code.
Byte 3 – Type of validation (table 4.9.11), binary format.
Byte 4 ~ Byte 5 – 16-bit CRC.
Response: ’01 50 00 00 00 00 00 00 00 00 00 00 XX XX’

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 24

Byte 1 – VGM SAS address in binary format.


Byte 2 – Command code.
Byte 3 – Type of validation binary format.
Byte 4 ~ Byte 7 – Total number of validations of type, BCD format.
Byte 8 ~ Byte 12 – Cumulative validation amount in units of cents, BCD format.
Byte 13 ~ Byte 14 – 16-bit CRC.
Note: Only Validation Type Code “00” (Cashable ticket from cash out or win, no hand pay
lockup) is required for Montana.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 25

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.

Version 1.6.0 May 12, 2015


Montana SAS Implementation Guide Page | 26

Appendix A: Prohibited SAS Long Polls


Long Poll Long Poll Name
Number
72 AFT transfer funds
73 AFT register gaming machine
74 AFT game lock and status request
75 Set AFT receipt data
76 Set custom AFT ticket data
22 Load non-cashable money
23 Load promotional money
24 Force cash out to host (dollars)
25 Force cash out from gaming machine
(dollars)
29 Load cashable money
62 Load non-cashable credits
63 Load promotional credits
64 Force cash out to host (credits)
65 For cash out from gaming machine
(credits)
67 Cash out win to host
69 Load cashable credits

Version 1.6.0 May 12, 2015

You might also like