basic ile 3310 lcd'ye yazmak biraz daha kolaylaştı

Başlatan est32, 15 Eylül 2011, 01:11:06

cherhem

#30
DÜZELTME: If DEGISKEN == 59 Then Stop  Stop döngüyü komple durduruyormuş sonradan farkettim. Bu kod çalışmıyor :)


bi düzenleme yaptım sizinle paylaşmak istedim. sırf o sütun sayma olayını kaldırmak için. her satırda yazdıracağın kelimenin uzunluğunu saymamak için::: mantık şu: yazdıracağınız kelimenin sonuna  "   ;  " (noktalı virgül)   koymak.

SATIR_1:

        SATIR=3
        For I=1 To 16
         DEGISKEN=LookUp KONUM,["SAYI: ;"]'HER KARAKTER 6 SUTUNDUR.BURADA 6 KARAKTER VAR 6X6=36
                        If DEGISKEN == 59 Then Stop
         KONUM=KONUM+1
         GoSub SATIR_YAZ
         GoSub YOLLA
         'GOSUB YAVAS_YAZ
         Next
         Clear SUTUN : Clear KONUM

       
GoTo SATIR_1


kayde değer bişey değil ama o sayma işi gözüme çok görünmüştü :)  sadece

Hattuşa

s.a.
ustalar bu 3310 ekranı ile ilgili burada yazılan yazıları görünce cesaret geldi, bende denemek isterim, vaktiyle ete hocamın bu konuda ki çalışmalarını okumuştum ve lcd nin bağlantısında yaşadığı slikon başarısızlığını okuyunca sıkıntılı olur die vazgeçmiştim. zira bu lcd nin bağlantıları biraz sıkıntılı sanırım bunu aşarsam elimde 2-3 tane 3310 ekranı var bende 1-2 deneme yapmayı düşünüyorum ve takıldığım yerde sizden yardım almak istiyorum. mesela karekter tablosunu protonda ".inc" dosyası olarak alt dosya yapabilirmiyiz zira epey uzun, tabi işlemciye başka işlemlerde yaptıracağımızı düşünürsek

zoptrik

2 çeşit 3310 ekranı var.

bunlardan birinde pinler doğrudan bakır bacaklarla bağlı. ben o bakır bacaklardan ince bobin kablolarıyla delikli plakete lehim yaptıktan sonra normal tek tel kablo ile bredborda aktardım. Diğeriyle de pratik uygulamalar var.
http://serdisplib.sourceforge.net/ser/images/pcd8544_displaytypes.jpg
sitede ayrıntılı bilgiler mevcut.
Kolay gelsin...
DEHA; İMKANSIZDA MÜMKÜNÜ GÖREBİLMEK DEMEKTİR.GEMİLERİN KARADA DA YÜZEBİLECEĞİNİ SEZMEK, MEHMETLERDEN BIRINI "FATİH" YAPAR...!

est32

inc dosyası olarak bilmem ama o satırlar ayrı bir .BAS uzantılı dosya haline getirilip
INCLUDE "karakter.bas" şeklinde en başa eklenirse de sanırım aynı işi yapar.
Daha önce pbp de lcd ekran tanımlamalarını her defasında programa yazmamak için bu yöntemi denemiştim çalışmıştı
Resimdeki en sağda olan ekranlar 5110 ekranı olsa gerek ona nasıl lehim yapılır bilemiyorum fakat 3310 ekranı iki türlü,birisi cam üzerine konulmuş köprü ile çalışan diğeri ise ekran ardına yapışık lehim yapılabilecek şekildeki film şeklinde. Köprü tip olana da lehim yapılabiliyor fakat sarsıntıda temessızlık olduğu zaman sorun oluyor. Diğer filmli olan ise en iyisi, ince kablo lehimlenebiliyor ve sorunsuz çalışıyor.

cherhem

sadece büyük sayılar yazarak yaptım 0 dan 9 a kadar. onları buyuksayi.bas  olarak kaydettim  sonra include ettim fakat bi değişiklik olmadı. bellek kulanımı hiç değişmedi.  hiç bir işlem yaptırmadan sadece o sayıları tanımlamam 16f628 in %96.83 ünü kapladı :)  bir işlem yaptıramayız bu şekilde. 2.  bir işlemci koymak gerekecek sanırım. daha kısa yolu bulunabilirmi bilmiyorum. arıştırma yapıyorum bakalım bişey bulursam yazarım yine

ete

Include olayı aynı yazılım formatını başka projelerde de kullanmak için bir kolaylıktır. Yoksa dosya boyutu üzerinde bir etkisi yoktur. Sistemin çalışması için orada ne yazılı  ise hespinin programa aktarılması gerekecektir. Ana programada yazsanız aynı include etsenizde aynı olacaktır.

Ete

Hattuşa

slm arkadaşlar; est ustanın 3310 yazım kodundan yararlanarak bende 3310 ekranına yazı yazmaya karar verdim. ete hocamın dediği gibi bir include dosyası oluşturup yazılarımı oradan yazmak istiyorum ancak;

SATIR_1:
         SATIR=0
         FOR I=1 TO 10
         DEGISKEN=LOOKUP KONUM,["ESAT METİN"]
         KONUM=KONUM+1'
         GOSUB SATIR_YAZ
         GOSUB YOLLA
         'GOSUB YAVAS_YAZ
         NEXT
         CLEAR SUTUN : CLEAR KONUM


şimdi buradaki ;

DEGISKEN=LOOKUP KONUM,["ESAT METİN"]
kısmı öyle bir tanımlama ile tanımlamalıyım ki yukarıdaki kısmı alt rutin yapıp, gerektirdiğinde lookup tablosundaki karekterleri değiştirdiğimde alt (mesela satır_1)  rutinde  çalıştırmalıyım. ama nasıl yapmalıyım başaramadım.

kafam durdu. ;D ;D ;D

est32

dediğiniz şeyi çok iyi anlayamadım ama sanıyorum yazdırma işini daha da basitleştirmek istiyorsunuz. Mutlaka daha basit bir yolu olmalı, lookup içerisinde değişken kullanabilsek iş bu kadar da uzun olmayacaktı ama lookup değişken desteklemiyor maalesef. Biraz daha düşünmek lazım

ete

@Pro_tr,
Ne istediğin çok açık anlaşılmıyor. Bende anlayamadım ne istediğini.
Orada yer alan Satır_1 zaten bir alt program gibi çalışacak şekilde haırlanmış. Altında bir RETURN eksik.
Lookup tablosuna ne yazarsan onu ekranda görürsün. Zaman zaman farklı uzunlukta karekter dizisi yerleşebileceğini dikkate alarak bir sonlandırma karekteri oraya eklenebilir ve tablodaki karekterlerin sonlandırma karekterine kadar alınıp ekrana verilmesi sağlanabilir.
Örnek vereyim,
SATIR_1:
         SATIR=0:KONUM=0
         WHILE KONUM<255
           DEGISKEN=LOOKUP KONUM,["ETEPIC.COM_EPEYCE UZUN BU",255]
           KONUM=KONUM+1'
           GOSUB SATIR_YAZ
           GOSUB YOLLA
           'GOSUB YAVAS_YAZ
         WEND
         CLEAR SUTUN : CLEAR KONUM
         RETURN

Bu kod otomatikman iki tırnak aralığına ne yazarsan onu ekrana verecektir. Tabiiki ekranın satır uzunluğunu dikkate alman gerekiyor.
Ete

Hattuşa

hocam özür dilerim anlatamadım sanırım. satır_1 kısmını bende return ile alt program ile yazdım. ancak şu varki;
şimdi bu ekranla bir menu yazacağız ve satır_1 de zaman zaman yazılar değişecek, örneğin; bir menu yaptık ve enter butonu ile satır_1 de sıra ile ışık ayarı, ses ayarı vs vs değiştireceğiz ve başka bir butonla da bu ayar noktalarının değerlerini değiştireceğiz. anlayacağınız satır_1 i program içerisinde değiştirmem lazım. satır_1 alt programı for döngüsü ile çalışmakta.

SATIR_1:
         SATIR=0:KONUM=0
         WHILE KONUM<255
           DEGISKEN=DEGISTIR
           KONUM=KONUM+1'
           GOSUB SATIR_YAZ
           GOSUB YOLLA
           'GOSUB YAVAS_YAZ
         WEND
         CLEAR SUTUN : CLEAR KONUM
         RETURN


ben değişken değerini;

DEGISTIR =LOOKUP KONUM,["ETEPIC.COM_EPEYCE UZUN BU",255]


diye tanımladığımda sadece E harfini basıyor başka basmıyor..

yani kabaca yukarıdaki satır_1 kısmını bir alt program olarak yazdığımda ;

SATIR_1:
         SATIR=0
         FOR I=1 TO HARF
         DEGISKEN=DEGISTIR
         KONUM=KONUM+1'
         GOSUB SATIR_YAZ
         GOSUB YOLLA
         'GOSUB YAVAS_YAZ
         NEXT
         CLEAR SUTUN : CLEAR KONUM
return



programın herhangi bir yerinde


HARF =10
DEGISTIR =LOOKUP KONUM,["ESAT METİN"]
gosub satır_1


diye çağırdığımda ekrana 10 tane E yazıyor.

istedim ki satır_1 i alt program yapıp her seferinde satır_1 i tek tek yazmadan gosub ile çağırayım ve 1. satıra istediğimi yazayım ve koddan ve işlemci hafızasından tasarruf edeyim istedim. ama olmadı...  ;D










ta3usl

Şöyle bir şey mi demek istedin acaba ?



dim yazi[13] as byte  'bir satır 13 karakter alıyor sanırım.


SATIR_1:
         konum=0
         while degisken < 255
          degisken = yazi[konum] 
          GOSUB SATIR_YAZ
          GOSUB YOLLA
          'GOSUB YAVAS_YAZ
                konum = konum + 1
         wend
         CLEAR SUTUN : CLEAR KONUM
return




'başka birden çağırırken;

satir = 1
str yazi = "ta3usl",255
gosub satir_1




satir = 2
str yazi = "satir 2 yaz",255
gosub satir_1

est32

sorun menü oluşturmaksa, bir aralar bundan kol saati yapacağım diye 877 ile menü oluşturmuş deneme yapmıştım. Akşam onu bulursam paylaşayım.
Kod tasarrufu için de düşünülen şey mantıklı ama sanki benzer şeyleri denemiş ya başarılı olamamıştım, ya da değişen olmamıştı diye hatırlar gibi oluyorum.

ete

Satır_1 programını aşağıdaki şekilde değiştirip bir alt programa yerleştirirsen istediğin kısmende olsa yerine gelir sanırım.
satır_1 Alt programını ilk satıra yazılacak farklı yazılariçin sürekli kullanabilirsin. Kullanmak için MENU_BIR etiketi altına verdiğim lookup tablosundanbilgi alma işlemini kullanabileceğin gibi direk GELEN isimli dize değişkenine bu bilgileri önceden yazarak da aynı şeyi yapabilirsin. Mesela
GELEN[0]="M":GELEN[1]="E":GELEN[2]="N":GELEN[3]="U":GELEN[4]=" ":GELEN[5]="I":GELEN[6]="K":GELEN[6]="I"
GOSUB SATIR_1
şeklinde kullanılmalıdır.

ETE

BASLA:
...
...
MENU_BIR:
KONUM=0:VERI=0
      WHILE VERI<255
        LOOKUP KONUM,["SATIR BIR",255],VERI
        IF VERI=255 THEN EXIT
        GELEN[KONUM]=VERI       
        KONUM=KONUM+1
      WEND
      GOSUB SATIR_1
...
...
GOTO BASLA

SATIR_1:
         SATIR=0'İLK SATIR
         FOR I=1 TO KONUM
         DEGISKEN=GELEN[I]
         GOSUB SATIR_YAZ
         GOSUB YOLLA
         'GOSUB YAVAS_YAZ
         NEXT
         RETURN

Hattuşa

ETE hocam 628A ya basit bir menu yazdım, yapmak istediğim aşağı yukarı böyle. Belki daha kısa veya basit yapılabilirdi. daha kısa veya basit yazılan olursa incelemek isterim...

Device 16F628A
Config BOREN_OFF, CP_OFF, DATA_CP_OFF, PWRTE_OFF, WDT_OFF, LVP_OFF, MCLRE_ON, INTRC_OSC_NOCLKOUT, DATA_CP_OFF, WDT_OFF
Xtal =4
Declare All_Digital TRUE
CMCON =7
TRISA =0 :PORTA =0
TRISB =%00000111 :PORTB =0
OPTION_REG =0
Symbol CLK=PORTB.7
Symbol DTA=PORTB.6
Symbol RST=PORTB.4
Symbol D_C=PORTB.5
Symbol EnTeR =PORTB.0
Symbol uP =PORTB.1
Symbol dOwN =PORTB.2
Input EnTeR
Input uP
Input dOwN
Dim sAtIr As Byte
Dim sAtIr_sEc As Byte
Dim I As Byte
Dim dEgIsKeN As Byte
Dim D_yAz[15] As Byte
Dim sUtUn As Byte
Dim sAyI As Byte
Dim CoLuMn[6] As Byte
Dim pOsX As Byte
Dim pOsY As Byte
Dim K_aDeT As Byte
Dim kOnUm As Byte
Dim dIJ As Byte
Dim LcDdAtA As Byte
Dim MeNuM As Byte
Dim SeS As Byte
Dim IsIk As Byte
Dim gUc As Byte
Dim VoLt As Byte


SeS =ERead 1  :DelayMS 50 :If SeS =255 Then SeS =1
IsIk =ERead 2 :DelayMS 50 :If IsIk =255 Then IsIk =1
gUc =ERead 3  :DelayMS 50 :If gUc =255 Then gUc =1
VoLt =ERead 4 :DelayMS 50 :If VoLt =255 Then VoLt =1
MeNuM =1

GoSub LCD_AC
GoSub LCD_SIL
Clear
DelayMS 100
oN_MaIn:
sAtIr_sEc =0
sUtUn =20
         K_aDeT =9
         D_yAz[1] ="A"
         D_yAz[2] ="Y"
         D_yAz[3] ="A"
         D_yAz[4] ="R"
         D_yAz[5] ="L"
         D_yAz[6] ="A"
         D_yAz[7] ="R"
         D_yAz[8] =" "
         D_yAz[9] =" "
         GoSub SATIR_
sAtIr_sEc =2
sUtUn =10
         K_aDeT =9
         D_yAz[1] ="S"
         D_yAz[2] ="E"
         D_yAz[3] ="S"
         D_yAz[4] =" "
         D_yAz[5] ="S"
         D_yAz[6] ="E"
         D_yAz[7] ="T"
         D_yAz[8] =" "
         D_yAz[9] =":"
         GoSub SATIR_ 
sAtIr_sEc =3
sUtUn =10
         K_aDeT =9
         D_yAz[1] ="I"
         D_yAz[2] ="S"
         D_yAz[3] ="I"
         D_yAz[4] ="K"
         D_yAz[5] =" "
         D_yAz[6] ="S"
         D_yAz[7] ="E"
         D_yAz[8] ="T"
         D_yAz[9] =":"
         GoSub SATIR_ 
sAtIr_sEc =4
sUtUn =10
         K_aDeT =9
         D_yAz[1] ="G"
         D_yAz[2] ="U"
         D_yAz[3] ="C"
         D_yAz[4] =" "
         D_yAz[5] ="S"
         D_yAz[6] ="E"
         D_yAz[7] ="T"
         D_yAz[8] =" "
         D_yAz[9] =":"
         GoSub SATIR_ 
sAtIr_sEc =5
sUtUn =10
         K_aDeT =9
         D_yAz[1] ="V"
         D_yAz[2] ="O"
         D_yAz[3] ="L"
         D_yAz[4] ="T"
         D_yAz[5] =" "
         D_yAz[6] ="S"
         D_yAz[7] ="E"
         D_yAz[8] ="T"
         D_yAz[9] =":"
         GoSub SATIR_
'-----------------degerleri yaz
sAtIr =2
sUtUn =70
sAyI =SeS +1
GoSub sAyI_yAz
sAtIr =3
sUtUn =70
sAyI =IsIk +1
GoSub sAyI_yAz

sAtIr =4
sUtUn =70
sAyI =gUc +1
GoSub sAyI_yAz

sAtIr =5
sUtUn =70
sAyI =VoLt +1
GoSub sAyI_yAz
 
sAtIr_sEc =2
sUtUn =2
         K_aDeT =1                                         
         D_yAz[1] ="*"
         GoSub SATIR_



MaIn:
If EnTeR =0 Then
   While EnTeR =0 :Wend
   Inc MeNuM
   If MeNuM >=5 Then MeNuM =1
   K_aDeT =1
   sUtUn =2
   GoSub EnTeR_yAz
      EndIf
     
If uP =0 Then
   DelayMS 200
   GoSub uP_yAz
   EndIf
   
If dOwN =0 Then
   DelayMS 200
   GoSub DowN_yAz
   EndIf
GoTo MaIn

uP_yAz:
       If MeNuM =1 Then
          SeS =SeS +1
          If SeS >99 Then SeS =99
          EWrite 1,[SeS]
          DelayMS 50
          sAtIr =2
          sUtUn =70
          sAyI =SeS +1
          GoSub sAyI_yAz
          EndIf
       If MeNuM =2 Then
          IsIk =IsIk +1
          If IsIk >99 Then IsIk =99
          EWrite 2,[IsIk]
          DelayMS 50
          sAtIr =3
          sUtUn =70
          sAyI =IsIk +1
          GoSub sAyI_yAz
          EndIf
       If MeNuM =3 Then
          gUc =gUc +1
          If gUc >99 Then gUc =99
          EWrite 3,[gUc]
          DelayMS 50
          sAtIr =4
          sUtUn =70
          sAyI =gUc +1
          GoSub sAyI_yAz
          EndIf
       If MeNuM =4 Then
          VoLt =VoLt +1
          If VoLt >99 Then VoLt =99
          EWrite 4,[VoLt]
          DelayMS 50
          sAtIr =5
          sUtUn =70
          sAyI =VoLt +1
          GoSub sAyI_yAz
          EndIf
Return

DowN_yAz:
       If MeNuM =1 Then
          SeS =SeS -1
          If SeS <1 Then SeS =1
          EWrite 1,[SeS]
          DelayMS 50
          sAtIr =2
          sUtUn =70
          sAyI =SeS +1
          GoSub sAyI_yAz
          EndIf
       If MeNuM =2 Then
          IsIk =IsIk -1
          If IsIk <1 Then IsIk =1
          EWrite 2,[IsIk]
          DelayMS 50
          sAtIr =3
          sUtUn =70
          sAyI =IsIk +1
          GoSub sAyI_yAz
          EndIf
       If MeNuM =3 Then
          gUc =gUc -1
          If gUc <1 Then gUc =1
          EWrite 3,[gUc]
          DelayMS 50
          sAtIr =4
          sUtUn =70
          sAyI =gUc +1
          GoSub sAyI_yAz
          EndIf
       If MeNuM =4 Then
          VoLt =VoLt -1
          If VoLt <1 Then VoLt =1
          EWrite 4,[VoLt]
          DelayMS 50
          sAtIr =5
          sUtUn =70
          sAyI =VoLt +1
          GoSub sAyI_yAz
          EndIf
Return


EnTeR_yAz:
    If MeNuM =1 Then
              sAtIr_sEc =2
              D_yAz[1] ="*"
              GoSub SATIR_
              sAtIr_sEc =5
              D_yAz[1] =" "
              GoSub SATIR_
              EndIf
      If MeNuM =2 Then
              sAtIr_sEc =3
              D_yAz[1] ="*"
              GoSub SATIR_
              sAtIr_sEc =2
              D_yAz[1] =" "
              GoSub SATIR_
              EndIf
       If MeNuM =3 Then
             sAtIr_sEc =4
              D_yAz[1] ="*"
              GoSub SATIR_
              sAtIr_sEc =3
              D_yAz[1] =" "
              GoSub SATIR_
              EndIf   
       If MeNuM =4 Then
              sAtIr_sEc =5
              D_yAz[1] ="*"
              GoSub SATIR_
              sAtIr_sEc =4
              D_yAz[1] =" "
              GoSub SATIR_
              EndIf
Return
End
Include "3310LCD.inc"


isis şemayı bas ve hex dosyasınıda ekliyorum. belki daha basit bir şekile getiren olabilir. benim kafam bu kadarına bastı

est32

2011 yılında harici 32KHz karistal ve timer1 kullanarak bir saat denemesi yapmış idim. Tabii bu saat denemem de manü yapmıştım. Tabii bu menü yüzünden program oldukça uzun oldu. İncelemeniz için ekliyorum(yazılım proton)
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [ESAT METİN ERDOĞAN]                              *
'*  Notice  : Copyright (c) 2011 [İZİNSİZ KULLANMAK HARAMDIR]   *
'*          : All Rights Reserved                               *
'*  Date    : 19.09.2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
DEVICE=16F877A
CONFIG CP_OFF,CPD_OFF,WDT_OFF,XT_OSC,PWRTE_ON,BODEN_OFF,WRT_OFF,LVP_OFF,DEBUG_OFF 
XTAL=4
OPTION_REG.7=0'DAHİLİ PULL UP DİRENÇLERİ DEVREDE
INTCON =%11000000'diğer tüm kesmelere ve çevresel (PEIE)
PIE1 =  %00000001'TIMER1 kesmesini aktif et(TMR1IE)
T1CON = %00001011'TIMER1 aktif
ADCON1 = 7

SYMBOL CLK=PORTD.4
SYMBOL DTA=PORTD.5
SYMBOL RST=PORTD.7
SYMBOL D_C=PORTD.6
SYMBOL DQ=PORTD.1

SYMBOL YUKARI=PORTB.5
SYMBOL TMM=PORTB.6
SYMBOL ASAGI=PORTB.7

DIM POSX AS BYTE,POSY AS BYTE,I AS WORD,SATIR AS BYTE,SUTUN AS BYTE,DIJ AS BYTE
DIM LCDDATA AS BYTE,KONUM AS BYTE,DEGISKEN AS BYTE,HARF[6] AS BYTE,SAYI AS BYTE
DIM SA AS BYTE,DK AS BYTE,SN AS BYTE,S[72] AS BYTE,X AS BYTE,TIMER1 AS TMR1L.WORD
DIM GUN AS BYTE,AY AS BYTE,YIL AS WORD,HGN AS BYTE,SIL AS BIT
DIM OK AS BYTE,SAA AS BYTE,DKA AS BYTE,SNA AS BYTE,TAYMIR AS WORD
DIM ISI AS WORD,HAM AS WORD,MESGUL AS BYTE,ISRT AS BYTE,OLC_SURE AS BYTE

ON INTERRUPT GOTO KESME

GOSUB LCD_AC                                   
GOSUB LCD_SIL
CLEAR
GUN=12
AY=10
YIL=2011
SA=0
DK=0
SN=0
HGN=3
EDATA 32768
TIMER1.HIGHBYTE=EREAD 1
TIMER1.LOWBYTE=EREAD 0
TAYMIR=TIMER1
DELAYMS 200
OWRITE DQ, 1, [$CC, $4E, 0, 0,%00011111]'sensör 9 bit
'**********************************************************************************************
BASLA:
        IF SIL=1 THEN GOSUB LCD_SIL
        SIL=0
                                       
        SAYI=SA DIG 1
        SUTUN=0
        GOSUB RKM_YOLLA
       
        SAYI=SA DIG 0
        SUTUN=18
        GOSUB RKM_YOLLA
       
        SAYI=DK DIG 1
        SUTUN=48
        GOSUB RKM_YOLLA
       
        SAYI=DK DIG 0
        SUTUN=66
        GOSUB RKM_YOLLA
       
        SATIR=1:SUTUN=38
        DEGISKEN=SN DIG 1
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
       
        SATIR=2:SUTUN=38
        DEGISKEN=SN DIG 0
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
'********************************TARİH GÖSTER***************************************************       
        SATIR=5:SUTUN=0
        FOR I=1 TO 0 STEP -1
        DEGISKEN=GUN DIG I
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
       
        SATIR=5:SUTUN=18
        FOR I=1 TO 0 STEP -1
        DEGISKEN=AY DIG I
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
       
        SATIR=5:SUTUN=36
        FOR I=3 TO 0 STEP -1
        DEGISKEN=YIL DIG I
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
       
        SATIR=5:SUTUN=12
        FOR I=1 TO 2
        DEGISKEN="."
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        SUTUN=SUTUN +12
        NEXT
       
'***************************************GÜN GÖSTER**********************************************
        SATIR=4:SUTUN=0:KONUM=0
        IF HGN=1 THEN GOSUB PAZARTESI
        IF HGN=2 THEN GOSUB SALI
        IF HGN=3 THEN GOSUB CARSAMBA
        IF HGN=4 THEN GOSUB PERSEMBE
        IF HGN=5 THEN GOSUB CUMA
        IF HGN=6 THEN GOSUB CUMARTESI
        IF HGN=7 THEN GOSUB PAZAR
        SUTUN=0
       
'***********************************************************************************************
ISI_GOSTER:      '23*C
        IF ISRT=0 THEN
                SATIR=4:SUTUN=60
                DEGISKEN="+"
                GOSUB SATIR_YAZ
                GOSUB HARF_YOLLA
        ELSE
                SATIR=4:SUTUN=60
                DEGISKEN="-"
                GOSUB SATIR_YAZ
                GOSUB HARF_YOLLA
                ENDIF
       
        SATIR=4:SUTUN=66
        FOR I=1 TO 0 STEP -1
        DEGISKEN=ISI DIG I
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
       
        SATIR=4:SUTUN=78
        DEGISKEN=248
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
               
'***********************************************************************************************
        IF TMM=0 THEN OK=0:GOTO MENU
       
        IF OLC_SURE=0 THEN GOSUB DS_OKU

        GOTO BASLA
'***********************************************************************************************
PAZARTESI:
        FOR I=1 TO 9
        DEGISKEN=LOOKUP KONUM,["PAZARTESİ"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN
'***********************************************************************************************
SALI:
        FOR I=1 TO 4
        DEGISKEN=LOOKUP KONUM,["SALI"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN
'***********************************************************************************************
CARSAMBA:
        FOR I=1 TO 8
        DEGISKEN=LOOKUP KONUM,["ÇARŞAMBA"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN
'***********************************************************************************************
PERSEMBE:
        FOR I=1 TO 8
        DEGISKEN=LOOKUP KONUM,["PERŞEMBE"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN
'***********************************************************************************************
CUMA:
        FOR I=1 TO 4
        DEGISKEN=LOOKUP KONUM,["CUMA"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN
'***********************************************************************************************
CUMARTESI:
        FOR I=1 TO 9
        DEGISKEN=LOOKUP KONUM,["CUMARTESİ"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN                             
'***********************************************************************************************
PAZAR:
        FOR I=1 TO 5
        DEGISKEN=LOOKUP KONUM,["PAZAR"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
        RETURN
'***********************************************************************************************
MENU:
        GOSUB LCD_SIL
        WHILE TMM=0:DELAYMS 250:WEND
'***********************************************************************************************
SATIR_1:
         SATIR=0:SUTUN=6:KONUM=0
         FOR I=1 TO 10
         DEGISKEN=LOOKUP KONUM,["SAAT AYARI"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
'***********************************************************************************************
SATIR_2:
         SATIR=1:SUTUN=6:KONUM=0
         FOR I=1 TO 11
         DEGISKEN=LOOKUP KONUM,["TARİH AYARI"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT       
'***********************************************************************************************
SATIR_3:
         SATIR=2:SUTUN=6:KONUM=0
         FOR I=1 TO 11
         DEGISKEN=LOOKUP KONUM,["KALİBRASYON"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
'***********************************************************************************************
SATIR_4:
         SATIR=3:SUTUN=6:KONUM=0
         FOR I=1 TO 3
         DEGISKEN=LOOKUP KONUM,["ÇIK"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
'***********************************************************************************************
SATIR_5:
         SATIR=4:SUTUN=24:KONUM=0
         FOR I=1 TO 10
         DEGISKEN=LOOKUP KONUM,["ESAT METİN"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
'***********************************************************************************************
SATIR_6:
         SATIR=5:SUTUN=24:KONUM=0
         FOR I=1 TO 7
         DEGISKEN=LOOKUP KONUM,["ERDOĞAN"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
'***********************************************************************************************
SEC:
        SATIR=OK:SUTUN=0
        DEGISKEN=">"
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA

        IF ASAGI=0 THEN GOSUB LCD_SIL:OK=OK +1
        IF YUKARI=0 THEN GOSUB LCD_SIL:OK=OK -1
       
        IF OK=4 THEN OK=0
        IF OK=255 THEN OK=3
       
        IF OK=0 AND TMM=0 THEN GOSUB LCD_SIL:OK=0:SAA=SA:DKA=DK:SNA=SN:GOTO SAAT_AYARI
        IF OK=1 AND TMM=0 THEN GOSUB LCD_SIL:OK=0:GOTO TARIH_AYARI
        IF OK=2 AND TMM=0 THEN GOSUB LCD_SIL:OK=0:GOTO KALIBRASYON
        IF OK=3 AND TMM=0 THEN GOSUB LCD_SIL:OK=0:GOTO BASLA
       
        GOTO SATIR_1
'***********************************************************************************************
SAAT_AYARI:
         SATIR=0:SUTUN=6:KONUM=0
         FOR I=1 TO 3
         DEGISKEN=LOOKUP KONUM,["SA:"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=1:SUTUN=6:KONUM=0
         FOR I=1 TO 3
         DEGISKEN=LOOKUP KONUM,["DK:"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=2:SUTUN=6:KONUM=0
         FOR I=1 TO 3
         DEGISKEN=LOOKUP KONUM,["SN:"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=0:SUTUN=24
         FOR I=1 TO 0 STEP -1
         DEGISKEN=SAA DIG I
         IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=1:SUTUN=24
         FOR I=1 TO 0 STEP -1
         DEGISKEN=DKA DIG I
         IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=2:SUTUN=24
         FOR I=1 TO 0 STEP -1
         DEGISKEN=SNA DIG I
         IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=OK:SUTUN=0
         DEGISKEN=">"
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         
         IF SAA>23 THEN SAA=0
         IF SAA=0 AND ASAGI=0 AND OK=0 THEN SAA=23
         IF DKA>59 THEN DKA=0
         IF DKA=0 AND ASAGI=0 AND OK=1 THEN DKA=59
         IF SNA>59 THEN SNA=0
         IF SNA=0 AND ASAGI=0 AND OK=2 THEN SNA=59
         
         IF OK=0 AND YUKARI=0 THEN SAA=SAA +1
         IF OK=0 AND ASAGI=0 THEN SAA=SAA -1
         
         IF OK=1 AND YUKARI=0 THEN DKA=DKA +1
         IF OK=1 AND ASAGI=0 THEN DKA=DKA -1
         
         IF OK=2 AND YUKARI=0 THEN SNA=SNA +1
         IF OK=2 AND ASAGI=0 THEN SNA=SNA -1
         
         IF TMM=0 THEN GOSUB LCD_SIL:OK=OK +1
         IF OK=3 THEN SA=SAA:DK=DKA:SN=SNA:OK=3:GOTO MENU
         
         DELAYMS 150
         
         GOTO SAAT_AYARI       
'***********************************************************************************************
TARIH_AYARI:
         SATIR=0:SUTUN=6:KONUM=0
         FOR I=1 TO 4
         DEGISKEN=LOOKUP KONUM,["GÜN:"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=1:SUTUN=6:KONUM=0
         FOR I=1 TO 4
         DEGISKEN=LOOKUP KONUM,["AY :"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=2:SUTUN=6:KONUM=0
         FOR I=1 TO 4
         DEGISKEN=LOOKUP KONUM,["YIL:"]
         KONUM=KONUM+1
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=0:SUTUN=30
         FOR I=1 TO 0 STEP -1
         DEGISKEN=GUN DIG I
         IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=1:SUTUN=30
         FOR I=1 TO 0 STEP -1
         DEGISKEN=AY DIG I
         IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=2:SUTUN=30
         FOR I=3 TO 0 STEP -1
         DEGISKEN=YIL DIG I
         IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         NEXT
         
         SATIR=OK:SUTUN=0
         DEGISKEN=">"
         GOSUB SATIR_YAZ
         GOSUB HARF_YOLLA
         
         
         SATIR=3:SUTUN=6:KONUM=0
         IF HGN=1 THEN GOSUB PAZARTESI
         IF HGN=2 THEN GOSUB SALI
         IF HGN=3 THEN GOSUB CARSAMBA
         IF HGN=4 THEN GOSUB PERSEMBE
         IF HGN=5 THEN GOSUB CUMA
         IF HGN=6 THEN GOSUB CUMARTESI
         IF HGN=7 THEN GOSUB PAZAR
         
         IF OK=0 AND YUKARI=0 THEN GUN=GUN +1
         IF OK=0 AND ASAGI=0 THEN GUN=GUN -1
         
         IF OK=1 AND YUKARI=0 THEN AY=AY +1
         IF OK=1 AND ASAGI=0 THEN AY=AY -1
         
         IF OK=2 AND YUKARI=0 THEN YIL=YIL +1
         IF OK=2 AND ASAGI=0 THEN YIL=YIL -1
         
         IF OK=3 AND YUKARI=0 THEN GOSUB LCD_SIL:HGN=HGN +1
         IF OK=3 AND ASAGI=0 THEN GOSUB LCD_SIL:HGN=HGN -1
         
         IF TMM=0 THEN GOSUB LCD_SIL:OK=OK +1
         IF OK=4 THEN OK=3:GOTO MENU
         
         IF HGN>7 THEN HGN=1
         IF HGN<1 THEN HGN=7
         IF GUN>31 THEN GUN=1
         IF GUN<1 THEN GUN=31
         IF AY>12 THEN AY=1
         IF AY<1 THEN AY=12
         IF YIL>9999 THEN YIL=2011
         
         DELAYMS 150
         
         GOTO TARIH_AYARI
'***********************************************************************************************
KALIBRASYON:
        SATIR=0:SUTUN=0:KONUM=0
        FOR I=1 TO 7
        DEGISKEN=LOOKUP KONUM,["TİMER1:"]
        KONUM=KONUM+1
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
       
        SATIR=0:SUTUN=48
        FOR I=4 TO 0 STEP -1
        DEGISKEN=TAYMIR DIG I
        IF DEGISKEN<48 AND DEGISKEN<58 THEN DEGISKEN=DEGISKEN+48
        GOSUB SATIR_YAZ
        GOSUB HARF_YOLLA
        NEXT
       
        IF YUKARI=0 THEN TAYMIR=TAYMIR +1
        IF ASAGI=0 THEN TAYMIR=TAYMIR -1
        IF TMM=0 THEN TIMER1=TAYMIR:EWRITE 0,[TAYMIR]:OK=3:GOTO MENU
       
        DELAYMS 100
               
        GOTO KALIBRASYON
'***********************************************************************************************
DS_OKU:
        OWRITE   DQ, 1, [$CC, $44]
OYALAN:
        OREAD    DQ, 4, [MESGUL]
        IF      MESGUL = 0 THEN OYALAN
        OWRITE   DQ, 1, [$CC, $BE]
        OREAD    DQ, 2, [HAM.LOWBYTE, HAM.HIGHBYTE]
        ISRT=HAM.11'   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
        IF ISRT=1 THEN GOTO NEGATIF
        ISI=HAM/16
        OLC_SURE=10
        RETURN
NEGATIF:
        ISI=(65536-HAM)/16
        'ISI=DIV32 10
        OLC_SURE=10
        RETURN
'***********************************************************************************************
DISABLE
KESME:
        TIMER1=TAYMIR'33280 iken 42682 saniyede 426 saniye geri
        INTCON.7=0'diğer kesmelere izin verme
        SN=SN +1
        IF SN>59 THEN SN=0:DK=DK +1:SIL=1
        IF DK>59 THEN DK=0:SA=SA +1
        IF SA>23 THEN SA=0:GUN=GUN +1:HGN=HGN +1
        IF HGN>7 THEN HGN=1
       
        IF AY=1 AND GUN>31 THEN AY=2:GUN=1
        IF AY=2 AND GUN>29 THEN AY=3:GUN=1
        IF AY=3 AND GUN>31 THEN AY=4:GUN=1
        IF AY=4 AND GUN>30 THEN AY=5:GUN=1
        IF AY=5 AND GUN>31 THEN AY=6:GUN=1
        IF AY=6 AND GUN>30 THEN AY=7:GUN=1
        IF AY=7 AND GUN>31 THEN AY=8:GUN=1
        IF AY=8 AND GUN>31 THEN AY=9:GUN=1
        IF AY=9 AND GUN>30 THEN AY=10:GUN=1
        IF AY=10 AND GUN>31 THEN AY=11:GUN=1
        IF AY=11 AND GUN>30 THEN AY=12:GUN=1
        IF AY=12 AND GUN>31 THEN AY=1:GUN=1:YIL=YIL +1
       
        IF OLC_SURE>0 THEN OLC_SURE=OLC_SURE -1
       
        PIR1.0=0'TIMER1 taşma bayrağını sıfırla
        INTCON.7=1'diğer kesmelere izin ver
       
        CONTEXT SAVE
        RESUME
'***********************************************************************************************
HARF_YOLLA:
        POSX=SUTUN:POSY=SATIR:GOSUB LCD_XY_VER:HIGH D_C
        SHOUT DTA,CLK,1,[HARF[0],HARF[1],HARF[2],HARF[3],HARF[4],HARF[5]]
        SUTUN=SUTUN+6
        RETURN
'***********************************************************************************************
RKM_YOLLA:
        KONUM=0
       
        SELECT SAYI
        CASE=1:GOSUB RKM_1
        CASE=2:GOSUB RKM_2
        CASE=3:GOSUB RKM_3
        CASE=4:GOSUB RKM_4
        CASE=5:GOSUB RKM_5
        CASE=6:GOSUB RKM_6
        CASE=7:GOSUB RKM_7
        CASE=8:GOSUB RKM_8
        CASE=9:GOSUB RKM_9
        CASE=0:GOSUB RKM_0
        ENDSELECT

        POSX=SUTUN:POSY=0:GOSUB LCD_XY_VER:HIGH D_C
        SHOUT DTA,CLK,1,[S[0],S[1],S[2],S[3],S[4],S[5],S[6],S[7],S[8],S[9],S[10],S[11],S[12],S[13],S[14],S[15],S[16],S[17]]
       
        POSX=SUTUN:POSY=1:GOSUB LCD_XY_VER:HIGH D_C
        SHOUT DTA,CLK,1,[S[18],S[19],S[20],S[21],S[22],S[23],S[24],S[25],S[26],S[27],S[27],S[29],S[30],S[31],S[32],S[33],S[34],S[35]]
       
        POSX=SUTUN:POSY=2:GOSUB LCD_XY_VER:HIGH D_C
        SHOUT DTA,CLK,1,[S[36],S[37],S[38],S[39],S[40],S[41],S[42],S[43],S[44],S[45],S[46],S[47],S[48],S[49],S[50],S[51],S[52],S[53]]
       
        POSX=SUTUN:POSY=3:GOSUB LCD_XY_VER:HIGH D_C
        SHOUT DTA,CLK,1,[S[54],S[55],S[56],S[57],S[58],S[59],S[60],S[61],S[62],S[63],S[64],S[65],S[66],S[67],S[68],S[69],S[70],S[71]]
       
        RETURN
'************************************************************************************************
LCD_YAZ:
        SHOUT DTA,CLK,1,[LCDDATA]
        RETURN
'************************************************************************************************
LCD_SIL:
        POSX=0:POSY=0:GOSUB LCD_XY_VER
        HIGH D_C
        FOR I=1 TO 252'EKRANINIZ 96*64 İSE BURAYI 500 YAP
        LCDDATA=0:GOSUB LCD_YAZ '1. yarı siliniyor
        LCDDATA=0:GOSUB LCD_YAZ '2. yarı siliniyor   
        NEXT
        RETURN
'************************************************************************************************
LCD_XY_VER:
        LOW D_C
        LCDDATA=%01000000 | POSY
        GOSUB LCD_YAZ
        LCDDATA=%10000000 | POSX
        GOSUB LCD_YAZ
        HIGH D_C
        RETURN
'************************************************************************************************
LCD_AC:
        LOW RST
        DELAYMS 10 
        HIGH RST 
        LOW D_C  ' RESET LCD   
        LCDDATA= $21: GOSUB LCD_YAZ        ' LCD EXTENDED COMMANDS
        LCDDATA= $b0: GOSUB LCD_YAZ        ' SET LCD Vop (CONTRAST)
        LCDDATA= $06: GOSUB LCD_YAZ        ' SET TEMP COEFFICENT
        LCDDATA= %00010101: GOSUB LCD_YAZ  ' LCD BIAS MODE
        LCDDATA= $20: GOSUB LCD_YAZ        ' LCD STANDARD COMMANDS
        LCDDATA= $0c: GOSUB LCD_YAZ        ' LCD IN NORMAL MODE
        RETURN
'************************************************************************************************
RKM_1:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$00,$00,$00,$30,$38,$3C,$1E,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,_
                           $00,$00,$00,$38,$38,$38,$38,$3F,$3F,$3F,$3F,$38,$38,$38,$38,$00,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'************************************************************************************************
RKM_2:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$38,$3C,$3E,$1F,$0F,$07,$07,$07,$07,$07,$07,$0F,$1F,$FE,$FC,$F8,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$C0,$E0,$FF,$FF,$7F,$00,$00,_
                           $00,$00,$80,$C0,$E0,$F0,$F8,$7C,$3E,$1F,$0F,$07,$03,$01,$00,$00,$00,$00,_
                           $3E,$3F,$3F,$3F,$3F,$39,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'************************************************************************************************
RKM_3:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$87,$C7,$E7,$FF,$FF,$7F,$00,$00,_
                           $00,$00,$00,$00,$00,$38,$38,$7C,$FE,$FF,$EF,$C7,$83,$01,$00,$00,$00,$00,_
                           $80,$00,$00,$00,$00,$00,$00,$00,$00,$01,$03,$07,$FF,$FF,$FE,$FC,$00,$00,_
                           $1F,$1F,$3E,$3C,$3C,$38,$38,$38,$38,$38,$3C,$3F,$1F,$1F,$0F,$07,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'************************************************************************************************
RKM_4:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$00,$00,$00,$00,$80,$C0,$E0,$F0,$F8,$7C,$FE,$FF,$FF,$FF,$00,$00,$00,$00,_
                           $F8,$FC,$FE,$1F,$0F,$07,$03,$01,$00,$00,$FF,$FF,$FF,$FF,$00,$00,$00,$00,_
                           $07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$FF,$FF,$FF,$FF,$07,$07,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$3F,$3F,$3F,$00,$00,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'***********************************************************************************************
RKM_5:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$FF,$FF,$FF,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$00,$00,_
                           $7F,$7F,$7F,$78,$78,$78,$78,$78,$78,$78,$F8,$F8,$F0,$E0,$C0,$80,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$FF,$FF,$FF,$00,$00,_
                           $0F,$1F,$3E,$3C,$38,$38,$38,$38,$38,$38,$3C,$3E,$1F,$0F,$07,$01,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'***********************************************************************************************
RKM_6:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$00,$00,$80,$E0,$F0,$F8,$7C,$3E,$1F,$0F,$07,$07,$07,$07,$07,$00,$00,$00,_
                           $F8,$FE,$FF,$FF,$E7,$E1,$E0,$E0,$E0,$E0,$E0,$E0,$C0,$80,$00,$00,$00,$00,_
                           $FF,$FF,$FF,$81,$00,$00,$00,$00,$00,$00,$00,$01,$03,$FF,$FF,$FE,$00,$00,_
                           $01,$07,$1F,$1F,$3E,$38,$38,$38,$38,$38,$38,$3C,$1E,$1F,$0F,$07,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'***********************************************************************************************
RKM_7:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$FF,$FF,$FF,$FF,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$00,$80,$C0,$E0,$F0,$FF,$7F,$3F,$1F,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$01,$00,$00,$00,$00,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$3F,$3F,$3F,$3F,$00,$00,$00,$00,$00,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'***********************************************************************************************
RKM_8:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$F0,$F8,$FC,$3E,$1F,$0F,$07,$07,$07,$07,$0F,$1F,$3E,$FC,$F8,$F0,$00,$00,_
                           $1F,$3F,$7F,$F8,$F0,$E0,$C0,$C0,$C0,$C0,$E0,$F0,$F8,$7F,$3F,$1F,$00,$00,_
                           $FC,$FE,$FF,$07,$03,$01,$01,$01,$01,$01,$01,$03,$07,$FF,$FE,$FC,$00,$00,_
                           $07,$0F,$1F,$3E,$3C,$38,$38,$38,$38,$38,$38,$3C,$3E,$1F,$0F,$07,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'***********************************************************************************************
RKM_9:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$F8,$FC,$FE,$1F,$0F,$07,$07,$07,$07,$07,$07,$0F,$1F,$FE,$FC,$F8,$00,$00,_
                           $1F,$3F,$7F,$FC,$F8,$F0,$E0,$E0,$E0,$E0,$F0,$F8,$FC,$FF,$FF,$FF,$00,$00,_
                           $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$00,$00,_
                           $07,$0F,$1F,$3E,$3C,$38,$38,$38,$38,$38,$38,$3C,$3E,$1F,$0F,$07,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN
'***********************************************************************************************
RKM_0:
        X=0
        FOR I=1 TO 72
        S[X]=LOOKUP KONUM,[$F8,$FC,$FE,$1F,$0F,$07,$07,$07,$07,$07,$07,$0F,$1F,$FE,$FC,$F8,$00,$00,_
                           $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$00,$00,_
                           $FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$00,$00,_
                           $07,$0F,$1F,$3E,$3C,$38,$38,$38,$38,$38,$38,$3C,$3E,$1F,$0F,$07,$00,$00]
        X=X +1
        KONUM=KONUM +1
        NEXT
        RETURN                           
'************************************************************************************************
SATIR_YAZ:
   
     SELECT CASE DEGISKEN

     CASE "A"
     HARF[0]=$7E
     HARF[1]=$11
     HARF[2]=$11
     HARF[3]=$11
     HARF[4]=$7E
     HARF[5]=$00
   
     CASE "B"'65
     HARF[0]=$7F
     HARF[1]=$49
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$36
     HARF[5]=$00
     
     CASE "C"
     HARF[0]=$3E
     HARF[1]=$41
     HARF[2]=$41
     HARF[3]=$41
     HARF[4]=$22
     HARF[5]=$00

     CASE 199'"Ç"
     HARF[0]=$1E
     HARF[1]=$21
     HARF[2]=$61
     HARF[3]=$21
     HARF[4]=$12
     HARF[5]=$00
     
     CASE "D"'65
     HARF[0]=$7F
     HARF[1]=$41
     HARF[2]=$41
     HARF[3]=$22
     HARF[4]=$1C
     HARF[5]=$00
   
     CASE "E"'65
     HARF[0]=$7F
     HARF[1]=$49
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$41
     HARF[5]=$00
   
     CASE "F"'65
     HARF[0]=$7F
     HARF[1]=$09
     HARF[2]=$09
     HARF[3]=$09
     HARF[4]=$01
     HARF[5]=$00
   
     CASE "G"'65
     HARF[0]=$3E
     HARF[1]=$41
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$7A
     HARF[5]=$00

   
     CASE 208'"Ğ"
     HARF[0]=$38
     HARF[1]=$45
     HARF[2]=$55
     HARF[3]=$55
     HARF[4]=$20
     HARF[5]=$00

     CASE "H"'65
     HARF[0]=$7F
     HARF[1]=$08
     HARF[2]=$08
     HARF[3]=$08
     HARF[4]=$7F
     HARF[5]=$00

     CASE "I"'65
     HARF[0]=$00
     HARF[1]=$41
     HARF[2]=$7F
     HARF[3]=$41
     HARF[4]=$00
     HARF[5]=$00

     CASE 221'"İ"
     HARF[0]=$00
     HARF[1]=$44
     HARF[2]=$7D
     HARF[3]=$44
     HARF[4]=$00
     HARF[5]=$00

     CASE "J"'65
     HARF[0]=$20
     HARF[1]=$40
     HARF[2]=$41
     HARF[3]=$3F
     HARF[4]=$01
     HARF[5]=$00

     CASE "K"'65
     HARF[0]=$7F
     HARF[1]=$08
     HARF[2]=$14
     HARF[3]=$22
     HARF[4]=$41
     HARF[5]=$00

     CASE "L"'65
     HARF[0]=$7F
     HARF[1]=$40
     HARF[2]=$40
     HARF[3]=$40
     HARF[4]=$40
     HARF[5]=$00

     CASE "M"'65
     HARF[0]=$7F
     HARF[1]=$02
     HARF[2]=$0C
     HARF[3]=$02
     HARF[4]=$7F
     HARF[5]=$00

     CASE "N"'65
     HARF[0]=$7F
     HARF[1]=$04
     HARF[2]=$08
     HARF[3]=$10
     HARF[4]=$7F
     HARF[5]=$00

     CASE "O"'65
     HARF[0]=$3E
     HARF[1]=$41
     HARF[2]=$41
     HARF[3]=$41
     HARF[4]=$3E
     HARF[5]=$00

     CASE 214'"Ö" $3C,$43,$42,$43,$3C,$00
     HARF[0]=$3C
     HARF[1]=$43
     HARF[2]=$42
     HARF[3]=$43
     HARF[4]=$3C
     HARF[5]=$00

     CASE "P"'65
     HARF[0]=$7F
     HARF[1]=$09
     HARF[2]=$09
     HARF[3]=$09
     HARF[4]=$06
     HARF[5]=$00

     CASE "R"'65
     HARF[0]=$7F
     HARF[1]=$09
     HARF[2]=$19
     HARF[3]=$29
     HARF[4]=$46
     HARF[5]=$00

     CASE "S"'65
     HARF[0]=$46
     HARF[1]=$49
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$31
     HARF[5]=$00

     CASE 222'"Ş"$22,$65,$65,$25,$19,$00
     HARF[0]=$22
     HARF[1]=$65
     HARF[2]=$65
     HARF[3]=$25
     HARF[4]=$19
     HARF[5]=$00

     CASE "T"'65
     HARF[0]=$01
     HARF[1]=$01
     HARF[2]=$7F
     HARF[3]=$01
     HARF[4]=$01
     HARF[5]=$00
     
     CASE "U"'65
     HARF[0]=$3F
     HARF[1]=$40
     HARF[2]=$40
     HARF[3]=$40
     HARF[4]=$3F
     HARF[5]=$00
     
     CASE 220'"Ü"  $3D,$40,$40,$40,$3D,$00
     HARF[0]=$3D
     HARF[1]=$40
     HARF[2]=$40
     HARF[3]=$40
     HARF[4]=$3D
     HARF[5]=$00

     CASE "V"'65
     HARF[0]=$1F
     HARF[1]=$20
     HARF[2]=$40
     HARF[3]=$20
     HARF[4]=$1F
     HARF[5]=$00

     CASE "Y"' $07,$08,$70,$08,$07,$00
     HARF[0]=$07
     HARF[1]=$08
     HARF[2]=$70
     HARF[3]=$08
     HARF[4]=$07
     HARF[5]=$00   
     
     CASE "Z"'65
     HARF[0]=$61
     HARF[1]=$51
     HARF[2]=$49
     HARF[3]=$45
     HARF[4]=$43
     HARF[5]=$00

     CASE "0"'65
     HARF[0]=$3E
     HARF[1]=$51
     HARF[2]=$49
     HARF[3]=$45
     HARF[4]=$3E
     HARF[5]=$00

     CASE "1"'65
     HARF[0]=$00
     HARF[1]=$42
     HARF[2]=$7F
     HARF[3]=$40
     HARF[4]=$00
     HARF[5]=$00

     CASE "2"'65
     HARF[0]=$42
     HARF[1]=$61
     HARF[2]=$51
     HARF[3]=$49
     HARF[4]=$46
     HARF[5]=$00

     CASE "3"'65
     HARF[0]=$21
     HARF[1]=$41
     HARF[2]=$45
     HARF[3]=$4B
     HARF[4]=$31
     HARF[5]=$00

     CASE "4"'65
     HARF[0]=$18
     HARF[1]=$14
     HARF[2]=$12
     HARF[3]=$7F
     HARF[4]=$10
     HARF[5]=$00

     CASE "5"'65
     HARF[0]=$27
     HARF[1]=$45
     HARF[2]=$45
     HARF[3]=$45
     HARF[4]=$39
     HARF[5]=$00

     CASE "6"'65
     HARF[0]=$3C
     HARF[1]=$4A
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$30
     HARF[5]=$00

     CASE "7"'65
     HARF[0]=$01
     HARF[1]=$71
     HARF[2]=$09
     HARF[3]=$05
     HARF[4]=$03
     HARF[5]=$00

     CASE "8"'65
     HARF[0]=$36
     HARF[1]=$49
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$36
     HARF[5]=$00

     CASE "9"'65
     HARF[0]=$06
     HARF[1]=$49
     HARF[2]=$49
     HARF[3]=$49
     HARF[4]=$3E
     HARF[5]=$00

     CASE " "'65
     HARF[0]=$00
     HARF[1]=$00
     HARF[2]=$00
     HARF[3]=$00
     HARF[4]=$00
     HARF[5]=$00

     CASE "+"'65
     HARF[0]=$08
     HARF[1]=$08
     HARF[2]=$3E
     HARF[3]=$08
     HARF[4]=$08
     HARF[5]=$00   
     
     CASE "-"'65
     HARF[0]=$08
     HARF[1]=$08
     HARF[2]=$08
     HARF[3]=$08
     HARF[4]=$08
     HARF[5]=$00

     CASE "."
     HARF[0]=$00
     HARF[1]=$00
     HARF[2]=$60
     HARF[3]=$60
     HARF[4]=$00
     HARF[5]=$00

     CASE ":"
     HARF[0]=$00
     HARF[1]=$36
     HARF[2]=$36
     HARF[3]=$00
     HARF[4]=$00
     HARF[5]=$00
     
     CASE ">"
     HARF[0]=$7F
     HARF[1]=$3E
     HARF[2]=$1C
     HARF[3]=$08
     HARF[4]=$00
     HARF[5]=$00
     
     CASE 248'derece işareti
     HARF[0]=$00
     HARF[1]=$02
     HARF[2]=$05
     HARF[3]=$02
     HARF[4]=$00
     HARF[5]=$00
     
     END SELECT
     RETURN
'************************************************************************************************
        END

Powered by EzPortal