home *** CD-ROM | disk | FTP | other *** search
- ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- ;
- ; Las Vegas Super-Slot, (c) 1980 by David W. Friedman
- ;
- ; for the
- ;
- ; Vector Graphics Flashwriter I Video Board
- ;
- ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- ;
- ; Copyright 1980 (c) by: David W. Friedman
- ; 2-8-24 Okubo, Shinjuku-Ku
- ; Tokyo, Japan 160
- ;
- ; From an article: Dr. Dobb's Journal
- ; Number 50, November/December 1980
- ; Volume 5, Issue 10
- ; Pages 10-22
- ;
- ; Entered by: Kelly Smith, MP/M-net (tm)
- ; 805-527-9321 (Modem, 300 Baud)
- ;
-
- true equ -1 ; define true
- false equ not true; define false
- printer equ false ; define printer (used)
-
- base equ 0 ; system base address
- wmstt equ base
- bdos equ base+5 ; bdos entry address
- fcb equ base+5ch; file control block
- dmad equ base+80h; dma address
- tpa equ base+100h ; transient program area
-
- setbdos equ 13 ; drive number A, default dma address
- openf equ 15 ; open file function
- closef equ 16 ; close file function
- deletef equ 19 ; delete file function
- readf equ 20 ; read file function
- writef equ 21 ; write file function
- creatf equ 22 ; create file function
-
- vid equ base+0d000h ; base of video memory
- vidh equ vid/100h
- attb equ vid+400h ; base of video attribute memory
- attbh equ attb/100h
- vidndh equ vidh+8
- lnlgth equ 64 ; video screen length
- scrnht equ 16 ; video screen height
- blkon equ 8080h
- blkoff equ 0
-
- ctrl equ 00011111b ; assembler control key mask
- crmk equ ctrl and 'M'
- bkspmk equ ctrl and 'H'
- belmk equ ctrl and 'G'
-
- org tpa ; transient program start address
-
- start: lxi sp,stkptr
- call initiz
- main: call ready
- call keytest
- call pcread
- cpi '$'
- cz collect
- cpi ctrl and 'E'
- cz exit
- cpi ctrl and 'T'
- cz test
- cpi ctrl and 'Z'
- cz zero
- cpi ctrl and 'P'
- cz plays
- cpi crmk
- jnz main
- call accept
- jz main
- call nready
- call operate
- jnc main
- call payjack
- call svjack
- jmp main
-
- exit: lxi h,exitstg+1
- call match
- mvi a,crmk
- rnz
- call erase
- call svjack
- jmp wmstt ; return to CP/M
-
- operate:call charge
- xra a
- sta value
- call showin
- call crank
- call speed
- mvi a,12 ; minimum initial spin time 4
- call spin1
- call winchk
- call showin
- credout:lda value
- ora a ; carry = 0
- rz
- mov e,a
- lhld credtv
- bump: inx h
- shld credtv
- call bksout
- push h
- push d
- call shocred
- pop d
- pop h
- call timerx
- dcr e
- jnz bump
- call spcout ; at least 1 space if big payback
- lda value
- sui 250
- cmc
- ret
-
- test: lxi h,tstmch+1
- call match
- mvi a,crmk
- rnz
- lxi d,tststg
- call ready1
- lxi h,100
- call charge1
- test1: mvi h,10
- test2: call timerx
- dcr h
- jnz test2
- lxi h,random
- inr m
- call pcin
- ora a
- jz test3
- call pcread
- cpi crmk
- jnz test2
- lxi h,0
- jmp charge1
- test3: call accept
- rz
- call operate
- jmp test1
-
- zero: lxi h,zerostg+1
- call match
- mvi a,crmk
- rnz
- lxi h,0
- shld recipt
- jmp plays1
-
- plays: lxi h,playstg+1
- call match
- mvi a,crmk
- rnz
- plays1: lxi d,rcptstg
- lxi h,vid+7*lnlgth+49
- call shostg
- call nready
- lhld recipt
- call shocrd1
- call svjack
- plays2: call pcread
- cpi crmk
- jnz plays2
- jmp shocred
-
- match: call pcread
- cmp m
- inx h
- rnz
- mov a,m
- ora a
- jnz match
- ret
-
- initiz: call erase
- lxi h,vid+0*lnlgth+0
- lxi d,payoff
- call shostg
- lxi h,vid+14*lnlgth+0
- call shostg
- lxi b,blkon+100h*4+12 ; 4 X 12 area
- lxi h,attb+6*lnlgth+0
- call boxy
- lxi h,attb+6*lnlgth+48
- call boxy
- lxi b,blkon+100h*4+36 ; 4 X 36 area
- lxi h,attb+10*lnlgth+12
- mvi a,8 ; half intensity shading
- call graph
- lxi h,attb+2*lnlgth+12
- push h
- call graph
- pop h
- push h
- lxi b,blkon+100h*12+10 ; 12 X 10 area
- call graphon
- pop h
- call boxy
- lxi d,(25-12) or (38-25) ; corner delta
- dad d
- push h
- call graphon
- pop h
- call boxy
- dad d
- push h
- call graphon
- pop h
- call boxy
- lxi h,attb+8*lnlgth+12
- lxi b,0302h ; B = 3 columns, C = horizontal line graphics
- ticks: push h
- mov a,c
- ora m
- mov m,a
- mov a,l
- adi 9 ; 10-1 = box width-1
- mov l,a
- mov a,c
- ora m
- mov m,a
- pop h
- dad d
- dcr b
- jnz ticks
- lxi h,bell ; initial reel display
- shld reel3p
- lxi h,bell1x
- shld reel2p
- lxi h,bellx
- shld reel1p
- lxi h,1010h ; last 16 counts = 4 lines
- shld reel1s
- shld reel2s ; includes "reels3"
- call spin ; applies pattern
- call crank ; applies handle
- lxi h,0
- shld value
- shld credtv
- shld recipt
- call showin
- call shocred
- call ldjack
- jp shojack
- lxi h,100
- init2: shld jackpot
- shojack:call belout
- call timerx
- lxi d,jackstg
- lxi h,vid+3*lnlgth+0
- call shostg
- lxi d,vid+4*lnlgth+3
- lhld jackpot
- mvi b,1
- jmp sho5dig
-
- keytest:call pcin ; returns A = 1, if key waiting
- ora a
- inx b
- jnz keytest
- mov a,c
- sta random
- ret
-
- collect:call accept
- mvi a,crmk
- rnz ; credits remaining
- lxi d,20
- lhld recipt
- dad d
- shld recipt
- lhld credtv
- dad d
- push d
- call charge1
- pop d
- mov a,e
- jmp pljack
-
- payjack:lhld jackpot
- lxi d,-10
- dad d
- jnc paid
- shld jackpot
- lhld credtv
- lxi d,10
- dad d
- call charge1
- call shojack
- lxi d,jackstg
- lxi h,vid+8*lnlgth+0
- push h
- call shostg
- call spcout
- call bksout
- call bksout
- call timerx
- pop h
- call shostg ; "njackstg" follows "jackstg"
- jmp payjack
-
- paid: lxi h,0
- jmp init2
-
- accept: lhld credtv
- mov a,h
- ora l
- ret
-
- crank: lxi h,attb+2*lnlgth+55
- push h
- call handof
- lxi h,attb+9*lnlgth+55
- push h
- call handon
- pop h
- call timerx
- call crout
- call timerx
- call handof
- pop h
- handon: lxi b,blkon+100h*2+8 ; 2 X 8 box
- call boxy
- lxi d,2*lnlgth+6 ; lever relative position
- dad d
- lxi b,blkon+100h*15+2 ; full X 2 box
- jmp boxy
-
- handof: lxi b,blkoff+100h*2+8
- call boxy
- lxi d,2*lnlgth+6
- dad d
- lxi b,blkoff+100h*15+2
- boxy: push d
- push h
- push h
- push b
- call gphrhz ; horizontal lines
- pop b
- push b
- ora a
- cz boxy2 ; if not past right
- pop b
- pop h
- push b
- call boxy2 ; left vertical lines
- pop b
- push b
- call gphrhz ; bottom horizontal lines
- pop b
- pop h
- pop d
- ret
-
- boxy2: mvi a,80h
- ana c ; pickup blkon/off condition
- ori 1 ; only 1 wide needed
- mov c,a
- mvi a,0100b ; verticle line graphics
- jmp graph
-
- graphon:mvi a,0001b ; graphics bit
- graph: push d
- push b
- push psw
- lxi d,lnlgth
- graph1: mov a,b
- ani scrnht-1
- jz graphed ; if no more
- pop psw
- push psw
- push b
- push h
- call grapher
- pop h
- pop b
- dad d
- mov a,h
- cpi vidndh
- jnc graphed ; if past bottom
- dcr b
- jmp graph1
- graphed:pop psw
- pop b
- pop d
- ret
-
- gphrhz: mvi a,0010b ; horizontal line graphics
- grapher:mov b,a
- graphr1:mov a,c
- ani lnlgth-1
- rz ; if no more
- mov a,b
- cma ; create bit mask
- ana m
- mov m,a
- mov a,c
- ora a
- jp grphof ; if blkoff, then done
- mov a,b
- ora m
- mov m,a ; set bit to 1
- grphof: inx h ; next byte
- mov a,l
- ani lnlgth-1
- mov a,h ; A reg. non-zero on return, if past right edge
- rz
- dcr c
- jmp graphr1
-
- speed: lxi d,reel1s
- lhld random ; in L reg.
- mvi a,00110000b
- ana l
- ori 80h
- stax d ; range 80, 90, a0, b0
- inx d ; reel2s
- mvi a,00011000b
- ana l
- ori 0c0h
- stax d ; range c0, c8, d0,d8
- inx d ; reel3s
- mvi a,00001100b
- ana l
- ori 10h
- mov h,a ; random+1 range 10, 14, 18, 1c
- shld random ; specified in H reg. (random+1)
- ori 0f0h
- stax d
- ret
-
- spin: mvi a,4 ; 4 line/pattern
- spin1: sta spincnt
- lxi b,reel1s
- lhld reel1p
- lxi d,vid+2*lnlgth+12
- call spiner
- shld reel1p
- lxi b,reel2s
- lhld reel2p
- lxi d,vid+2*lnlgth+25
- call spiner
- shld reel2p
- lxi b,reel3s
- lhld reel3p
- lxi d,vid+2*lnlgth+38
- call spiner
- shld reel3p
- lda spincnt
- dcr a
- jnz spin1
- call pcin
- ora a
- jnz stopkey
- stopcmp:lda reel3s
- lhld reel1s ; reel2s in H reg.
- ora h
- ora l
- jnz spin
- ret
-
- stopkey:call pcread
- lhld random+1 ; specification in L reg.
- lxi d,reel1s
- sui '1'
- mvi h,0
- jz stopky1
- dcr a
- inx d ; reel2s
- mvi h,4
- jz stopky1 ; if '2'
- dcr a
- jnz spin ; if not '3'
- inx d ; reel3s
- mvi h,8
- stopky1:ldax d
- cpi 11h
- jc spin ; if now stopping
- mov a,h
- ora l
- stax d ; ranges from 10h to 1ch
- mvi a,8 ; minimum time between stop keys
- jmp spin1
-
- spiner: ldax b
- spiner1:ora a
- jz timer1 ; keep speed constant
- dcr a
- stax b
- cpi 11h
- jnc resetp ; if not slowing
- ani 3
- cpi 1
- jnc timer1 ; fill 3/4ths of time
- call spcout ; sound effects
- resetp: mov a,m
- cpi 40h ; cherry marker
- jc resetp1
- lxi h,cherryy
- resetp1:push d
- lxi d,-10 ; 10 bytes/line
- dad d
- pop d
- push h
- xchg
- call mvptn
- pop h ; restore new pattern position for save
- ret
-
- mvptn: lxi b,100h*10+12 ; 10 wide X 12 high
- mvptn2: push b
- push h
- mvptn1: ldax d
- mov m,a
- inx h
- inx d
- dcr b
- jnz mvptn1
- pop h
- pop b
- push d
- lxi d,lnlgth
- dad d
- pop d ; next line, same horizontal position
- dcr c
- jnz mvptn2
- ret
-
- timerx: mvi a,180 ; about right for me...
- jmp timer
-
- timer1 mvi a,8 ; run a bit faster (9 is exact)
- timer: push h
- mov h,a
- timea: dcr a
- jnz timea
- dcr h
- jnz timea
- pop h
- ret
-
- winchk: xra a
- sta value
- lxi h,vid+6*lnlgth+13
- call bytina
- mov e,a
- lxi h,vid+6*lnlgth+26
- call bytina
- mov d,a
- lxi h,vid+6*lnlgth+39
- call bytina
- cpi 7 ; bar code
- jnz notbar
- cmp d
- jz winer3 ; any+2 bars, is o.k.
- mov a,e ; reel 3's code = 1's
- notbar: cmp e ; r3 verses r1
- jnz lowchk
- cmp d ; r3 verses r2
- jnz lowchk
- winer3: mvi d,0
- lxi h,paytbl
- dad d
- mov a,m ; table+code = win value
- jmp strval
- lowchk: mov a,e
- cpi 1 ; cherry's code
- rnz
- cmp d ; r1 verses r2
- mvi a,2 ; just for first cherry
- jnz strval
- mvi a,5 ; for both cherries
- strval: sta value
- cpi 250
- rz
- ora a
- jz addjak ; if lemon, won
- cpi 14
- rc
- pljack: rrc
- rrc
- rrc
- ani 0fh
- rz
- addjak: mov e,a
- mvi d,0
- inx d
- lhld jackpot
- dad d ; adds from 1 to 13 on jackpot
- jmp init2
-
- bytina: mvi a,01000000b ; non-display code bit
- mov c,a
- ana m
- rlc
- mov b,a
- mov a,c
- inx h
- ana m
- ora b
- rlc
- mov b,a
- mov a,c
- inx h
- ana m
- ora b
- rlc
- rlc ; adjust to lowest bits
- ret
-
- charge: lhld credtv
- dcx h
- charge1:shld credtv
- shocred:lxi d,kredit
- lxi h,vid+7*lnlgth+49
- call shostg
- lhld credtv
- shocrd1:lxi d,vid+8*lnlgth+52
- mvi b,1 ; all zeros show
- jmp sho5dig
-
- showin: lxi d,winstg
- lxi h,vid+7*lnlgth+2
- call shostg
- lxi d,vid+8*lnlgth+2
- lhld value
- mvi b,0 ; leading zeros suppressed
- sho5dig:push d
- lxi d,-10000 ; X = 10000 divisor
- call divx
- pop d
- stax d
- inx d
- push d
- lxi d,-1000
- call divx
- pop d
- stax d
- inx d
- push d
- lxi d,-100
- call divx
- pop d
- stax d
- inx d
- push d
- lxi d,-10
- call divx
- pop d
- stax d
- inx d
- push d
- lxi d,-1
- call divx
- pop d
- cpi ' '
- jnz lastd
- mvi a,'0' ; show at least 1 disgit, if zero
- lastd: stax d
- ret
-
- divx: mvi c,'0'-1
- divx1: inr c
- dad d
- jc divx1
- mov a,e
- cma
- mov e,a
- mov a,d
- cma
- mov d,a
- inx d ; two's complement in D reg.
- dad d
- mov a,c
- ora b
- mov b,a ; set suppress flag
- cpi '0'
- jnz nlzero
- mvi c,' ' ; if only zeros to here
- nlzero: mov a,c
- ret
-
- ldjack: mvi a,5
- ldjak1: sta trials
- call setdsk
- call setfcb
- call open
- rm
- call read
- jnz tryagn
- lhld dmad
- shld jackpot
- lhld dmad+2
- shld recipt
- jmp close
- tryagn: lda trials
- dcr a
- jnz ldjak1
- dcr a
- ret
-
- svjack: mvi a,5
- svjack1:sta trials
- call setdsk
- call setfcb
- call delete
- call create
- cpi 55
- rnc
- lhld jackpot
- shld dmad
- lhld recipt
- shld dmad+2
- call write
- jnz retry
- call close
- rp
- retry: lda trials
- dcr a
- jnz svjack1
- ret
-
- mvzfcb: lxi b,21h
- lxi h,fcb
- mvcybm: push h
- mvcybm1:mov m,b
- inx h
- dcr c
- jnz mvcybm1
- pop h
- ret
-
- setfcb: call mvzfcb
- lxi d,jackfl
- inx h
- jmp shostg
-
- nready: lxi d,nredy
- jmp ready1
-
- ready: lxi d,redy
- ready1: lxi h,vid+11*lnlgth+2
- shostg: ldax d
- inx d ; now to skip stop on return
- ora a
- rz
- mov m,a
- inx h
- jmp shostg
-
- erase: mvi a,vidndh
- lxi h,vid
- erase1: mvi m,' '
- inx h
- cmp h
- jnz erase1
- ret
-
- pcin: push b
- mvi b,6 ; low address byte of bios "console status"
- jmp caler
-
- pcread: push b
- mvi b,9 ; low address byte of bios "console input"
- jmp caler
-
- belout: mvi a,belmk
- jmp prchr
-
- spcout: mvi a,' '
- jmp prchr
-
- bksout: mvi a,bkspmk
- jmp prchr
-
- crout: mvi a,crmk
- prchr: push b
-
- if printer
- mvi b,0fh ; low address byte of bios "list"
- endif
-
- if not printer
- mvi b,0ch ; low address byte of bios "conout"
- endif
-
- caler: push d
- push h
- mov c,a ; routines expect value in C reg.
- lhld wmstt+1 ; H&L regs. = bios warmboot = xx03h
- mov l,b
- lxi d,rtnbak
- push d
- pchl
-
- ;
- ; BIOS routine executes here
- ;
- rtnbak: pop h
- pop d
- pop b
- ret
-
- setdsk: mvi a,setbdos
- jmp abdos
-
- delete: mvi a,deletef
- jmp abdos
-
- create: mvi a,creatf
- jmp abdos
-
- write: mvi a,writef
- jmp abdos
-
- close: mvi a,closef
- jmp abdos
-
- open: mvi a,openf
- jmp abdos
-
- read: mvi a,readf
- abdos: mov c,a
- lxi d,fcb
- call bdos
- push a
- lda attb-lnlgth
- cpi 'B'
- jnz abdos1
- call erase
- lxi d,dskerr
- lxi h,vid+6*lnlgth+9
- call shostg
- jmp wmstt ; bail out to CP/M
- abdos1: pop a
- ora a
- ret
-
- dskerr: db 'Problem with drive A: disk, returning to CP/M',0
-
- jackstg:db '$' or 80h,' ' or 80h,'J' or 80h
- db 'A' or 80h,'C' or 80h,'K' or 80h
- db 'P' or 80h,'O' or 80h,'T' or 80h
- db ' ' or 80h,'$' or 80H,' ' or 80h,0
-
- njakstg:db ' '
- nredy: db ' ',0
-
- redy: db ' ' or 80h,'R' or 80h,'E' or 80h
- db 'A' or 80h,'D' or 80h,'Y' or 80h
- db ' ' or 80h,0
-
- jackfl: db 'jackpotslot',0
-
- tststg: db 'Testing',0
-
- kredit: db '$ Credit $',0
-
- rcptstg:db ' Receipts ',0
-
- winstg: db '$ Wins $',0
-
- exitstg:db ctrl and 'E',ctrl and 'X',ctrl and 'I',ctrl and 'T',0
-
- zerostg:db ctrl and 'Z',ctrl and 'E',ctrl and 'R',ctrl and 'O',0
-
- tstmch: db ctrl and 'T',ctrl and 'E',ctrl and 'S',ctrl and 'T',0
-
- playstg:db ctrl and 'P',ctrl and 'L',ctrl and 'A',ctrl and 'Y',0
-
- ;
- ; paytable, where:
- ;
- ; lem=0, cht=10, org=10, plm=14, bel=20, $$$=50, mel=100, bar=250
- ;
- paytbl: db 0,10,10,14,20,50,100,250
-
- payoff: db ' All bars= 250+jackpot '
- db ' Las Vegas '
- db 'Melon+ M/Bar+M/Bar=100 '
- db '$$$$+$$/Bar+$$/Bar=50 '
- db ' Super-Slot '
- db 'Bell+BL/Bar+BL/Bar=20',0
- db ' Plum+PL/Bar+PL/Bar=14 '
- db ' (c) 1980 '
- db 'Orange+0/Bar+0/Bar=10 '
- db 'Cherry+C/Bar+C/Bar=10 '
- db ' Dave Friedman '
- db 'C+C+Any=5 C+Any=2',0
-
- cherry:
-
- db 40h
- db 00h
- db 00h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 03h
- db 10h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 01h
- db 1eh
- db 00h
- db 00h
- db 09h
- db 1bh
- db 1fh
- db 2dh
- db 37h
- db 1fh
- db 3fh
- db 19h
- db 08h
- db 00h
- db 26h
- db 36h
- db 36h
- db 20h
- db 04h
- db 36h
- db 36h
- db 34h
- db 20h
- db 00h
- db 40h
- db 49h
- db 12h
- db 1bh
- db 19h
- db 09h
- db 08h
- db 00h
- db 00h
- db 01h
- db 34h
- db 0ch
- db 10h
- db 04h
- db 3bh
- db 2dh
- db 2eh
- db 3bh
- db 08h
- db 06h
- db 08h
- db 02h
- db 05h
- db 01h
- db 3ch
- db 2dh
- db 1bh
- db 1eh
- db 20h
- db 00h
- db 04h
- db 22h
- db 12h
- db 36h
- db 34h
- db 24h
- db 20h
- db 00h
- db 00h
-
- bell:
-
- db 00h
- db 40h
- db 12h
- db 12h
- db 13h
- db 1ah
- db 12h
- db 12h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 19h
- db 00h
- db 00h
- db 00h
- db 04h
- db 24h
- db 24h
- db 26h
- db 34h
- db 24h
- db 24h
- db 20h
- db 00h
- db 01h
- db 49h
- db 49h
- db 49h
- db 09h
- db 09h
- db 09h
- db 09h
- db 09h
- db 08h
- db 07h
- db 02h
- db 11h
- db 38h
- db 1bh
- db 18h
- db 38h
- db 12h
- db 07h
- db 38h
- db 07h
- db 06h
- db 30h
- db 38h
- db 1bh
- db 18h
- db 38h
- db 3bh
- db 2eh
- db 38h
- db 04h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 40h
- db 01h
- db 09h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 37h
- db 3fh
- db 3dh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 34h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 09h
- db 09h
- db 09h
- db 00h
- db 00h
- db 00h
- db 1bh
- db 1fh
- db 24h
- db 3fh
- db 3fh
- db 3fh
- db 30h
- db 00h
- db 00h
- db 0fh
- db 3fh
- db 3fh
- db 12h
- db 12h
- db 16h
- db 24h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 01h
- db 0bh
- db 1bh
- db 3fh
- db 3fh
- db 3bh
- db 18h
- db 00h
- db 00h
- db 02h
- db 3eh
- db 3fh
- db 3fh
- db 3eh
- db 34h
- db 20h
- db 00h
- db 00h
- db 02h
- db 34h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 01h
- db 09h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 37h
- db 3fh
- db 3dh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 34h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 00h
- db 42h
- db 1ah
- db 02h
- db 1ah
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 3ch
- db 24h
- db 3ch
- db 24h
- db 3ch
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 3ch
- db 24h
- db 3ch
- db 24h
- db 38h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 36h
- db 36h
- db 34h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 40h
- db 41h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 16h
- db 24h
- db 00h
- db 00h
- db 2dh
- db 3ah
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 02h
- db 34h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 04h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 12h
- db 12h
- db 13h
- db 1ah
- db 12h
- db 12h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 19h
- db 00h
- db 00h
- db 00h
- db 04h
- db 24h
- db 24h
- db 26h
- db 34h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 09h
- db 09h
- db 09h
- db 00h
- db 00h
- db 00h
- db 1bh
- db 1fh
- db 24h
- db 3fh
- db 3fh
- db 3fh
- db 30h
- db 00h
- db 00h
- db 0fh
- db 3fh
- db 3fh
- db 12h
- db 12h
- db 16h
- db 24h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 03h
- db 10h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 01h
- db 1eh
- db 00h
- db 00h
- db 09h
- db 1bh
- db 1fh
- db 2dh
- db 37h
- db 1fh
- db 3fh
- db 19h
- db 08h
- db 00h
- db 26h
- db 36h
- db 36h
- db 20h
- db 04h
- db 36h
- db 36h
- db 34h
- db 20h
- db 00h
- db 40h
- db 49h
- db 12h
- db 1bh
- db 19h
- db 09h
- db 08h
- db 00h
- db 00h
- db 01h
- db 34h
- db 0ch
- db 10h
- db 04h
- db 3bh
- db 2dh
- db 2eh
- db 3bh
- db 08h
- db 06h
- db 08h
- db 02h
- db 05h
- db 01h
- db 3ch
- db 2dh
- db 1bh
- db 1eh
- db 20h
- db 00h
- db 04h
- db 22h
- db 12h
- db 36h
- db 34h
- db 24h
- db 20h
- db 00h
- db 00h
-
- bellx:
-
- db 00h
- db 40h
- db 12h
- db 12h
- db 13h
- db 1ah
- db 12h
- db 12h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 19h
- db 00h
- db 00h
- db 00h
- db 04h
- db 24h
- db 24h
- db 26h
- db 34h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 40h
- db 00h
- db 42h
- db 1ah
- db 02h
- db 1ah
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 3ch
- db 24h
- db 3ch
- db 24h
- db 3ch
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 3ch
- db 24h
- db 3ch
- db 24h
- db 28h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 36h
- db 36h
- db 34h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 40h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 01h
- db 0bh
- db 1bh
- db 3fh
- db 3fh
- db 3bh
- db 18h
- db 00h
- db 00h
- db 02h
- db 3eh
- db 3fh
- db 3fh
- db 3eh
- db 34h
- db 20h
- db 00h
- db 00h
- db 02h
- db 34h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 01h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 16h
- db 24h
- db 00h
- db 00h
- db 2dh
- db 3ah
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 02h
- db 34h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 04h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 01h
- db 09h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 37h
- db 3fh
- db 3dh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 34h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 03h
- db 10h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 01h
- db 1eh
- db 00h
- db 00h
- db 09h
- db 1bh
- db 1fh
- db 2dh
- db 37h
- db 1fh
- db 3fh
- db 19h
- db 08h
- db 00h
- db 26h
- db 36h
- db 36h
- db 20h
- db 04h
- db 36h
- db 36h
- db 34h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 09h
- db 09h
- db 09h
- db 00h
- db 00h
- db 00h
- db 1bh
- db 1fh
- db 24h
- db 3fh
- db 3fh
- db 3fh
- db 30h
- db 00h
- db 00h
- db 0fh
- db 3fh
- db 3fh
- db 12h
- db 12h
- db 16h
- db 24h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
-
- bell1x:
-
- db 00h
- db 40h
- db 12h
- db 12h
- db 13h
- db 1ah
- db 12h
- db 12h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 19h
- db 00h
- db 00h
- db 00h
- db 04h
- db 24h
- db 24h
- db 26h
- db 34h
- db 24h
- db 24h
- db 20h
- db 00h
- db 01h
- db 49h
- db 49h
- db 49h
- db 09h
- db 09h
- db 09h
- db 09h
- db 09h
- db 08h
- db 07h
- db 02h
- db 11h
- db 38h
- db 1bh
- db 18h
- db 38h
- db 12h
- db 07h
- db 38h
- db 07h
- db 06h
- db 30h
- db 38h
- db 1bh
- db 18h
- db 38h
- db 3bh
- db 2eh
- db 38h
- db 04h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 40h
- db 01h
- db 09h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 37h
- db 3fh
- db 3dh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 34h
- db 00h
- db 00h
- db 00h
- db 24h
- db 24h
- db 24h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 01h
- db 0bh
- db 1bh
- db 3fh
- db 3fh
- db 3bh
- db 18h
- db 00h
- db 00h
- db 02h
- db 3eh
- db 3fh
- db 3fh
- db 3eh
- db 34h
- db 20h
- db 00h
- db 00h
- db 02h
- db 34h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 09h
- db 09h
- db 09h
- db 00h
- db 00h
- db 00h
- db 1bh
- db 1fh
- db 24h
- db 3fh
- db 3fh
- db 3fh
- db 30h
- db 00h
- db 00h
- db 0fh
- db 3fh
- db 3fh
- db 12h
- db 12h
- db 16h
- db 24h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 40h
- db 01h
- db 09h
- db 09h
- db 08h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 16h
- db 24h
- db 00h
- db 00h
- db 2dh
- db 3ah
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 02h
- db 34h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 04h
- db 20h
- db 00h
- db 00h
- db 00h
- db 00h
-
- cherryy:
-
- db 40h
- db 00h
- db 00h
- db 40h
- db 00h
- db 00h
- db 00h
- db 00h
- db 03h
- db 10h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 01h
- db 1eh
- db 00h
- db 00h
- db 09h
- db 1bh
- db 1fh
- db 2dh
- db 37h
- db 1fh
- db 3fh
- db 19h
- db 08h
- db 00h
- db 26h
- db 36h
- db 36h
- db 20h
- db 04h
- db 36h
- db 36h
- db 34h
- db 20h
- db 00h
- db 40h
- db 49h
- db 12h
- db 1bh
- db 19h
- db 09h
- db 08h
- db 00h
- db 00h
- db 01h
- db 34h
- db 0ch
- db 10h
- db 04h
- db 3bh
- db 2dh
- db 2eh
- db 3bh
- db 08h
- db 06h
- db 08h
- db 02h
- db 05h
- db 01h
- db 3ch
- db 2dh
- db 1bh
- db 1eh
- db 20h
- db 00h
- db 04h
- db 22h
- db 12h
- db 36h
- db 34h
- db 24h
- db 20h
- db 00h
- db 00h
- db 00h
- db 40h
- db 12h
- db 12h
- db 13h
- db 1ah
- db 12h
- db 12h
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 1fh
- db 3fh
- db 3fh
- db 3bh
- db 00h
- db 00h
- db 00h
- db 00h
- db 00h
- db 0bh
- db 3fh
- db 3fh
- db 3fh
- db 3fh
- db 19h
- db 00h
- db 00h
- db 00h
- db 04h
- db 24h
- db 24h
- db 26h
- db 34h
- db 24h
- db 24h
- db 20h
- db 00h
-
- final equ $
- stkptr equ final+20*2
- trials equ stkptr
- spincnt equ stkptr
- reel1s equ stkptr+1
- reel2s equ stkptr+2
- reel3s equ stkptr+3
- reel1p equ stkptr+4
- reel2p equ stkptr+6
- reel3p equ stkptr+8
- value equ stkptr+10
- credtv equ stkptr+12
- random equ stkptr+14
- jackpot equ stkptr+16
- recipt equ stkptr+18
-
- end
-
-