Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0090/kismet.mac
There is 1 other file named kismet.mac in the archive. Click here to see a list.
TITLE KISMET PROGRAMED BY ROBERT WILSON
IF1<PRINTX K>
IF2<PRINTX M>
;;;ACCUMULATORS
AC=15
AC1=6
AC2=14
AC3=16
DA=1
DB=2
DC=3
DD=4
DE=5
INST=7
C=10
DIV=11
REM=12
RAD=13
F=0
P=17
;;;DEFINITIONS
DEFINE ROLL
<CALLI DA,23
CAME DA,RANTST
JRST .+6
AOS RANCNT
MOVE DC,RANCNT
ADDI DA,117
SOJG DC,.-1
JRST .+3
MOVEM DA,RANTST
SETZM RANCNT
IMUL DA,DA
TLZ DA,760000
XOR DA,[013702175435]
TLZ DA,760000
JUMPE DA,.-2
MOVSI DC,-7
MOVNI DD,6
MOVE DB,DA
ROT DB,13
XOR DB,DA
ROT DB,-6
LSHC DA,6
AOJN DD,.-5
MOVEM DA,RNDDAT(DC)
ADD DC,[000001000001]
JUMPL DC,.+1
MOVE F,RNDDAT
IDIVI F,10
CAIL DA,1
CAIL DA,7
JRST .-36>
DEFINE ROLLA
<ROLL
MOVEM DA,DICE>
DEFINE ROLLB
<ROLL
MOVEM DA,DICE+1>
DEFINE ROLLC
<ROLL
MOVEM DA,DICE+2>
DEFINE ROLLD
<ROLL
MOVEM DA,DICE+3>
DEFINE ROLLE
<ROLL
MOVEM DA,DICE+4>
DEFINE COLOR
<MOVE AC,DA
ADD AC,DB
MOVE AC1,DB
ADD AC1,DC
MOVE AC2,DC
ADD AC2,DD
MOVE AC3,DD
ADD AC3,DE
CAME DA,DB
CAIN AC,7
JRST .+2
JRST .+14
CAME DB,DC
CAIN AC1,7
JRST .+2
JRST .+10
CAME DC,DD
CAIN AC2,7
JRST .+2
JRST .+4
CAME DD,DE
CAIN AC3,7
JRST .+2>
DEFINE FHOUSE
<MOVEI AC,0
CAMN DA,DB
ADDI AC,1
CAMN DA,DC
ADDI AC,1
CAMN DA,DD
ADDI AC,1
CAMN DA,DE
ADDI AC,1
CAIL AC,2
JRST .+15
MOVEI AC,0
CAMN DB,DC
ADDI AC,1
CAMN DB,DD
ADDI AC,1
CAMN DB,DE
ADDI AC,1
CAIL AC,2
JRST .+27
CAMN DC,DD
CAME DC,DE
JRST .+40
CAME DA,DB
JRST .+6
CAME DA,DC
JRST .+13
CAMN DD,DE
JRST .+33
JRST .+31
CAMN DB,DC
JRST .+30
CAMN DB,DD
JRST .+26
CAMN DB,DE
JRST .+24
JRST .+22
CAMN DC,DD
JRST .+21
CAMN DC,DE
JRST .+17
JRST .+15
CAME DB,DC
JRST .+6
CAME DB,DD
JRST .+7
CAMN DA,DE
JRST .+10
JRST .+6
CAMN DA,DC
JRST .+5
JRST .+3
CAMN DA,DD
JRST .+2>
DEFINE SUM
<MOVE AC,DA
ADD AC,DB
ADD AC,DC
ADD AC,DD
ADD AC,DE>
IF1<PRINTX I>
IF2<PRINTX E>
;;; MAIN PROGRAM -- FINALLY
LOC 124
EXP KISMET
LOC 137
700504,,0
RELOC
TWOSEG
RELOC 400000
KISMET: CALLI
MOVE P,[IOWD 50,PDL]
PUSHJ P,ENDPAG
MAIN: TTCALL 3,[ASCIZ/
*KISMET* DO YOU NEED INSTRUCTIONS?/]
TTCALL 4,INST
ADDI RAD,2
CAIL RAD,67
PUSHJ P,ENDPAG
TTCALL 11,
CAIE INST,131
JRST ROLL1
JRST HELP
ROLL1: MOVEI C,1
SETZ REM,
ROLLA
ROLLB
ROLLC
ROLLD
ROLLE
MOVEI AC,4
MOVE AC1,DICE(AC)
MOVEM AC1,DA(AC)
SOJGE AC,.-2
ROLLB1: TTCALL 3,[ASCIZ/
HERE IS YOUR ROLL:
A B C D E
/]
SETZ RNDDAT
ADDI RAD,3
CAIL RAD,67
PUSHJ P,ENDPAG
MOVE AC,[-4]
MOVE AC1,AC
ADDI AC1,4
MOVE DIV,DICE(AC1)
PUSHJ P,DECOUT
TTCALL 3,[ASCIZ/ /]
AOJLE AC,.-5
TTCALL 3,[BYTE(7) 15,12,0]
CAIN C,3
JRST CAT
TTCALL 3,[ASCIZ/
TYPE IN THE LETTERS OF THE DICE YOU WANT RETHROWN:/]
MOVEI AC1,0
SETZ REM,
INRRL: TTCALL 4,AC
SKIPE AC1
JRST .+4
ADDI RAD,2
CAIL RAD,67
PUSHJ P,ENDPAG
CAIN AC,15
JRST INRRL
CAIE AC,12
CAIN AC,33
JRST PRROLL
CAIL AC,101
CAILE AC,105
JRST INRRL
SUBI AC,101
IMULI AC,41
MOVEI AC1,1
JRST REROLL(AC)
REROLL: ROLLA
JRST INRRL
ROLLB
JRST INRRL
ROLLC
JRST INRRL
ROLLD
JRST INRRL
ROLLE
JRST INRRL
PRROLL: MOVEI AC,4
MOVE INST,DICE(AC)
MOVEM INST,DA(AC)
SOJGE AC,.-2
CAIN AC1,0
JRST CAT
ADDI C,1
JRST ROLLB1
CAT: TTCALL 3,[ASCIZ/
WHICH CATEGORY?/]
PUSHJ P,DECIN
ADDI RAD,2
CAIL RAD,67
PUSHJ P,ENDPAG
SUBI AC,1
CAIL AC,0
CAILE AC,16
JRST CATERR
JRST CATG(AC)
CATERR: TTCALL 3,[ASCIZ/
? DOES NOT COMPUTE
/]
ADDI RAD,2
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT
CATG: JRST ACES
JRST DEUCES
JRST TREYS
JRST FOURS
JRST FIVES
JRST SIXES
JRST PAIR
JRST KIND3
JRST STRT
JRST FLUSH
JRST FH
JRST FHSC
JRST KIND4
JRST YARB
JRST KSMT
HELP: OPEN 1,[0
SIXBIT/SYS/
IBUF]
JRST NOHELP
LOOKUP 1,[SIXBIT/KISMET/
SIXBIT/HLP/
0
0]
JRST NOHELP
GETCHR: JSP AC1,LOAD
TTCALL 1,AC
JRST .-2
LOAD: SOSGE IBUF+2
JRST FILBUF
ILDB AC,IBUF+1
JRST @AC1
FILBUF: IN 1,
JRST LOAD
CLOSE 1,
RELEAS 1,
MOVEI RAD,1
JRST ROLL1
NOHELP: TTCALL 3,[ASCIZ/?
? HELP IS UNAVAILABLE.
/]
CALLI 1,12
ACES: HLRZ AC,TEST
MOVEI AC1,0
SKIPE AC
JRST ACEERR
CAIN DA,1
ADDI AC1,1
CAIN DB,1
ADDI AC1,1
CAIN DC,1
ADDI AC1,1
CAIN DD,1
ADDI AC1,1
CAIN DE,1
ADDI AC1,1
CAIN AC1,0
JRST NOACES
OUTACE: ADDI AC1,60
TTCALL 3,[ASCIZ/YOUR SCORE FOR #1-ACES IS /]
TTCALL 1,AC1
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
SUBI AC1,57
HRLM AC1,TEST
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
ACEERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOACES: TTCALL 3,[ASCIZ/YOU HAVE NO ACES. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC1,0
JRST OUTACE
DEUCES: HRRZ AC1,TEST
MOVEI AC,0
SKIPE AC1
JRST DUCERR
CAIN DA,2
ADDI AC,2
CAIN DB,2
ADDI AC,2
CAIN DC,2
ADDI AC,2
CAIN DD,2
ADDI AC,2
CAIN DE,2
ADDI AC,2
CAIN AC,0
JRST NODEUC
OUTDUC: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #2-DEUCES IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
DUCERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NODEUC: TTCALL 3,[ASCIZ/YOU HAVE NO DEUCES. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTDUC
TREYS: HLRZ AC1,TEST+1
MOVEI AC,0
SKIPE AC1
JRST TRYERR
CAIN DA,3
ADDI AC,3
CAIN DB,3
ADDI AC,3
CAIN DC,3
ADDI AC,3
CAIN DD,3
ADDI AC,3
CAIN DE,3
ADDI AC,3
CAIN AC,0
JRST NOTREY
OUTREY: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOU SCORE FOR #3-TREYS IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+1
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
TRYERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOTREY: TTCALL 3,[ASCIZ/YOU HAVE NO TREYS. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTREY
FOURS: HRRZ AC1,TEST+1
MOVEI AC,0
SKIPE AC1
JRST FORERR
CAIN DA,4
ADDI AC,4
CAIN DB,4
ADDI AC,4
CAIN DC,4
ADDI AC,4
CAIN DD,4
ADDI AC,4
CAIN DE,4
ADDI AC,4
CAIN AC,0
JRST NOFOUR
OUTFOR: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #4-FOURS IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST+1
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
FORERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOFOUR: TTCALL 3,[ASCIZ/YOU HAVE NO FOURS. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTFOR
FIVES: HLRZ AC1,TEST+2
MOVEI AC,0
SKIPE AC1
JRST FIVERR
CAIN DA,5
ADDI AC,5
CAIN DB,5
ADDI AC,5
CAIN DC,5
ADDI AC,5
CAIN DD,5
ADDI AC,5
CAIN DE,5
ADDI AC,5
CAIN AC,0
JRST NOFIVE
OUTFIV: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #5-FIVES IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+2
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
FIVERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOFIVE: TTCALL 3,[ASCIZ/YOU HAVE NO FIVES. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTFIV
SIXES: HRRZ AC1,TEST+2
MOVEI AC,0
SKIPE AC1
JRST SIXERR
CAIN DA,6
ADDI AC,6
CAIN DB,6
ADDI AC,6
CAIN DC,6
ADDI AC,6
CAIN DD,6
ADDI AC,6
CAIN DE,6
ADDI AC,6
CAIN AC,0
JRST NOSIX
OUTSIX: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #6-SIXES IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST+2
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
SIXERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOSIX: TTCALL 3,[ASCIZ/YOU HAVE NO SIXES. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTSIX
IF1<PRINTX S>
IF2<PRINTX T>
PAIR: HLRZ AC1,TEST+3
SKIPE AC1
JRST PARERR
MOVEI AC,0
CAME DA,DB
JRST .+3
ADDI AC,1
JRST .+35
CAME DA,DC
JRST .+3
ADDI AC,1
JRST .+16
CAME DA,DD
JRST .+3
ADDI AC,1
JRST .+3
CAME DA,DE
JRST .+2
ADDI AC,1
CAME DB,DC
JRST .+5
ADDI AC,1
CAIN AC,2
JRST CC1
JRST .+30
CAME DB,DD
JRST .+5
ADDI AC,1
CAIN AC,2
JRST CC1
JRST .+4
CAME DB,DE
JRST .+4
ADDI AC,1
CAIN AC,2
JRST CC1
CAME DC,DD
JRST .+5
ADDI AC,1
CAIN AC,2
JRST CC2
JRST NOPAIR
CAME DC,DE
JRST .+5
ADDI AC,1
CAIN AC,2
JRST CC2
JRST NOPAIR
CAME DD,DE
JRST NOPAIR
ADDI AC,1
CAIN AC,2
JRST CC3
JRST NOPAIR
CC1: CAMN DA,DB
JRST OUTPAR
MOVE AC,DA
ADD AC,DB
CAIN AC,7
JRST OUTPAR
JRST NOPAIR
CC2: CAME DA,DC
CAMN DB,DC
JRST OUTPAR
MOVE AC,DA
ADD AC,DC
CAIN AC,7
JRST OUTPAR
MOVE AC,DC
ADD AC,DB
CAIN AC,7
JRST OUTPAR
JRST NOPAIR
CC3: CAME DA,DD
CAMN DB,DD
JRST OUTPAR
MOVE AC,DA
ADD AC,DD
CAIN AC,7
JRST OUTPAR
MOVE AC,DD
ADD AC,DB
CAIE AC,7
JRST NOPAIR
OUTPAR: SUM
MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #7-2 PAIR (SAME COLOR) IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+3
MOVEI F,0
PUSHJ P,CATTST
CAIN F,1
JRST TOTAL
JRST ROLL1
PARERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOPAIR: TTCALL 3,[ASCIZ/YOU DO NOT HAVE '2 PAIR-SAME COLOR'. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTPAR+5
KIND3: HRRZ AC1,TEST+3
SKIPE AC1
JRST K3ERR
CAMN DA,DB
JRST ABEQL
CAMN DA,DC
JRST ACEQL
CAMN DB,DC
JRST BCEQL
CAMN DA,DD
CAME DA,DE
JRST .+2
JRST OUTK3
CAMN DB,DD
CAME DB,DE
JRST .+2
JRST OUTK3
CAMN DC,DD
CAME DC,DE
JRST NOK3
JRST OUTK3
ABEQL: CAMN DA,DC
JRST OUTK3
CAMN DA,DD
JRST OUTK3
CAMN DA,DE
JRST OUTK3
JRST NOK3
BCEQL: CAMN DB,DD
JRST OUTK3
CAME DB,DE
JRST NOK3
ACEQL: CAMN DA,DD
JRST OUTK3
CAME DA,DE
JRST NOK3
OUTK3: SUM
MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #8-3 OF A KIND IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST+3
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
K3ERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOK3: TTCALL 3,[ASCIZ/YOU DO NOT HAVE '3 OF A KIND' DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTK3+5
STRT: HLRZ AC1,TEST+4
SKIPE AC1
JRST STRERR
CAME DA,DB
CAMN DA,DC
JRST NOSTR
CAME DA,DD
CAMN DA,DE
JRST NOSTR
CAME DB,DC
CAMN DB,DD
JRST NOSTR
CAMN DB,DE
JRST NOSTR
CAME DC,DD
CAMN DC,DE
JRST NOSTR
CAMN DD,DC
JRST NOSTR
SUM
CAIE AC,17
CAIN AC,24
JRST .+2
JRST .+3
MOVEI AC,36
JRST OUTSTR
NOSTR: TTCALL 3,[ASCIZ/YOU DO NOT HAVE A STRAIGHT. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
OUTSTR: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #9-STRAIGHT IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+4
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
STRERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
FLUSH: HRRZ AC1,TEST+4
SKIPE AC1
JRST FLERR
COLOR
JRST NOFLSH
MOVEI AC,43
OUTFL: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #10-FLUSH IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST+4
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
FLERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOFLSH: TTCALL 3,[ASCIZ/YOU DO NOT HAVE A 'FLUSH'. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTFL
FH: HLRZ AC1,TEST+5
SKIPE AC1
JRST FHERR
FHOUSE
JRST NOFH
SUM
ADDI AC,17
OUTFH: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #11-FULL HOUSE IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+5
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
FHERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOFH: TTCALL 3,[ASCIZ/YOU DO NOT HAVE A 'FULL HOUSE'. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTFH
FHSC: HRRZ AC1,TEST+5
SKIPE AC1
JRST FHSERR
COLOR
JRST NOFHSC
FHOUSE
JRST NOFHSC
SUM
ADDI AC,24
OUTFHS: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #12-FULL HOUSE (SAME COLOR) IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST+5
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
FHSERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOFHSC: TTCALL 3,[ASCIZ/YOU DO NOT HAVE A 'FULL HOUSE-SAME COLOR'. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTFHS
KIND4: HLRZ AC1,TEST+6
SKIPE AC1
JRST K4ERR
CAME DA,DB
JRST AC4EQL
CAME DA,DC
JRST AD4EQL
CAME DA,DD
JRST .+2
JRST SETK4
CAME DA,DE
JRST NOK4
JRST SETK4
AD4EQL: CAME DA,DD
JRST NOK4
CAME DA,DE
JRST NOK4
JRST SETK4
AC4EQL: CAME DA,DC
JRST BC4EQL
CAME DA,DD
JRST NOK4
CAME DA,DE
JRST NOK4
JRST SETK4
BC4EQL: CAME DB,DC
JRST NOK4
CAME DB,DD
JRST NOK4
CAME DB,DE
JRST NOK4
SETK4: SUM
ADDI AC,31
OUTK4: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #13-4 OF A KIND IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+6
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
K4ERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOK4: TTCALL 3,[ASCIZ/YOU DO NOT HAVE '4 OF A KIND'. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTK4
YARB: HRRZ AC1,TEST+6
SKIPE AC1
JRST YARERR
SUM
OUTYAR: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #14-YARBOROUGH IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRRM AC,TEST+6
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
YARERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
KSMT: HLRZ AC1,TEST+7
SKIPE AC1
JRST KSMERR
CAMN DA,DB
CAME DA,DC
JRST NOKSMT
CAMN DA,DD
CAME DA,DE
JRST NOKSMT
SUM
ADDI AC,62
OUTKSM: MOVE DIV,AC
TTCALL 3,[ASCIZ/YOUR SCORE FOR #15-KISMET IS /]
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
ADDI AC,1
HRLM AC,TEST+7
MOVEI F,0
PUSHJ P,CATTST
CAIE F,1
JRST ROLL1
JRST TOTAL
KSMERR: TTCALL 3,[ASCIZ/YOU HAVE ALREADY USED THIS CATEGORY. CHOOSE AGAIN /]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
JRST CAT+1
NOKSMT: TTCALL 3,[ASCIZ/YOU DO NOT HAVE A 'KISMET'. DO YOU WANT A ZERO?/]
TTCALL 4,AC
TTCALL 11,
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
CAIE AC,131
JRST CAT
MOVEI AC,0
JRST OUTKSM
TOTAL: MOVEI AC2,2
MOVEI AC3,0
HRRZ AC1,TEST(AC2)
SUBI AC1,1
ADD AC3,AC1
HLRZ AC1,TEST(AC2)
SUBI AC1,1
ADD AC3,AC1
SOJGE AC2,TOTAL+2
MOVEM AC3,DICE
CAIG AC3,76
JRST NOBON
CAIG AC3,106
JRST BONUS1
CAIG AC3,115
JRST BONUS2
MOVEI AC,113
JRST AFTBON
BONUS2: MOVEI AC,67
JRST AFTBON
BONUS1: MOVEI AC,43
JRST AFTBON
NOBON: MOVEI AC,0
AFTBON: MOVEM AC,DICE+1
MOVEI AC,0
MOVEI AC2,3
MOVE AC3,AC2
ADDI AC3,3
HRRZ AC1,TEST(AC3)
SUBI AC1,1
ADD AC,AC1
HLRZ AC1,TEST(AC3)
SUBI AC1,1
ADD AC,AC1
SOJGE AC2,.-10
HLRZ AC1,TEST+7
SUBI AC1,1
ADD AC,AC1
MOVEM AC,DICE+3
MOVEI AC,0
ADD AC,DICE+1
ADD AC,DICE
MOVEM AC,DICE+2
MOVEI AC,0
ADD AC,DICE+2
ADD AC,DICE+3
MOVEM AC,DICE+4
TTCALL 3,[ASCIZ/
HERE IS YOUR FINAL SCORE:
CATEGORY SCORE
/]
ADDI RAD,3
CAIL RAD,67
PUSHJ P,ENDPAG
OUTYPE: MOVE INST,[-17]
MOVE DA,INST
ADDI DA,17
IDIVI DA,2
MOVE AC1,INST
ADDI AC1,17
MOVE AC3,NAME(AC1)
MOVE AC2,[POINT 6,AC3]
ILDB AC,AC2
ADDI AC,40
TTCALL 1,AC
TLNN AC2,770000
JRST .+2
JRST .-5
TTCALL 3,[ASCIZ/ /]
OUTVAL: CAIN DB,0
JRST LEFT
HRRZ DIV,TEST(DA)
SUBI DIV,1
PUSHJ P,DECOUT
JRST RETURN
LEFT: HLRZ DIV,TEST(DA)
SUBI DIV,1
PUSHJ P,DECOUT
RETURN: TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
AOJL INST,OUTYPE+1
TTCALL 3,[ASCIZ/
BASIC SECTION /]
MOVE DIV,DICE
PUSHJ P,DECOUT
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
TTCALL 3,[ASCIZ/
BONUS /]
MOVE DIV,DICE+1
PUSHJ P,DECOUT
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
TTCALL 3,[ASCIZ/
SUBTOTAL /]
MOVE DIV,DICE+2
PUSHJ P,DECOUT
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
TTCALL 3,[ASCIZ/
KISMET SECTION /]
MOVE DIV,DICE+3
PUSHJ P,DECOUT
ADDI RAD,1
CAIL RAD,67
PUSHJ P,ENDPAG
TTCALL 3,[ASCIZ/
GAME TOTAL /]
MOVE DIV,DICE+4
PUSHJ P,DECOUT
TTCALL 3,[BYTE(7) 15,12,0]
ADDI RAD,1
SUBI RAD,67
TTCALL 1,[12]
AOJL RAD,.-1
PUSHJ P,ENDPAG+7
JRST FINISH
ENDPAG: SUBI RAD,67
MOVMS RAD,
MOVEI F,4
SUBI F,RAD
TTCALL 1,[12]
SOJGE F,.-1
SETZ F,
TTCALL 3,[ASCIZ/
------------------------------------------------------------------------
/]
TTCALL 1,[13]
MOVEI RAD,0
POPJ P,
CATTST: MOVEI AC,6
HRRZ AC1,TEST(AC)
CAIN AC1,0
POPJ P,
HLRZ AC1,TEST(AC)
CAIN AC1,0
POPJ P,
SOJGE AC,.-6
HLRZ AC1,TEST+7
CAIN AC1,0
POPJ P,
MOVEI F,1
POPJ P,
DECIN: SETZ AC,
TTCALL 4,AC1
CAIN AC1,15
JRST .-2
CAIE AC1,12
CAIN AC1,33
POPJ P,
IMULI AC,12
SUBI AC1,60
ADD AC,AC1
JRST DECIN+1
DECOUT: IDIVI DIV,12
PUSH P,REM
SKIPE DIV
PUSHJ P,DECOUT
POP P,AC3
ADDI AC3,60
TTCALL 1,AC3
POPJ P,
RELOC 140
FINISH: CALLI 1,12
DICE: BLOCK 5
IBUF: BLOCK 3
PDL: BLOCK 50
TEST: BLOCK 10
NAME: SIXBIT/ACES/
SIXBIT/DEUCES/
SIXBIT/TREYS/
SIXBIT/FOURS/
SIXBIT/FIVES/
SIXBIT/SIXES/
SIXBIT/2 PAIR/
SIXBIT/3 KIND/
SIXBIT/STRAIT/
SIXBIT/FLUSH/
SIXBIT/FHOUSE/
SIXBIT/FHSC/
SIXBIT/4 KIND/
SIXBIT/YARB/
SIXBIT/KISMET/
RANTST: 0
RANCNT: 0
RNDDAT: BLOCK 7
END KISMET