From 921c05e62694c26211b7c5111de44bfde6dec791 Mon Sep 17 00:00:00 2001 From: Stefanie Eckner Date: Sun, 8 Nov 2020 19:47:27 +0100 Subject: Binaeruhr.asm: Funk wird nun ordnungsgemäß zum Minutenende übernommen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Binaeruhr.asm | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/Binaeruhr.asm b/Binaeruhr.asm index 9ff6e93..2a8919f 100644 --- a/Binaeruhr.asm +++ b/Binaeruhr.asm @@ -224,8 +224,25 @@ neue_Funkminute: ror r17 ror r16 -; TODO: Minute prüfen und übernehmen -; TODO: Stunde prüfen und übernehmen + cbr r17,0x80 + + mov r18,r16 + rcall checksum + brts Funk_initialisieren + + mov r18,r17 + rcall checksum + brts Funk_initialisieren + + mov r18,r16 + cbr r18,0x80 + rcall bcd_to_bin + mov Minute,r18 + + mov r18,r17 + cbr r18,0xc0 + rcall bcd_to_bin + mov Stunde,r18 clr Sekunde @@ -301,3 +318,29 @@ nach_Funkeinfuegung: out SREG,r16 pop r16 reti + +bcd_to_bin: ; input/output: r18; tmp: r19 + mov r19,r18 + cbr r18,0xf0 + swap r19 + cbr r19,0xf0 + lsl r19 + add r18,r19 + lsl r19 + lsl r19 + add r18,r19 + ret + +checksum: ; input: r18; tmp: r19; output: T-Flag + mov r19,r18 + swap r19 + eor r18,r19 + mov r19,r18 + ror r19 + ror r19 + eor r18,r19 + mov r19,r18 + ror r19 + eor r18,r19 + bst r18,0 + ret -- cgit v1.2.3-54-g00ecf