Hello everyone
Could someone be kind enough to explain to me how i can subtract from a BCD format number.

Here is the problem, i designed a data logger which needs the user to select a logging interval between 1 minute and 24Hrs
my pic make s a measurement and store the result in a serial eeprom .
i am using a DS1307 RTC to stamp the data with date & Time.
the problem is my circuit now works ok but i have got a 4 seconds overhead as the measurement takes 4 seconds to complete so if the user selects a reading interval of 1 minute the reading would be taken every 1 minute & 4 secs example
(12:00:00,12:01:04,12:02:08)

What i would like to do is to minus 1 from the user entered minutes then default the seconds to 56 seconds so that
instead of the user 1 min it is now 56 seconds but do know how to do this with BCD format

This is how i take the user enters

HSerout [" Set Minutes Interval (00 - 59) Type S01 for 1min ,S13 for 13mins etc",10, 13]
IF A1minS =0 Then
HSerin[WAIT("S"),HEX2 A1minS ]
EndIF
HSerout [" Minutes Set to : ",HEX2 A1minS," Mins",10, 13]
HSerout [10, 13]
A1minS =A1minS-$01
write A1minS_flag,A1minS ' stored ALARM MINS in A1minS_flag
pause 10
A1sec =$56

But this don't work is there some thing i am doing wrong with BCD numbers