Subject: [stella] Euchre back with odd behavior From: "Erik J. Eid" <eeid@xxxxxxxxx> Date: Fri, 15 Jun 2001 23:28:09 -0400 |
StartBid1 lda #StageBidding1 sta Stage lda Dealer adc #$01 and #$03 sta Turn adc #MsgNumSouth sta MessageNum lda #StageHold sta Stage rts
; ; Euchre game program for the Atari 2600 video computer system ; ; Copyright 2001 by Erik Eid (eeid@xxxxxxxxx) ; ; Last update: June 15, 2001 ; ; Compiled with the dasm assembler using the -f3 option ; processor 6502 include vcs.h ; Constants seg.u defines CardsInDeck = $18 ; 24 cards in a Euchre deck Team1Color = $88 Team2Color = $38 TableRegionColor = $d4 CardTableColor = $0f RedSuitColor = $36 BlackSuitColor = $00 MessageRegionColor = $22 MessageTextColor = $1c CursorColor = $82 RankMask = %00000111 ; Bit mask for rank of a card DispSuitMask = %00011000 ; Bit mask for suit displayed on a card RealSuitMask = %01100000 ; Bit mask for suit used when following (the left ; bower becomes the suit of the right bower) ShowCardMask = %10000000 ; Bit mask for determining if a card is shown BlackSuitMask = %00010000 SWACNT = $281 ; Strangely not part of the original vcs.h VS_Disable = 0 ; Ditto CenterRankPos = $75 ; Player positions CenterSuitPos = $66 LeftRankPos = $a2 RightRankPos = $57 MessageP0Pos = $44 MessageP1Pos = $c4 NoCursorPos = $05 MsgNumBlank = $00 MsgNumSelect = $01 MsgNumSwap = $02 MsgNumPass = $03 MsgNumOrder = $04 MsgNumCall = $05 MsgNumAlone = $06 MsgNumTrumpHearts = $07 MsgNumTrumpDiamonds = $08 MsgNumTrumpClubs = $09 MsgNumTrumpSpades = $0a MsgNumDeal = $0b MsgNumGameOver = $0c MsgNumSouth = $0d MsgNumWest = $0e MsgNumNorth = $0f MsgNumEast = $10 StageHold = $00 StageNewGame = $01 StageNewHand = $02 StageGameOver = $03 StageShuffle = $04 StageDeal = $05 StageBidding1 = $06 StageBidding2 = $07 ; Variables seg.u vars org $80 Team1Score ds 1 Team2Score ds 1 Team1Tricks ds 1 Team2Tricks ds 1 SouthHand ds 5 ; Cards in a player's hand WestHand ds 5 NorthHand ds 5 EastHand ds 5 SouthCard ds 1 ; Cards down on the table WestCard ds 1 NorthCard ds 1 EastCard ds 1 ImgPtr1 ds 2 ; Pointers to playfield and player images ImgPtr2 ds 2 ImgPtr3 ds 2 ImgPtr4 ds 2 ImgPtr5 ds 2 ImgPtr6 ds 2 HandCard ds 1 ; Pointer to a card in a hand T1 ds 1 ; Temporary variables used in subroutines T2 ds 1 T3 ds 1 T4 ds 1 rand1 ds 1 ; Locations to hold bits of random number rand2 ds 1 rand3 ds 1 rand4 ds 1 NeedShuffle ds 1 ; Flag indicating if a shuffle is needed MessageNum ds 1 ; Number of message to display MessagePtr ds 2 CursorPos ds 1 ; Card selection cursor position Stage ds 1 Turn ds 1 Dealer ds 1 FrameCount ds 1 DeckStart = SouthHand Upcards = SouthCard ; Program seg code org $f000 ; 4K cartridge ; ; Initialization ; CartStart sei ; Disable all interrupts cld ; Clear decimal mode (so carry is at 256, not 100) ldx #$ff txs ; Reset the stack pointer to the highest point possible ; Clear out registers and variables lda #$00 ClearRAM sta $00,x dex bne ClearRAM ; Loop does not zero WSYNC, but it's not needed sta SWACNT ; Tell port A to accept input lda #$6d ; seed random number generator sta rand1 sta rand2 sta rand3 sta rand4 lda #NoCursorPos sta CursorPos lda #$80 ldx #CardsInDeck HideLoop dex sta DeckStart,x bne HideLoop jsr StartGameOver jmp Main ProgStart ; ; Main loop ; Main ; Start of display kernel ; Provide three lines of vertical sync lda #VS_Enable sta WSYNC sta WSYNC sta WSYNC sta VSYNC sta WSYNC sta WSYNC sta WSYNC lda #VS_Disable sta VSYNC ; Provide 37 scanlines of vertical blank lda #43 ; 37 lines * 76 cycles/line = 2812 cycles / 64 cycles/interval = 43.96 intervals sta TIM64T ; When it comes time, check console switches here lda NeedShuffle beq PostShuffle jsr ShuffleDeck lda #$00 sta NeedShuffle PostShuffle jsr RandomBit ; keep the randomness flowing WaitVBlank lda INTIM nop bne WaitVBlank sta WSYNC ; Finish up last line sta VBLANK ; Stop vertical blank (accumulator holds zero) ; Now we start on the visible portion of the screen ; First eight lines are blank... lda #9 ; 8 lines * 76 cycles/line = 608 cycles / 64 cycles/interval = 9.5 intervals sta TIM64T ; Since we have some time, prepare the playfield for displaying the scores ; and get pointers to playfield images for them. lda #Team1Color sta COLUP0 lda #Team2Color sta COLUP1 lda #PF_Score sta CTRLPF ldx Team1Score ldy #ImgPtr1 jsr GetScoreImage ldx Team2Score ldy #ImgPtr2 jsr GetScoreImage WaitEndScore lda INTIM nop bne WaitEndScore ; Now we spend ten lines drawing the scores on the playfield ldx #$09 ScoresLoop sta WSYNC txa lsr tay lda (ImgPtr1),y sta PF1 ror T1 ror T1 nop nop nop lda (ImgPtr2),y sta PF1 dex bpl ScoresLoop ; Pause for four lines and prepare to show tricks sta WSYNC lda #$00 sta PF1 lda #4 sta TIM64T WaitBeginTricks lda INTIM nop bne WaitBeginTricks ; Trick graphics are four lines with the same value, so the offset into ; the TrickImages table is for the number of tricks rather than the xth ; byte of an image. ldy #$04 TricksLoop sta WSYNC ldx Team1Tricks lda TrickImages,x sta PF1 ror T1 ror T1 nop nop nop ldx Team2Tricks lda TrickImages,x sta PF1 dey bne TricksLoop ; Pause for eight more lines. sta WSYNC lda #$00 sta PF1 lda #7 sta TIM64T ; Position the players for display of a card. This is well in advance but ; we have time now. lda #CenterRankPos ldx #0 jsr PositionPlayer lda #CenterSuitPos ldx #1 jsr PositionPlayer sta WSYNC sta HMOVE WaitBeginTable lda INTIM nop bne WaitBeginTable ; Now switch to the "card table" display sta WSYNC lda #TableRegionColor sta COLUBK lda #CardTableColor sta COLUPF lda #PF_Reflect sta CTRLPF lda #$0f sta PF1 lda #$ff sta PF2 lda NorthCard ldx #ImgPtr1 ldy #ImgPtr2 jsr GetCardGraphics sta COLUP0 sta COLUP1 jsr DrawSingleCard lda #$00 sta GRP0 sta GRP1 ; Now we come to the hard one... both West and East lda #P_TwoClose ; Two copies close sta NUSIZ0 sta NUSIZ1 lda WestCard ldx #ImgPtr1 ldy #ImgPtr3 jsr GetCardGraphics sta COLUP0 lda EastCard ldx #ImgPtr2 ldy #ImgPtr4 jsr GetCardGraphics sta COLUP1 lda #LeftRankPos ldx #0 jsr PositionPlayer lda #RightRankPos ldx #1 jsr PositionPlayer ; sta WSYNC ; sta HMOVE jsr DrawTwoCards lda #$00 sta GRP0 sta GRP1 sta NUSIZ0 sta NUSIZ1 lda #CenterRankPos ldx #0 jsr PositionPlayer lda #CenterSuitPos ldx #1 jsr PositionPlayer sta WSYNC sta HMOVE lda SouthCard ldx #ImgPtr1 ldy #ImgPtr2 jsr GetCardGraphics sta COLUP0 sta COLUP1 jsr DrawSingleCard lda #4 sta TIM64T WaitEndSouth lda INTIM nop bne WaitEndSouth lda #9 ; burn 8 lines sta TIM64T lda #$00 sta COLUBK sta PF1 sta PF2 WaitBeforeHand lda INTIM nop bne WaitBeforeHand ; Draw the five cards in the player's hand. For each of the cards, draw four ; black lines then twelve card lines. The middle eight lines of the card have ; the images. During the four black lines, get the image pointers and player ; colors. lda #$00 sta HandCard ShowHandLoop lda #4 sta TIM64T lda #$00 sta COLUBK sta PF2 ldx HandCard lda SouthHand,x ldx #ImgPtr1 ldy #ImgPtr2 jsr GetCardGraphics sta COLUP0 sta COLUP1 WaitToDrawHandCard lda INTIM nop bne WaitToDrawHandCard lda #$f0 sta PF2 sta WSYNC sta WSYNC lda HandCard cmp CursorPos beq ShowCursor lda #$00 jmp xx ShowCursor lda #CursorColor xx sta COLUBK jsr DrawSingleCard lda #$00 sta GRP0 sta GRP1 sta WSYNC sta COLUBK sta WSYNC sta WSYNC inc HandCard lda HandCard cmp #$05 bne ShowHandLoop ; Now the gap between the last card and the message region lda #13 sta TIM64T lda #$00 sta COLUBK sta PF2 sta COLUP0 sta COLUP1 ; Prepare for the message section lda #MessageP0Pos ldx #0 jsr PositionPlayer lda #MessageP1Pos ldx #1 jsr PositionPlayer sta WSYNC sta HMOVE ldx MessageNum ldy #MessagePtr jsr GetMessagePointer jsr GetMessageImages WaitForGap lda INTIM nop bne WaitForGap sta WSYNC lda #MessageRegionColor sta COLUBK lda #19 ; 16 lines of message sta TIM64T lda P_ThreeClose sta NUSIZ0 sta NUSIZ1 lda #MessageTextColor sta COLUP0 sta COLUP1 lda #$01 sta VDELP0 sta VDELP1 sta WSYNC sta WSYNC jsr DrawMessageText lda #$00 sta VDELP0 sta VDELP1 lda #$00 sta GRP0 sta GRP1 sta WSYNC WaitForMessage lda INTIM nop bne WaitForMessage lda #$00 sta COLUPF lda #9 ; 8 lines sta INTIM lda #$00 sta WSYNC sta PF1 sta PF2 sta COLUBK sta COLUP0 sta COLUP1 sta COLUPF sta CTRLPF sta GRP0 sta GRP1 sta NUSIZ0 sta NUSIZ1 WaitForEnd lda INTIM nop bne WaitForEnd sta WSYNC lda #35 ; 30 lines of overscan sta TIM64T lda #$02 sta VBLANK CheckReset lda SWCHB and #$01 cmp #$01 beq CheckStages jsr StartNewGame jmp ProgStart CheckStages lda Stage cmp #StageHold bne CheckNewGame ; jmp EndCase CheckNewGame cmp #StageNewGame bne CheckNewHand jsr PerformNewGame jmp EndCase CheckNewHand cmp #StageNewHand bne CheckGameOver jsr PerformNewHand jmp EndCase CheckGameOver cmp #StageGameOver bne CheckShuffle ; jmp EndCase CheckShuffle cmp #StageShuffle bne CheckDealing jsr PerformShuffle jmp EndCase CheckDealing cmp #StageDeal bne CheckBidding1 jsr PerformDeal jmp EndCase CheckBidding1 cmp #StageBidding1 bne EndCase ; jsr PerformBidding1 EndCase WaitOverscan lda INTIM nop bne WaitOverscan sta WSYNC jmp Main StartBid1 lda #StageBidding1 sta Stage lda Dealer adc #$01 and #$03 sta Turn adc #MsgNumSouth sta MessageNum lda #StageHold sta Stage rts StartShuffle lda #StageShuffle sta Stage lda #$08 sta Turn lda #MsgNumDeal sta MessageNum rts StartDeal lda #StageDeal sta Stage lda #MsgNumDeal sta MessageNum rts PerformDeal ldx #$04 DealLoop lda SouthHand,x and #%01111111 sta SouthHand,x dex bpl DealLoop ldx Dealer lda Upcards,x and #%01111111 sta Upcards,x jsr StartBid1 rts PerformShuffle lda Turn cmp #$07 bne SkipRefresh jsr RefreshDeck SkipRefresh jsr ShuffleDeck dec Turn bpl GoAway jsr StartDeal GoAway rts StartNewGame lda #StageNewGame sta Stage lda #MsgNumBlank sta MessageNum rts PerformNewGame lda #$00 sta Team1Score sta Team2Score lda rand1 and #$03 sta Dealer jsr StartNewHand rts StartNewHand lda #StageNewHand sta Stage lda #MsgNumBlank sta MessageNum rts PerformNewHand lda #$00 sta Team1Tricks sta Team2Tricks lda Dealer adc #$01 and #$03 sta Dealer jsr StartShuffle rts StartGameOver lda #StageGameOver sta Stage lda #MsgNumGameOver sta MessageNum rts GetScoreImage txa asl tax lda ScoreImageTable,x sta $00,y lda ScoreImageTable+1,x sta $01,y rts GetRankImage txa asl tax lda RankImageTable,x sta $00,y lda RankImageTable+1,x sta $01,y rts GetSuitImage txa asl tax lda SuitImageTable,x sta $00,y lda SuitImageTable+1,x sta $01,y rts GetLetterImage txa asl tax lda LetterImageTable,x sta $00,y lda LetterImageTable+1,x sta $01,y rts GetMessagePointer txa asl tax lda MessageTable,x sta $00,y lda MessageTable+1,x sta $01,y rts GetMessageImages ldy #$06 MessageImageLoop dey sty T4 lda (MessagePtr),y tax tya asl adc #ImgPtr1 tay jsr GetLetterImage ldy T4 bne MessageImageLoop rts ; All images are reversed since they are read by decrementing loops. ; routine to draw a single card ; assumes ImgPtr1 and ImgPtr2 point to proper images, sprites are ; positioned, and so on org $fb00 DrawSingleCard ldy #$07 DrawCardLoop sta WSYNC lda (ImgPtr1),y sta GRP0 lda (ImgPtr2),y sta GRP1 dey bpl DrawCardLoop rts ; routine to draw two cards ; assumes ImgPtr1-4 point to proper images, sprites are positioned, ; and so on DrawTwoCards sta WSYNC sta HMOVE ldy #$07 DrawCardLoop2 nop nop ror T1 ror T1 lda (ImgPtr3),y tax lda (ImgPtr1),y sta GRP0 stx GRP0 pha lda (ImgPtr4),y tax lda (ImgPtr2),y sta GRP1 nop stx GRP1 pla sta WSYNC dey bpl DrawCardLoop2 rts ; Six-digit score display ; original version by Robert Colbert in the Stella mailing list message ; "Re: [stella] Displaying scores - how?" from March 11, 1997 ; (http://www.biglist.com/lists/stella/archives/199703/msg00219.html) DrawMessageText sta WSYNC ldy #7 sty T2 loop2 ldy T2 lda (ImgPtr1),y sta GRP0 sta WSYNC lda (ImgPtr2),y sta GRP1 lda (ImgPtr3),y sta GRP0 lda (ImgPtr4),y sta T1 lda (ImgPtr5),y tax lda (ImgPtr6),y tay lda T1 sta GRP1 stx GRP0 sty GRP1 sta GRP0 dec T2 bne loop2 rts ; routine to shuffle the deck RefreshDeck ldx #CardsInDeck RD1 dex lda NewDeck,x sta DeckStart,x bne RD1 rts ShuffleDeck ldx #CardsInDeck OneShuffle dex stx T1 jsr RandomByte ModLoop cmp #CardsInDeck bcc LTCards sec sbc #CardsInDeck jmp ModLoop LTCards ldx T1 tay lda DeckStart,x sta T2 lda DeckStart,y sta DeckStart,x lda T2 sta DeckStart,y ldx T1 bne OneShuffle rts org $fc00 MessageBlank .byte $00,$00,$00,$00,$00,$00 MessageSelect .byte $13,$05,$0c,$05,$03,$14 MessageSwap .byte $00,$13,$17,$01,$10,$00 MessagePass .byte $00,$10,$01,$13,$13,$00 MessageOrder .byte $0f,$12,$04,$05,$12,$00 MessageCall .byte $00,$03,$01,$0c,$0c,$00 MessageAlone .byte $01,$0c,$0f,$0e,$05,$00 MessageTrumpHearts .byte $14,$12,$15,$0d,$10,$1b MessageTrumpDiamonds .byte $14,$12,$15,$0d,$10,$1c MessageTrumpClubs .byte $14,$12,$15,$0d,$10,$1d MessageTrumpSpades .byte $14,$12,$15,$0d,$10,$1e MessageDeal .byte $00,$04,$05,$01,$0c,$00 MessageGameOver .byte $00,$0f,$16,$05,$12,$00 MessageSouth .byte $13,$0f,$15,$14,$08,$00 MessageWest .byte $00,$17,$05,$13,$14,$00 MessageNorth .byte $0e,$0f,$12,$14,$08,$00 MessageEast .byte $00,$05,$01,$13,$14,$00 MessageTable .word MessageBlank .word MessageSelect .word MessageSwap .word MessagePass .word MessageOrder .word MessageCall .word MessageAlone .word MessageTrumpHearts .word MessageTrumpDiamonds .word MessageTrumpClubs .word MessageTrumpSpades .word MessageDeal .word MessageGameOver .word MessageSouth .word MessageWest .word MessageNorth .word MessageEast org $fd00 ; routine to position a player ; original version by Erik Mooney in the Stella mailing list message ; "Re: [stella] sexp8.bin Multi-Japanese Sprites" from April 18, 1998 ; (http://www.biglist.com/lists/stella/archives/199804/msg00170.html) ; modified to work on both player 0 and 1 and to take a hard-coded ; position value rather than look at a table (there is no motion in ; this game, so the table is not necessary) ; ; a = position value - high nybble = fine position, low nybble = ; course position ; x = player number PositionPlayer sta WSYNC ror T1 ; waste 5 cycles sta HMP0,x and #$0f tay P0 dey bpl P0 sta RESP0,x ; Rather than WSYNC and HMOVE now, let the calling routine do it. If both ; players are positioned in succession, this saves a scanline. rts ; routine to generate a random number ; original version by Erik Mooney in the Stella mailing list message ; "Re: [stella] demo update: PCMSD20.BIN" from April 14, 1997 ; (http://www.biglist.com/lists/stella/archives/199704/msg00136.html) ; requires four memory locations to be reserved for generation ; ; returns: a = random number RandomBit lda rand4 asl asl asl eor rand4 ;new bit is now in bit 6 of A asl asl ;new bit is now in carry rol rand1 ;shift new bit into bit 0 of register; bit 7 goes into carry rol rand2 ;shift old bit 7 into bit 8, etc. rol rand3 rol rand4 rts RandomByte ldx #8 RandomByte1 jsr RandomBit dex bne RandomByte1 lda rand1 rts ; routine for getting images and colors of a card ; a = card ; x = image pointer for rank ; y = image pointer for suit ; returns: a = color of card GetCardGraphics sta T1 stx T2 sty T3 and #RankMask tax ldy T2 jsr GetRankImage lda T1 and #DispSuitMask lsr lsr lsr tax ldy T3 jsr GetSuitImage lda T1 and #ShowCardMask bne HideCard lda T1 and #BlackSuitMask bne CardIsBlack lda #RedSuitColor jmp LeaveGetCardGraphics CardIsBlack lda #BlackSuitColor jmp LeaveGetCardGraphics HideCard lda #CardTableColor LeaveGetCardGraphics rts org $fe00 ; All images are reversed since they are read by decrementing loops. LetterImageSpace .byte $00,$00,$00,$00,$00,$00,$00,$00 ; LetterImageA .byte $00,$c6,$c6,$fe,$fe,$c6,$7c,$38 ; A LetterImageB .byte $00,$7c,$66,$66,$7c,$66,$66,$7c ; B LetterImageC .byte $00,$3c,$66,$60,$60,$60,$66,$3c ; C LetterImageD .byte $00,$7c,$66,$66,$66,$66,$66,$7c ; D LetterImageE .byte $00,$7e,$60,$60,$78,$60,$60,$7e ; E LetterImageF .byte $00,$60,$60,$60,$78,$60,$60,$7e ; F LetterImageG .byte $00,$3c,$66,$66,$6e,$60,$66,$3c ; G LetterImageH .byte $00,$66,$66,$66,$7e,$66,$66,$66 ; H LetterImageI .byte $00,$7e,$18,$18,$18,$18,$18,$7e ; I LetterImageJ .byte $00,$3c,$66,$06,$06,$06,$06,$0e ; J LetterImageK .byte $00,$66,$6c,$78,$70,$78,$6c,$66 ; K LetterImageL .byte $00,$7e,$60,$60,$60,$60,$60,$60 ; L LetterImageM .byte $00,$c6,$c6,$c6,$d6,$fe,$ee,$c6 ; M LetterImageN .byte $00,$c6,$c6,$ce,$de,$f6,$e6,$c6 ; N LetterImageO .byte $00,$3c,$66,$66,$66,$66,$66,$3c ; O LetterImageP .byte $00,$60,$60,$60,$7c,$66,$66,$7c ; P LetterImageQ .byte $00,$3a,$64,$6a,$66,$66,$66,$3c ; Q LetterImageR .byte $00,$66,$66,$66,$7c,$66,$66,$7c ; R LetterImageS .byte $00,$3c,$66,$06,$3c,$60,$66,$3c ; S LetterImageT .byte $00,$18,$18,$18,$18,$18,$18,$7e ; T LetterImageU .byte $00,$3c,$66,$66,$66,$66,$66,$66 ; U LetterImageV .byte $00,$10,$38,$6c,$c6,$c6,$c6,$c6 ; V LetterImageW .byte $00,$c6,$ee,$fe,$d6,$c6,$c6,$c6 ; W LetterImageX .byte $00,$c6,$c6,$6c,$38,$6c,$c6,$c6 ; X LetterImageY .byte $00,$18,$18,$18,$3c,$66,$66,$66 ; Y LetterImageZ .byte $00,$7e,$60,$30,$18,$0c,$06,$7e ; Z SuitImageHeart .byte $00,$10,$38,$7c,$fe,$fe,$ee,$44 SuitImageDiamond .byte $00,$10,$38,$7c,$fe,$7c,$38,$10 SuitImageClub .byte $00,$18,$7e,$ff,$7e,$18,$3c,$18 SuitImageSpade .byte $00,$38,$ba,$fe,$fe,$7c,$38,$10 RankImage9 .byte $00,$3c,$46,$06,$3e,$66,$66,$3c RankImage10 .byte $00,$ee,$5b,$5b,$5b,$5b,$db,$4e RankImageLeft .byte $00,$ec,$8a,$8a,$8c,$8a,$8a,$8c ; debug "LB" RankImageRight .byte $00,$ac,$aa,$aa,$cc,$aa,$aa,$cc ; debug "RB" RankImageTable .word RankImage9 .word RankImage10 .word LetterImageJ .word LetterImageQ .word LetterImageK .word LetterImageA .word RankImageLeft .word RankImageRight SuitImageTable .word SuitImageHeart .word SuitImageDiamond .word SuitImageClub .word SuitImageSpade ScoreImage0 .byte $07,$05,$05,$05,$07 ScoreImage1 .byte $07,$02,$02,$06,$02 ScoreImage2 .byte $07,$04,$07,$01,$07 ScoreImage3 .byte $07,$01,$03,$01,$07 ScoreImage4 .byte $01,$05,$07,$01,$01 ScoreImage5 .byte $07,$01,$07,$04,$07 ScoreImage6 .byte $07,$04,$07,$05,$07 ScoreImage7 .byte $04,$04,$02,$01,$07 ScoreImage8 .byte $07,$05,$02,$05,$07 ScoreImage9 .byte $07,$01,$07,$05,$07 ScoreImage10 .byte $77,$25,$25,$65,$27 ScoreImage11 .byte $72,$22,$22,$62,$22 ScoreImage12 .byte $77,$24,$27,$61,$27 ScoreImage13 .byte $77,$21,$23,$61,$27 ScoreImageTable .word ScoreImage0 .word ScoreImage1 .word ScoreImage2 .word ScoreImage3 .word ScoreImage4 .word ScoreImage5 .word ScoreImage6 .word ScoreImage7 .word ScoreImage8 .word ScoreImage9 .word ScoreImage10 .word ScoreImage11 .word ScoreImage12 .word ScoreImage13 TrickImages .byte $00,$01,$05,$15,$55,$FF LetterImageTable .word LetterImageSpace .word LetterImageA .word LetterImageB .word LetterImageC .word LetterImageD .word LetterImageE .word LetterImageF .word LetterImageG .word LetterImageH .word LetterImageI .word LetterImageJ .word LetterImageK .word LetterImageL .word LetterImageM .word LetterImageN .word LetterImageO .word LetterImageP .word LetterImageQ .word LetterImageR .word LetterImageS .word LetterImageT .word LetterImageU .word LetterImageV .word LetterImageW .word LetterImageX .word LetterImageY .word LetterImageZ .word SuitImageHeart .word SuitImageDiamond .word SuitImageClub .word SuitImageSpade NewDeck .byte $80,$81,$82,$83,$84,$85 .byte $a8,$a9,$aa,$ab,$ac,$ad .byte $d0,$d1,$d2,$d3,$d4,$d5 .byte $f8,$f9,$fa,$fb,$fc,$fd org $fffc .word CartStart .word CartStart
Attachment:
Euchre.bin
Description: Binary data
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Standards, Christopher Rydberg | Thread | Re: [stella] Euchre back with odd b, Andrew Davie |
Re: [stella] SCSIcide gameplay upda, Joe Grand | Date | Re: [stella] Euchre back with odd b, Andrew Davie |
Month |