Programmers - Working with CMOS clocks.

                                         
                                         
PROGRAMMING CMOS on K512VI1  
(watch processing procedures)    
                                         
Pantera                                  
                                         
_________________________________________
                                         
                                         
     Yes, everyone is shouting around this Cmos clock
rules, cool. Now, if only someone would-
How to code for them. I have this watch for myself.
I collected it a long time ago and now I’ve decided, since
no one wants to share with the people about me-
in programming methods, this means
destined :-) to do to me.                  
                                         
The clock is accessed through
control register #EFF7 with mask #80
on and #00 off mask.       
                                         
The clock also has two transfer registers:  
                                         
Address register #DFF7 that orders
the desired memory cell in Cmos. This register
works only for recording.               
                                         
Data register#BFF7 through which the
Cmos values are being written/read.       
                                         
 LD BC,#DFF7                     
       LD Н,#11 ;open the cell  
       OUT (C),H ;#11               
       LD Sun,#BFF7                     
       LD L,#AA ;write to this  
       OUT (C),L ;cell #AA        
       RET                               
                                         
;to read from a cell                    
                                         
 LD BC,#BFF7                     
       IN A, (C); read from port   
       SR #AA ; cmos presence byte 
 RET Z                            
       RET                               
                                         
                                         
Well, here is the body of the program:     
                                         
                                         
;PROCESSING HARDWARE CMOS CLOCK         
;WRITEN VU (C)Pantera 2001               
;V2.1                                    
;INSTALLING THE REGISTERS OF THE CHIP          
;V N,ADDRESS IN L,VALUE;Cells in which values are entered:    
                                         
;#00-SECONDS                             
;#02-MINUTES                              
;#04-CLOCK                                
;#06-DAY OF THE WEEK                         
;#07-NUMBER                               
;#08-MONTH                               
;#09-YEAR                                 
                                         
;Now about the cmos control bytes, which
;are entered into cells #11,#0A,#0B before operation
;botoy cmos.                             
                                         
;#11-#AA CLOCK PRESENCE BYTE. MANDATORY!!
;        USED TO DETECT CHA-
;        OWL IN THE SYSTEM, PROGRAMS.     
;#0А-32  IT IS MANDATORY TO ENTER THIS VALUE
;#0В-2  IT IS MANDATORY TO ENTER THIS VALUE
                                         
                                         
                                         
       ORG #8000                         
       JP SNESK                          
                                         
;---------------------------------------
R_SEL DEFW #EFF7 ;CONTROL REGISTER
R_DATA DEFW #BFF7 ;DATA REGISTERR_ADRS DEFW #DFF7 ;ADDRESS REGISTER    
ON DEFB #80 ;ON MASK   
OFF DEFB #00 ;SHUTDOWN MASK  
;---------------------------------------
                                         
;-------CHECKING THE PRESENCE OF CMOS------------
                                         
SNESK CALL OPEN; OPEN CMOS
       LD N,#11 ;WRITE IN CELL #11
       LD AF,(R_ADRS)                    
       OUT (C),H                         
       LD L,#AA ;#AA IN CELL #11
       LD BC,(R_DATA) ; FOR CHECKING
       OUT (C),L ;PRESENCE OF MICRUCH
                                         
;---------PROCEDURE FOR READING FROM THE PORT------
                                         
       LD Н,#11 ;OPEN THE CELL
       LD BC,(R_ADRS) WRITE THE VALUE-
       OUT (C),H ;NIE IN REG.  ADDRESSES
       LD BC,(R_DATA) ;READ FROM REGISTER
       IN A,(C) ;DATA NUMBER #AA
       SR #AA ; COMPARE        
       PUSH AF                           
       CALL CLOSE                        
       POP AF                            
 JR Z,CMOS                         
       RET ;NO CLOCK         
                                         
CMOS CALL OPENLD HL,#0A20 ;TO CELL #0A NEEDED
       CALL W_CMOS ;ENTER #20!!!    
       LD HL,#0В02 ;TO CELL #0В NEEDED
       CALL W_CMOS ;ENTER #02!!!    
       CALL CLOSE                        
       LD A,7 ;IF THERE IS A CLOCK THEN
       OUT (#FE),A ;BORDER WILL BE WHITE
       RET                               
                                         
;---PROCEDURE FOR OPENING ACCESS TO CMOS----
                                         
OPEN LD BC, (R_SEL) ;OPEN CMOS 
       LD A,(ON) ;SET BIT 7 
       OUT (C),A ;                  
       RET                               
                                         
;---PROCEDURE FOR CLOSURE ACCESS TO CMOS--- 
                                         
CLOSE LD A,(OFF) ;ALL CUTS OUT    
       LD BC,(R_SEL)                     
       OUT (C),A                         
       RET                               
                                         
;---SUBROUTINE FOR STORE VALUES INTO CMOS CLOCK------------- 
;ENTER VIA REGUCTP HL, V H-CELL, V L-VALUE             
                                         
W_CMOS LD AF,(R_ADRS)                    
       OUT (C),HLD BC,(R_DATA)                    
       OUT (C),L                         
       RET                               
                                         
                                         
This is the clock ticking procedure:   
                                         
;sources taken from the program Mg.Gluk Reset Service 5.3k      
                                         
: DISPLAY TIME AND DATE ON SCREEN 
                                         
M1 CALL CMOS_R                       
 JP M1                             
                                         
                                         
CMOS_R EXX                               
       CALL CMOS_3                       
       LD HL,10072                       
       EXX                               
       RET                               
CMOS_3 LD HL,#5815                       
       CALL LLAFbZ                       
       LD DE,#4015                       
       LD N,#0V                          
       CALL LLAF2В                       
       BIT 5.A                           
       JR Z,LLADB9                       
       LD A,#0С                          
       CALL LLAE45LD A,#0В                          
       CALL LLAE45                       
       LD A,#0В                          
       CALL LLAE45                       
       DEC Е                             
       DEC Е                             
       DEC Е                             
LLADB9 INC Е                             
       INC Е                             
       INC Е                             
       LD Н,#04                          
       CALL LLAE19                       
       CALL LLAE1Е                       
       LD Н,#02                          
       CALL LLAE19                       
       CALL LLAE1Е                       
       LD Н,#00                          
       CALL LLAE19                       
       LD HL,#5835                       
       CALL LLAFбЗ                       
       LD Н,#06                          
       CALL LLAF2В                       
       LD DE,#4035                       
       JR С,LLADF8                       
       DEC A                             
       LD HL,LLAEE3                      
       ADD A,A                           
       ADD A,L                           
       LD L,A                            
       JR NC,LLADEB                      
       INC Н                             
LLADEB LD A,(HL)INC HL                            
       PUSH AF                           
       LD A,(HL)                         
       CALL LLAE45                       
       РОР AF                            
       CALL LLAE45                       
       DEC Е                             
       DEC Е                             
LLADF8 INC Е                             
       INC Е                             
       LD A,#0В                          
       CALL LLAE45                       
       LD Н,#07                          
       CALL LLAE19                       
       LD A,#0D                          
       CALL LLAE45                       
       LD Н,#08                          
       CALL LLAE19                       
       LD A,#0D                          
       CALL LLAE45                       
       LD Н,#09                          
       CALL LLAE19                       
       RET                               
LLAE19 CALL LLAF2В                       
       JR LLAE32                         
LLAE1Е LD Н,#00                          
       CALL LLAF2В                       
       RRCA                              
       LD A,#0A                          
       JR NC,LLAE2С                      
LLAE28 CALL LLAE45                       
       RET                               
LLAE2С INC AJR LLAE28                         
LLAE2F INC                            
       INC DE                            
       RET                               
LLAE32 JR С,LLAE2F                       
       PUSH AF                           
 RRCA                              
       RRCA                              
       RRCA                              
       RRCA                              
       AND #0F                           
       CALL CALL4                       
       РОР AF                            
       AND #0F                           
       CALL CALL4                       
       RET                               
LLAE45 PUSH OF                           
       LD OF,LLAE6                      
       ADD A,A                           
       LD L,A                            
       ADD A,A                           
       ADD A,L                           
       LD L,A                            
       LD Н,#0                          
       ADD HL,DE                         
       РОР OF                            
       LD В,#0                          
       LD С,D                            
 XOR A                             
       LD (DE),A                         
       INC D                             
LLAE58 LD A,(HL)LD (DE),A                         
       INC. HL                            
       INC D                             
       DJNZ LLAE58                       
       XOR A                             
       LD (DE),A                         
       LD D,С                            
       INC Е                             
       RET                               
LLAE63 LD A,A                            
       LD Н,Е                            
       LD Н,Е                            
       LD Н,Е                            
       LD Н,Е                            
       LD A,A                            
       JR LLAE83                         
       JR LLAE85                         
       JR LLAE87                         
 LD A,A                            
       INC ВС                            
       LD A,A                            
       LD Н,В                            
       LD Н,В                            
       LD A,A                            
       LD A,A                            
       INC ВС                            
       RRCA                              
       INC ВС                            
       INC ВС                            
       LD A,A                            
       LD Н,Е                            
       LD Н,ЕLD Н,Е                            
       LD A,A                            
       INC ВС                            
       INC ВС                            
       LD A,A                            
       LD Н,В                            
LLAE83 LD A,A                            
       INC ВС                            
LLAE85 INC ВС                            
       LD A,A                            
LLAE87 LD A,A                            
       LD Н,В                            
       LD A,A                            
       LD Н,Е                            
       LD Н,Е                            
       LD A,A                            
       LD A,(HL)                         
       LD В,#06                          
       LD В,#06                          
       LD В,#7F                          
       LD Н,Е                            
       LD A,A                            
       LD Н,Е                            
       LD Н,Е                            
       LD A,A                            
       LD A,A                            
       LD Н,Е                            
       LD Н,Е                            
       LD A,A                            
       INC ВС                            
       LD A,A                            
       INC Е                             
       INCЕ                             
       NOP                               
       NOP                               
       INC Е                             
       INC Е                             
       NOP                               
       NOP                               
       NOP                               
       NOP                               
       NOP                               
       NOP                               
       LD A,(HL)                         
       ADD A,С                           
       SBC A,A                           
       SUB С                             
       ADD A,С                           
       LD A,(HL)                         
       NOP                               
       NOP                               
       NOP                               
       INC Е                             
       INC Е                             
       INC Е                             
       NOP                               
       NOP                               
       LD A,(HL)                         
       LD В,D                            
       LD В,D                            
       LD В,D                            
       NOP                               
       NOP                               
LLAEBF LD В,D                            
       LD A,(HL)LD В,D                            
       LD В,D                            
       NOP                               
       NOP                               
       LD (HL),В                         
       LD A,(HL)                         
       LD В,D                            
       LD A,(HL)                         
       NOP                               
       NOP                               
       LD A,#08                          
       ЕХ AF,AF`                         
       ЕХ AF,AF`                         
       NOP                               
       NOP                               
       LD A,(HL)                         
       LD В,В                            
       LD В,В                            
       LD A,(HL)                         
       NOP                               
       NOP                               
       LD A,Н                            
       LD В,Н                            
       LD A,Н                            
       LD В,В                            
       NOP                               
       INC A                             
       LD В,В                            
       LD A,Н                            
       LD В,D                            
       LD A,Н                            
       LD (DE),ADJNZ LLAEF3                       
LLAEE3 EQU $-#01                         
       LD C,#11                          
       DJNZ LLAEFB                       
       LD (DE),A                         
       LD DE,#1104                       
       LD C,#14                          
       LD (DE),A                         
       LD (DE),A                         
       DJNZ LLAEBF                       
       INC B                             
LLAEF3 XOR A                             
       LD A,H                            
       LD VS,(R_ADRS)                    
       OUT (C),A                         
       LD A,L                            
LLAEFB LD VS,(R_DATA)                    
       OUT (C),A                         
       CALL LLAFOD                       
       RET                               
LLAFOCH LD VS,(R_SEL)                     
 LD A,(ON)                         
       DI DI.                                
       OUT (C),A                         
       RET                               
LLAFOD LD VS,(R_SEL)                     
       LD A,(OFF)                        
       EI                                
       OUT (C),A                         
       RET                               
LLAF16 CALL LLAFOÇ                       
       LD A,H                            
       LD VS,(R_ADRS)OUT (С),A                         
       LD ВС,(R_DATA)                    
       IN A,(С)                          
       LD Н,A                            
       CALL LLAFOD                       
       LD A,Н                            
       AND A                             
       RET                               
LLAF2В CALL LLAFOЧ                       
       LD A,#0A                          
       LD ВС,(R_ADRS)                    
       OUT (С),A                         
       LD ВС,(R_DATA)                    
       IN A,(С)                          
       RLA                               
       JR С,LLAF5E                       
       CALL LLAF16                       
       LD Н,A                            
       LD A,#00                          
       AND A                             
       JR Z,LLAF5B                       
       LD A,Н                            
       LD С,#FF                          
LLAFЧ9 INC С                             
       SUB #0A                           
       JR NC,LLAFЧ9                      
       ADD A,#0A                         
       RLC С                             
       RLC С                             
       RLC С                             
       RLC С                             
       OR С                              
AND A                             
       RET                               
LLAF5B LD A,H                            
       AND A                             
       RET                               
LLAF5E CALL LLAFOD                       
       SCF                               
       RET                               
LLAFbЗ LD D,Н                            
       LD E,L                            
       INC E                             
       LD Sun,#000A                       
       LD (HL),#61 ;attribute byte    
       LDIR                              
       RET                               
                                         
                                         
Here is another u resident for the clock:  
                                         
                                         
:RESIDENT CMOS CLOCK FOR IS=DOS
                                         
 ORG #С350                         
MEMO EQU $-1                           
       DEFW INIT                         
       DEFW #0000                        
                                         
       LD A,#FF                          
MEM1 EQU $                             
       LD HL,MEMZ                        
       LD C,#1ERST #10                           
       RET                               
                                         
INIT   INC A                             
       RET Z                             
       INC A                             
       RET NZ                            
МЕМ2   EQU $                             
       LD HL,МЕМЗ                        
       LD С,#1Е                          
       RST #10                           
       RET                               
                                         
       DEFW #0000                        
                                         
МЕМЗ   EQU $                             
LLC36A LD A,(LLC44D)                     
       ADD A,#10                         
МЕМЧ   EQU $                             
       LD (LLC44D),A                     
       RET NC                            
       DI                                
       LD ВС,#EFF7                       
       LD A,#80                          
       OUT (С),A                         
LLC373 LD A,#0A                          
MEMS   EQU $                             
       CALL LLC444                       
       RLCA                              
       JR С,LLC373                       
       LD A,#07                          
МЕМб   EQU $CALL LLC444                       
       LD Е,A                            
       LD A,#08                          
МЕМ7   EQU $                             
       CALL LLC444                       
       AND #0F                           
       RRCA                              
       RRCA                              
       RRCA                              
       LD D,A                            
       AND #Е0                           
       OR Е                              
       LD Е,A                            
       LD A,#01                          
       AND D                             
       LD D,A                            
       LD A,#09                          
МЕМ8   EQU $                             
       CALL LLC444                       
       SLA A                             
       OR D                              
       LD D,A                            
       PUSH DE                           
       LD A,#00                          
МЕМ9   EQU $                             
       CALL LLC444                       
       RR A                              
       PUSH AF                           
       LD A,#02                          
МЕМ10  EQU $                             
       CALL LLC444                       
       LD Е,ALD D,#00                          
       PUSH DE                           
       LD A,#04                          
МЕМ11  EQU $                             
       CALL LLC444                       
       LD Е,A                            
       LD A,#02                          
       AND A                             
       PUSH AF                           
МЕМ12  EQU $                             
       LD HL,LLC44E                      
       LD ВС,#107С                       
       RST #10                           
       РОР AF                            
       РОР DE                            
МЕМ13  EQU $                             
       LD HL,LLC451                      
       RST #10                           
МЕМ14  EQU $                             
       LD HL,LLC44D                      
       LD В,#04                          
       LD A,#20                          
LLC3D4 INC HL                            
       СР (HL)                           
       JR NZ,LLC3DA                      
       LD (HL),#30                       
LLC3DA DJNZ LLC3D4                       
       DEC HL                            
       РОР AF                            
       LD A,#3A                          
       JR С,LLC3E4                       
       AND #20                           
LLC3E4 LD (HL),ALD С,#45                          
       RST #10                           
       EXX                               
       DEC HL                            
       DEC HL                            
       РОР DE                            
       LD (HL),D                         
       DEC HL                            
       LD (HL),Е                         
       LD В,#05                          
МЕМ15  EQU $                             
       LD HL,LLC44E                      
       LD DE,#401В                       
LLC3F7 PUSH ВС                           
       PUSH HL                           
       PUSH DE                           
       LD L,(HL)                         
       LD Н,#00                          
       ADD HL,HL                         
       ADD HL,HL                         
       ADD HL,HL                         
       LD ВС,#3С00                       
       ADD HL,ВС                         
       ЕХ DE,HL                          
       LD В,#08                          
       РОР HL                            
       PUSH HL                           
LLC409 PUSH ВС                           
       LD A,(DE)                         
       LD (HL),A                         
       LD ВС,#0100                       
       ADD HL,ВСINC DE                            
       ROR VS                            
       DJNZ LLC409                       
       ROR DE                            
       ROR HL                            
       ROR VS                            
       INC HL                            
       INC DE                            
       DJNZ LLC3F7                       
       LD VS,#EFF7                       
       XOR A                             
       OUT (C),A                         
       EI                                
       RET                               
LLC444 LD VS,#DFF7                       
       OUT (C),A                         
 LD V,#BF                          
       IN A,(C)                          
       RET                               
LLC44D DEFB #00                          
LLC44E DEFM "## ##"                      
LLC451 EQ $-2                           
       DEFB #FF,#FF                      
       DEFW MEMO,MEM1,MEM2,MEMZ          
       DEFW MEMCH,MEMS,MEMB,MEM7          
       DEFW MEM8,MEM9,MEM10,MEM11        
       DEFW MEM12,MEM13,MEM14,MEM15      
                                         
                                         
The application contains a resi-  
dent along with the resident clock.         

Share your thoughts about the article