Keno

Developer(s): Thomas Arbster
Date: 198x
Type: Program
Platform(s): TS 1000
Tags: Game

Keno is a lottery-style gambling simulation where the player selects 1 to 10 numbers from a field of 80, then the computer randomly draws 20 numbers and awards payoffs based on how many the player matched. The program uses individual scalar variables (A through J and AA through AT) rather than arrays to store both the player’s chosen numbers and the 20 dealer draws, which is a common workaround given the absence of array support in early BASIC dialects. A duplicate-entry check covers combinations for the first six player numbers using a series of pairwise comparisons at lines 211–225. The game includes an introductory background text on Keno’s history, a multi-page payoff schedule display, and a special “auto-replay” mode triggered by manually setting XX=100 from the command line. The purse starts at $20, each play costs $1, and maximum winnings reach $25,000 for matching all 10 numbers.


Program Analysis

Program Structure

The program is organized into clearly separated subroutine blocks with a main flow driven by GOSUB calls at lines 2–9. Execution begins with a title screen (GOSUB 1200), initialization (GOSUB 3000), the introduction/menu (GOSUB 5000), another title screen, then the main game loop entry at line 6000 (instructions) or line 10 (play). The overall structure is:

  • Lines 1–9: Main entry and game loop dispatch
  • Lines 10–299: Game play flow (number entry, same-numbers path, draw display, hit counting)
  • Lines 299–640: Hit evaluation, payoff calculation, and play-again prompt
  • Lines 900–1020: Hit counter subroutine
  • Lines 1050–1060: Variable reset subroutine
  • Lines 1100–1110: Exit/thank-you screen
  • Lines 1200–1280: Title banner subroutine
  • Lines 1300–1395: Number grid display subroutine
  • Lines 1500–1560: Duplicate-entry (cheating) detection and scroll
  • Lines 1850–1853: Purse status display
  • Lines 1900–2275: Dealer draw loop (20 random numbers, hit detection)
  • Lines 2300–2400: Player variable initialization subroutine
  • Lines 3000–3035: Game initialization (purse, play cost)
  • Lines 3200–3547: Key-press input for number-of-spots selection
  • Lines 5002–5029: Introduction text and history
  • Lines 5029–5065: Main menu (play / instructions / payoff schedule)
  • Lines 6000–6195: Instructions display
  • Lines 7000–7566: Payoff schedule display (three pages)
  • Line 9999: Diagnostic PRINT PEEK (vestigial debug line)

Variable Storage Strategy

Rather than using arrays, the program stores player picks in individual variables A through J (10 maximum), and the 20 dealer draws in variables AA through AT. Both sets are pre-initialized to negative sentinel values (−1 through −10 for player variables at lines 2300–2390, and −1 through −20 for dealer variables at lines 1900–1995) so that unset slots cannot accidentally match any valid number in the range 1–80. This is a deliberate and effective technique given that BASIC on this platform lacks a convenient way to declare and clear arrays without DIM.

Duplicate Entry Detection

Lines 211–225 perform pairwise comparisons to detect duplicate player entries. However, coverage is incomplete: only the first six variables (A–F) are checked against each other (15 pairs total). Variables G, H, I, and J (picks 7–10) are never tested for duplicates against any other variable. Any duplicate entered as pick 7, 8, 9, or 10 will silently pass through, making the anti-cheat logic only partially effective.

Dealer Draw Deduplication

The 20 dealer numbers are generated in a loop at lines 2000–2093. Each candidate value Y is checked against all 20 previously stored dealer variables (lines 2050–2069) before being accepted, ensuring no repeated dealer numbers. The rejection loop goes back to 2020 to regenerate. This is a standard rejection-sampling approach.

Hit Detection

Hit counting is performed at lines 2260–2269 for each of the 20 dealer draws. For each dealer number Y, the program checks it against all 10 player variables individually with IF Y=A THEN GOSUB 1000, etc. The hit counter subroutine at line 1000 increments X and prints an asterisk. Notably, variable X is not initialized before the draw loop—it is initialized in the GOSUB 1050 at line 34 (which sets X=0), or at line 900 for the “same numbers” path. The separate initialization at line 3002 also covers first-run startup.

Payoff Calculation

Lines 400–541 contain a comprehensive truth table of IF K=spots AND X=hits THEN LET W=amount statements covering all meaningful combinations of spots played (1–10) and hits achieved. Each tier also has a catch-all IF K=n AND X<m THEN LET W=0 to zero out wins below the minimum qualifying threshold. The payoff table matches real Keno odds schedules. One discrepancy exists: the payoff schedule display at line 7165 shows $2 for 7-spot/4-hit, but the calculation at lines 475–486 has no such entry—4-hit on a 7-spot pays $0 in the actual game logic.

Auto-Replay Mode

A hidden feature described in the instructions (lines 6150–6170) allows the player to break execution and type LET XX=100 followed by GOTO 20 to enable continuous auto-replay of the same numbers. When XX=100, the flow at line 35 bypasses number re-entry, the display at line 1851 prints a game counter (YY), and the end-of-game check at line 600 loops back to line 20 automatically rather than prompting the player. This is a manual command-line cheat/automation mode, not a built-in menu option.

Number Selection Input

The quantity of spots to play is captured not via INPUT but via a polling loop at lines 3200–3250 using INKEY$, mapping keys “1”–”9″ and “0” (representing 10) to the variable K. Each matching branch sets K and immediately RETURNs, making the subroutine self-contained. Individual INPUT N statements inside the FOR L=1 TO K loop (line 82) collect the actual player numbers.

Notable Anomalies and Bugs

  • Line 45 decrements P by 1 (cost per play), but line 241 also decrements P in the “same numbers” path—both paths deduct the stake correctly via separate code.
  • The NEXT L at line 229 exits the input loop, leaving L=K+1 after the loop. The “same numbers” re-display code at lines 248–286 uses IF L=2, IF L=3, etc. to determine how many numbers to print. Since L is K+1 after the loop, these comparisons function as IF K+1=n, which is equivalent to testing the number of spots played—an indirect but functional idiom.
  • Lines 5015–5026 contain unreachable code: line 5015 checks INKEY$="C" and jumps to 5019, but line 5019 does not exist, and line 5020 (which would print more text) is skipped. Line 5026 also loops back to 5008 rather than 5015, creating a confusing flow. In practice, pressing C at line 5015 causes a jump to the nonexistent line 5019 which falls through to 5020.
  • Line 9999 (PRINT PEEK 16396+256*PEEK 16397-16580) is a diagnostic leftover that computes and prints a memory address offset. It is unreachable during normal play but remains in the listing.
  • The duplicate check omits picks 7–10, so a player can enter duplicate numbers for those positions without triggering the anti-cheat scroll at line 1500.

Display Techniques

The title banner at lines 1201–1270 uses block graphic characters to render “KENO” in large pixel-art letters across multiple PRINT lines. The number grid subroutine (lines 1300–1390) displays all 80 available numbers in a formatted grid using repeated PRINT statements. PRINT AT is used throughout for positioned output of status information such as hits, payoffs, and purse balance without clearing the whole screen.

Content

Appears On

Related Products

Related Articles

Related Content

Image Gallery

Source Code

   1 REM           THIS PROGRAM WAS WRITTEN IN 1985 FOR FUN BY   TOM ABSTER
   2 GOSUB 1200
   3 GOSUB 3000
   4 GOSUB 5000
   7 GOSUB 1200
   9 GOTO 6000
  10 GOSUB 1200
  11 GOSUB 2300
  18 GOTO 44
  19 CLS
  33 PRINT "███[D][O]█[Y][O][U]█[W][A][N][T]█[T][O]█[P][L][A][Y]█[T][H][E]█[S][A][M][E]█[N][U][M][B][E][R][S][?]"
  34 GOSUB 1050
  35 IF XX=100 THEN GOTO 240
  38 IF INKEY$ ="Y" THEN GOTO 240
  40 IF INKEY$ ="N" THEN GOTO 43
  42 GOTO 38
  43 GOSUB 2300
  44 PRINT "ENTER HOW MANY NUMBERS YOU WANT TO PLAY ?.   *1 TO 10*    ["][0][=][1][0]["]"
  45 LET P=P-1
  50 GOSUB 1300
  51 REM 
  52 GOSUB 3200
  60 CLS
  62 GOSUB 1300
  65 IF K=1 THEN PRINT "     YOUR NUMBER IS ? "
  70 IF K<>1 THEN PRINT "    YOUR ";K;"  NUMBERS ARE ? "
  80 FOR L=1 TO K
  82 INPUT N
  85 IF N<1 THEN GOTO 82
  87 IF N>80 THEN GOTO 82
 119 PRINT N;" ";
 120 IF L=1 THEN LET A=N
 130 IF L=2 THEN LET B=N
 140 IF L=3 THEN LET C=N
 150 IF L=4 THEN LET D=N
 160 IF L=5 THEN LET E=N
 170 IF L=6 THEN LET F=N
 180 IF L=7 THEN LET G=N
 190 IF L=8 THEN LET H=N
 200 IF L=9 THEN LET I=N
 210 IF L=10 THEN LET J=N
 211 IF A=B THEN GOTO 1500
 212 IF A=C THEN GOTO 1500
 213 IF B=C THEN GOTO 1500
 214 IF A=D THEN GOTO 1500
 215 IF B=D THEN GOTO 1500
 216 IF C=D THEN GOTO 1500
 217 IF A=E THEN GOTO 1500
 218 IF B=E THEN GOTO 1500
 219 IF C=E THEN GOTO 1500
 220 IF D=E THEN GOTO 1500
 221 IF A=F THEN GOTO 1500
 222 IF B=F THEN GOTO 1500
 223 IF C=F THEN GOTO 1500
 224 IF D=F THEN GOTO 1500
 225 IF E=F THEN GOTO 1500
 229 NEXT L
 230 PRINT AT 0,7;"▒▒[G][O][O][D]█[L][U][C][K]▒▒"
 231 PRINT AT 13,0;"▒▒▒▒▒▒[T][H][E]█[K][E][N][O]█[N][U][M][B][E][R][S]█[A][R][E]▒▒▒▒▒"
 233 PRINT AT 15,1;
 235 GOTO 289
 240 CLS
 241 LET P=P-1
 242 LET YY=YY+1
 245 PRINT AT 10,0;A;" ";
 248 IF L=2 THEN GOTO 288
 250 IF L>=1 THEN PRINT B;" ";
 252 IF L=3 THEN GOTO 288
 254 IF L>=2 THEN PRINT C;" ";
 256 IF L=4 THEN GOTO 288
 258 IF L>=3 THEN PRINT D;" ";
 260 IF L=5 THEN GOTO 288
 262 IF L>=4 THEN PRINT E;" ";
 264 IF L=6 THEN GOTO 288
 266 IF L>=5 THEN PRINT F;" ";
 270 IF L=7 THEN GOTO 288
 272 IF L>=6 THEN PRINT G;" ";
 274 IF L=8 THEN GOTO 288
 276 IF L>=7 THEN PRINT H;" ";
 278 IF L=9 THEN GOTO 288
 280 IF L>=8 THEN PRINT I;" ";
 282 IF L=10 THEN GOTO 288
 285 IF L>=9 THEN PRINT J;" "
 286 IF L=10 THEN GOTO 288
 288 GOTO 1850
 289 GOTO 1900
 299 IF X=1 THEN PRINT AT 0,7;"YOU GOT ONE HIT"
 300 IF X<>1 THEN PRINT AT 0,7;"YOU GOT ";X ;" HITS"
 310 IF X=0 THEN LET W=0
 400 IF K=1 AND X=1 THEN LET W=3.00
 405 IF K=1 AND X<1 THEN LET W=0
 410 IF K=2 AND X=2 THEN LET W=12.00
 415 IF K=2 AND X<2 THEN LET W=0
 420 IF K=3 AND X=3 THEN LET W=42.00
 425 IF K=3 AND X=2 THEN LET W=1.00
 426 IF K=3 AND X<2 THEN LET W=0
 430 IF K=4 AND X=4 THEN LET W=120.00
 433 IF K=4 AND X=3 THEN LET W=3.00
 436 IF K=4 AND X=2 THEN LET W=1.00
 437 IF K=4 AND X<2 THEN LET W=0
 440 IF K=5 AND X=5 THEN LET W=800.00
 443 IF K=5 AND X=4 THEN LET W=9.00
 446 IF K=5 AND X=3 THEN LET W=1.00
 447 IF K=5 AND X<3 THEN LET W=0
 450 IF K=6 AND X=6 THEN LET W=1490.00
 455 IF K=6 AND X=5 THEN LET W=88.00
 460 IF K=6 AND X=4 THEN LET W=4.00
 465 IF K=6 AND X=3 THEN LET W=1.00
 470 IF K=6 AND X<=2 THEN LET W=0
 475 IF K=7 AND X=7 THEN LET W=7000.00
 480 IF K=7 AND X=6 THEN LET W=350.00
 485 IF K=7 AND X=5 THEN LET W=20.00
 486 IF K=7 AND X<5 THEN LET W=0
 490 IF K=8 AND X=8 THEN LET W=20000.00
 493 IF K=8 AND X=7 THEN LET W=1490.00
 496 IF K=8 AND X=6 THEN LET W=90.00
 500 IF K=8 AND X=5 THEN LET W=9.00
 503 IF K=8 AND X<5 THEN LET W=0
 506 IF K=9 AND X=9 THEN LET W=22000
 509 IF K=9 AND X=8 THEN LET W=4000.00
 512 IF K=9 AND X=7 THEN LET W=300.00
 515 IF K=9 AND X=6 THEN LET W=44.00
 518 IF K=9 AND X=5 THEN LET W=4.00
 521 IF K=9 AND X<5 THEN LET W=0
 524 IF K=10 AND X=10 THEN LET W=25000.00
 527 IF K=10 AND X=9 THEN LET W=4000.00
 530 IF K=10 AND X=8 THEN LET W=1000.00
 533 IF K=10 AND X=7 THEN LET W=130.00
 536 IF K=10 AND X=6 THEN LET W=20.00
 539 IF K=10 AND X=5 THEN LET W=2.00
 541 IF K=10 AND X<5 THEN LET W=0
 580 PRINT AT 18,7;"YOUR PAYOFF IS $";W
 585 LET P=P+W
 590 PRINT AT 19,7;"[Y][O][U][R]█[P][U][R][S][E]█[I][S]█[$]";P
 600 IF XX=100 THEN GOTO 20
 605 PRINT AT 20,0;"DO YOU WANT TO PLAY AGAIN [Y] OR [N]"
 620 IF INKEY$ ="Y" THEN GOTO 19
 630 IF INKEY$ ="N" THEN GOTO 1100
 640 GOTO 620
 900 LET X=0
 1000 LET X=X+1
 1010 IF X>0 THEN PRINT "*";
 1020 RETURN
 1050 LET X=0
 1060 RETURN
 1100 CLS
 1101 PRINT AT 7,7;"THANK YOU FOR PLAYING "
 1102 GOSUB 1200
 1105 PRINT "COME BACK SOON"
 1110 STOP
 1200 CLS
 1201 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒█▒▒███▒▒█▒▒▒█▒▒▒████▒▒▒▒▒▒"
 1210 PRINT "▒▒█▒▒█▒▒▒█▒▒▒▒██▒▒█▒▒▒█▒▒█▒▒▒▒▒▒"
 1220 PRINT "▒▒█▒█▒▒▒▒█▒▒▒▒█▒█▒█▒▒▒█▒▒█▒▒▒▒▒▒"
 1230 PRINT "▒▒██▒▒▒▒▒███▒▒█▒█▒█▒▒▒█▒▒█▒▒▒▒▒▒"
 1240 PRINT "▒▒█▒█▒▒▒▒█▒▒▒▒█▒▒██▒▒▒█▒▒█▒▒▒▒▒▒"
 1250 PRINT "▒▒█▒▒█▒▒▒█▒▒▒▒█▒▒▒█▒▒▒█▒▒█▒▒▒▒▒▒"
 1260 PRINT "▒▒█▒▒▒█▒▒███▒▒█▒▒▒█▒▒▒████▒▒▒▒▒▒"
 1270 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
 1280 RETURN
 1300 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
 1301 PRINT "██[1]██[2]██[3]██[4]██[5]██[6]██[7]██[8]██[9]█[1][0]█"
 1310 PRINT "█[1][1]█[1][2]█[1][3]█[1][4]█[1][5]█[1][6]█[1][7]█[1][8]█[1][9]█[2][0]█"
 1320 PRINT "█[2][1]█[2][2]█[2][3]█[2][4]█[2][5]█[2][6]█[2][7]█[2][8]█[2][9]█[3][0]█"
 1330 PRINT "█[3][1]█[3][2]█[3][3]█[3][4]█[3][5]█[3][6]█[3][7]█[3][8]█[3][9]█[4][0]█"
 1340 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
 1350 PRINT "█[4][1]█[4][2]█[4][3]█[4][4]█[4][5]█[4][6]█[4][7]█[4][8]█[4][9]█[5][0]█"
 1360 PRINT "█[5][1]█[5][2]█[5][3]█[5][4]█[5][5]█[5][6]█[5][7]█[5][8]█[5][9]█[6][0]█"
 1370 PRINT "█[6][1]█[6][2]█[6][3]█[6][4]█[6][5]█[6][6]█[6][7]█[6][8]█[6][9]█[7][0]█"
 1380 PRINT "█[7][1]█[7][2]█[7][3]█[7][4]█[7][5]█[7][6]█[7][7]█[7][8]█[7][9]█[8][0]█"
 1390 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
 1395 RETURN
 1500 CLS
 1510 PRINT 
 1520 SCROLL
 1525 FOR M=1 TO 10
 1530 PRINT "▒▒[I][T]▒▒[I][S]▒▒[N][O][T]▒▒[N][I][C][E]▒▒[T][O]▒▒[C][H][E][A][T]▒▒"
 1540 SCROLL
 1545 PRINT 
 1546 SCROLL
 1547 PRINT 
 1548 SCROLL
 1550 NEXT M
 1560 GOTO 5029
 1850 PRINT 
 1851 IF XX=100 THEN PRINT YY;
 1852 PRINT "▒▒▒[G][O][O][D]█[L][U][C][K]▒▒$ ";
 1853 PRINT P;"[=]▒[P][U][R][S][E]▒▒▒▒▒▒"
 1900 LET AA=-1
 1905 LET AK=-11
 1910 LET AB=-2
 1915 LET AL=-12
 1920 LET AC=-3
 1925 LET AM=-13
 1930 LET AD=-4
 1935 LET AN=-14
 1940 LET AE=-5
 1945 LET AO=-15
 1950 LET AF=-6
 1955 LET AP=-16
 1960 LET AG=-7
 1965 LET AQ=-17
 1970 LET AH=-8
 1975 LET AR=-18
 1980 LET AI=-9
 1985 LET AS=-19
 1990 LET AJ=-10
 1995 LET AT=-20
 2000 FOR Z=1 TO 20
 2020 LET Y=INT ((RND*80))+1
 2050 IF Y=AA THEN GOTO 2020
 2051 IF AB=Y THEN GOTO 2020
 2052 IF AC=Y THEN GOTO 2020
 2053 IF AD=Y THEN GOTO 2020
 2054 IF AE=Y THEN GOTO 2020
 2055 IF AF=Y THEN GOTO 2020
 2056 IF AG=Y THEN GOTO 2020
 2057 IF AH=Y THEN GOTO 2020
 2058 IF AI=Y THEN GOTO 2020
 2059 IF AJ=Y THEN GOTO 2020
 2060 IF AK=Y THEN GOTO 2020
 2061 IF AL=Y THEN GOTO 2020
 2062 IF AM=Y THEN GOTO 2020
 2063 IF AN=Y THEN GOTO 2020
 2064 IF AO=Y THEN GOTO 2020
 2065 IF AP=Y THEN GOTO 2020
 2066 IF AQ=Y THEN GOTO 2020
 2067 IF AR=Y THEN GOTO 2020
 2068 IF AS=Y THEN GOTO 2020
 2069 IF AT=Y THEN GOTO 2020
 2070 IF Z=1 THEN LET AA=Y
 2075 IF Z=2 THEN LET AB=Y
 2076 IF Z=3 THEN LET AC=Y
 2077 IF Z=4 THEN LET AD=Y
 2078 IF Z=5 THEN LET AE=Y
 2079 IF Z=6 THEN LET AF=Y
 2080 IF Z=7 THEN LET AG=Y
 2081 IF Z=8 THEN LET AH=Y
 2082 IF Z=9 THEN LET AI=Y
 2083 IF Z=10 THEN LET AJ=Y
 2084 IF Z=11 THEN LET AK=Y
 2085 IF Z=12 THEN LET AL=Y
 2086 IF Z=13 THEN LET AM=Y
 2087 IF Z=14 THEN LET AN=Y
 2088 IF Z=15 THEN LET AO=Y
 2089 IF Z=16 THEN LET AP=Y
 2090 IF Z=17 THEN LET AQ=Y
 2091 IF Z=18 THEN LET AR=Y
 2092 IF Z=19 THEN LET AS=Y
 2093 IF Z=20 THEN LET AT=Y
 2245 IF Y<10 THEN PRINT " ";
 2260 IF Y=A THEN GOSUB 1000
 2261 IF Y=C THEN GOSUB 1000
 2262 IF Y=E THEN GOSUB 1000
 2263 IF Y=G THEN GOSUB 1000
 2264 IF Y=I THEN GOSUB 1000
 2265 IF Y=B THEN GOSUB 1000
 2266 IF Y=D THEN GOSUB 1000
 2267 IF Y=F THEN GOSUB 1000
 2268 IF Y=H THEN GOSUB 1000
 2269 IF Y=J THEN GOSUB 1000
 2270 PRINT Y;"  ";
 2274 NEXT Z
 2275 GOTO 299
 2300 LET A=-1
 2310 LET B=-2
 2320 LET C=-3
 2330 LET D=-4
 2340 LET E=-5
 2350 LET F=-6
 2360 LET G=-7
 2370 LET H=-8
 2380 LET I=-9
 2390 LET J=-10
 2400 RETURN
 3000 LET XX=1
 3002 LET X=0
 3005 LET YY=0
 3010 PRINT "YOUR PURSE IS $20.00"
 3015 PRINT "A PLAY COSTS $1.00"
 3020 LET P=20
 3025 PAUSE 150
 3030 CLS
 3035 RETURN
 3200 IF INKEY$ ="1" THEN GOTO 3500
 3205 IF INKEY$ ="2" THEN GOTO 3505
 3210 IF INKEY$ ="3" THEN GOTO 3510
 3215 IF INKEY$ ="4" THEN GOTO 3515
 3220 IF INKEY$ ="5" THEN GOTO 3520
 3225 IF INKEY$ ="6" THEN GOTO 3525
 3230 IF INKEY$ ="7" THEN GOTO 3530
 3235 IF INKEY$ ="8" THEN GOTO 3535
 3240 IF INKEY$ ="9" THEN GOTO 3540
 3245 IF INKEY$ ="0" THEN GOTO 3545
 3250 GOTO 3200
 3500 LET K=1
 3502 RETURN
 3505 LET K=2
 3507 RETURN
 3510 LET K=3
 3512 RETURN
 3515 LET K=4
 3517 RETURN
 3520 LET K=5
 3522 RETURN
 3525 LET K=6
 3527 RETURN
 3530 LET K=7
 3532 RETURN
 3535 LET K=8
 3537 RETURN
 3540 LET K=9
 3542 RETURN
 3545 LET K=10
 3547 RETURN
 5002 PRINT "HERE IS A LITTLE BACKGROUND ON  KENO. IT IS AN OLD GAMBLING GAMEWHICH DESCENDED FROM THE CHINESELOTTERY.  IT WAS INTRODUCED TO  WESTERN AMERICA BY ORIENTAL RAIL-ROAD WORKERS IN THE NINETEENTH  CENTURY."
 5003 PRINT 
 5004 PRINT AT 12,1;"PRESS  (C) TO CONTINUE"
 5005 IF INKEY$ ="C" THEN GOTO 5007
 5006 GOTO 5005
 5007 CLS
 5008 PAUSE 60
 5009 PRINT AT 0,0;"KENO IS A LOW INVESTMENT, GENER-ALY $1.00 BET AND THE WINNINGS  ARE LOW, BUT THERE IS ALWAYS THEPOSSIBILITIES OF THE BIG WIN OF $25,000 FOR ONLY THE SMALL WAGEROF $1.00, SO LETS TAKE A LOOK ATTHE PAYOFF SCHEDULE."
 5010 PAUSE 60
 5012 PRINT AT 0,0;"KENO IS A LOW INVESTMENT, GENER-ALY $1.00 BET AND THE WINNINGS  ARE LOW, BUT THERE IS ALWAYS THEPOSSIBILITIES OF THE BIG WIN OF [$][2][5][,][0][0][0] FOR ONLY THE SMALL WAGEROF $1.00, SO LETS TAKE A LOOK ATTHE PAYOFF SCHEDULE."
 5014 PRINT AT 12,1;"PRESS  (C) TO CONTINUE"
 5015 IF INKEY$ ="C" THEN GOTO 5019
 5020 PRINT "THEN WE CAN MAKE UP OUR MINDS ASWHICH WILL BE THE BEST FOR US."
 5025 IF INKEY$ ="C" THEN GOTO 5029
 5026 GOTO 5008
 5029 CLS
 5030 PRINT "FOR INSTRUCTIONS PRESS    (I)"
 5033 PRINT 
 5034 PRINT 
 5035 PRINT "FOR PAYOFF SCHEDULE PRESS (S)"
 5038 PRINT 
 5039 PRINT 
 5040 PRINT " TO PLAY PRESS (P)"
 5050 IF INKEY$ ="P" THEN GOTO 10
 5055 IF INKEY$ ="I" THEN GOTO 6000
 5060 IF INKEY$ ="S" THEN GOTO 7000
 5065 GOTO 5050
 6000 CLS
 6001 PRINT "[I][N][S][T][R][U][C][T][I][O][N][S]"
 6005 PRINT "EACH GAME OF KENO IS PLAYED BY  SELECTING FROM 1 TO 10 NUMBERS  BETWEEN 1 AND 80, THEN THE COMP-UTER WILL SELECT 20 RANDOM NUMB-ERS FROM 1 TO 80 AND IF YOU CAN GUESS WHAT THE COMPUTER IS GOING TO SELECT THEN YOU WILL WIN."
 6007 PRINT 
 6010 PRINT "KENO IS A EASY GAME TO PLAY ALL YOU NEED TO DO IS DECIDE ON THE NUMBER OF NUMBERS YOU WILL PLAY."
 6015 PRINT 
 6020 PRINT "IF YOU PLAY 1 NUMBER THE PAYOFF IS SMALL $3,  AND IF YOU PLAY 10NUMBERS THE PAYOFF IS $25,000."
 6030 PRINT 
 6035 PRINT "PRESS  (C) TO CONTINUE"
 6040 IF INKEY$ ="C" THEN GOTO 6050
 6045 GOTO 6040
 6050 CLS
 6055 PRINT "WHEN YOU ARE TOLD TO ENTER THE  NUMBER YOU WANT TO PLAY ENTER A NUMBER BETWEEN 1 AND 10 ,       INSTEAD OF A 10 [U][S][E]█[A] 0."
 6057 PRINT 
 6060 PRINT "THEN YOU WILL BE GIVEN AN OPPOR-TUNITY TO ENTER THE NUMBERS THATYOU HAVE SELECTED DO NOT ENTER  THE SAME NUMBER TWICE."
 6065 PRINT 
 6070 PRINT "THE COMPUTER WILL NOW RUN AND   SELECT 20 RANDOM NUMBERS BETWEEN1 AND 80, IF ANY OF THESE ARE   THE SAME AS THE ONES YOU SELECT-ED IT IS CONSIDERED A HIT"
 6071 PRINT 
 6090 PRINT "PRESS    (C)   TO CONTINUE"
 6092 IF INKEY$ ="C" THEN GOTO 6099
 6093 GOTO 6092
 6099 CLS
 6100 PRINT "[S][P][E][C][I][A][L]███[I][N][S][T][R][U][C][T][I][O][N]"
 6105 PRINT 
 6110 PRINT "IF AFTER PLAYING KENO FOR A     TIME AND YOU WOULD LIKE TO"
 6115 PRINT "PLAY THE SAME NUMBERS OVER AND  OVER, ALL YOU HAVE TO DO IS"
 6120 PRINT "WHEN THE SCREEN LOOKS LIKE"
 6125 PRINT 
 6126 PRINT 
 6133 PRINT "███[D][O]█[Y][O][U]█[W][A][N][T]█[T][O]█[P][L][A][Y]█[T][H][E]█[S][A][M][E]█[N][U][M][B][E][R][S][?]"
 6140 PRINT 
 6145 PRINT 
 6150 PRINT "PRESS THE BREAK KEY AND ENTER"
 6155 PRINT 
 6160 PRINT "LET XX=100    THEN ENTER "
 6170 PRINT "GOTO 20       THEN ENTER "
 6175 PRINT 
 6176 PRINT "PRESS    (C)   TO CONTINUE"
 6180 IF INKEY$ ="C" THEN GOTO 6190
 6185 GOTO 6180
 6190 CLS
 6195 GOTO 5030
 6999 STOP
 7000 CLS
 7001 PRINT "      [P][A][Y][O][F][F]█[S][C][H][E][D][U][L][E]"
 7005 PRINT "[S][E][L][E][C][T]     [H][I][T]       [P][A][Y][O][F][F][$]"
 7010 PRINT 
 7020 PRINT "  1         1             3"
 7025 PRINT 
 7030 PRINT "  2         2            12"
 7035 PRINT 
 7036 PRINT 
 7040 PRINT "  3         3            42"
 7045 PRINT "  3         2             1"
 7050 PRINT 
 7051 PRINT 
 7055 PRINT "  4         4           120"
 7060 PRINT "  4         3             3"
 7065 PRINT "  4         2             1"
 7070 PRINT 
 7075 PRINT "  5         5           800"
 7080 PRINT "  5         4             9"
 7085 PRINT "  5         3             1"
 7090 PAUSE 100
 7091 PRINT 
 7092 PRINT 
 7095 PRINT "PRESS     (C)  TO CONTINUE"
 7100 IF INKEY$ ="C" THEN GOTO 7110
 7101 GOTO 7100
 7110 CLS
 7111 PRINT "[S][E][L][E][C][T]     [H][I][T]       [P][A][Y][O][F][F][$]"
 7115 PRINT 
 7120 PRINT "  6         6         1,490"
 7125 PRINT "  6         5           88"
 7130 PRINT "  6         4             4"
 7135 PRINT "  6         3             1"
 7140 PRINT 
 7150 PRINT "  7         7         7,000"
 7155 PRINT "  7         6           350"
 7160 PRINT "  7         5            20"
 7165 PRINT "  7         4             2"
 7170 PRINT 
 7175 PRINT 
 7180 PRINT "  8         8        20,000"
 7185 PRINT "  8         7         1,490"
 7190 PRINT "  8         6            90"
 7195 PRINT "  8         5             9"
 7200 PRINT 
 7202 PRINT "ENTER    (C)  TO CONTINUE"
 7205 IF INKEY$ ="C" THEN GOTO 7220
 7210 GOTO 7205
 7220 CLS
 7225 PRINT "[S][E][L][E][C][T]     [H][I][T]       [P][A][Y][O][F][F][$]"
 7227 PRINT 
 7230 PRINT "  9         9        22,000"
 7235 PRINT "  9         8         4,000"
 7240 PRINT "  9         7           300"
 7245 PRINT "  9         6            44"
 7450 PRINT "  9         5             4"
 7455 PRINT 
 7460 PRINT 
 7500 PRINT " 10        10        25,000"
 7510 PRINT " 10         9         4,000"
 7520 PRINT " 10         8         1,000"
 7530 PRINT " 10         7           130"
 7540 PRINT " 10         6            20"
 7550 PRINT " 10         5             2"
 7555 PRINT 
 7560 PRINT "PRESS    (C)  TO CONTINUE"
 7565 IF INKEY$ ="C" THEN GOTO 5029
 7566 GOTO 7565
 9999 PRINT PEEK 16396+256*PEEK 16397-16580

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

Scroll to Top