Hi, After having seen the amazing results from other code challenges I thought I would try putting one out there myself. The goal is to have a routine that increments and keeps track of time in a BCD format. Points are scored as follows: 1 point for each ROM location used. 3 for each RAM. My code scores 43 points. Best score is the lowest. Haven't tested it yet so I dont know if it works or not. ICKIncClock incfsz ICKseconds,f ;do seconds goto ICKDone movlw d'195' movwf ICKseconds incf ICKmin,f ;do minutes movlw b'00001111' andwf ICKmin,w ;mask upper nibble. xorlw d'10' ;minLSD at 10? SKPZ goto ICKDone movlw b'11110000' andwf ICKmin,f ;set lower nibble to zero. movlw b'00010000' addwf ICKmin,f ;inc upper nibble movlw d'60' xorwf ICKmin,w ;ran out of minutes? SKPZ goto ICKDone clrf ICKmin incf ICKhours ;now do hours movlw b'00001111' andwf ICKhours,w ;mask upper nibble xorlw d'10' SKPZ goto ICKDone movlw b'11110000' andwf ICKhours,f ;clear LSD movlw b'00010000' addwf ICKhours,f ;inc upper nibble movlw d'24' xorwf ICKhours,w ;at the last hour? SKPNZ clrf ICKhours ICKDone retlw 0