nba-jam/SCORE2.ASM

2212 lines
38 KiB
NASM
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

**************************************************************
*
* Owner: JOHNSON
*
* Software: Mark Turmell
* Initiated: 7/17/90
*
* Modified: Shawn Liptak, 11/13/91 -Insert coin fix, clean up
* Shawn Liptak, 2/18/92 -Basketball
*
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
*
*.Last mod - 3/19/93 13:10
**************************************************************
.file "score2.asm"
.title "score stuff"
.width 132
.option b,d,l,t
.mnolist
.include "mproc.equ"
.include "disp.equ"
.include "gsp.equ"
.include "sys.equ"
.include "imgtbl.glo"
.include "imgtbl2.glo"
.include "world.equ" ;Court-world defs
.include "game.equ"
.include "macros.hdr"
.include "audit.equ"
.asg 0,SEQT
.include "plyr.equ"
.include "arrow.glo"
;symbols externally defined
.ref IRQSKYE
.ref SOUNDSUP
.ref get_all_buttons_cur2
.ref TWOPLAYERS
; .ref player_toggle1 ;0 = no toggle
; .ref player_toggle2 ;0 = no toggle
.ref pal_set,amode_start,GAMSTATE,P1DATA
.ref KILBGND
.ref pal_clean
.ref WIPEOUT
.ref WNDWON
.ref WFLG
.ref get_but_val_cur,PSTATUS,cntrs_delay,HALT,GET_ADJ
.ref names,pal_getf,team1,team2
.ref AUD,AUD1,scores,PSTATUS2
.ref UNIT_CLR,get_all_buttons_down
.ref player1_data,player2_data,inbound
.ref player3_data,player4_data
.if DRONES_2MORE
.ref player5_data,player6_data
.endif
.ref pup_trbstealth
.ref un_wipe_horizontal,wipe_stack_vert_up
.ref wipe_horz_stag_dwn
.ref do_scrn_transition
.ref CREATE_NO_DEL_OBJS,NO_CREATE_DEL_OBJS
.ref brush20_ascii,brush50_ascii
.ref infoex_snd,bounce_snd
.ref mess_cursy,mess_objid
.ref setup_message,print_string_C2
.ref fade_down
.ref HANGF_R_P,HANGF_W_P
.ref BAKMODS,BGND_UD1
.ref BKGDBMOD
.ref gndstat,dtype,dpageflip
.ref tuneend_snd,tune_gmovr
.ref kp_qscrs,kp_qscrs2,kp_team1,kp_team2,kp_scores
.ref kp_p1_crtplr,kp_p2_crtplr,kp_p3_crtplr,kp_p4_crtplr
;MJT Start
.ref kp_p1_name1,kp_p1_name2,kp_p1_name3,kp_p1_name4
.ref kp_p1_name5,kp_p1_name6,kp_p1_hdnbr
.ref kp_p2_name1,kp_p2_name2,kp_p2_name3,kp_p2_name4
.ref kp_p2_name5,kp_p2_name6,kp_p2_hdnbr
.ref kp_p3_name1,kp_p3_name2,kp_p3_name3,kp_p3_name4
.ref kp_p3_name5,kp_p3_name6,kp_p3_hdnbr
.ref kp_p4_name1,kp_p4_name2,kp_p4_name3,kp_p4_name4
.ref kp_p4_name5,kp_p4_name6,kp_p4_hdnbr
;MJT End
;symbols defined in this file
.def player_data
;uninitialized ram definitions
BSSX idiot_bits,16
BSSX fontram,30*32 ;font imgs for red/white flashing
;equates first originated in this file
CONT_MAX equ 10
.text
#*****************************************************************************
*
* Increment dropout count & add in score differential
SUBR dropout_stats
movi AUD_NUMDROPOUT,a0
calla AUD1
move @scores,a1
move @scores+10h,a0
sub a0,a1
abs a1
movi AUD_DROPDIFF,a0
calla AUD
move @PSTATUS2,a0
andi 011b,a0
jrz #t1_cpu
move @PSTATUS2,a0
andi 01100b,a0
jrz #t2_cpu
movi AUD_DROPVSHUM,a0
calla AUD1
rets
#t1_cpu
#t2_cpu
movi AUD_DROPVSCPU,a0
calla AUD1
rets
#************************************
* Instructions
*
SUBR instructions
clr a11
move @PSTATUS,a0
btst 0,a0
jrz #nx1
CREATE 1123,print_inst
#nx1
movk 1,a11
move @PSTATUS,a0
btst 1,a0
jrz #nx2
CREATE 1123,print_inst
#nx2
movk 2,a11
move @PSTATUS,a0
btst 2,a0
jrz #nx3
CREATE 1123,print_inst
#nx3
movk 3,a11
move @PSTATUS,a0
btst 3,a0
jrz #nx4
CREATE 1123,print_inst
#nx4 SLEEPK 1
movi 1123,a0
clr a1
not a1
calla EXISTP
jrnz #nx4
RETP
* A11=Plyr # (0-3)
SUBR print_inst
SLEEPK 1
;Check player experience first!
move a11,a14
sll 5,a14
addi player_data,a14
move *a14,a14,L
move *a14(PR_COUNT),a7
jrn #no_inits
subk 5,a7
jage SUCIDE
#no_inits
move a11,*a13(PDATA+288)
;; CREATE0 do_warns
move a11,a0
movi 35*60,a0
move a0,@cntrs_delay
sll 5,a11
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi firstwin,a2
movi 19990,a3 ;z pos
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA),L
movi pal_t,a0
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2x
addi 4*32,a0
#not2x
add a11,a0
move *a0,a0,L
calla pal_getf
move a0,*a8(OPAL)
CREATE0 flsh_box
;Blink this img red/wht
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi ply_t,a2
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2
movi ply2_t,a2
#not2
add a11,a2
move *a2,a2,L ;Player #x
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+32),L
CREATE0 blink_plyr
move a0,*a13(PDATA+192),L
;Turn on msgs
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [2,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi joycontrol,a2
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+64),L
;Turn on msgs
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [1,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi colormessage,a2
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+96),L
;Turn on msgs
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [1,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi colors_t,a2
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2x2
addi 4*32,a2
#not2x2
add a11,a2
move *a2,a2,L
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+128),L
;Turn on arws
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [4fh,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
addi [0ch,0],a0
movi arws_t,a2
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2c
movi arws2_t,a2
#not2c
add a11,a2
move *a2,a2,L
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+160),L
;Turn on head
.ref getwindowhead
; movi team1,a1
cmpi 64,a11
jrlt #tag0
movk 2,a8
calla getwindowhead
PUSHP a0
; movi team2,a1
movk 3,a8
calla getwindowhead
move a0,a1
PULLP a0
jruc #tagout
#tag0
; calla getwindowhead
clr a8
calla getwindowhead
PUSHP a0
movk 1,a8
calla getwindowhead
move a0,a1
PULLP a0
#tagout
;a0=plyr 1 head img
;a1=plyr 2 head img
move a0,a2
cmpi 0,a11
jrz #tag1
cmpi 64,a11
jrz #tag1
move a1,a2
#tag1
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [61h+2,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
addi [4ch+2,0],a0
movi 19990,a3 ;z pos
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+224),L
movi names,a0
add a11,a0
move *a0,a2,L
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [23h,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
addi [32h,0],a0
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+256),L
SLEEPK 12
;Make sure the proper player presses his button
movi 10*60,a8
#whopper_with_cheese
SLEEPK 1
move *a13(PDATA+288),a0
calla get_but_val_cur
move a0,a0
jrnz #exit
dsj a8,#whopper_with_cheese
#exit move *a13(PDATA+192),a0,L
calla KILL
SOUND1 infoex_snd
move *a13(PDATA+32),a0,L
calla DELOBJ
move *a13(PDATA+64),a0,L
calla DELOBJ
move *a13(PDATA+96),a0,L
calla DELOBJ
move *a13(PDATA+128),a0,L
calla DELOBJ
move *a13(PDATA+160),a0,L
calla DELOBJ
move *a13(PDATA+224),a0,L
calla DELOBJ
move *a13(PDATA+256),a0,L
calla DELOBJ
;Show second page of instructions
move @PSTATUS,a0
move *a13(PDATA+288),a1
XORK 1,a1
btst a1,a0
jrnz #no_drone
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [4,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi dronetxt,a2
movi 19990,a3 ;z pos
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+32),L
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi ply_t,a2
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2a
movi ply2_t,a2
#not2a
add a11,a2
move *a2,a2,L ;Player #x
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+64),L
CREATE0 blink_plyr
move a0,*a13(PDATA+192),L
SLEEP 12
;Make sure the proper player presses his button
movi 11*60,a9
#whopper_with_cheese1
SLEEPK 1
move *a13(PDATA+288),a0
calla get_but_val_cur
move a0,a0
jrnz #exit1
dsj a9,#whopper_with_cheese1
#exit1
move *a13(PDATA+192),a0,L
calla KILL
SOUND1 infoex_snd
move *a13(PDATA+32),a0,L
calla DELOBJ
move *a13(PDATA+64),a0,L
calla DELOBJ
#no_drone
;3rd page of instructions
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [1,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi message4,a2
movi 19990,a3 ;z pos
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+32),L
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [1,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi message7,a2
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+64),L
SLEEP 12
;Make sure the proper player presses his button
movi 11*60,a9
#whopper_with_cheese2
SLEEPK 1
move *a13(PDATA+288),a0
calla get_but_val_cur
move a0,a0
jrnz #exit2
dsj a9,#whopper_with_cheese2
#exit2
SOUND1 infoex_snd
move *a13(PDATA+32),a0,L
calla DELOBJ
move *a13(PDATA+64),a0,L
calla DELOBJ
;4th page of instructions
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [2,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi message9,a2
movi 19990,a3 ;z pos
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+32),L
movi #boxy_t,a0
add a11,a0
move *a0,a1,L
addi [2,0],a1
movi #boxx_t,a0
add a11,a0
move *a0,a0,L
movi message2,a2
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+64),L
SLEEP 12
;Make sure the proper player presses his button
movi 10*60,a9
#whopper_with_cheese3
SLEEPK 1
move *a13(PDATA+288),a0
calla get_but_val_cur
move a0,a0
jrnz #exit3
dsj a9,#whopper_with_cheese3
#exit3
SOUND1 infoex_snd
movi 30,a9
movk 8,a10
#lft SLEEPK 1
;Send box off to lft
move *a13(PDATA),a0,L
move *a0(OYPOS),a1
add a10,a1
move a1,*a0(OYPOS)
move *a13(PDATA+32),a0,L
move *a0(OYPOS),a1
add a10,a1
move a1,*a0(OYPOS)
move *a13(PDATA+64),a0,L
move *a0(OYPOS),a1
add a10,a1
move a1,*a0(OYPOS)
dsj a9,#lft
move *a13(PDATA),a0,L
calla DELOBJ
move *a13(PDATA+32),a0,L
calla DELOBJ
move *a13(PDATA+64),a0,L
calla DELOBJ
; clr a0
; move a0,@HALT
; move a0,@cntrs_delay
DIE
colors_t
; .long red,yellow,green,blue
.long blue,green,yellow,red
;For kit
.long blue,blue,red,red
arws_t
.long arrown1r,arrown2r,arrown3r,arrown4r
arws2_t
.long arrown1r2p,arrown1r2p,arrown2r2p,arrown2r2p
#boxy_t .long [48-8,0],[48+70+8,0],[48-8,0],[48+70+8,0]
#boxx_t .long [7,0],[64h,0],[0c3h,0],[120h,0]
ply_t .long plyr1,plyr2,plyr3,plyr4
ply2_t .long plyr1,plyr1,plyr2,plyr2
pal_t
.long HINT_B_P,HINT_B_P,HINT_B_P,HINT_B_P ;normal 4 plyr
.long HINT_B_P,HINT_B_P,HINT_B_P,HINT_B_P ;KIT
; .long GROWBOXb,GROWBOXb,GROWBOXr,GROWBOXr ;
; .long GROWBOXb,GROWBOXb,GROWBOXr,GROWBOXr ;kit
#***************************************************************
* Shake screen as if an earthquake is in effect
* A10 = # ticks to shake and power of shake
* Note: time to shake must be more than 6 ticks
BSSX #SHK_ON,16 ;is a shake in progress?
BSSX #Y_ADJ,32 ;current deviation from rest
BSSX shakers_started,16
BSSX shakers_finished,16
BSSX shakers_killed,16
SUBR SHAKER2
;check for a valid a10
move a10,a10
jrn #done
jrz #done
move @#SHK_ON,a0
jrz #no_shake
;abort shake currently in progress
movi SHAKE_PID,a0
calla KIL1C
move @#Y_ADJ,a14,L
move @WORLDTLY,a0,L
sub a14,a0
move a0,@WORLDTLY,L
move @shakers_killed,a14
inc a14
move a14,@shakers_killed
#no_shake
;set the 'in progress' flag
movk 1,a14
move a14,@#SHK_ON
;create the shaker process
CREATE SHAKE_PID,#shaker
#done
rets
#shaker
;a9 = index into sine table
;a10 = time left
;a11 = original time left
;initialize
movi #last_entry,a9
move a10,a11
move @shakers_started,a14
inc a14
move a14,@shakers_started
#loop
;calculate the new offset
;get the cosine
move a9,a14
sll 4,a14
addi #sine_table,a14
move *a14,a0,W
;get the exp (index is 64 - (64 * a10 / a11)
move a10,a1
sll 6,a1
divu a11,a1
neg a1
addi 64,a1
sll 4,a1
addi #exp_table,a1
move *a1,a1,W
;multiply
mpys a0,a1
;scale
sra 5,a1
mpyu a11,a1
move a1,@#Y_ADJ,L
;update the table pointer
dec a9
jrnn #table_ok
;;;; dsj a9,#table_ok
;;;; movi #last_entry,a9
#table_ok
;apply it
move @WORLDTLY,a14,L
add a14,a1
move a1,@WORLDTLY,L
;nap
SLEEPK 1
;undo it
move @#Y_ADJ,a14,L
move @WORLDTLY,a1,L
sub a14,a1
move a1,@WORLDTLY,L
;loop
dsj a10,#loop
;all done
clr a14
move a14,@#SHK_ON
move a14,@#Y_ADJ,L
move @shakers_finished,a14
inc a14
move a14,@shakers_finished
DIE
;36-degree increments
#cosine_table ;deg
.word 828 ;324
.word 316 ;288
.word -315 ;252
.word -827 ;216
.word -102 ;180
.word -827 ;144
.word -315 ;108
.word 316 ;72
.word 828 ;36
.word 1024 ;0
#sine_table ;deg
.word -601 ;324
.word -973 ;288
.word -973 ;252
.word -601 ;216
.word 0 ;180
.word 602 ;144
.word 974 ;108
.word 974 ;72
.word 602 ;36
.word 0 ;0
#last_entry equ 9
;values of e^(-x) for values from 0 to 7, in 64 divisions
; e.g. e^-1.5 is the 32nd entry
; all values are multiplied by 1024
#exp_table ;damps at speed 5
.word 1024,945,873,807,745,688,636,587
.word 542,501,463,427,395,364,337,311
.word 287,265,245,226,209,193,178,165
.word 152,140,130,120,110,102,94,87
.word 80,74,68,63,58,54,50,46
.word 42,39,36,33,31,28,26,24
.word 22,20,19,17,16,15,14,13
.word 12,11,10,9,8,8,7,6
#***************************************************************
* Shake screen as as if an earthquake is in effect
* A10 = # ticks to shake and power of shake
* Note: time to shake must be more than 6 ticks
.BSS AMP,16
.BSS AMPCNT,16
.BSS XSET,16
.BSS YSET,16
BSSX SHK_ON,16
.ref RNDRNG0
SUBR SHAKER
move @SHK_ON,a0
jrnz #x
move a10,a11
movk 8,a0
move a0,@SHK_ON
divs a0,a11
move a0,@AMP
move a11,@AMPCNT
CREATE0 shakelp
#x RETS
shakelp
move @AMP,a0
calla RNDRNG0
move a0,@XSET
move @AMP,a0
calla RNDRNG0
move a0,@YSET
move @HCOUNT,a14
btst 0,a14
jrz #shakey
move @XSET,a1
move @WORLDTLX,a0,L
sll 16,a1
add a1,a0
move a0,@WORLDTLX,L
SLEEPK 1
move @XSET,a1
move @WORLDTLX,a0,L
sll 16,a1
sub a1,a0
move a0,@WORLDTLX,L
jruc shakelp
#shakey
move @YSET,a1
move @WORLDTLY,a0,L
sll 16,a1
add a1,a0
move a0,@WORLDTLY,L
SLEEPK 1
move @YSET,a1
move @WORLDTLY,a0,L
sll 16,a1
sub a1,a0
move a0,@WORLDTLY,L
move @AMPCNT,a2
dec a2
move a2,@AMPCNT
jrnz #ampok
move a11,@AMPCNT
move @AMP,a0
cmpi 1,a0
jrz #ampok
dec a0
move a0,@AMP
#ampok
dsj a10,shakelp
move a10,@SHK_ON
DIE
;; SUBR do_warns
;; DIE
;; SOUND1 warn2_snd
;; SLEEPK 20
;; SOUND1 warn2_snd
;; SLEEPK 20
;; SOUND1 warn2_snd
;; SLEEPK 20
;; SOUND1 warn2_snd
;; SLEEPK 20
;; SOUND1 warn2_snd
;; SLEEPK 20
;; SOUND1 warn2_snd
;; SLEEPK 20
;; SOUND1 warn2_snd
;; DIE
#************************************
* Create idiot box process to give the player a message
* A0=Message #
* A1=Plyr # (0-3)
SUBR idiot_box
.if DUNKTST | DEBUG
rets ;When testing dunks - PUT IN!
.endif
PUSH a7,a10,a11
.ref game_time
move @game_time,a14,L
cmpi >900,a14
jrlt #x
move a1,a14
sll 5,a14
addi player_data,a14
move *a14,a14,L
move *a14(PR_COUNT),a7
jrn #no_inits
move a0,a0
jrz #no_inits
subk 5,a7
jrge #x
#no_inits
move @PSTATUS,a14
btst a1,a14
jrnz #notdrn ;Drone?
move a0,a0
jrnz #x ;Out of credit message?
#notdrn
move a0,a10
move a1,a11
CREATE0 idiot_box2
#x PULL a7,a10,a11
rets
player_data
.long player1_data,player2_data
.long player3_data,player4_data
.if DRONES_2MORE
.long player5_data,player6_data
.endif
#************************************
* Idiot box (process)
* A10=Message #
* A11=Plyr # (0-3)
SUBRP idiot_box2
;Check player experience first!
#slp SLEEPK 1
move @idiot_bits,a0
btst a11,a0
jrnz #slp
move @inbound,a0
jann SUCIDE ;#slp
move a11,a0
sll 4,a0
addi bit_t,a0
move *a0,a0
move @idiot_bits,a1
or a0,a1
move a0,@idiot_bits
movi 5*60,a0
move a0,@HALT
move a0,@cntrs_delay
sll 5,a11
movi boxy_t,a0
add a11,a0
move *a0,a1,L
movi boxx_t,a0
add a11,a0
move *a0,a0,L
movi infobox,a2
movi 19990,a3 ;z pos
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA),L
movi pal_t,a0
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2xx
addi 4*32,a0
#not2xx
add a11,a0
move *a0,a0,L
calla pal_getf
move a0,*a8(OPAL)
CREATE0 flsh_box
;Blink this img red/wht
movi boxy_t,a0
add a11,a0
move *a0,a1,L
movi boxx_t,a0
add a11,a0
move *a0,a0,L
movi ply_t,a2
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not2b
movi ply2_t,a2
#not2b
add a11,a2
move *a2,a2,L ;Player #x
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+32),L
CREATE0 blink_plyr
movi msg_t,a2
sll 5,a10
add a10,a2
move *a2,a2,L
move a0,a10 ;Keep blink proc
movi boxy_t,a0
add a11,a0
move *a0,a1,L
movi boxx_t,a0
add a11,a0
move *a0,a0,L
clr a6
clr a7
calla BEGINOBJ2
move a8,*a13(PDATA+64),L
SLEEP TSEC*1
movi 4*60,a8
#whopper_with_cheese
SLEEPK 1
calla get_all_buttons_down
move a0,a0
jrnz #exit
dsj a8,#whopper_with_cheese
#exit move a10,a0
calla KILL
SOUND1 infoex_snd
movi 30,a9
movi -8,a10
cmpi 64,a11
jrlt #lft
;Send box off to right
movk 8,a10
#lft SLEEPK 1
;Send box off to lft
move *a13(PDATA),a0,L
move *a0(OXPOS),a1
add a10,a1
move a1,*a0(OXPOS)
move *a13(PDATA+32),a0,L
move *a0(OXPOS),a1
add a10,a1
move a1,*a0(OXPOS)
move *a13(PDATA+64),a0,L
move *a0(OXPOS),a1
add a10,a1
move a1,*a0(OXPOS)
dsj a9,#lft
move *a13(PDATA),a0,L
calla DELOBJ
move *a13(PDATA+32),a0,L
calla DELOBJ
move *a13(PDATA+64),a0,L
calla DELOBJ
addi bit_and,a11
move *a11,a0,L
move @idiot_bits,a1
and a0,a1
move a1,@idiot_bits
move a1,a1
janz SUCIDE
move @PSTATUS,a0
jaz SUCIDE
clr a0
move a0,@HALT
move a0,@cntrs_delay
DIE
SUBR blink_plyr
SLEEPK 15
SUBR blink_plyr2
SLEEPK 5
blink_plyr1
movi SGMD8RED,a0
calla pal_getf
move a0,*a8(OPAL)
SLEEPK 4
movi SGMD8WHT,a0
calla pal_getf
move a0,*a8(OPAL)
SLEEPK 7
jruc blink_plyr1
SUBR flsh_box
SLEEPK 2
;White color in instruction plate pal
movi >0101,a2
move a2,*a8(OCONST)
movk 3,a10
#again
callr const_on
SLEEPK 3
callr const_off
SLEEPK 3
dsj a10,#again
DIE
bit_t .word 1,2,4,8
bit_and .long >e,>d,>b,>7
boxy_t .long [48,0],[48+70,0],[48,0],[48+70,0]
boxx_t .long [7,0],[47h+6,0],[0dah+6,0],[127h-23,0]
msg_t .long message1,message2,message3,message4,message5,message6
.long message7,message2a
const_on
setf 4,0,0
movk M_CONNON,a0 ;Replace non-zero data with constant
move a0,*a8(OCTRL) ;Write 4 low bits
setf 16,1,0
rets
const_off
setf 4,0,0
movk M_WRNONZ,a0
move a0,*a8(OCTRL) ;Write 4 low bits
setf 16,1,0
rets
#*****************************************************************************
SUBR flash_bigtxt
SUBR flash_bigtxt2
movi OBJLST,a14
movi fontram,a3
clr a4
move a4,*a3,L
#lp
move *a14,a14,L
jrz #x
move *a14(OID),a2
cmpi CLSDEAD|123,a2
jrne #lp
move a14,*a3+,L
move a4,*a3,L
jruc #lp
#x
movi HANGF_W_P,a0
calla pal_getf
movi fontram,a3
#lp2
move *a3+,a1,L
jrz #xx
move a0,*a1(OPAL)
jruc #lp2
#xx SLEEPK 3
movi HANGF_R_P,a0
calla pal_getf
movi fontram,a3
#lp3
move *a3+,a1,L
jrz #xxx
move a0,*a1(OPAL)
jruc #lp3
#xxx SLEEPK 5
jruc #x
#*
SUBR flash_blu_txt
movi OBJLST,a14
movi fontram,a3
clr a4
move a4,*a3,L
#lp
move *a14,a14,L
jrz #x
move *a14(OID),a2
cmpi CLSDEAD|123,a2
jrne #lp
move a14,*a3+,L
move a4,*a3,L
jruc #lp
#x
movi BRSHGWKP,a0
calla pal_getf
movi fontram,a3
#lp2
move *a3+,a1,L
jrz #xx
move a0,*a1(OPAL)
jruc #lp2
#xx SLEEPK 3
movi BRSH_B_P,a0
calla pal_getf
movi fontram,a3
#lp3
move *a3+,a1,L
jrz #xxx
move a0,*a1(OPAL)
jruc #lp3
#xxx SLEEPK 5
jruc #x
#*************************************************************************
* Game over process
SUBR game_over
movi AUDBONE,a0 ;DEC CMOS CNT OF GAMES STARTED
movi -1,a1
calla AUD
movk INGAMEOV,a0
move a0,@GAMSTATE
clr a0
move a0,@PSTATUS
move a0,@PSTATUS2
;MJT Start
move @player1_data+PR_CREATED_PLYR,a14
move a14,@kp_p1_crtplr
move @player1_data+PR_NAME1,a14
move a14,@kp_p1_name1
move @player1_data+PR_NAME2,a14
move a14,@kp_p1_name2
move @player1_data+PR_NAME3,a14
move a14,@kp_p1_name3
move @player1_data+PR_NAME4,a14
move a14,@kp_p1_name4
move @player1_data+PR_NAME5,a14
move a14,@kp_p1_name5
move @player1_data+PR_NAME6,a14
move a14,@kp_p1_name6
move @player1_data+PR_HEAD_NBR,a14
move a14,@kp_p1_hdnbr
move @player2_data+PR_CREATED_PLYR,a14
move a14,@kp_p2_crtplr
move @player2_data+PR_NAME1,a14
move a14,@kp_p2_name1
move @player2_data+PR_NAME2,a14
move a14,@kp_p2_name2
move @player2_data+PR_NAME3,a14
move a14,@kp_p2_name3
move @player2_data+PR_NAME4,a14
move a14,@kp_p2_name4
move @player2_data+PR_NAME5,a14
move a14,@kp_p2_name5
move @player2_data+PR_NAME6,a14
move a14,@kp_p2_name6
move @player2_data+PR_HEAD_NBR,a14
move a14,@kp_p2_hdnbr
move @player3_data+PR_CREATED_PLYR,a14
move a14,@kp_p3_crtplr
move @player3_data+PR_NAME1,a14
move a14,@kp_p3_name1
move @player3_data+PR_NAME2,a14
move a14,@kp_p3_name2
move @player3_data+PR_NAME3,a14
move a14,@kp_p3_name3
move @player3_data+PR_NAME4,a14
move a14,@kp_p3_name4
move @player3_data+PR_NAME5,a14
move a14,@kp_p3_name5
move @player3_data+PR_NAME6,a14
move a14,@kp_p3_name6
move @player3_data+PR_HEAD_NBR,a14
move a14,@kp_p3_hdnbr
move @player4_data+PR_CREATED_PLYR,a14
move a14,@kp_p4_crtplr
move @player4_data+PR_NAME1,a14
move a14,@kp_p4_name1
move @player4_data+PR_NAME2,a14
move a14,@kp_p4_name2
move @player4_data+PR_NAME3,a14
move a14,@kp_p4_name3
move @player4_data+PR_NAME4,a14
move a14,@kp_p4_name4
move @player4_data+PR_NAME5,a14
move a14,@kp_p4_name5
move @player4_data+PR_NAME6,a14
move a14,@kp_p4_name6
move @player4_data+PR_HEAD_NBR,a14
move a14,@kp_p4_hdnbr
;MJT End
clr a1
move a1,@player1_data+PR_CREATED_PLYR ;stop plyr from being
move a1,@player2_data+PR_CREATED_PLYR ;seen in amode
move a1,@player3_data+PR_CREATED_PLYR
move a1,@player4_data+PR_CREATED_PLYR
.ref clear_secret_powerup_ram
calla clear_secret_powerup_ram
clr a0 ;Fixed (?) game over stuff
move a0,@DISPLAYON ;Fixed (?) game over stuff
calla WIPEOUT ;Fixed (?) game over stuff
clr a0 ;Fixed (?) game over stuff
move a0,@dtype ;2D ;Fixed (?) game over stuff
movi LN1b_setup,a2
calla setup_message
movi CLSNEUT|TYPTEXT|SUBMES1,a0
move a0,@mess_objid ;OBJ ID's for text
movi #str_game,a4
calla print_string_C2
movi LN2b_setup,a2
calla setup_message
movi CLSNEUT|TYPTEXT|SUBMES1,a0
move a0,@mess_objid ;OBJ ID's for text
movi #str_over,a4
calla print_string_C2
movi OBJLST,a10
jruc #start
#next_obj
move *a10(OID),a0
cmpi CLSNEUT|TYPTEXT|SUBMES1,a0
jrne #not_gover
movi 30002,a0
move a0,*a10(OZPOS) ;higher priority than black window
#not_gover
#start
move *a10,a10,L
jrnz #next_obj
movk 1,a0
move a0,@HALT
movi JOIN_CYCLE_PID,a0
calla KIL1C
movi CYCPID2,a0
calla KIL1C
movi CYCPID,a0
calla KIL1C
SLEEPK 3
movk 1,a0 ;Fixed (?) game over stuff
move a0,@DISPLAYON ;Fixed (?) game over stuff
movi #pal_t,a10
movi 64,a11
CREATE0 fade_down
SLEEP 2*TSEC
clr a0
move a0,@DISPLAYON ;Turn the display off
.ref result_screen
JSRP result_screen
SOUND1 tuneend_snd
SOUND1 tune_gmovr
calla UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
calla WIPEOUT
SLEEPK 1
movk 1,a0
move a0,@DISPLAYON ;Turn the display back on
clr a0
move a0,@WFLG
jauc amode_start ;Start attract mode
#pal_t .long BRSH50R_P,0
LN1b_setup
PRINT_STR brush50_ascii,6,0,200,57,BRSH50R_P,0
LN2b_setup
PRINT_STR brush50_ascii,6,0,200,128,BRSH50R_P,0
#str_game
.byte "GAME",0
#str_over
.byte "OVER",0
.even
game_ovr_mod
.long BKGDBMOD
.word 0,0
.long 0
#*************************************************************************
* Game over processing - called at end of 'CREATE-A-PLAYER'
*
SUBR game_over_processing
movi AUDBONE,a0 ;DEC CMOS CNT OF GAMES STARTED
movi -1,a1
calla AUD
clr a0
move a0,@PSTATUS
move a0,@PSTATUS2
; movk 1,a0
; move a0,@HALT
clr a1 ;kill all processes
calla KILALL
clr a1
move a1,@player1_data+PR_CREATED_PLYR ;stop plyr from being
move a1,@player2_data+PR_CREATED_PLYR ;seen in amode
move a1,@player3_data+PR_CREATED_PLYR
move a1,@player4_data+PR_CREATED_PLYR
calla pal_clean
; clr a0
; move a0,@DISPLAYON ;Turn the display off
calla UNIT_CLR ;CLEAR THE FACTIONS OF FRACTIONS
; calla WIPEOUT
; movk 1,a0
; move a0,@DISPLAYON ;Turn the display back on
clr a0
move a0,@WFLG
rets
#******************************************************************
* Note: Scratch = A0-A2,A14,B0-B1
* A9=plyr *obj
* A10=plyr *proc
* A11=plyr #
* A13=plyr_lost *proc
SUBR update_shoes
; .if IMGVIEW
; rets
; .endif
move a11,a0
sll 5,a0
addi player_data,a0,L
move *a0,a0,L
move *a0(PR_PRIVILEGES),a0
jrle #ushs ;br=not a created player
btst 1,a0 ;STEALTH TURBO privilege ?
jrnz #x ;br=yes
#ushs
move @pup_trbstealth,a14
btst a11,a14 ;Plyr have stealth turbo?
jrnz #x ;br=yes
; move *a10(plyr_keeppal),a14
; jrnz #x ;Br=flames on body mode
movi wht_shoes,a0 ;*pal data
; btst 0,a11
; jrz #noblk
; movi blk_shoes,a0 ;*pal data
;#noblk
move *a10(PA11),a14,L
move *a14,a14 ;A14=Ctrl bits
btst 6,a14 ;Turbo but down?
jrz #noturb ;br=no
move *a10(plyr_PDATA_p),a14,L ;Deref plyr *proc for *data
move *a14(ply_turbo),a14 ;No turbo left?
jrz #noturb ;br=none left
move @PSTATUS,a14
btst a11,a14 ;Plyr human or drone?
jrz #noturb ;br=drone
movi shoec_t,a0
move @TWOPLAYERS,a14 ;0 = NO, 1 = YES 2 players
jrz #not_2p
movi shoec_t_kit,a0
#not_2p
move a11,a14
sll 5,a14
add a14,a0
move *a0,a0,L ;*pal data
; btst 0,a11
; jrz #nogrn
; movi grn_shoes,a0 ;*pal data
;#nogrn
#noturb
move @GAMSTATE,a14 ;No pal change in attract
cmpi INAMODE,a14
jrz #x
move *a13(PDATA),a14,L ;Nothing to do if already set
cmp a0,a14
jrz #x
move a0,*a13(PDATA),L ;Save *pal data
move *a9(OPAL),a1
andi 0ff00h,a1
addi 93,a1 ;!!!Starting color #
; movk 16,a2 ;!!!Color cnt
movk 13,a2 ;!!!Color cnt
calla pal_set
#x
rets
shoec_t
.long #blu,#grn,#yel,#red
shoec_t_kit
.long #blu,#blu,#red,#red
#red
; COLORW 31,0,0
; COLORW 26,0,0
; COLORW 20,0,0
; COLORW 15,0,0
; COLORW 10,0,0
;SHOER_P:
.word 07c00h,07000h,06800h,05c00h,05000h,04800h,03c00h
.word 03000h,02800h,01c00h,01000h,00800h,00000h
; .word 07d06h,07cc4h,07482h
; .word 06c40h,06400h,05800h
; .word 05000h,04800h,03800h
; .word 03000h,02800h,02000h
; .word 01800h,00c00h,00400h
; .word 00000h
#grn
; COLORW 0,(31-7),0
; COLORW 0,(27-7),0
; COLORW 0,(22-7),0
; COLORW 0,(18-7),0
; COLORW 0,(14-7),0
;SHOEG_P:
.word 003e0h,00380h,00340h,002e0h,00280h,00240h,001e0h
.word 00180h,00140h,000e0h,00080h,00040h,00000h
; .word 00b66h,00324h,002e2h
; .word 002a0h,00260h,00200h
; .word 001c0h,001a0h,00160h
; .word 00120h,000e0h,000a0h
; .word 00060h,00000h,00000h
; .word 00000h
#blu
; COLORW 0,10,31
; COLORW 0,8,27
; COLORW 0,6,22
; COLORW 0,4,18
; COLORW 0,0,14
;SHOEB_P:
.word 001ffh,001dch,0019ah,00177h,00154h,00112h,000efh
.word 000cch,0008ah,00067h,00044h,00002h,00000h
; .word 02ddfh,0259fh,01d5fh
; .word 0151fh,00cdeh,0007bh
; .word 00039h,00017h,00015h
; .word 00013h,00011h,0000fh
; .word 0000dh,0000ah,00008h
; .word 00007h
#yel
; COLORW 31,31,0
; COLORW 27,27,0
; COLORW 22,22,0
; COLORW 18,18,0
; COLORW 14,14,0
;SHOEY_P:
.word 07fe0h,07380h,06b40h,05ee0h,05280h,04a40h,03de0h
.word 03180h,02940h,01ce0h,01080h,00840h,00000h
; .word 07fe6h,07bc4h,07382h
; .word 06b40h,06300h,056a0h
; .word 04e60h,04620h,035a0h
; .word 02d60h,02520h,01ce0h
; .word 014a0h,00840h,00000h
; .word 00000h
wht_shoes
; COLORW 31,31,31
; COLORW 27,27,27
; COLORW 22,22,22
; COLORW 18,18,18
; COLORW 14,14,14
;
;SHOEW_P:
.word 077bdh,06f7bh,06318h,05ad6h,04e73h,04631h,039ceh
.word 0318ch,02529h,01ce7h,01084h,00842h,00000h
; .word 07fffh,077bdh,06f7bh
; .word 06739h,05ef7h,05294h
; .word 04a52h,04210h,039ceh
; .word 0318ch,0294ah,02108h
; .word 018c6h,00c63h,00421h
; .word 00000h
;--------------------
.if 0
SUBR drwnbalogo
SLEEP 3*60
movi [3,0],a10
movi [-300,0],a11
#drw
movi nbalogo,a9
CREATE0 logo_drift
SLEEP 120
movi stay,a9
CREATE0 logo_drift
SLEEP 120
movi nbalogo,a9
CREATE0 logo_drift
SLEEP 14*60
movi [-3,0],a10
movi [520,0],a11
jruc #drw
logo_drift
move a11,a0
movi [40,0],a1
movi >7591,a3 ;Z
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
move a9,a2
movi CLSDEAD,a5
move a10,a6
clr a7
calla BEGINOBJ2
SLEEP 700/3+120
jauc DELOBJDIE
SUBR drw_cards
;Turn on backboard and hoop base
movi [200,0],a0
movi [20,0],a1
movi bkbd1,a2
movi >7591,a3 ;Z
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
;
movi [200,0],a0
movi [20,0],a1
movi bkbd2,a2
movi >7591,a3 ;Z
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
;
movi [200,0],a0
movi [20,0],a1
movi bkbd3,a2
movi >7591,a3 ;Z
movi DMAWNZ|M_NOCOLL|M_SCRNREL,a4
movi CLSDEAD,a5
clr a6
clr a7
calla BEGINOBJ2
;Turn on a top card
movi player_t,a10
movk 26,a9
movi [-100,0],a0
movi [20,0],a1
movi card_g,a2
movi >7591,a3 ;Z
movi DMAWNZ|M_NOCOLL,a4
movi CLSDEAD,a5
movi [1,0],a6
clr a7
calla BEGINOBJ2
SLEEP 700/3+120
jauc DELOBJDIE
px .equ -100
py .equ 20
boxx .equ -100
boxy .equ 20
player_t
.long card_g
.word boxx,boxy
.long r_hbar
.word boxx,boxy
.long r_vbar
.word boxx,boxy
.long AUG_ATL
.word px,py
.long augmon_90
.word boxx+80,boxy+30
.long 0
;---> card_g,card_v,l_hbar,l_vbar,r_hbar,r_vbar,lohaus_90,iuzzo_90,mchale_90
;---> laim_90,edwards_90,gugli_90,augmon_90,barkley_90,benj_90,coleman_90
;---> daug_90,day_90,divac_90,drexler_90,elliot_90,ellis_90,smith_90
;---> stockton_90,thomas_90,tisdale_90,ellison_90,ewing_90,gill_90,grant_90
;---> hardaway_90,harper_90,hawkins_90,horna_90,jackson_90,johnson_90,kemp_90
;---> laetner_90,lewis_90,majerle_90,malone_90,manning_90,miller_90,mullin_90
;---> mutumbo_90,mcdan_90,oakley_90,olaj_90,oneal_90,person_90,petro_90
;---> pippen_90,porter_90,price_90,rice_90,robinson_90,rodman_90,schrempf_90
;---> seik_90,skiles_90,webb_90,wilkins_90,worthy_90
#********************************
* Print starring NBA players list
SUBR starring
clr a0
move a0,@HALT
move a0,@IRQSKYE ;background color
CREATE0 starring_nms
movi 46,a10
movi guyhds,a9
SLEEPK 20
#lp
;Do left side
movi [-90,0],a0
movi [92,0],a1
movi t_plateV,a2
movi 1,a3 ;Z
movi DMAWNZ|M_NOCOLL,a4
movi CLSDEAD,a5
movi [4,8000h],a6
clr a7
calla BEGINOBJ
CREATE0 del_me
movi [-90+4,0],a0
movi [92+67,0],a1
move *a9+,a2,L
movi 1,a3 ;Z
movi DMAWNZ|M_NOCOLL,a4
movi CLSDEAD,a5
movi [4,8000h],a6
clr a7
calla BEGINOBJ
CREATE0 del_me
; SLEEPK 10
;Do right side
movi [400+4,0],a0
movi [15+67,0],a1
move *a9+,a2,L
movi 1,a3 ;Z
movi DMAWNZ|M_NOCOLL,a4
movi CLSDEAD,a5
movi [-5,8000h],a6
clr a7
calla BEGINOBJ
CREATE0 del_me
movi [400,0],a0
movi [15,0],a1
movi t_plateV,a2
movi 1,a3 ;Z
movi DMAWNZ|M_NOCOLL,a4
movi CLSDEAD,a5
movi [-5,8000h],a6
clr a7
calla BEGINOBJ
CREATE0 del_me
movi 22,a11
#lplp SLEEPK 1
calla get_all_buttons_cur2
jrz #nob
clr a0
move a0,@SOUNDSUP ;turn all sounds on
SOUND1 bounce_snd
movk 1,a0
move a0,@SOUNDSUP ;turn all sounds off
jruc #x
#nob dsj a11,#lplp
dsj a10,#lp
SLEEP 2ah
#x calla pal_clean
RETP
del_me SLEEP 74h
calla DELOBJA8
DIE
#********************************
* Print starring NBA players list
SUBRP starring_nms
movi #ln0_setup,a2
calla setup_message
movi CLSDEAD|124,a0
move a0,@mess_objid
movi 195,a0
move a0,@mess_cursy
movi #str_1,a4
calla print_string_C2
movi #ln0_setup1,a2
calla setup_message
movi CLSDEAD|123,a0
move a0,@mess_objid
movi 219,a0
move a0,@mess_cursy
movi #guys,a10
SLEEP 40
; clr a9
#lp move *a10+,a4,L
jrz #x
calla print_string_C2
SLEEPK 11
movi 219,a0
; XORK 1,a9
; jrz #tag1
; movi 224,a0
;#tag1
move a0,@mess_cursy
movi CLSDEAD|123,a0
calla obj_del1c ;delete text
jruc #lp
#x
movi CLSDEAD|124,a0
calla obj_del1c ;delete text
calla pal_clean
DIE
#guys .long #str_2,#str_3,#str_3a,#str_3b,#str_4,#str_5,#str_5a,#str_5b
.long #str_6,#str_7,#str_7a,#str_8
; .long #str_7,#str_7a,#str_8
.long #str_9,#str_9a,#str_10,#str_11,#str_11a,#str_12,#str_13
.long #str_13a,#str_13b,#str_14
.long #str_15,#str_15a,#str_15b,#str_15c,#str_16,#str_17,#str_17a
.long #str_18,#str_19,#str_19a,#str_20
.long #str_21,#str_21a,#str_43,#str_22,#str_23a,#str_24
.long #str_24a,#str_25
.long #str_25b
.long #str_26
.long #str_27,#str_27a,#str_28,#str_29,#str_29a,#str_29b
.long #str_30,#str_31a
; .long #str_30,#str_31,#str_31a
.long #str_31b,#str_31c,#str_32
.long #str_33,#str_33a,#str_34,#str_34a,#str_35,#str_36,#str_37
.long #str_37a,#str_37b,#str_38
; .long #str_39,#str_39a,#str_40,#str_41,#str_42,#str_43,#str_43a
.long #str_39,#str_39a,#str_40,#str_41,#str_42,#str_43a
.long #str_43b,#str_44
.long #str_45,#str_46,#str_47,#str_47a,#str_47b,#str_23,#str_48,#str_49
.long #str_49a,#str_50
.long #str_51,#str_51a,#str_52,#str_52a,#str_53,#str_54
.long #str_55,#str_55a
.long 0
#ln0_setup
PRINT_STR brush20_ascii,12,1,200,6,BRSH_W_P,0
#ln0_setup1
PRINT_STR brush20_ascii,12,1,200,6,BRSHGYOP,0
#str_1
.string "STARRING:",0
#str_2
.string "Clyde Drexler",0
#str_3
.string "Terry Porter",0
#str_3a
.string "Cliff Robinson",0
#str_3b
.string "Harvey Grant",0
#str_4
.string "James Worthy",0
#str_5
.string "Vlade Divac",0
#str_5a
.string "Anthony Peeler",0
#str_5b
.string "Elden Campbell",0
#str_6
.string "Charles Barkley",0
#str_7
.string "Dan Majerle",0
#str_7a
.string "Kevin Johnson",0
#str_8
.string "Dominique Wilkins",0
; .string "Danny Manning",0
#str_9
.string "Ron Harper",0
#str_9a
.string "Stanley Roberts",0
#str_10
.string "Tim Hardaway",0
#str_11
.string "Chris Mullin",0
#str_11a
.string "Chris Webber",0
#str_12
.string "Shawn Kemp",0
#str_13
.string "Gary Payton",0
#str_13a
.string "Kendall Gill",0
#str_13b
.string "Detlef Schrempf",0
#str_14
.string "Wayman Tisdale",0
#str_15
.string "Spud Webb",0
#str_15a
.string "Lionel Simmons",0
#str_15b
.string "Bobby Hurley",0
#str_15c
.string "Mitch Richmond",0
#str_16
.string "Hakeem Olajuwon",0
#str_17
.string "Kenny Smith",0
#str_17a
.string "Sean Elliot",0
#str_18
.string "David Robinson",0
#str_19
.string "Dale Ellis",0
#str_19a
.string "Dennis Rodman",0
#str_20
.string "Karl Malone",0
#str_21
.string "David Benoit",0
#str_21a
.string "John Stockton",0
;#str_21b
; .string "Stephen Howard",0
#str_22
.string "Jamal Mashburn",0
#str_23
.string "Derek Harper",0
#str_23a
.string "Jimmy Jackson",0
#str_24
.string "Christian Laettner",0
#str_24a
.string "Isaiah Rider",0
#str_25
.string "Chuck Person",0
;#str_25a
; .string "Tony Scott",0
#str_25b
.string "Willie Morris Jr.",0
#str_26
.string "Dikembe Mutombo",0
#str_27
.string "Laphonso Ellis",0
#str_27a
.string "Rodney Rogers",0
#str_28
.string "Scottie Pippen",0
#str_29
.string "Horace Grant",0
#str_29a
.string "B.J. Armstrong",0
#str_29b
.string "Toni Kukoc",0
#str_30
.string "Isiah Thomas",0
;#str_31
; .string "Bill Laimbeer",0
#str_31a
.string "Joe Dumars",0
#str_31b
.string "Lindsey Hunter",0
#str_31c
.string "Robert Horry",0
#str_32
.string "Reggie Miller",0
#str_33
.string "Rik Smits",0
#str_33a
.string "Malik Sealy",0
#str_34
.string "Mark Price",0
#str_34a
.string "Larry Nance",0
#str_35
.string "Brad Daughrty",0
#str_36
.string "Brad Lohaus",0
#str_37
.string "Blue Edwards",0
#str_37a
.string "Vin Baker",0
#str_37b
.string "Todd Day",0
#str_38
.string "Danny Manning",0
; .string "Dominique Wilkins",0
#str_39
.string "Stacey Augmon",0
#str_39a
.string "Kevin Willis",0
#str_40
.string "Larry Johnson",0
#str_41
.string "Alonzo Mourning",0
#str_42
.string "Hersey Hawkins",0
#str_43
.string "Jeff Hornacek",0
#str_43a
.string "Shawn Bradley ",0
#str_43b
.string "Clarence Weatherspoon",0
#str_44
.string "Xavier McDaniel",0
#str_45
.string "Dee Brown",0
#str_45a
.string "Kevin Gamble",0
#str_46
.string "Patrick Ewing",0
#str_47
.string "Charles Oakley",0
#str_47a
.string "Anthony Mason",0
#str_47b
.string "John Starks",0
#str_48
.string "Derrick Coleman",0
#str_49
.string "Kenny Anderson",0
#str_49a
.string "Benoit Benjamin",0
#str_50
.string "Tom Gugliotta",0
#str_51
.string "Pervis Ellison",0
#str_51a
.string "Calbert Cheaney",0
#str_52
.string "Nick Anderson",0
#str_52a
.string "Scott Skiles",0
#str_53
.string "Anfernee Hardaway",0
;#str_53a
; .string "Mike Iuzzolino",0
#str_54
.string "Glen Rice",0
#str_55
.string "Rony Seikaly",0
#str_55a
.string "Harold Miner",0
.even
.endif
.end