;******************************************************************************

;

;    R T X   F M   1 4 4   M h z   Y T 3 M V   M A T J A Z   V I D M A R  

;

;******************************************************************************

; Menu' # 1 = CH              -> Canali da 0 a 255. Il CH 0 disabilita la funzione dell'encoder

; Menu' # 2 = F xxx.xxx     -> Step da 25 Khz. Dopo 40 step continui, gli steps diventano da 1 Mhz

; Menu' # 3 = S xxx.xxx     -> Step da 5 Khz

; Menu' # 4 = t xxx.xxx      -> Frequenza di trasmissione a step di 5 Khz. Dopo 10 steps continui, gli steps diventano da 100 Khz

; Menu' # 5 = VOLUME   -> Regolazione volume

; Menu' # 6 = SQELCH    -> Regolazione squelch

;******************************************************************************

;    I1KFH Sergio Brovero - 13100 Vercelli

;******************************************************************************

ORG  0

JP  INIT_PRG

DEFM ' *** RTX FM 144 Mhz YT3MV Matjaz Vidmar ***'

DEFM ' Software modificato da I1KFH Sergio Brovero ***'

INIT_PRG:      LD   SP,3FFFH

; init 8255

LD   A,81H

LD   (PIO_CNT),A

LD   A,(0007)

LD   (PORT_A),A

LD   A,00

LD   (PORT_B),A

LD   A,00

LD   (PORT_C),A

; init CTC 8253

LD   A,36H         ;counter 0,R/L tutto,square wave gen.,binary

LD   (CTC_CNT),A

LD   A,54H         ;counter 1,R/L last sign. byte only,rate gen.,binary

LD   (CTC_CNT),A

LD   A,94H         ;counter 2,R/L last sign. byte only,rate gen.,binary

LD   (CTC_CNT),A

; 2500000/1000 = 2500 Hz (riferimento PLL)

LD   A,0E8H        ;lsb

LD   (CTR0),A

LD   A,03          ;msb

LD   (CTR0),A

 

XOR  A

LD   (ENC_FLG),A

LD   (DIS_COUNT),A

LD   (KEY_COUNT),A

LD   IX,DIS_BUF    ;display buffer pointer

LD   IY,3800H

PUSH IX

LD   B,08

; scrittura in DIS_BUF di tutti  -_

LOOP_I:         LD   (IX+00),92H

INC  IX

DJNZ LOOP_I

 

POP  IX            ;IX -> DIS_BUF

LD   HL,1500

LD   (DELAY_KEY),HL

DEL_FUN_IN: LD   A,(PORT_C)

AND  06            ;mask pulsanti

CP   06            ;function ?

JP   NZ,INIT_WARM

LD   B,08

L_D1:              CALL DISPLAY

DJNZ L_D1

LD   BC,0000

LD   HL,(DELAY_KEY)

DEC  HL

LD   (DELAY_KEY),HL

AND  A

SBC  HL,BC         ;timer iniz. per tenere premuto il tasto function

JR   NZ,DEL_FUN_IN

; setup

LD   (IX+00),00

LD   (IX+01),0DAH  ;S

LD   (IX+02),0F2H  ;E

LD   (IX+03),0F0H  ;T

LD   (IX+04),00

LD   (IX+05),0E2H  ;F

LD   (IX+06),0A0H  ;R

LD   (IX+07),00

 

LD   (IX+10H),01   ;init canale # 0

LD   (IX+11H),03   ;init volume = 3

LD   (IX+12H),05   ;init squelch = 0

LD   (IX+13H),00

LD   HL,1000

LD   (DELAY_KEY),HL

LD   (IX+15H),00

; scrittura iniziale dei canali con 145 Mhz.

; scittura per 1024 volte da 3800H a 3BFFH con 48H,71H,48H,71H,......

; ogni canale occupa 4 byte : 2 in rx e 2 in tx. Ogni canale viene scritto

; con 7148H=29000d: questo perche' ogni Mhz corrisponde a 200d: quindi

; 200 * 145 = 29000 = 7148H.

LD   B,00

LD   DE,0004

PUSH IY

WR_145:         PUSH BC

LD   B,08

L_D2:              CALL DISPLAY

DJNZ L_D2

POP  BC

LD   (IY+00),048H  ;canale in rx

LD   (IY+01),71H

                        LD   (IY+02),048H  ;canale in tx

 LD   (IY+03),71H

 ADD  IY,DE

 DJNZ WR_145

 POP  IY            ;IY = 3800H

 

INIT_WARM: LD   A,(IX+15H)

; main loop

MAIN_LOOP: CALL WHAT_FUNCT    ;what function

LD   A,(IX+15H)

INC  A

CP   10H

JR   C,INC_FUNC

LD   A,00

INC_FUNC:   LD   (IX+15H),A

JR   MAIN_LOOP

;=============================================================================

; routine: U S C I T A    F R E Q U E N Z A    P E R    P L L

;=============================================================================

; Sull'input SI (pin 14 del PLL) c'e' una frequenza di riferimanto di

; 2500 Hz che e' data dall'oscillatore a quarzo.

; Si deve fare in modo che sull'input CI (pin 3 del PLL) ci sia la stessa

; frequenza (2500 Hz) usando un divisore interno programmabile

OUT_F_PLL:  PUSH BC

LD   BC,0C000H

ADD  HL,BC         ;HL-> freq. relativa al canale selez. -4000H

LD   A,L

LD   L,H

SUB  H

JR   NC,L_8FH

DEC  H

DEC  L

INC  A

JR   Z,L_93H

L_8FH:            CP   80H           ;80H -> 1.6 Mhz

JR   C,L_96H

L_93H:            INC  L

SUB  80H

L_96H:            LD   C,A

ADD  A,H

LD   H,A

LD   A,80H

ADD  A,L

SUB  C

LD   L,A

 

LD   B,0FFH

L_A0H:           LD   A,(PORT_C)

AND  08            ;mask 129/128

JR   NZ,L_A9H      ;NZ = 129

DJNZ L_A0H

 

L_A9H:           LD   B,0FFH

L_ABH:           LD   A,(PORT_C)

AND  08            ;mask 129/128

JR   Z,L_B4H       ;Z = 128

DJNZ L_ABH

L_B4H:           LD   A,H

LD   (CTR1),A

LD   A,L

LD   (CTR2),A

POP  BC

RET

;=============================================================================

; routine: D I S P L A Y

;=============================================================================

; rinfresco display

DISPLAY:       PUSH BC

PUSH AF

PUSH HL

LD   A,0FFH       

LD   (PORT_A),A    ;spegnimento dei segmenti

LD   HL,DIS_BUF

LD   A,(DIS_COUNT)

LD   C,A

ADD  A,L

LD   L,A

LD   A,C

INC  A

CP   08

JR   NZ,DIS_CS

XOR  A

DIS_CS:          LD   (DIS_COUNT),A

SLA  C

SLA  C

SLA  C

SLA  C

LD   A,C

LD   (PORT_C),A    ;catodo

LD   A,(HL)    ;dato da mandare sui display

CPL

LD   (PORT_A),A

POP  HL

POP  AF

POP  BC

RET

;=============================================================================

; routine: V I S U A L I Z Z .   D E L L A    F R E Q U E N Z A

;=============================================================================

DIS_FREQ:     LD   (IX+00),00

LD   (IX+01),00

PUSH BC

PUSH DE

; visualizzazione della frequenza in centinaia di Mhz

LD   BC,0B1E0H

LD   DE,NUM_TAB-1

L_100H:          INC  DE

ADD  HL,BC

JR   C,L_100H

LD   BC,4E20H      ;20000

ADD  HL,BC

LD   A,(DE)

LD   (IX+02),A

; visualizzazione della frequenza in decine di Mhz

LD   BC,0F830H

LD   DE,NUM_TAB-1

L_112H:          INC  DE

ADD  HL,BC

JR   C,L_112H

LD   BC,07D0H      ;2000

ADD  HL,BC

LD   A,(DE)

LD   (IX+03),A

; visualizzazione della frequenza in unita' di Mhz

LD   BC,0FF38H

LD   DE,NUM_TAB-1

L_124H:          INC  DE

ADD  HL,BC

JR   C,L_124H

LD   BC,00C8H      ;200

ADD  HL,BC

LD   A,(DE)

ADD  A,01          ;accensione punto decimale

LD   (IX+04),A

; visualizzazione della frequenza in centinaia di Khz

LD   BC,0FFECH

LD   DE,NUM_TAB-1

L_138H:          INC  DE

ADD  HL,BC

JR   C,L_138H

LD   BC,14H         ;20

ADD  HL,BC

LD   A,(DE)

LD   (IX+05),A

; visualizzazione della frequenza in decine di Khz e in unita' di Khz

LD   BC,0FFFEH

LD   DE,NUM_TAB-1

L_155H:          INC  DE

ADD  HL,BC

JR   C,L_155H

LD   BC,0002H

ADD  HL,BC

LD   A,(DE)

LD   (IX+06),A

LD   DE,NUM_TAB

LD   B,H

LD   C,L

ADD  HL,HL

ADD  HL,HL

ADD  HL,BC

ADD  HL,DE

LD   A,(HL)

LD   (IX+07),A

POP  DE

POP  BC

RET

;=============================================================================

; routine:                          ;=============================================================================

L_180:             LD   (IX+00),00

LD   (IX+01),00

LD   (IX+02),00

LD   (IX+03),00

LD   (IX+04),00

LD   HL,NUM_TAB-1

L_197H:          INC  HL

SUB  64H

JR   NC,L_197H

ADD  A,64H

LD   H,(HL)

LD   (IX+05),H

LD   HL,NUM_TAB-1

L_1A5H:         INC  HL

SUB  0AH

JR   NC,L_1A5H

ADD  A,0AH

LD   H,(HL)

LD   (IX+06),H

LD   HL,NUM_TAB

ADD  A,L

LD   L,A

LD   H,(HL)

LD   (IX+07),H

RET

;=============================================================================

; routine: USCITA FREQ. PER IL PLL, USCITA SQUELCH, USCITA VOLUME

;=============================================================================

OUT_F_S_V:  PUSH DE

PUSH HL

PUSH AF

LD   H,00

LD   L,(IX+10H)    ;# del canale

ADD  HL,HL

ADD  HL,HL

EX   DE,HL         ;DE -> # del canale * 4

; si testa se si e' in rx o in tx.

; Se si e' in tx la microistr. ADD HL,DE e' la somma della frequenza

; del canale con 0.

; Se si e' in rx la microistr. ADD HL,DE e' la somma della frequenza

; del canale con FBACH: cioe' la frequenza del canale meno il valore

; della media frequenza che e' di 5.5375 Mhz.

LD   HL,0000

LD   A,(PORT_C)

AND  01            ;test + 12V TX

JR   NZ,CH_TX      ;NZ -> +12V TX

LD   HL,0FBACH

JR   CH_RX

CH_TX:          INC  DE            ;puntatore buffer canale in trasmissione

INC  DE

CH_RX:          ADD  IY,DE

LD   E,(IY+00)

LD   D,(IY+01)     ;DE -> valore della freq. relativa al canale

; FBACH + 7148H = 6CF4H (nel caso canale # 0 in rx)

; 0 + 7148H = 7148H (nel caso canale # 0 in tx)

ADD  HL,DE

PUSH HL

PUSH AF

CALL OUT_F_PLL    ;uscita frequenza per il PLL

POP  AF

POP  HL 

; uscita volume e squelch

LD   A,(IX+11H)    ;valore del volume

AND  07            ;mask

LD   (IX+11H),A

RLCA

RLCA

RLCA

LD   D,A

LD   A,(IX+12H)    ;valore dello squelch

AND  07            ;mask

LD   (IX+12H),A

OR   D

LD   (PORT_B),A    ;out volume e squelch

POP  AF

POP  HL

POP  DE

RET

;=============================================================================

; routine: A T T E S A    D I    U N    T A S T O      0.4 mS.         

;=============================================================================

WAIT_KEY:   PUSH HL

PUSH BC

WAIT_KEY1: PUSH IY

CALL OUT_F_S_V

POP  IY

CALL DISPLAY

LD   A,(PORT_C)

AND  01            ;mask +12 V TX

CP   (IX+16H)

JR   Z,RD_ENC

LD   (IX+16H),A

LD   A,00

JP   WAIT_KEYEX

; lettura encoder per la sintonia. Se siamo sul canale 0 la sintonia si puo'

; solo fare con i pulsanti up/down

RD_ENC:        LD   A,(NUM_CAN)

AND  A                      ; canale 0 ?

JR   Z,RD_KEY

LD   A,(ENCODER)   ;lettura fasi

AND  03                     ;mask fasi

LD   B,A                     ;save fasi in B

LD   A,(ENC_FLG)

AND  A                      ;test flag fasi=00

JR   Z,FASI_00

LD   A,B                     ;restore fasi

CP   01                       ;test fase up

JR   NZ,FASE_DW

XOR  A

LD   (ENC_FLG),A    ;reset flag fasi=00

LD   A,01                    ;simulazione pulsante up premuto

JR   WAIT_KEYEX

FASE_DW:     CP   02                       ;test fase down

JR   NZ,RD_KEY

XOR  A

LD   (ENC_FLG),A    ;reset flag fasi=00

LD   A,02                    ;simulazione pulsante down premuto

JR   WAIT_KEYEX

FASI_00:        LD   A,B                     ;restore fasi

CP   00                       ;test se fasi=00

JR   NZ,RD_KEY

LD   A,01

LD   (ENC_FLG),A    ;set flag fasi=00

; lettura tasti: in uscita il reg A contiene l'input dei tasti

RD_KEY:        LD   A,(PORT_C)

AND  06            ;mask pulsanti

JR   NZ,RD_KEY1    ;NZ -> function

LD   (IX+13H),00

LD   HL,0002

LD   (DELAY_KEY),HL

XOR  A

LD  (KEY_COUNT),A          ;reset KEY_COUNT

JR   WAIT_KEY1

RD_KEY1:      CP   (IX+13H)      ;function

JR   Z,RD_KEY2

LD   HL,0002

LD   (DELAY_KEY),HL

LD   (IX+13H),A

JR   WAIT_KEY1

RD_KEY2:      LD   BC,0000

LD   HL,(DELAY_KEY)

DEC  HL

LD   (DELAY_KEY),HL

AND  A

SBC  HL,BC

JP   NZ,WAIT_KEY1

CP  6               ;tasto function premuto ?

JR  Z,DELAY_F

LD   HL,500    ;velocita' avanzamento tasti up e down

LD   (DELAY_KEY),HL

LD   HL,KEY_COUNT

INC  (HL)

JR   WAIT_KEYEX

DELAY_F:      LD   HL,500    ;velocita' avanzamento tasto function

LD   (DELAY_KEY),HL

WAIT_KEYEX:  POP  BC

POP  HL

RET

;=============================================================================

; routine: W H A T   F U N C T I O N

;=============================================================================

; step da 25 KHz

WHAT_FUNCT:  CP   0             ;0 = passi da 25 Khz

JP   NZ,S_5KHZ

S_25KHZ_NK:  LD   H,00

LD   L,(IX+10H)

ADD  HL,HL

ADD  HL,HL

EX   DE,HL

LD  A,(PORT_C)

AND  01                     ;mask +12VTX

JR   Z,KHZ25_RX      ;NZ = +12VTX

INC  DE                     ;puntamento al buffer trasmissione

INC  DE

KHZ25_RX:    PUSH IY

ADD  IY,DE

LD   L,(IY+00)

LD   H,(IY+01)

POP  IY

PUSH HL

PUSH AF

CALL DIS_FREQ      ;visualizzazione della frequenza

POP  AF

POP  HL

LD   (IX+00),0E2H  ;F

CALL WAIT_KEY

CP   00

JR   Z,S_25KHZ_NK ;Z = nessun tasto premuto

PUSH AF                   ;save tasto premuto

LD  A,(PORT_C)

AND  01                     ;mask +12VTX

JR   Z,S_25KHZ_WK            ;NZ = +12VTX

POP  AF

JR   S_25KHZ_NK

S_25KHZ_WK:  POP  AF                 ;restore tasto premuto

CP   00

JR   Z,S_25KHZ_NK

CP   06

RET  Z

CP   02            ;2 = tasto down premuto

JR   Z,S_25KHZ_DW

LD  A,(KEY_COUNT)

CP   41                       ;e' passato 1 MHz ?

JR          C,S_25KHZ_INC

LD   BC,200        ;200 = 1 MHz

JR          S_25KHZ1

S_25KHZ_INC: LD   BC,5          ;5 = 25 KHz

JR  S_25KHZ1

S_25KHZ_DW:  LD     A,(KEY_COUNT)

CP   41                       ;e' passato 1 MHz ?

JR  C,S_25KHZ_DEC

LD   BC,65536-200  ; = 1 MHz

JR  S_25KHZ1

S_25KHZ_DEC: LD   BC,0FFFBH     ; = 25 KHz

S_25KHZ1:     LD   H,00

LD   L,(IX+10H)

ADD  HL,HL

ADD  HL,HL

EX   DE,HL

PUSH IY

ADD  IY,DE

LD   L,(IY+00)

LD   H,(IY+01)

ADD  HL,BC

LD   (IY+00),L

LD   (IY+01),H

LD   L,(IY+02)

LD   H,(IY+03)

ADD  HL,BC

LD   (IY+02),L

LD   (IY+03),H

POP  IY

JP   S_25KHZ_NK

; step da 5 KHz

S_5KHZ:         CP   1             ;1 = passi da 5 Khz

JP   NZ,TX_FREQ

S_5KHZ_NK: LD   H,00

LD   L,(IX+10H)    ;# del canale

ADD  HL,HL

ADD  HL,HL

EX   DE,HL         ;DE = # del canale * 4

LD  A,(PORT_C)

AND  01                     ;mask +12VTX

JR   Z,KHZ5_RX        ;NZ = +12VTX

INC  DE                     ;puntamento al buffer trasmissione

INC  DE

KHZ5_RX:      PUSH IY

ADD  IY,DE         ;puntamento al buffer del canale

LD   L,(IY+00)

LD   H,(IY+01)     ;HL=valore della freq. relativa al canale

POP  IY            ;IY=puntatore buffer canali

PUSH HL

PUSH AF

CALL DIS_FREQ      ;visualizzazione della frequenza

POP  AF

POP  HL

LD   (IX+00),0DAH   ;S

CALL WAIT_KEY

CP   00

JR   Z,S_5KHZ_NK

PUSH AF                   ;save tasto premuto

LD  A,(PORT_C)

AND  01                     ;mask +12VTX

JR   Z,S_5KHZ_WK  ;NZ = +12VTX

POP  AF

JR   S_5KHZ_NK

S_5KHZ_WK: POP  AF                    ;restore tasto premuto

CP   06

RET  Z

CP   02            ;2 = tasto down premuto

JR   Z,S_5KHZ_DEC

LD   BC,0001       ;1 = 5 KHz

JR  S_5KHZ_MOD

S_5KHZ_DEC: LD   BC,0FFFFH     ; = 5 KHz

S_5KHZ_MOD: LD   H,00

LD   L,(IX+10H)    ;# del canale

ADD  HL,HL

ADD  HL,HL

EX   DE,HL         ;DE = # del canale * 4

PUSH IY            ;IY = puntatore buffer canale

ADD  IY,DE

LD   L,(IY+00)

LD   H,(IY+01)     ;HL = valore della freq. relativa al canale

; questa operazione serve ad incrementare di 1 step la frequenza (con BC=0001)

; oppure a decrementare di 1 la frequenza (con BC=FFFFH) infatti sommando

; FFFFH e' come sottrarre 1

ADD  HL,BC

LD   (IY+00),L

LD   (IY+01),H

LD   L,(IY+02)

LD   H,(IY+03)

ADD  HL,BC

LD   (IY+02),L

LD   (IY+03),H

POP  IY

JP   S_5KHZ_NK

; frequenza di trasmissione

TX_FREQ:      CP   2             ;2 = frequenza di trasmissione

JR   NZ,CHANNEL

TX_FREQ_NK: LD   H,00

LD   L,(IX+10H)    ;# del canale

ADD  HL,HL

ADD  HL,HL

EX   DE,HL         ;DE = # del canale * 4

INC  DE

INC  DE                     ;DE = buffer del tx

PUSH IY

ADD  IY,DE         ;puntamento al buffer del canale

LD   L,(IY+00)

LD   H,(IY+01)     ;HL=valore della freq. relativa al canale

POP  IY            ;IY=puntatore buffer canali

PUSH HL

PUSH AF

CALL DIS_FREQ      ;visualizzazione della frequenza

POP  AF

POP  HL

LD   (IX+00),0F0H     ;t

CALL WAIT_KEY

CP   00

JR   Z,TX_FREQ_NK            ;0 = nessun tasto schiacciato

CP   06

RET  Z            ;0 = tasto function premuto

CP   02            ;2 = tasto down premuto

JR   Z,TX_FREQ_DW

LD  A,(KEY_COUNT)

CP   11

JR  C,INC_5KHZ

LD   BC,20         ;20 = 100 KHz

JR          TX_FREQ1

INC_5KHZ:    LD   BC,0001       ;1 = 5 KHz

JR  TX_FREQ1

TX_FREQ_DW: LD     A,(KEY_COUNT)

CP   11

JR  C,DEC_5KHZ

LD   BC,0FFECH     ; = 100 KHz

JR  TX_FREQ1

DEC_5KHZ:   LD   BC,0FFFFH     ; = 5 KHz

TX_FREQ1:    LD   H,00

LD   L,(IX+10H)    ;# del canale

ADD  HL,HL

ADD  HL,HL

EX   DE,HL         ;DE = # del canale * 4

PUSH IY            ;IY = puntatore buffer canale

ADD  IY,DE

LD   L,(IY+02)

LD   H,(IY+03)

ADD  HL,BC

LD   (IY+02),L

LD   (IY+03),H

POP  IY

JR   TX_FREQ_NK

; canale

CHANNEL:    CP   5             ;5 = canale #

JR   NZ,VOLUME

L_425H:          LD   A,(IX+10H)

PUSH HL

PUSH AF

CALL L_180

POP  AF

POP  HL

LD   (IX+01),72H   ;C

LD   (IX+02),0ECH  ;H

L_431H:          CALL WAIT_KEY

CP   00

JR   Z,L_431H

CP   06

RET  Z

INC  (IX+10H)

CP   02

JR   NZ,L_448H

DEC  (IX+10H)

DEC  (IX+10H)

L_448H:          JR   L_425H

; volume

VOLUME:      CP   3             ;3 = volume

JR   NZ,SQUELCH

L_44EH:          LD   A,(IX+11H)    ;(default=3)

PUSH HL

PUSH AF

CALL L_180

POP  AF

POP  HL

LD   (IX+00),7CH   ;V

LD   (IX+01),7EH   ;O

LD   (IX+02),70H   ;L

LD   (IX+03),7CH   ;U

LD   (IX+04),6EH   ;M

LD   (IX+05),0F2H  ;E

LD   (IX+06),00

L_46EH:          CALL WAIT_KEY

CP   00

JR   Z,L_46EH

CP   06

RET  Z

INC  (IX+11H)

CP   02

LD   A,(IX+11H)

JR   NZ,L_484H

DEC  A

DEC  A

L_484H:          CP   80H

JR   C,L_48AH

LD   A,00

L_48AH:         CP   08

JR   C,L_490H

LD   A,07

L_490H:          LD   (IX+11H),A

JR   L_44EH

; squelch

SQUELCH:     CP   4             ;4 = squelch

JR   NZ,WF_EXIT

L_499H:          LD   A,(IX+12H)

PUSH HL

PUSH AF

CALL L_180

POP  AF

POP  HL

LD   (IX+00),0DAH  ;S

LD   (IX+01),0CEH  ;Q

LD   (IX+02),0F2H  ;E

LD   (IX+03),70H   ;L

LD   (IX+04),72H   ;C

LD   (IX+05),0ECH  ;H

LD   (IX+06),00

L_4B9H:         CALL WAIT_KEY

CP   00

JR   Z,L_4B9H

CP   06

RET  Z

INC  (IX+12H)

CP   02

LD   A,(IX+12H)

JR   NZ,L_4CFH

DEC  A

DEC  A

L_4CFH:         CP   80H

JR   C,L_4D5H

LD   A,00

L_4D5H:         CP   08

JR   C,L_4DBH

LD   A,07

L_4DBH:         LD   (IX+12H),A

JR   L_499H

RET

WF_EXIT:      RET

;************

ORG  700H

NUM_TAB:    DEFB 7EH           ;0

DEFB 0CH           ;1

DEFB 0B6H          ;2

DEFB 9EH           ;3

DEFB 0CCH          ;4

DEFB 0DAH          ;5

DEFB 0FAH          ;6

DEFB 0EH           ;7

DEFB 0FEH          ;8

DEFB 0DEH          ;9

;************

ORG  3800H         ;RAM

ORG  3E00H

DIS_BUF:       DEFS 8             ;display buffer

DEFS 8

NUM_CAN:   DEFS 1    ;IX+10H   numero del canale

DEFS 1    ;IX+11H   valore del volume

DEFS 1    ;IX+12H   valore dello squelch

DEFS 1    ;IX+13H

DEFS 1    ;IX+14H

 

DEFS 1    ;IX+15H   contatore di function

;0 = passi da 100 Khz

;1 = passi da 5 Khz

;2 = frequenza di trasmissione

;3 = volume

;4 = squelch

;5 = canale #

DEFS 1    ;IX+16H

ORG  3E30H

KEY_COUNT: DEFS 1         ;counter delle volte che i pulsanti sono premuti

ENC_FLG:      DEFS 1           ;0=l'encoder e' in attesa delle fasi=00

                                   ;1=l'encoder ha ricevuto le fasi=00 e si deve testare

                                   ;se l'impulso e' up o down

DIS_COUNT: DEFS 1

DELAY_KEY: DEFS 2          ;tempo che i pulsanti devono essere premuti

;************

; SEG G = BIT 7           A

; SEG B = BIT 2         -----

; SEG C = BIT 3     F |     | B

; SEG D = BIT 4        |  G  |

; SEG E = BIT 5         -----

; SEG F = BIT 6      E |     | C

; SEG A = BIT 1         |     |

; DP    = BIT 0            -----

;                                    D

;*************

ENCODER:    EQU  2000H   ;encoder per la sintonia

PORT_A:        EQU  2800H

PORT_B:        EQU  2801H

PORT_C:        EQU  2802H

PIO_CNT:      EQU  2803H

CTR0:             EQU  3000H

CTR1:             EQU  3001H

CTR2:             EQU  3002H

CTC_CNT:     EQU  3003H

                 END