Dunque,
la routine deve ritornare nei registri de e bc
rispettivamente l'ora e la data.. il formato e'
il seguente
http://www.maverick-os.dk/FileSystemFormats/FAT16_FileSystem.html#CreationTimeDate
te lo sintetizzo, nella coppia DE le ore, minuti,
secondi secondo questo schema HHHHHMMMMMMSSSSS,
con i secondi senza bit meno significativo, ovvero 1 bit ogni 2 secondi..
in BC ci va la data in questo formato YYYYYYYMMMMDDDDD..
ti allego la routine che ho usato ieri per
prelevare i dati dall'rtc e convertirti in
binario, li ho usati con un semplice programma
basic per seguire l'ora e vedere se la batteria faceva il suo dovere...
Ciaoo
Mario
RTC_REG EQU $F6BF ;registro rtc
RTC_VAL EQU $F7BF ;dato rtc
; scrive dalla locazione 61000 in poi la data dell'rtc in binario
org 60000
di
ld bc,RTC_REG
ld hl, 61000
ld a,2 ; registro secondi
out (c),A ;setta il registro iniziale
ld bc,RTC_VAL
in a,(c) ; legge i secondi e auto incrementa registro
and %01111111
call BCDTOBIN
ld (hl),a
inc hl
in a,(c) ; minuti
and %01111111
call BCDTOBIN
ld (hl),a
inc hl
in a,(c) ; ore
and %00111111
call BCDTOBIN
ld (hl),a
inc hl
in a,(c) ; giorno
and %00111111
call BCDTOBIN
ld (hl),a
inc hl
in a,(c) ; giorno della settimana (non usato)
in a,(c) ; mese
and %00011111
call BCDTOBIN
ld (hl),a
inc hl
in a,(c) ; anno
call BCDTOBIN
ld (hl),a
ei
ret
BCDTOBIN
LD D,A
AND 15
LD E,A
LD A,D
SRL A
SRL A
SRL A
SRL A
LD D,A
ADD A,A
ADD A,A
ADD A,D
ADD A,A
ADD A,E
RET
At 12:07 10/05/2016, you wrote:
Il 10/05/2016 11:56, Mario (Redacted sender aticatac70 for DMARC) ha scritto:
in pratica ora devo "pacchettizzare" i 6 byte di secondi, minuti, ore,
giorno, mese e anno in due word da 16 bit, tutto questo con un codice
rilocabile...
Quindi ti serve un'altra routine? Se sì, mi spieghi bene cosa deve fare?
EMG
--
EMAG Software Homepage: http://www.emagsoftware.it
The EMG Music page: http://www.emagsoftware.it/emgmusic
The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: http://www.emagsoftware.it/tbosg