Conway's Game Of Life


Closed Thread
Results 1 to 40 of 46

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Default Re: Conway's Game Of Life

    For the big evaluation routine we currently have this giving about 15hz

    Code:
    '----------------------- Also creating a newled data array to be displayed on next generation -------------
    
    FOR counter = 0 TO 1023
    
    	population = 0 :topedge	= 0 :botedge = 0 :lefedge = 0 :rigedge = 0
    
    'Grid Edge Detection
    	
    	IF counter < 32 THEN botedge = 1
    
    	IF counter > 991 THEN topedge = 1
    	
    '*******************************************************************************	  	
    	
        TempCount = Counter & 31
        If TempCount = 0 THEN
        lefedge = 1
        ENDIF
    
    
        IF TempCount = 31 THEN
        rigedge = 1
        ENDIF	
    	
    '*******************************************************************************		
    
    'Grid Evaluation	 
    
    
    CntPlus33 = Counter + 33
    CntPlus32 = Counter + 32
    CntPlus31 = Counter + 31
    CntPlus1 = Counter +1
    
    CntMinus33 = Counter - 33
    CntMinus32 = Counter - 32
    CntMinus31 = Counter - 31
    CntMinus1 = Counter - 1	        	
    	
    	IF led[CntMinus1] > 0 THEN
          IF counter > 0 THEN
    	    Colour[population] = led[CntMinus1]
    		population = population + 1
    	  ENDIF
    	ENDIF
    	
    	IF led[CntPlus1] > 0 THEN
          IF counter < 1023 THEN
    	    Colour[population] = led[CntPlus1]
    		population = population + 1  		
           ENDIF
        ENDIF
    	
    	IF botedge = 0 THEN
    		IF led [CntMinus31] > 0 THEN
    		    Colour[population] = led[CntMinus31]
    			population = population + 1			
    		ENDIF
    		IF led [CntMinus32] > 0 THEN
    		    Colour[population] = led[CntMinus32]  
    			population = population + 1
    		ENDIF
    		IF  rigedge = 0 then
                if led [CntMinus33] > 0 THEN
    		    Colour[population] = led[CntMinus33]
    			population = population + 1
    			endif
    		ENDIF
    	ENDIF
    	
    	IF topedge = 0 THEN
    		IF led [CntPlus31] > 0 THEN
    		    Colour[population] = led[CntPlus31]
    			population = population + 1
    		ENDIF
    		IF led [CntPlus32] > 0 THEN
    		    Colour[population] = led[CntPlus32]
    			population = population + 1
    		ENDIF
    		IF  rigedge = 0 then 
                if led [CntPlus33] > 0 THEN 
    		    Colour[population] = led[CntPlus33]
    			population = population + 1
    			endif
    		ENDIF
    	ENDIF       
    
        lednew[counter] = led[counter]
    	
    	IF led[counter] = 0 THEN
    		IF population = 3 THEN
    		
    		    if Colour[0] = Colour[1] then
    		    lednew[counter] = Colour[0]
    		    
    		    elseif Colour[0] = Colour[2] then
                lednew[counter] = Colour[0]
                
                elseif Colour[1] = Colour[2] then
                lednew[counter] = Colour[1]
                
        	    endif   	
    			
    		ENDIF
    	else   	
    		IF population > 3 OR population < 2 THEN
    			lednew[counter] = 0
    		ENDIF
    			
    	ENDIF
    
    NEXT counter
    Last edited by retepsnikrep; - 23rd May 2020 at 15:20.

  2. #2
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,612


    Did you find this post helpful? Yes | No

    Default Re: Conway's Game Of Life

    This shaved another 4ms off here, instead of:
    Code:
    IF population > 3 OR population < 2 THEN
      lednew[counter] = 0
    ENDIF
    Do:
    Code:
    IF Population > 3 THEN LEDNew[Counter] = 0
    IF Population < 2 THEN LEDNew[Counter] = 0
    We're trading readabillity for performance here...

  3. #3


    Did you find this post helpful? Yes | No

    Default Re: Conway's Game Of Life

    Thanks. All good stuff. I think we are getting near the limit.

    The actual output to the WS2812B 1024 NeoPixel array is handled by the large mixed basic/assembler subroutine below.

    I made a couple of small mods so it could work with 1024 leds and one data array holding the LED colour info encoded in bits 5,6,7 and brightness from 0-31 in bits 0-4.
    I found brightness of 31 was really bright enough for daytime use and kept power supply requirements within reasonable wall wart limits.

    So once the NeoLed array is loaded with the data this routine is called and loops until all 1024 led data has been output.

    Code:
    NeoPixelASM64:'------------- subroutine call name ----------------
    	POINTER = NEO_NUM - 1	'THIS SCHEME USED TO ELIMINATE USING "< or >" COMPARE STATEMENTS
    	SCRATCH = NEO_NUM - 1	'THIS SCHEME USED TO ELIMINATE USING "< or >" COMPARE STATEMENTS	
    
    
    DOGREEN:
    	NeoPixel = SCRATCH - POINTER	'PUSH PIXELS FROM LOWEST to HIGHEST! DON'T ASK ME WHY?
    	
    	NeoPixValue = NeoLed(NeoPixel)	'First, the Green array
    	
    'Colours %000 10000   (Bits 0-4 Intensity 32 steps 0-31 Default 31)  Bits 5-6-7 (001 Red D32) (010 Green D64) (100 Blue D128)	
    
    	If NeoPixValue.6 = 1 then 
        NeoPixValue = NeopixValue & Brightness    'Clear Colour bits & set Green Intensity
        else 
        NeoPixValue = 0                           'Turn LED Off
        endif         
    	
    	NEOPIN = 1
    ASM
    		btfsc   _NeoPixValue, 007h
    	    Bra doneg70
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg71
    doneg70
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    doneg71
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 006h
    	    Bra doneg60
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg61
    doneg60
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
    doneg61
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 005h
    	    Bra doneg50
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg51
    doneg50
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
     		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    doneg51
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 004h
    	    Bra doneg40
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg41
    doneg40
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneg41
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 003h
    	    Bra doneg30
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg31
    doneg30
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
     		NOP
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
    doneg31
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 002h
    	    Bra doneg20
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg21
    doneg20
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneg21
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 001h
    	    Bra doneg10
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg11
    doneg10
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneg11
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 000h
    	    Bra doneg00
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneg01
    doneg00
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneg01
    endasm
    
    	NeoPixValue = NeoLed(NeoPixel)     'Second, the Red array
    	
    'Colours %000 10000   (Bits 0-4 Intensity 32 steps 0-31 Default 31)  Bits 5-6-7 (001 Red D32) (010 Green D64) (100 Blue D128)
    	
    	If NeoPixValue.5 = 1 then 
        NeoPixValue = NeoPixValue & Brightness        'Clear Colour bits & set Red Intensity
        else 
        NeoPixValue = 0                           'Turn LED Off
        endif  	
    	
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 007h
    	    Bra doneb70
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb71
    doneb70
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    doneb71
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 006h
    	    Bra doneb60
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb61
    doneb60
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
    doneb61
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 005h
    	    Bra doneb50
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb51
    doneb50
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
     		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    doneb51
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 004h
    	    Bra doneb40
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb41
    doneb40
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneb41
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 003h
    	    Bra doneb30
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb31
    doneb30
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
     		NOP
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
    doneb31
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 002h
    	    Bra doneb20
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb21
    doneb20
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneb21
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 001h
    	    Bra doneb10
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb11
    doneb10
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneb11
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 000h
    	    Bra doneb00
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doneb01
    doneb00
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doneb01
    endasm
    
    	NeoPixValue = NeoLed(NeoPixel)        'Lastly, the Blue array
    	
    'Colours %000 10000   (Bits 0-4 Intensity 32 steps 0-31 Default 31)  Bits 5-6-7 (001 Red D32) (010 Green D64) (100 Blue D128)
    	
    	If NeoPixValue.7 = 1 then 
        NeoPixValue = NeoPixValue & Brightness    'Clear Colour bits & set Blue Intensity
        else 
        NeoPixValue = 0                           'Turn LED Off
        endif  	 	
    	
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 007h
    	    Bra doner70
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner71
    doner70
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    doner71
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 006h
    	    Bra doner60
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner61
    doner60
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
    doner61
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 005h
    	    Bra doner50
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner51
    doner50
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
     		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    doner51
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 004h
    	    Bra doner40
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner41
    doner40
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    ;		Bcf LATA,3
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doner41
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 003h
    	    Bra doner30
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner31
    doner30
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
     		NOP
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
    doner31
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 002h
    	    Bra doner20
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner21
    doner20
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doner21
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 001h
    	    Bra doner10
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner11
    doner10
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doner11
    ENDASM
    	NEOPIN = 1
    ASM	
    		btfsc   _NeoPixValue, 000h
    	    Bra doner00
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		bra doner01
    doner00
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    		NOP
    ENDASM
    	NEOPIN = 0
    ASM	
    		NOP
    		NOP
    		NOP
    		NOP
     		NOP
     		NOP
    doner01
    endasm
    	POINTER = POINTER - 1	'next pixel in the string
    	IF POINTER.15 = 0 THEN DOGREEN' < NEO_NUM THEN DOGREEN
    
    	return		'get back to main program.........

  4. #4


    Did you find this post helpful? Yes | No

    Default Evaluate the Neopixel array directly

    So a final effort to save 1024 bytes of RAM, one complete array, and perhaps give some increase in speed would be to be able to directly evaluate the odd neopixel array layout.

    As I mentioned the Neopixel array is a physical snakes and ladders arrangement of 1024 series connected leds, starting 0 bottom left and ending 1023 top left of the grid.

    The two life arrays are in the conventional x/y layout, starting 0 bottom left and finishing 1023 top right.


    Currently once the Life array evaluation is completed it then has to be parsed and converted to fit the neopixel LED array layout.

    If I could evaluate the Neopixel array directly we would save 1024 bytes and eliminate the parsing and conversion routine below, although I don't know how long that actually takes to execute.

    Of course the evaluation routine would become more complicated, so the trade off speed benefits may be minimal or non existent. However even if speed worked out the same it would save the 1024 bytes of ram.

    Code:
       	alive = 0	            'Clears alive accumulator
    	dead = 0                'Clears dead checksum accumulator
    
      FOR Row = 0 to 31			' Cycle thru 32 rows
         
         TempW = ROW * 32       ' Precalculate this instead of doing it every time thru the loop
         
         FOR Col = 0 to 31			' of 32 pixels each          
           InPtr = (TempW) + Col   '  
           led[InPtr] = lednew[InPtr]         
           IF Row.0 = 0 THEN	' If the row number is even   
             OutPtr =  InPtr        ' Output pixels in true order       
           ELSE
             OutPtr = (TempW) + (31-Col)   ' Output pixels in reversed order        
           ENDIF
           
           IF led[InPtr] > 0 THEN
           NeoLed(OutPtr) = Led[InPtr]	
           alive = alive + 1
           dead = dead + InPtr
    	   else 
           NeoLed(OutPtr) = 0	
    	   ENDIF
          
         NEXT
         NEXT

Similar Threads

  1. programming jumping game
    By bokken in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 17th February 2012, 06:40
  2. Simon Game
    By flotulopex in forum Code Examples
    Replies: 1
    Last Post: - 4th November 2010, 06:25
  3. EEPROM life expectancy?
    By muddy0409 in forum General
    Replies: 3
    Last Post: - 1st May 2007, 12:44
  4. home brew game console W interface
    By PICMAN in forum General
    Replies: 1
    Last Post: - 15th March 2005, 22:25
  5. Game port to USB adaptor
    By Squibcakes in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 24th September 2004, 03:16

Members who have read this thread : 2

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts