#IFNDEF __lib_piles #DEFINE __lib_piles 1 GOTO __skip_lib_piles // Pile data structures // byte 0 = count, bytes 1-52 = cards // Cards use CARD_FACEDOWN bit for face-down flag LABEL pile_stock ASM !fill 53, 0 ENDASM LABEL pile_waste ASM !fill 53, 0 ENDASM LABEL pile_tab0 ASM !fill 53, 0 ENDASM LABEL pile_tab1 ASM !fill 53, 0 ENDASM LABEL pile_tab2 ASM !fill 53, 0 ENDASM LABEL pile_tab3 ASM !fill 53, 0 ENDASM LABEL pile_tab4 ASM !fill 53, 0 ENDASM LABEL pile_tab5 ASM !fill 53, 0 ENDASM LABEL pile_tab6 ASM !fill 53, 0 ENDASM LABEL pile_found0 ASM !fill 14, 0 ENDASM LABEL pile_found1 ASM !fill 14, 0 ENDASM LABEL pile_found2 ASM !fill 14, 0 ENDASM LABEL pile_found3 ASM !fill 14, 0 ENDASM // ============================================================================ // FUNC clear_all_piles // Clear all piles (waste, foundations, tableaus) by setting their counts to 0 // Stock is not cleared as it's managed by stock_init() // ============================================================================ FUNC clear_all_piles WORD ptr @ $f0 // Clear waste pile POINTER ptr -> pile_waste POKE ptr[0] , 0 // Clear all foundation piles POINTER ptr -> pile_found0 POKE ptr[0] , 0 POINTER ptr -> pile_found1 POKE ptr[0] , 0 POINTER ptr -> pile_found2 POKE ptr[0] , 0 POINTER ptr -> pile_found3 POKE ptr[0] , 0 // Clear all tableau piles POINTER ptr -> pile_tab0 POKE ptr[0] , 0 POINTER ptr -> pile_tab1 POKE ptr[0] , 0 POINTER ptr -> pile_tab2 POKE ptr[0] , 0 POINTER ptr -> pile_tab3 POKE ptr[0] , 0 POINTER ptr -> pile_tab4 POKE ptr[0] , 0 POINTER ptr -> pile_tab5 POKE ptr[0] , 0 POINTER ptr -> pile_tab6 POKE ptr[0] , 0 FEND LABEL __skip_lib_piles #IFEND