home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol026 / vegas.asm < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  25.2 KB  |  2,135 lines

  1. ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  2. ;
  3. ;          Las Vegas Super-Slot, (c) 1980 by David W. Friedman
  4. ;
  5. ;                              for the
  6. ;
  7. ;              Vector Graphics Flashwriter I Video Board
  8. ;
  9. ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  10. ;
  11. ; Copyright 1980 (c) by: David W. Friedman
  12. ;                        2-8-24 Okubo, Shinjuku-Ku
  13. ;                        Tokyo, Japan 160
  14. ;
  15. ; From an article:       Dr. Dobb's Journal
  16. ;                        Number 50, November/December 1980
  17. ;                        Volume 5, Issue 10
  18. ;                        Pages 10-22
  19. ;
  20. ; Entered by:         Kelly Smith, MP/M-net (tm)
  21. ;                        805-527-9321 (Modem, 300 Baud)
  22. ;
  23.  
  24. true    equ    -1    ; define true
  25. false    equ    not true; define false
  26. printer    equ    false    ; define printer (used)
  27.  
  28. base    equ    0    ; system base address
  29. wmstt    equ    base
  30. bdos    equ    base+5    ; bdos entry address
  31. fcb    equ    base+5ch; file control block
  32. dmad    equ    base+80h; dma address
  33. tpa    equ    base+100h    ; transient program area
  34.  
  35. setbdos    equ    13    ; drive number A, default dma address
  36. openf    equ    15    ; open file function
  37. closef    equ    16    ; close file function
  38. deletef    equ    19    ; delete file function
  39. readf    equ    20    ; read file function
  40. writef    equ    21    ; write file function
  41. creatf    equ    22    ; create file function
  42.  
  43. vid    equ    base+0d000h    ; base of video memory
  44. vidh    equ    vid/100h
  45. attb    equ    vid+400h    ; base of video attribute memory
  46. attbh    equ    attb/100h
  47. vidndh    equ    vidh+8
  48. lnlgth    equ    64        ; video screen length
  49. scrnht    equ    16        ; video screen height
  50. blkon    equ    8080h
  51. blkoff    equ    0
  52.  
  53. ctrl    equ    00011111b    ; assembler control key mask
  54. crmk    equ    ctrl and 'M'
  55. bkspmk    equ    ctrl and 'H'
  56. belmk    equ    ctrl and 'G'
  57.  
  58.     org    tpa    ; transient program start address
  59.  
  60. start:    lxi    sp,stkptr
  61.     call    initiz
  62. main:    call    ready
  63.     call    keytest
  64.     call    pcread
  65.     cpi    '$'
  66.     cz    collect
  67.     cpi    ctrl and 'E'
  68.     cz    exit
  69.     cpi    ctrl and 'T'
  70.     cz    test
  71.     cpi    ctrl and 'Z'
  72.     cz    zero
  73.     cpi    ctrl and 'P'
  74.     cz    plays
  75.     cpi    crmk
  76.     jnz    main
  77.     call    accept
  78.     jz    main
  79.     call    nready
  80.     call    operate
  81.     jnc    main
  82.     call    payjack
  83.     call    svjack
  84.     jmp    main
  85.  
  86. exit:    lxi    h,exitstg+1
  87.     call    match
  88.     mvi    a,crmk
  89.     rnz
  90.     call    erase
  91.     call    svjack
  92.     jmp    wmstt    ; return to CP/M
  93.  
  94. operate:call    charge
  95.     xra    a
  96.     sta    value
  97.     call    showin
  98.     call    crank
  99.     call    speed
  100.     mvi    a,12    ; minimum initial spin time 4
  101.     call    spin1
  102.     call    winchk
  103.     call    showin
  104. credout:lda    value
  105.     ora    a    ; carry = 0
  106.     rz
  107.     mov    e,a
  108.     lhld    credtv
  109. bump:    inx    h
  110.     shld    credtv
  111.     call    bksout
  112.     push    h
  113.     push    d
  114.     call    shocred
  115.     pop    d
  116.     pop    h
  117.     call    timerx
  118.     dcr    e
  119.     jnz    bump
  120.     call    spcout    ; at least 1 space if big payback
  121.     lda    value
  122.     sui    250
  123.     cmc
  124.     ret
  125.  
  126. test:    lxi    h,tstmch+1
  127.     call    match
  128.     mvi    a,crmk
  129.     rnz
  130.     lxi    d,tststg
  131.     call    ready1
  132.     lxi    h,100
  133.     call    charge1
  134. test1:    mvi    h,10
  135. test2:    call    timerx
  136.     dcr    h
  137.     jnz    test2
  138.     lxi    h,random
  139.     inr    m
  140.     call    pcin
  141.     ora    a
  142.     jz    test3
  143.     call    pcread
  144.     cpi    crmk
  145.     jnz    test2
  146.     lxi    h,0
  147.     jmp    charge1
  148. test3:    call    accept
  149.     rz
  150.     call    operate
  151.     jmp    test1
  152.  
  153. zero:    lxi    h,zerostg+1
  154.     call    match
  155.     mvi    a,crmk
  156.     rnz
  157.     lxi    h,0
  158.     shld    recipt
  159.     jmp    plays1
  160.  
  161. plays:    lxi    h,playstg+1
  162.     call    match
  163.     mvi    a,crmk
  164.     rnz
  165. plays1:    lxi    d,rcptstg
  166.     lxi    h,vid+7*lnlgth+49
  167.     call    shostg
  168.     call    nready
  169.     lhld    recipt
  170.     call    shocrd1
  171.     call    svjack
  172. plays2:    call    pcread
  173.     cpi    crmk
  174.     jnz    plays2
  175.     jmp    shocred
  176.  
  177. match:    call    pcread
  178.     cmp    m
  179.     inx    h
  180.     rnz
  181.     mov    a,m
  182.     ora    a
  183.     jnz    match
  184.     ret
  185.  
  186. initiz:    call    erase
  187.     lxi    h,vid+0*lnlgth+0
  188.     lxi    d,payoff
  189.     call    shostg
  190.     lxi    h,vid+14*lnlgth+0
  191.     call    shostg
  192.     lxi    b,blkon+100h*4+12    ; 4 X 12 area
  193.     lxi    h,attb+6*lnlgth+0
  194.     call    boxy
  195.     lxi    h,attb+6*lnlgth+48
  196.     call    boxy
  197.     lxi    b,blkon+100h*4+36    ; 4 X 36 area
  198.     lxi    h,attb+10*lnlgth+12
  199.     mvi    a,8    ; half intensity shading
  200.     call    graph
  201.     lxi    h,attb+2*lnlgth+12
  202.     push    h
  203.     call    graph
  204.     pop    h
  205.     push    h
  206.     lxi    b,blkon+100h*12+10    ; 12 X 10 area
  207.     call    graphon
  208.     pop    h
  209.     call    boxy
  210.     lxi    d,(25-12) or (38-25)    ; corner delta
  211.     dad    d
  212.     push    h
  213.     call    graphon
  214.     pop    h
  215.     call    boxy
  216.     dad    d
  217.     push    h
  218.     call    graphon
  219.     pop    h
  220.     call    boxy
  221.     lxi    h,attb+8*lnlgth+12
  222.     lxi    b,0302h    ; B = 3 columns, C = horizontal line graphics
  223. ticks:    push    h
  224.     mov    a,c
  225.     ora    m
  226.     mov    m,a
  227.     mov    a,l
  228.     adi    9    ; 10-1 = box width-1
  229.     mov    l,a
  230.     mov    a,c
  231.     ora    m
  232.     mov    m,a
  233.     pop    h
  234.     dad    d
  235.     dcr    b
  236.     jnz    ticks
  237.     lxi    h,bell    ; initial reel display
  238.     shld    reel3p
  239.     lxi    h,bell1x
  240.     shld    reel2p
  241.     lxi    h,bellx
  242.     shld    reel1p
  243.     lxi    h,1010h    ; last 16 counts = 4 lines
  244.     shld    reel1s
  245.     shld    reel2s    ; includes "reels3"
  246.     call    spin    ; applies pattern
  247.     call    crank    ; applies handle
  248.     lxi    h,0
  249.     shld    value
  250.     shld    credtv
  251.     shld    recipt
  252.     call    showin
  253.     call    shocred
  254.     call    ldjack
  255.     jp    shojack
  256.     lxi    h,100
  257. init2:    shld    jackpot
  258. shojack:call    belout
  259.     call    timerx
  260.     lxi    d,jackstg
  261.     lxi    h,vid+3*lnlgth+0
  262.     call    shostg
  263.     lxi    d,vid+4*lnlgth+3
  264.     lhld    jackpot
  265.     mvi    b,1
  266.     jmp    sho5dig
  267.  
  268. keytest:call    pcin    ; returns A = 1, if key waiting
  269.     ora    a
  270.     inx    b
  271.     jnz    keytest
  272.     mov    a,c
  273.     sta    random
  274.     ret
  275.  
  276. collect:call    accept
  277.     mvi    a,crmk
  278.     rnz        ; credits remaining
  279.     lxi    d,20
  280.     lhld    recipt
  281.     dad    d
  282.     shld    recipt
  283.     lhld    credtv
  284.     dad    d
  285.     push    d
  286.     call    charge1
  287.     pop    d
  288.     mov    a,e
  289.     jmp    pljack
  290.  
  291. payjack:lhld    jackpot
  292.     lxi    d,-10
  293.     dad    d
  294.     jnc    paid
  295.     shld    jackpot
  296.     lhld    credtv
  297.     lxi    d,10
  298.     dad    d
  299.     call    charge1
  300.     call    shojack
  301.     lxi    d,jackstg
  302.     lxi    h,vid+8*lnlgth+0
  303.     push    h
  304.     call    shostg
  305.     call    spcout
  306.     call    bksout
  307.     call    bksout
  308.     call    timerx
  309.     pop    h
  310.     call    shostg    ; "njackstg" follows "jackstg"
  311.     jmp    payjack
  312.  
  313. paid:    lxi    h,0
  314.     jmp    init2
  315.  
  316. accept:    lhld    credtv
  317.     mov    a,h
  318.     ora    l
  319.     ret
  320.  
  321. crank:    lxi    h,attb+2*lnlgth+55
  322.     push    h
  323.     call    handof
  324.     lxi    h,attb+9*lnlgth+55
  325.     push    h
  326.     call    handon
  327.     pop    h
  328.     call    timerx
  329.     call    crout
  330.     call    timerx
  331.     call    handof
  332.     pop    h
  333. handon:    lxi    b,blkon+100h*2+8    ; 2 X 8 box
  334.     call    boxy
  335.     lxi    d,2*lnlgth+6        ; lever relative position
  336.     dad    d
  337.     lxi    b,blkon+100h*15+2    ; full X 2 box
  338.     jmp    boxy
  339.  
  340. handof:    lxi    b,blkoff+100h*2+8
  341.     call    boxy
  342.     lxi    d,2*lnlgth+6
  343.     dad    d
  344.     lxi    b,blkoff+100h*15+2
  345. boxy:    push    d
  346.     push    h
  347.     push    h
  348.     push    b
  349.     call    gphrhz    ; horizontal lines
  350.     pop    b
  351.     push    b
  352.     ora    a
  353.     cz    boxy2    ; if not past right
  354.     pop    b
  355.     pop    h
  356.     push    b
  357.     call    boxy2    ; left vertical lines
  358.     pop    b
  359.     push    b
  360.     call    gphrhz    ; bottom horizontal lines
  361.     pop    b
  362.     pop    h
  363.     pop    d
  364.     ret
  365.  
  366. boxy2:    mvi    a,80h
  367.     ana    c    ; pickup blkon/off condition
  368.     ori    1    ; only 1 wide needed
  369.     mov    c,a
  370.     mvi    a,0100b    ; verticle line graphics
  371.     jmp    graph
  372.  
  373. graphon:mvi    a,0001b    ; graphics bit
  374. graph:    push    d
  375.     push    b
  376.     push    psw
  377.     lxi    d,lnlgth
  378. graph1:    mov    a,b
  379.     ani    scrnht-1
  380.     jz    graphed    ; if no more
  381.     pop    psw
  382.     push    psw
  383.     push    b
  384.     push    h
  385.     call    grapher
  386.     pop    h
  387.     pop    b
  388.     dad    d
  389.     mov    a,h
  390.     cpi    vidndh
  391.     jnc    graphed    ; if past bottom
  392.     dcr    b
  393.     jmp    graph1
  394. graphed:pop    psw
  395.     pop    b
  396.     pop    d
  397.     ret
  398.  
  399. gphrhz:    mvi    a,0010b    ; horizontal line graphics
  400. grapher:mov    b,a
  401. graphr1:mov    a,c
  402.     ani    lnlgth-1
  403.     rz        ; if no more
  404.     mov    a,b
  405.     cma        ; create bit mask
  406.     ana    m
  407.     mov    m,a
  408.     mov    a,c
  409.     ora    a
  410.     jp    grphof    ; if blkoff, then done
  411.     mov    a,b
  412.     ora    m
  413.     mov    m,a    ; set bit to 1
  414. grphof:    inx    h    ; next byte
  415.     mov    a,l
  416.     ani    lnlgth-1
  417.     mov    a,h    ; A reg. non-zero on return, if past right edge
  418.     rz
  419.     dcr    c
  420.     jmp    graphr1
  421.  
  422. speed:    lxi    d,reel1s
  423.     lhld    random    ; in L reg.
  424.     mvi    a,00110000b
  425.     ana    l
  426.     ori    80h
  427.     stax    d    ; range 80, 90, a0, b0
  428.     inx    d    ; reel2s
  429.     mvi    a,00011000b
  430.     ana    l
  431.     ori    0c0h
  432.     stax    d    ; range c0, c8, d0,d8
  433.     inx    d    ; reel3s
  434.     mvi    a,00001100b
  435.     ana    l
  436.     ori    10h
  437.     mov    h,a    ; random+1 range 10, 14, 18, 1c
  438.     shld    random    ; specified in H reg. (random+1)
  439.     ori    0f0h
  440.     stax    d
  441.     ret
  442.  
  443. spin:    mvi    a,4    ; 4 line/pattern
  444. spin1:    sta    spincnt
  445.     lxi    b,reel1s
  446.     lhld    reel1p
  447.     lxi    d,vid+2*lnlgth+12
  448.     call    spiner
  449.     shld    reel1p
  450.     lxi    b,reel2s
  451.     lhld    reel2p
  452.     lxi    d,vid+2*lnlgth+25
  453.     call    spiner
  454.     shld    reel2p
  455.     lxi    b,reel3s
  456.     lhld    reel3p
  457.     lxi    d,vid+2*lnlgth+38
  458.     call    spiner
  459.     shld    reel3p
  460.     lda    spincnt
  461.     dcr    a
  462.     jnz    spin1
  463.     call    pcin
  464.     ora    a
  465.     jnz    stopkey
  466. stopcmp:lda    reel3s
  467.     lhld    reel1s    ; reel2s in H reg.
  468.     ora    h
  469.     ora    l
  470.     jnz    spin
  471.     ret
  472.  
  473. stopkey:call    pcread
  474.     lhld    random+1    ; specification in L reg.
  475.     lxi    d,reel1s
  476.     sui    '1'
  477.     mvi    h,0
  478.     jz    stopky1
  479.     dcr    a
  480.     inx    d    ; reel2s
  481.     mvi    h,4
  482.     jz    stopky1    ; if '2'
  483.     dcr    a
  484.     jnz    spin    ; if not '3'
  485.     inx    d    ; reel3s
  486.     mvi    h,8
  487. stopky1:ldax    d
  488.     cpi    11h
  489.     jc    spin    ; if now stopping
  490.     mov    a,h
  491.     ora    l
  492.     stax    d    ; ranges from 10h to 1ch
  493.     mvi    a,8    ; minimum time between stop keys
  494.     jmp    spin1
  495.  
  496. spiner:    ldax    b
  497. spiner1:ora    a
  498.     jz    timer1    ; keep speed constant
  499.     dcr    a
  500.     stax    b
  501.     cpi    11h
  502.     jnc    resetp    ; if not slowing
  503.     ani    3
  504.     cpi    1
  505.     jnc    timer1    ; fill 3/4ths of time
  506.     call    spcout    ; sound effects
  507. resetp:    mov    a,m
  508.     cpi    40h    ; cherry marker
  509.     jc    resetp1
  510.     lxi    h,cherryy
  511. resetp1:push    d
  512.     lxi    d,-10    ; 10 bytes/line
  513.     dad    d
  514.     pop    d
  515.     push    h
  516.     xchg
  517.     call    mvptn
  518.     pop    h    ; restore new pattern position for save
  519.     ret
  520.  
  521. mvptn:    lxi    b,100h*10+12    ; 10 wide X 12 high
  522. mvptn2:    push    b
  523.     push    h
  524. mvptn1:    ldax    d
  525.     mov    m,a
  526.     inx    h
  527.     inx    d
  528.     dcr    b
  529.     jnz    mvptn1
  530.     pop    h
  531.     pop    b
  532.     push    d
  533.     lxi    d,lnlgth
  534.     dad    d
  535.     pop    d    ; next line, same horizontal position
  536.     dcr    c
  537.     jnz    mvptn2
  538.     ret
  539.  
  540. timerx:    mvi    a,180    ; about right for me...
  541.     jmp    timer
  542.  
  543. timer1    mvi    a,8    ; run a bit faster (9 is exact)
  544. timer:    push    h
  545.     mov    h,a
  546. timea:    dcr    a
  547.     jnz    timea
  548.     dcr    h
  549.     jnz    timea
  550.     pop    h
  551.     ret
  552.  
  553. winchk:    xra    a
  554.     sta    value
  555.     lxi    h,vid+6*lnlgth+13
  556.     call    bytina
  557.     mov    e,a
  558.     lxi    h,vid+6*lnlgth+26
  559.     call    bytina
  560.     mov    d,a
  561.     lxi    h,vid+6*lnlgth+39
  562.     call    bytina
  563.     cpi    7    ; bar code
  564.     jnz    notbar
  565.     cmp    d
  566.     jz    winer3    ; any+2 bars, is o.k.
  567.     mov    a,e    ; reel 3's code = 1's
  568. notbar:    cmp    e    ; r3 verses r1
  569.     jnz    lowchk
  570.     cmp    d    ; r3 verses r2
  571.     jnz    lowchk
  572. winer3:    mvi    d,0
  573.     lxi    h,paytbl
  574.     dad    d
  575.     mov    a,m    ; table+code = win value
  576.     jmp    strval
  577. lowchk:    mov    a,e
  578.     cpi    1    ; cherry's code
  579.     rnz
  580.     cmp    d    ; r1 verses r2
  581.     mvi    a,2    ; just for first cherry
  582.     jnz    strval
  583.     mvi    a,5    ; for both cherries
  584. strval:    sta    value
  585.     cpi    250
  586.     rz
  587.     ora    a
  588.     jz    addjak    ; if lemon, won
  589.     cpi    14
  590.     rc
  591. pljack:    rrc
  592.     rrc
  593.     rrc
  594.     ani    0fh
  595.     rz
  596. addjak:    mov    e,a
  597.     mvi    d,0
  598.     inx    d
  599.     lhld    jackpot
  600.     dad    d    ; adds from 1 to 13 on jackpot
  601.     jmp    init2
  602.  
  603. bytina:    mvi    a,01000000b    ; non-display code bit
  604.     mov    c,a
  605.     ana    m
  606.     rlc
  607.     mov    b,a
  608.     mov    a,c
  609.     inx    h
  610.     ana    m
  611.     ora    b
  612.     rlc
  613.     mov    b,a
  614.     mov    a,c
  615.     inx    h
  616.     ana    m
  617.     ora    b
  618.     rlc
  619.     rlc        ; adjust to lowest bits
  620.     ret
  621.  
  622. charge:    lhld    credtv
  623.     dcx    h
  624. charge1:shld    credtv
  625. shocred:lxi    d,kredit
  626.     lxi    h,vid+7*lnlgth+49
  627.     call    shostg
  628.     lhld    credtv
  629. shocrd1:lxi    d,vid+8*lnlgth+52
  630.     mvi    b,1    ; all zeros show
  631.     jmp    sho5dig
  632.  
  633. showin:    lxi    d,winstg
  634.     lxi    h,vid+7*lnlgth+2
  635.     call    shostg
  636.     lxi    d,vid+8*lnlgth+2
  637.     lhld    value
  638.     mvi    b,0    ; leading zeros suppressed
  639. sho5dig:push    d
  640.     lxi    d,-10000    ; X = 10000 divisor
  641.     call    divx
  642.     pop    d
  643.     stax    d
  644.     inx    d
  645.     push    d
  646.     lxi    d,-1000
  647.     call    divx
  648.     pop    d
  649.     stax    d
  650.     inx    d
  651.     push    d
  652.     lxi    d,-100
  653.     call    divx
  654.     pop    d
  655.     stax    d
  656.     inx    d
  657.     push    d
  658.     lxi    d,-10
  659.     call    divx
  660.     pop    d
  661.     stax    d
  662.     inx    d
  663.     push    d
  664.     lxi    d,-1
  665.     call    divx
  666.     pop    d
  667.     cpi    ' '
  668.     jnz    lastd
  669.     mvi    a,'0'    ; show at least 1 disgit, if zero
  670. lastd:    stax    d
  671.     ret
  672.  
  673. divx:    mvi    c,'0'-1
  674. divx1:    inr    c
  675.     dad    d
  676.     jc    divx1
  677.     mov    a,e
  678.     cma
  679.     mov    e,a
  680.     mov    a,d
  681.     cma
  682.     mov    d,a
  683.     inx    d    ; two's complement in D reg.
  684.     dad    d
  685.     mov    a,c
  686.     ora    b
  687.     mov    b,a    ; set suppress flag
  688.     cpi    '0'
  689.     jnz    nlzero
  690.     mvi    c,' '    ; if only zeros to here
  691. nlzero:    mov    a,c
  692.     ret
  693.  
  694. ldjack:    mvi    a,5
  695. ldjak1:    sta    trials
  696.     call    setdsk
  697.     call    setfcb
  698.     call    open
  699.     rm
  700.     call    read
  701.     jnz    tryagn
  702.     lhld    dmad
  703.     shld    jackpot
  704.     lhld    dmad+2
  705.     shld    recipt
  706.     jmp    close
  707. tryagn:    lda    trials
  708.     dcr    a
  709.     jnz    ldjak1
  710.     dcr    a
  711.     ret
  712.  
  713. svjack:    mvi    a,5
  714. svjack1:sta    trials
  715.     call    setdsk
  716.     call    setfcb
  717.     call    delete
  718.     call    create
  719.     cpi    55
  720.     rnc
  721.     lhld    jackpot
  722.     shld    dmad
  723.     lhld    recipt
  724.     shld    dmad+2
  725.     call    write
  726.     jnz    retry
  727.     call    close
  728.     rp
  729. retry:    lda    trials
  730.     dcr    a
  731.     jnz    svjack1
  732.     ret
  733.  
  734. mvzfcb:    lxi    b,21h
  735.     lxi    h,fcb
  736. mvcybm:    push    h
  737. mvcybm1:mov    m,b
  738.     inx    h
  739.     dcr    c
  740.     jnz    mvcybm1
  741.     pop    h
  742.     ret
  743.  
  744. setfcb:    call    mvzfcb
  745.     lxi    d,jackfl
  746.     inx    h
  747.     jmp    shostg
  748.  
  749. nready:    lxi    d,nredy
  750.     jmp    ready1
  751.  
  752. ready:    lxi    d,redy
  753. ready1:    lxi    h,vid+11*lnlgth+2
  754. shostg:    ldax    d
  755.     inx    d    ; now to skip stop on return
  756.     ora    a
  757.     rz
  758.     mov    m,a
  759.     inx    h
  760.     jmp    shostg
  761.  
  762. erase:    mvi    a,vidndh
  763.     lxi    h,vid
  764. erase1:    mvi    m,' '
  765.     inx    h
  766.     cmp    h
  767.     jnz    erase1
  768.     ret
  769.  
  770. pcin:    push    b
  771.     mvi    b,6    ; low address byte of bios "console status"
  772.     jmp    caler
  773.  
  774. pcread:    push    b
  775.     mvi    b,9    ; low address byte of bios "console input"
  776.     jmp    caler
  777.  
  778. belout:    mvi    a,belmk
  779.     jmp    prchr
  780.  
  781. spcout:    mvi    a,' '
  782.     jmp    prchr
  783.  
  784. bksout:    mvi    a,bkspmk
  785.     jmp    prchr
  786.  
  787. crout:    mvi    a,crmk
  788. prchr:    push    b
  789.  
  790.     if printer
  791.     mvi    b,0fh    ; low address byte of bios "list"
  792.     endif
  793.  
  794.     if not printer
  795.     mvi    b,0ch    ; low address byte of bios "conout"
  796.     endif
  797.  
  798. caler:    push    d
  799.     push    h
  800.     mov    c,a    ; routines expect value in C reg.
  801.     lhld    wmstt+1    ; H&L regs. = bios warmboot = xx03h
  802.     mov    l,b
  803.     lxi    d,rtnbak
  804.     push    d
  805.     pchl
  806.  
  807. ;
  808. ;  BIOS routine executes here
  809. ;
  810. rtnbak:    pop    h
  811.     pop    d
  812.     pop    b
  813.     ret
  814.  
  815. setdsk:    mvi    a,setbdos
  816.     jmp    abdos
  817.  
  818. delete:    mvi    a,deletef
  819.     jmp    abdos
  820.  
  821. create:    mvi    a,creatf
  822.     jmp    abdos
  823.  
  824. write:    mvi    a,writef
  825.     jmp    abdos
  826.  
  827. close:    mvi    a,closef
  828.     jmp    abdos
  829.  
  830. open:    mvi    a,openf
  831.     jmp    abdos
  832.  
  833. read:    mvi    a,readf
  834. abdos:    mov    c,a
  835.     lxi    d,fcb
  836.     call    bdos
  837.     push    a
  838.     lda    attb-lnlgth
  839.     cpi    'B'
  840.     jnz    abdos1
  841.     call    erase
  842.     lxi    d,dskerr
  843.     lxi    h,vid+6*lnlgth+9
  844.     call    shostg
  845.     jmp    wmstt    ; bail out to CP/M
  846. abdos1:    pop    a
  847.     ora    a
  848.     ret
  849.  
  850. dskerr:    db    'Problem with drive A: disk, returning to CP/M',0
  851.  
  852. jackstg:db    '$' or 80h,' ' or 80h,'J' or 80h
  853.     db    'A' or 80h,'C' or 80h,'K' or 80h
  854.     db    'P' or 80h,'O' or 80h,'T' or 80h
  855.     db    ' ' or 80h,'$' or 80H,' ' or 80h,0
  856.  
  857. njakstg:db    '     '
  858. nredy:    db    '       ',0
  859.  
  860. redy:    db    ' ' or 80h,'R' or 80h,'E' or 80h
  861.     db    'A' or 80h,'D' or 80h,'Y' or 80h
  862.     db    ' ' or 80h,0
  863.  
  864. jackfl:    db    'jackpotslot',0
  865.  
  866. tststg:    db    'Testing',0
  867.  
  868. kredit:    db    '$ Credit $',0
  869.  
  870. rcptstg:db    ' Receipts ',0
  871.  
  872. winstg:    db    '$ Wins $',0
  873.  
  874. exitstg:db    ctrl and 'E',ctrl and 'X',ctrl and 'I',ctrl and 'T',0
  875.  
  876. zerostg:db    ctrl and 'Z',ctrl and 'E',ctrl and 'R',ctrl and 'O',0
  877.  
  878. tstmch:    db    ctrl and 'T',ctrl and 'E',ctrl and 'S',ctrl and 'T',0
  879.  
  880. playstg:db    ctrl and 'P',ctrl and 'L',ctrl and 'A',ctrl and 'Y',0
  881.  
  882. ;
  883. ;  paytable, where:
  884. ;
  885. ; lem=0, cht=10, org=10, plm=14, bel=20, $$$=50, mel=100, bar=250
  886. ;
  887. paytbl:    db    0,10,10,14,20,50,100,250
  888.  
  889. payoff:    db    ' All bars= 250+jackpot '
  890.     db    '  Las Vegas     '
  891.     db    'Melon+ M/Bar+M/Bar=100    '
  892.     db    '$$$$+$$/Bar+$$/Bar=50 '
  893.     db    '  Super-Slot    '
  894.     db    'Bell+BL/Bar+BL/Bar=20',0
  895.     db    ' Plum+PL/Bar+PL/Bar=14 '
  896.     db    '   (c) 1980     '
  897.     db    'Orange+0/Bar+0/Bar=10     '
  898.     db    'Cherry+C/Bar+C/Bar=10 '
  899.     db    ' Dave Friedman  '
  900.     db    'C+C+Any=5   C+Any=2',0
  901.  
  902. cherry:
  903.  
  904.     db    40h
  905.     db    00h
  906.     db    00h
  907.     db    40h
  908.     db    00h
  909.     db    00h
  910.     db    00h
  911.     db    00h
  912.     db    03h
  913.     db    10h
  914.     db    00h
  915.     db    00h
  916.     db    00h
  917.     db    1fh
  918.     db    3fh
  919.     db    3fh
  920.     db    3bh
  921.     db    01h
  922.     db    1eh
  923.     db    00h
  924.     db    00h
  925.     db    09h
  926.     db    1bh
  927.     db    1fh
  928.     db    2dh
  929.     db    37h
  930.     db    1fh
  931.     db    3fh
  932.     db    19h
  933.     db    08h
  934.     db    00h
  935.     db    26h
  936.     db    36h
  937.     db    36h
  938.     db    20h
  939.     db    04h
  940.     db    36h
  941.     db    36h
  942.     db    34h
  943.     db    20h
  944.     db    00h
  945.     db    40h
  946.     db    49h
  947.     db    12h
  948.     db    1bh
  949.     db    19h
  950.     db    09h
  951.     db    08h
  952.     db    00h
  953.     db    00h
  954.     db    01h
  955.     db    34h
  956.     db    0ch
  957.     db    10h
  958.     db    04h
  959.     db    3bh
  960.     db    2dh
  961.     db    2eh
  962.     db    3bh
  963.     db    08h
  964.     db    06h
  965.     db    08h
  966.     db    02h
  967.     db    05h
  968.     db    01h
  969.     db    3ch
  970.     db    2dh
  971.     db    1bh
  972.     db    1eh
  973.     db    20h
  974.     db    00h
  975.     db    04h
  976.     db    22h
  977.     db    12h
  978.     db    36h
  979.     db    34h
  980.     db    24h
  981.     db    20h
  982.     db    00h
  983.     db    00h
  984.  
  985. bell:
  986.  
  987.     db    00h
  988.     db    40h
  989.     db    12h
  990.     db    12h
  991.     db    13h
  992.     db    1ah
  993.     db    12h
  994.     db    12h
  995.     db    00h
  996.     db    00h
  997.     db    00h
  998.     db    00h
  999.     db    00h
  1000.     db    1fh
  1001.     db    3fh
  1002.     db    3fh
  1003.     db    3bh
  1004.     db    00h
  1005.     db    00h
  1006.     db    00h
  1007.     db    00h
  1008.     db    00h
  1009.     db    0bh
  1010.     db    3fh
  1011.     db    3fh
  1012.     db    3fh
  1013.     db    3fh
  1014.     db    19h
  1015.     db    00h
  1016.     db    00h
  1017.     db    00h
  1018.     db    04h
  1019.     db    24h
  1020.     db    24h
  1021.     db    26h
  1022.     db    34h
  1023.     db    24h
  1024.     db    24h
  1025.     db    20h
  1026.     db    00h
  1027.     db    01h
  1028.     db    49h
  1029.     db    49h
  1030.     db    49h
  1031.     db    09h
  1032.     db    09h
  1033.     db    09h
  1034.     db    09h
  1035.     db    09h
  1036.     db    08h
  1037.     db    07h
  1038.     db    02h
  1039.     db    11h
  1040.     db    38h
  1041.     db    1bh
  1042.     db    18h
  1043.     db    38h
  1044.     db    12h
  1045.     db    07h
  1046.     db    38h
  1047.     db    07h
  1048.     db    06h
  1049.     db    30h
  1050.     db    38h
  1051.     db    1bh
  1052.     db    18h
  1053.     db    38h
  1054.     db    3bh
  1055.     db    2eh
  1056.     db    38h
  1057.     db    04h
  1058.     db    24h
  1059.     db    24h
  1060.     db    24h
  1061.     db    24h
  1062.     db    24h
  1063.     db    24h
  1064.     db    24h
  1065.     db    24h
  1066.     db    20h
  1067.     db    00h
  1068.     db    00h
  1069.     db    40h
  1070.     db    01h
  1071.     db    09h
  1072.     db    09h
  1073.     db    09h
  1074.     db    08h
  1075.     db    00h
  1076.     db    00h
  1077.     db    00h
  1078.     db    0bh
  1079.     db    3fh
  1080.     db    3fh
  1081.     db    3fh
  1082.     db    3fh
  1083.     db    3fh
  1084.     db    3fh
  1085.     db    3bh
  1086.     db    00h
  1087.     db    00h
  1088.     db    37h
  1089.     db    3fh
  1090.     db    3dh
  1091.     db    3fh
  1092.     db    3fh
  1093.     db    3fh
  1094.     db    3fh
  1095.     db    34h
  1096.     db    00h
  1097.     db    00h
  1098.     db    00h
  1099.     db    24h
  1100.     db    24h
  1101.     db    24h
  1102.     db    24h
  1103.     db    20h
  1104.     db    00h
  1105.     db    00h
  1106.     db    00h
  1107.     db    00h
  1108.     db    00h
  1109.     db    00h
  1110.     db    00h
  1111.     db    00h
  1112.     db    00h
  1113.     db    09h
  1114.     db    09h
  1115.     db    09h
  1116.     db    00h
  1117.     db    00h
  1118.     db    00h
  1119.     db    1bh
  1120.     db    1fh
  1121.     db    24h
  1122.     db    3fh
  1123.     db    3fh
  1124.     db    3fh
  1125.     db    30h
  1126.     db    00h
  1127.     db    00h
  1128.     db    0fh
  1129.     db    3fh
  1130.     db    3fh
  1131.     db    12h
  1132.     db    12h
  1133.     db    16h
  1134.     db    24h
  1135.     db    00h
  1136.     db    00h
  1137.     db    00h
  1138.     db    00h
  1139.     db    00h
  1140.     db    00h
  1141.     db    00h
  1142.     db    00h
  1143.     db    00h
  1144.     db    00h
  1145.     db    00h
  1146.     db    00h
  1147.     db    00h
  1148.     db    00h
  1149.     db    40h
  1150.     db    40h
  1151.     db    00h
  1152.     db    00h
  1153.     db    00h
  1154.     db    00h
  1155.     db    00h
  1156.     db    00h
  1157.     db    00h
  1158.     db    00h
  1159.     db    01h
  1160.     db    0bh
  1161.     db    1bh
  1162.     db    3fh
  1163.     db    3fh
  1164.     db    3bh
  1165.     db    18h
  1166.     db    00h
  1167.     db    00h
  1168.     db    02h
  1169.     db    3eh
  1170.     db    3fh
  1171.     db    3fh
  1172.     db    3eh
  1173.     db    34h
  1174.     db    20h
  1175.     db    00h
  1176.     db    00h
  1177.     db    02h
  1178.     db    34h
  1179.     db    00h
  1180.     db    00h
  1181.     db    00h
  1182.     db    00h
  1183.     db    00h
  1184.     db    00h
  1185.     db    00h
  1186.     db    00h
  1187.     db    00h
  1188.     db    00h
  1189.     db    40h
  1190.     db    01h
  1191.     db    09h
  1192.     db    09h
  1193.     db    09h
  1194.     db    08h
  1195.     db    00h
  1196.     db    00h
  1197.     db    00h
  1198.     db    0bh
  1199.     db    3fh
  1200.     db    3fh
  1201.     db    3fh
  1202.     db    3fh
  1203.     db    3fh
  1204.     db    3fh
  1205.     db    3bh
  1206.     db    00h
  1207.     db    00h
  1208.     db    37h
  1209.     db    3fh
  1210.     db    3dh
  1211.     db    3fh
  1212.     db    3fh
  1213.     db    3fh
  1214.     db    3fh
  1215.     db    34h
  1216.     db    00h
  1217.     db    00h
  1218.     db    00h
  1219.     db    24h
  1220.     db    24h
  1221.     db    24h
  1222.     db    24h
  1223.     db    20h
  1224.     db    00h
  1225.     db    00h
  1226.     db    00h
  1227.     db    00h
  1228.     db    40h
  1229.     db    00h
  1230.     db    42h
  1231.     db    1ah
  1232.     db    02h
  1233.     db    1ah
  1234.     db    00h
  1235.     db    00h
  1236.     db    00h
  1237.     db    00h
  1238.     db    00h
  1239.     db    3ch
  1240.     db    24h
  1241.     db    3ch
  1242.     db    24h
  1243.     db    3ch
  1244.     db    24h
  1245.     db    20h
  1246.     db    00h
  1247.     db    00h
  1248.     db    00h
  1249.     db    24h
  1250.     db    24h
  1251.     db    3ch
  1252.     db    24h
  1253.     db    3ch
  1254.     db    24h
  1255.     db    38h
  1256.     db    00h
  1257.     db    00h
  1258.     db    00h
  1259.     db    24h
  1260.     db    24h
  1261.     db    36h
  1262.     db    36h
  1263.     db    34h
  1264.     db    24h
  1265.     db    20h
  1266.     db    00h
  1267.     db    00h
  1268.     db    00h
  1269.     db    40h
  1270.     db    41h
  1271.     db    09h
  1272.     db    09h
  1273.     db    08h
  1274.     db    00h
  1275.     db    00h
  1276.     db    00h
  1277.     db    00h
  1278.     db    00h
  1279.     db    16h
  1280.     db    24h
  1281.     db    00h
  1282.     db    00h
  1283.     db    2dh
  1284.     db    3ah
  1285.     db    00h
  1286.     db    00h
  1287.     db    00h
  1288.     db    00h
  1289.     db    00h
  1290.     db    00h
  1291.     db    02h
  1292.     db    34h
  1293.     db    20h
  1294.     db    00h
  1295.     db    00h
  1296.     db    00h
  1297.     db    00h
  1298.     db    00h
  1299.     db    00h
  1300.     db    00h
  1301.     db    04h
  1302.     db    20h
  1303.     db    00h
  1304.     db    00h
  1305.     db    00h
  1306.     db    00h
  1307.     db    00h
  1308.     db    40h
  1309.     db    12h
  1310.     db    12h
  1311.     db    13h
  1312.     db    1ah
  1313.     db    12h
  1314.     db    12h
  1315.     db    00h
  1316.     db    00h
  1317.     db    00h
  1318.     db    00h
  1319.     db    00h
  1320.     db    1fh
  1321.     db    3fh
  1322.     db    3fh
  1323.     db    3bh
  1324.     db    00h
  1325.     db    00h
  1326.     db    00h
  1327.     db    00h
  1328.     db    00h
  1329.     db    0bh
  1330.     db    3fh
  1331.     db    3fh
  1332.     db    3fh
  1333.     db    3fh
  1334.     db    19h
  1335.     db    00h
  1336.     db    00h
  1337.     db    00h
  1338.     db    04h
  1339.     db    24h
  1340.     db    24h
  1341.     db    26h
  1342.     db    34h
  1343.     db    24h
  1344.     db    24h
  1345.     db    20h
  1346.     db    00h
  1347.     db    00h
  1348.     db    00h
  1349.     db    00h
  1350.     db    00h
  1351.     db    00h
  1352.     db    00h
  1353.     db    09h
  1354.     db    09h
  1355.     db    09h
  1356.     db    00h
  1357.     db    00h
  1358.     db    00h
  1359.     db    1bh
  1360.     db    1fh
  1361.     db    24h
  1362.     db    3fh
  1363.     db    3fh
  1364.     db    3fh
  1365.     db    30h
  1366.     db    00h
  1367.     db    00h
  1368.     db    0fh
  1369.     db    3fh
  1370.     db    3fh
  1371.     db    12h
  1372.     db    12h
  1373.     db    16h
  1374.     db    24h
  1375.     db    00h
  1376.     db    00h
  1377.     db    00h
  1378.     db    00h
  1379.     db    00h
  1380.     db    00h
  1381.     db    00h
  1382.     db    00h
  1383.     db    00h
  1384.     db    00h
  1385.     db    00h
  1386.     db    00h
  1387.     db    00h
  1388.     db    00h
  1389.     db    00h
  1390.     db    40h
  1391.     db    00h
  1392.     db    00h
  1393.     db    00h
  1394.     db    00h
  1395.     db    03h
  1396.     db    10h
  1397.     db    00h
  1398.     db    00h
  1399.     db    00h
  1400.     db    1fh
  1401.     db    3fh
  1402.     db    3fh
  1403.     db    3bh
  1404.     db    01h
  1405.     db    1eh
  1406.     db    00h
  1407.     db    00h
  1408.     db    09h
  1409.     db    1bh
  1410.     db    1fh
  1411.     db    2dh
  1412.     db    37h
  1413.     db    1fh
  1414.     db    3fh
  1415.     db    19h
  1416.     db    08h
  1417.     db    00h
  1418.     db    26h
  1419.     db    36h
  1420.     db    36h
  1421.     db    20h
  1422.     db    04h
  1423.     db    36h
  1424.     db    36h
  1425.     db    34h
  1426.     db    20h
  1427.     db    00h
  1428.     db    40h
  1429.     db    49h
  1430.     db    12h
  1431.     db    1bh
  1432.     db    19h
  1433.     db    09h
  1434.     db    08h
  1435.     db    00h
  1436.     db    00h
  1437.     db    01h
  1438.     db    34h
  1439.     db    0ch
  1440.     db    10h
  1441.     db    04h
  1442.     db    3bh
  1443.     db    2dh
  1444.     db    2eh
  1445.     db    3bh
  1446.     db    08h
  1447.     db    06h
  1448.     db    08h
  1449.     db    02h
  1450.     db    05h
  1451.     db    01h
  1452.     db    3ch
  1453.     db    2dh
  1454.     db    1bh
  1455.     db    1eh
  1456.     db    20h
  1457.     db    00h
  1458.     db    04h
  1459.     db    22h
  1460.     db    12h
  1461.     db    36h
  1462.     db    34h
  1463.     db    24h
  1464.     db    20h
  1465.     db    00h
  1466.     db    00h
  1467.  
  1468. bellx:
  1469.  
  1470.     db    00h
  1471.     db    40h
  1472.     db    12h
  1473.     db    12h
  1474.     db    13h
  1475.     db    1ah
  1476.     db    12h
  1477.     db    12h
  1478.     db    00h
  1479.     db    00h
  1480.     db    00h
  1481.     db    00h
  1482.     db    00h
  1483.     db    1fh
  1484.     db    3fh
  1485.     db    3fh
  1486.     db    3bh
  1487.     db    00h
  1488.     db    00h
  1489.     db    00h
  1490.     db    00h
  1491.     db    00h
  1492.     db    0bh
  1493.     db    3fh
  1494.     db    3fh
  1495.     db    3fh
  1496.     db    3fh
  1497.     db    19h
  1498.     db    00h
  1499.     db    00h
  1500.     db    00h
  1501.     db    04h
  1502.     db    24h
  1503.     db    24h
  1504.     db    26h
  1505.     db    34h
  1506.     db    24h
  1507.     db    24h
  1508.     db    20h
  1509.     db    00h
  1510.     db    00h
  1511.     db    40h
  1512.     db    00h
  1513.     db    42h
  1514.     db    1ah
  1515.     db    02h
  1516.     db    1ah
  1517.     db    00h
  1518.     db    00h
  1519.     db    00h
  1520.     db    00h
  1521.     db    00h
  1522.     db    3ch
  1523.     db    24h
  1524.     db    3ch
  1525.     db    24h
  1526.     db    3ch
  1527.     db    24h
  1528.     db    20h
  1529.     db    00h
  1530.     db    00h
  1531.     db    00h
  1532.     db    24h
  1533.     db    24h
  1534.     db    3ch
  1535.     db    24h
  1536.     db    3ch
  1537.     db    24h
  1538.     db    28h
  1539.     db    00h
  1540.     db    00h
  1541.     db    00h
  1542.     db    24h
  1543.     db    24h
  1544.     db    36h
  1545.     db    36h
  1546.     db    34h
  1547.     db    24h
  1548.     db    20h
  1549.     db    00h
  1550.     db    00h
  1551.     db    00h
  1552.     db    40h
  1553.     db    40h
  1554.     db    00h
  1555.     db    00h
  1556.     db    00h
  1557.     db    00h
  1558.     db    00h
  1559.     db    00h
  1560.     db    00h
  1561.     db    00h
  1562.     db    01h
  1563.     db    0bh
  1564.     db    1bh
  1565.     db    3fh
  1566.     db    3fh
  1567.     db    3bh
  1568.     db    18h
  1569.     db    00h
  1570.     db    00h
  1571.     db    02h
  1572.     db    3eh
  1573.     db    3fh
  1574.     db    3fh
  1575.     db    3eh
  1576.     db    34h
  1577.     db    20h
  1578.     db    00h
  1579.     db    00h
  1580.     db    02h
  1581.     db    34h
  1582.     db    00h
  1583.     db    00h
  1584.     db    00h
  1585.     db    00h
  1586.     db    00h
  1587.     db    00h
  1588.     db    00h
  1589.     db    00h
  1590.     db    00h
  1591.     db    00h
  1592.     db    00h
  1593.     db    01h
  1594.     db    09h
  1595.     db    09h
  1596.     db    08h
  1597.     db    00h
  1598.     db    00h
  1599.     db    00h
  1600.     db    00h
  1601.     db    00h
  1602.     db    16h
  1603.     db    24h
  1604.     db    00h
  1605.     db    00h
  1606.     db    2dh
  1607.     db    3ah
  1608.     db    00h
  1609.     db    00h
  1610.     db    00h
  1611.     db    00h
  1612.     db    00h
  1613.     db    00h
  1614.     db    02h
  1615.     db    34h
  1616.     db    20h
  1617.     db    00h
  1618.     db    00h
  1619.     db    00h
  1620.     db    00h
  1621.     db    00h
  1622.     db    00h
  1623.     db    00h
  1624.     db    04h
  1625.     db    20h
  1626.     db    00h
  1627.     db    00h
  1628.     db    00h
  1629.     db    00h
  1630.     db    00h
  1631.     db    00h
  1632.     db    40h
  1633.     db    01h
  1634.     db    09h
  1635.     db    09h
  1636.     db    09h
  1637.     db    08h
  1638.     db    00h
  1639.     db    00h
  1640.     db    00h
  1641.     db    0bh
  1642.     db    3fh
  1643.     db    3fh
  1644.     db    3fh
  1645.     db    3fh
  1646.     db    3fh
  1647.     db    3fh
  1648.     db    3bh
  1649.     db    00h
  1650.     db    00h
  1651.     db    37h
  1652.     db    3fh
  1653.     db    3dh
  1654.     db    3fh
  1655.     db    3fh
  1656.     db    3fh
  1657.     db    3fh
  1658.     db    34h
  1659.     db    00h
  1660.     db    00h
  1661.     db    00h
  1662.     db    24h
  1663.     db    24h
  1664.     db    24h
  1665.     db    24h
  1666.     db    20h
  1667.     db    00h
  1668.     db    00h
  1669.     db    00h
  1670.     db    00h
  1671.     db    00h
  1672.     db    00h
  1673.     db    40h
  1674.     db    00h
  1675.     db    00h
  1676.     db    00h
  1677.     db    00h
  1678.     db    03h
  1679.     db    10h
  1680.     db    00h
  1681.     db    00h
  1682.     db    00h
  1683.     db    1fh
  1684.     db    3fh
  1685.     db    3fh
  1686.     db    3bh
  1687.     db    01h
  1688.     db    1eh
  1689.     db    00h
  1690.     db    00h
  1691.     db    09h
  1692.     db    1bh
  1693.     db    1fh
  1694.     db    2dh
  1695.     db    37h
  1696.     db    1fh
  1697.     db    3fh
  1698.     db    19h
  1699.     db    08h
  1700.     db    00h
  1701.     db    26h
  1702.     db    36h
  1703.     db    36h
  1704.     db    20h
  1705.     db    04h
  1706.     db    36h
  1707.     db    36h
  1708.     db    34h
  1709.     db    20h
  1710.     db    00h
  1711.     db    00h
  1712.     db    00h
  1713.     db    00h
  1714.     db    00h
  1715.     db    00h
  1716.     db    09h
  1717.     db    09h
  1718.     db    09h
  1719.     db    00h
  1720.     db    00h
  1721.     db    00h
  1722.     db    1bh
  1723.     db    1fh
  1724.     db    24h
  1725.     db    3fh
  1726.     db    3fh
  1727.     db    3fh
  1728.     db    30h
  1729.     db    00h
  1730.     db    00h
  1731.     db    0fh
  1732.     db    3fh
  1733.     db    3fh
  1734.     db    12h
  1735.     db    12h
  1736.     db    16h
  1737.     db    24h
  1738.     db    00h
  1739.     db    00h
  1740.     db    00h
  1741.     db    00h
  1742.     db    00h
  1743.     db    00h
  1744.     db    00h
  1745.     db    00h
  1746.     db    00h
  1747.     db    00h
  1748.     db    00h
  1749.     db    00h
  1750.  
  1751. bell1x:
  1752.  
  1753.     db    00h
  1754.     db    40h
  1755.     db    12h
  1756.     db    12h
  1757.     db    13h
  1758.     db    1ah
  1759.     db    12h
  1760.     db    12h
  1761.     db    00h
  1762.     db    00h
  1763.     db    00h
  1764.     db    00h
  1765.     db    00h
  1766.     db    1fh
  1767.     db    3fh
  1768.     db    3fh
  1769.     db    3bh
  1770.     db    00h
  1771.     db    00h
  1772.     db    00h
  1773.     db    00h
  1774.     db    00h
  1775.     db    0bh
  1776.     db    3fh
  1777.     db    3fh
  1778.     db    3fh
  1779.     db    3fh
  1780.     db    19h
  1781.     db    00h
  1782.     db    00h
  1783.     db    00h
  1784.     db    04h
  1785.     db    24h
  1786.     db    24h
  1787.     db    26h
  1788.     db    34h
  1789.     db    24h
  1790.     db    24h
  1791.     db    20h
  1792.     db    00h
  1793.     db    01h
  1794.     db    49h
  1795.     db    49h
  1796.     db    49h
  1797.     db    09h
  1798.     db    09h
  1799.     db    09h
  1800.     db    09h
  1801.     db    09h
  1802.     db    08h
  1803.     db    07h
  1804.     db    02h
  1805.     db    11h
  1806.     db    38h
  1807.     db    1bh
  1808.     db    18h
  1809.     db    38h
  1810.     db    12h
  1811.     db    07h
  1812.     db    38h
  1813.     db    07h
  1814.     db    06h
  1815.     db    30h
  1816.     db    38h
  1817.     db    1bh
  1818.     db    18h
  1819.     db    38h
  1820.     db    3bh
  1821.     db    2eh
  1822.     db    38h
  1823.     db    04h
  1824.     db    24h
  1825.     db    24h
  1826.     db    24h
  1827.     db    24h
  1828.     db    24h
  1829.     db    24h
  1830.     db    24h
  1831.     db    24h
  1832.     db    20h
  1833.     db    00h
  1834.     db    00h
  1835.     db    40h
  1836.     db    01h
  1837.     db    09h
  1838.     db    09h
  1839.     db    09h
  1840.     db    08h
  1841.     db    00h
  1842.     db    00h
  1843.     db    00h
  1844.     db    0bh
  1845.     db    3fh
  1846.     db    3fh
  1847.     db    3fh
  1848.     db    3fh
  1849.     db    3fh
  1850.     db    3fh
  1851.     db    3bh
  1852.     db    00h
  1853.     db    00h
  1854.     db    37h
  1855.     db    3fh
  1856.     db    3dh
  1857.     db    3fh
  1858.     db    3fh
  1859.     db    3fh
  1860.     db    3fh
  1861.     db    34h
  1862.     db    00h
  1863.     db    00h
  1864.     db    00h
  1865.     db    24h
  1866.     db    24h
  1867.     db    24h
  1868.     db    24h
  1869.     db    20h
  1870.     db    00h
  1871.     db    00h
  1872.     db    00h
  1873.     db    00h
  1874.     db    00h
  1875.     db    40h
  1876.     db    40h
  1877.     db    00h
  1878.     db    00h
  1879.     db    00h
  1880.     db    00h
  1881.     db    00h
  1882.     db    00h
  1883.     db    00h
  1884.     db    00h
  1885.     db    01h
  1886.     db    0bh
  1887.     db    1bh
  1888.     db    3fh
  1889.     db    3fh
  1890.     db    3bh
  1891.     db    18h
  1892.     db    00h
  1893.     db    00h
  1894.     db    02h
  1895.     db    3eh
  1896.     db    3fh
  1897.     db    3fh
  1898.     db    3eh
  1899.     db    34h
  1900.     db    20h
  1901.     db    00h
  1902.     db    00h
  1903.     db    02h
  1904.     db    34h
  1905.     db    00h
  1906.     db    00h
  1907.     db    00h
  1908.     db    00h
  1909.     db    00h
  1910.     db    00h
  1911.     db    00h
  1912.     db    00h
  1913.     db    00h
  1914.     db    00h
  1915.     db    00h
  1916.     db    00h
  1917.     db    00h
  1918.     db    00h
  1919.     db    09h
  1920.     db    09h
  1921.     db    09h
  1922.     db    00h
  1923.     db    00h
  1924.     db    00h
  1925.     db    1bh
  1926.     db    1fh
  1927.     db    24h
  1928.     db    3fh
  1929.     db    3fh
  1930.     db    3fh
  1931.     db    30h
  1932.     db    00h
  1933.     db    00h
  1934.     db    0fh
  1935.     db    3fh
  1936.     db    3fh
  1937.     db    12h
  1938.     db    12h
  1939.     db    16h
  1940.     db    24h
  1941.     db    00h
  1942.     db    00h
  1943.     db    00h
  1944.     db    00h
  1945.     db    00h
  1946.     db    00h
  1947.     db    00h
  1948.     db    00h
  1949.     db    00h
  1950.     db    00h
  1951.     db    00h
  1952.     db    00h
  1953.     db    00h
  1954.     db    00h
  1955.     db    40h
  1956.     db    01h
  1957.     db    09h
  1958.     db    09h
  1959.     db    08h
  1960.     db    00h
  1961.     db    00h
  1962.     db    00h
  1963.     db    00h
  1964.     db    00h
  1965.     db    16h
  1966.     db    24h
  1967.     db    00h
  1968.     db    00h
  1969.     db    2dh
  1970.     db    3ah
  1971.     db    00h
  1972.     db    00h
  1973.     db    00h
  1974.     db    00h
  1975.     db    00h
  1976.     db    00h
  1977.     db    02h
  1978.     db    34h
  1979.     db    20h
  1980.     db    00h
  1981.     db    00h
  1982.     db    00h
  1983.     db    00h
  1984.     db    00h
  1985.     db    00h
  1986.     db    00h
  1987.     db    04h
  1988.     db    20h
  1989.     db    00h
  1990.     db    00h
  1991.     db    00h
  1992.     db    00h
  1993.  
  1994. cherryy:
  1995.  
  1996.     db    40h
  1997.     db    00h
  1998.     db    00h
  1999.     db    40h
  2000.     db    00h
  2001.     db    00h
  2002.     db    00h
  2003.     db    00h
  2004.     db    03h
  2005.     db    10h
  2006.     db    00h
  2007.     db    00h
  2008.     db    00h
  2009.     db    1fh
  2010.     db    3fh
  2011.     db    3fh
  2012.     db    3bh
  2013.     db    01h
  2014.     db    1eh
  2015.     db    00h
  2016.     db    00h
  2017.     db    09h
  2018.     db    1bh
  2019.     db    1fh
  2020.     db    2dh
  2021.     db    37h
  2022.     db    1fh
  2023.     db    3fh
  2024.     db    19h
  2025.     db    08h
  2026.     db    00h
  2027.     db    26h
  2028.     db    36h
  2029.     db    36h
  2030.     db    20h
  2031.     db    04h
  2032.     db    36h
  2033.     db    36h
  2034.     db    34h
  2035.     db    20h
  2036.     db    00h
  2037.     db    40h
  2038.     db    49h
  2039.     db    12h
  2040.     db    1bh
  2041.     db    19h
  2042.     db    09h
  2043.     db    08h
  2044.     db    00h
  2045.     db    00h
  2046.     db    01h
  2047.     db    34h
  2048.     db    0ch
  2049.     db    10h
  2050.     db    04h
  2051.     db    3bh
  2052.     db    2dh
  2053.     db    2eh
  2054.     db    3bh
  2055.     db    08h
  2056.     db    06h
  2057.     db    08h
  2058.     db    02h
  2059.     db    05h
  2060.     db    01h
  2061.     db    3ch
  2062.     db    2dh
  2063.     db    1bh
  2064.     db    1eh
  2065.     db    20h
  2066.     db    00h
  2067.     db    04h
  2068.     db    22h
  2069.     db    12h
  2070.     db    36h
  2071.     db    34h
  2072.     db    24h
  2073.     db    20h
  2074.     db    00h
  2075.     db    00h
  2076.     db    00h
  2077.     db    40h
  2078.     db    12h
  2079.     db    12h
  2080.     db    13h
  2081.     db    1ah
  2082.     db    12h
  2083.     db    12h
  2084.     db    00h
  2085.     db    00h
  2086.     db    00h
  2087.     db    00h
  2088.     db    00h
  2089.     db    1fh
  2090.     db    3fh
  2091.     db    3fh
  2092.     db    3bh
  2093.     db    00h
  2094.     db    00h
  2095.     db    00h
  2096.     db    00h
  2097.     db    00h
  2098.     db    0bh
  2099.     db    3fh
  2100.     db    3fh
  2101.     db    3fh
  2102.     db    3fh
  2103.     db    19h
  2104.     db    00h
  2105.     db    00h
  2106.     db    00h
  2107.     db    04h
  2108.     db    24h
  2109.     db    24h
  2110.     db    26h
  2111.     db    34h
  2112.     db    24h
  2113.     db    24h
  2114.     db    20h
  2115.     db    00h
  2116.  
  2117. final    equ    $
  2118. stkptr    equ    final+20*2
  2119. trials    equ    stkptr
  2120. spincnt    equ    stkptr
  2121. reel1s    equ    stkptr+1
  2122. reel2s    equ    stkptr+2
  2123. reel3s    equ    stkptr+3
  2124. reel1p    equ    stkptr+4
  2125. reel2p    equ    stkptr+6
  2126. reel3p    equ    stkptr+8
  2127. value    equ    stkptr+10
  2128. credtv    equ    stkptr+12
  2129. random    equ    stkptr+14
  2130. jackpot    equ    stkptr+16
  2131. recipt    equ    stkptr+18
  2132.  
  2133.     end
  2134.  
  2135.