[zxspectrum] Re: Re[2]: compito in classe

  • From: "Mario" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "aticatac70" for DMARC)
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 10 May 2016 14:22:33 +0200


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


Other related posts: