| Код: '**************************************************************** '* Name : PIC24F_plus2LCD.BAS * '* Author : Myself * '* Notice : Copyright (c) 2014 Free * '* : All Rights Reserved * '* Date : 09.05.2015 г. * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** Device = 24FJ64GA004
Config CONFIG2 IOL1WAY_OFF, COE_OFF, IESO_OFF, FNOSC_PRI,_ FCKSM_CSECME, OSCIOFNC_OFF, POSCMOD_HS Config CONFIG1 JTAGEN_OFF, GCP_OFF, BKBUG_OFF, COE_OFF, ICS_PGx1,_ FWDTEN_OFF, WINDIS_OFF, FWPSA_PR128, WDTPOST_PS256
Declare Xtal = 20 Declare LCD_Type Alpha Declare LCD_DTPin PORTB.12 Declare LCD_ENPin PORTC.5 Declare LCD_RSPin PORTC.6 Declare LCD_Interface 4 Declare LCD_Lines 4 Declare LCD_CommandUs 2000 Declare LCD_DataUs 50 Declare Adin_Tad = cFRC ' RC oscillator chosen Declare Adin_Stime = 10 ' Allow 10us sample time 'Declare All_Digital = True
'NOKIA 3310 LCD MODULE PINOUT '1 vcc '2 sclk '3 sda '4 d/!c '5 !cs '6 gnd '7 Vout '8 !rst Symbol LCD_DC = LATB.7 Symbol LCD_CS = LATB.8 Symbol LCD_SDA = LATB.6 Symbol LCD_RST = LATB.9 Symbol LCD_CLK = LATB.5 Symbol LCD_Mode_Invert = %00001101 Symbol LCD_Mode_Normal = %00001100
'EA DOGL128-6 LCD MODULE PINOUT '36 SI '37 SCL '38 A0 '39 RESET '40 CS '26,33 VSS '34,35 VDD Symbol LCD_SI = LATC.5 Symbol LCD_SCL = LATC.4 Symbol LCD2_CS = LATC.3 Symbol RES_LCD2 = LATA.9 Symbol LCD_A0 = LATA.4
Dim true As 1 Dim false As 0 Dim normal As 1 Dim invert As 0 Dim black As 1 Dim white As 2 Dim myword1 As SWord Dim myword2 As SWord Dim jb As Byte Dim jw1 As Word Dim jw2 As Word Dim LCD_Row As Byte Dim Page As Byte Dim LCD_Col As Byte Dim AD_done As Bit Dim LED As Bit = 1
Dim i As Word Dim j As Word Dim k As Byte Dim mycount As Byte Dim PosX As Byte Dim PosY As Byte Dim TempVar1 As Word Dim FontCache[6] As Byte Dim LCDStr[21] As Byte Dim LCD_Data As Byte Dim LCD_Offset_1 As Byte Dim LCD_Offset_2 As Byte Dim Char_Mode As Byte Dim Pixel_X As Byte Dim Pixel_Y As Byte Dim Addr_ofImage As Word Dim Offset As Word Dim Data As Byte Dim Pixel_Value As Bit Dim Colour As Byte Dim Mode As Bit Dim LCD_Buffer[816] As Byte Dim Display_Buffer[1024] As Byte Dim test_byte As Byte Dim test_word As Word Dim test_bit As Bit Dim random_word As Word Dim inc_x As Bit Dim inc_y As Bit Dim corner1_x As Byte Dim corner1_y As Byte Dim corner2_x As Byte Dim corner2_y As Byte Dim dir_1x As Bit Dim dir_1y As Bit Dim dir_2x As Bit Dim dir_2y As Bit Dim corner1_x1 As Byte Dim corner1_y1 As Byte Dim corner2_x1 As Byte Dim corner2_y1 As Byte Dim dir_1x1 As Bit Dim dir_1y1 As Bit Dim dir_2x1 As Bit Dim dir_2y1 As Bit Dim Bar_place As Byte Dim Bar_long As Byte
GoTo main
Isr T1Interrupt If LED = 1 Then Dec test_word EndIf Toggle PORTB.2 LCD_Draw_Bar(mycount & %00001111, mycount & %00011111) Display_Bar((mycount+3) & %00001111,(mycount+7) & %00011111) ' LED = ~LED AD1CON1.2 = 1 ' enable A/D Sample Auto-Start IFS0.3 = 0 ' clear Timer1 int. flag EndIsr
'**********************************************************
Proc LCD_Pixel_Plot(X_ As Byte, Y_ As Byte) Dim LCD_Bank As Byte Dim LCD_RAM_Data As Byte Dim Offset As Word LCD_Bank = Y_ >> 3 LCD_RAM_Data = 1 << (Y_ & %00000111) Offset = LCD_Bank * 102 + X_ LCD_Buffer[Offset] = LCD_Buffer[Offset] | LCD_RAM_Data EndProc
Proc LCD_Pixel_Clear(X_ As Byte, Y_ As Byte) Dim LCD_Bank As Byte Dim LCD_RAM_Data As Byte Dim Offset As Word LCD_Bank = Y_ >> 3 LCD_RAM_Data = 1 << (Y_ & %00000111) LCD_RAM_Data = ~ LCD_RAM_Data Offset = LCD_Bank * 102 + X_ LCD_Buffer[Offset] = LCD_Buffer[Offset] & LCD_RAM_Data EndProc
Proc LCD_Pixel_Invert(X_ As Byte, Y_ As Byte) Dim LCD_Bank As Byte Dim LCD_RAM_Data As Byte Dim Offset As Word LCD_Bank = Y_ >> 3 LCD_RAM_Data = 1 << (Y_ & %00000111) Offset = LCD_Bank * 102 + X_ LCD_Buffer[Offset] = LCD_Buffer[Offset] ^ LCD_RAM_Data EndProc
Proc LCD_Buffer_Clear() Dim Offset As Word For Offset = 0 To 815 LCD_Buffer[Offset] = 0 Next EndProc
Proc LCD_Refresh() Dim Offset As Word Dim Data As Byte Dim jk As Byte LCD_Command($40) ' Y = 0 LCD_Command($80) ' X = 0 LCD_CLK = 0 LCD_CS = 0 LCD_DC = 1 For Offset = 0 To 815 Data = LCD_Buffer[Offset] For jk = 0 To 7 LCD_SDA = Data.0 LCD_CLK = 1 Ror Data LCD_CLK = 0 Next Next LCD_CS = 1 EndProc
Proc LCD_Command(Command As Byte) LCD_DC = 0 LCD_CS = 0 SHOut LCD_SDA,LCD_CLK,MsbFirst,[Command] LCD_CS = 1 EndProc
Proc LCD_Init()' Siemens A70 102x64 pix. LCD_RES() LCD_Command($21) 'LCD EXTENDED COMMANDS LCD_Command($C5) 'SET LCD Vop (CONTRAST) LCD_Command($14) 'LCD BIAS MODE LCD_Command($0B) LCD_Command($05) 'SET TEMP COEFFICENT LCD_Command($20) 'LCD STANDARD COMMANDS LCD_Command($11) LCD_Command($0C) 'LCD IN NORMAL MODE EndProc
'************************************************************
Proc Display_Init()' EA DOGL128-6 128x64 pix. RES_LCD2 = 0 DelayMS 2 RES_LCD2 = 1 LCD2_CS = 0 LCD_A0 = 0 SHOut LCD_SI,LCD_SCL,MsbFirst,[$40] SHOut LCD_SI,LCD_SCL,MsbFirst,[$A1] SHOut LCD_SI,LCD_SCL,MsbFirst,[$C0,$A6] SHOut LCD_SI,LCD_SCL,MsbFirst,[$A2] SHOut LCD_SI,LCD_SCL,MsbFirst,[$2F] SHOut LCD_SI,LCD_SCL,MsbFirst,[$F8,$00] SHOut LCD_SI,LCD_SCL,MsbFirst,[$27,$81,$10] 'Contrast SHOut LCD_SI,LCD_SCL,MsbFirst,[$AC,$00] SHOut LCD_SI,LCD_SCL,MsbFirst,[$AF] SHOut LCD_SI,LCD_SCL,MsbFirst,[$E0] 'col address inc +1 LCD2_CS = 1 EndProc
Proc Display_Clear() Dim Offset As Word LCD2_CS = 0 For Offset = 0 To 1024 Display_Buffer[Offset] = 0 Next LCD2_CS = 1 EndProc
Proc Display_Refresh() Dim Page As Byte Dim Column As Byte Dim Data As Byte Dim Offset As Word = 0 Dim jk As Byte LCD2_CS = 0 For Page = 0 To 7 Data = %10110000 | Page ' Page number set LCD_A0 = 0 SHOut LCD_SI,LCD_SCL,MsbFirst,[Data,$10,$00] 'GOTO Page start LCD_A0 = 1 For Column = 0 To 127 Data = Display_Buffer[Offset] For jk = 0 To 7 LCD_SI = Data.7 LCD_SCL = 1 Rol Data LCD_SCL = 0 Next ' SHOut LCD_SI,LCD_SCL,MsbFirst,[Data] Inc Offset Next Next LCD2_CS = 1 EndProc
Proc Display_Pixel(X_ As Byte, Y_ As Byte, Colour As Byte) Dim Page As Byte Dim LCD_RAM_Data As Byte Dim Offset As Word Page = Y_ >> 3 Data = 1 << (Y_ & %00000111) Offset = Page * 128 + X_ Select Case Colour Case 0 'clear pixel Data = ~ Data Display_Buffer[Offset] = Display_Buffer[Offset] & Data Case 1 'set pixel Display_Buffer[Offset] = Display_Buffer[Offset] | Data Case 2 'invert pixsl Display_Buffer[Offset] = Display_Buffer[Offset] ^ Data EndSelect EndProc
Proc Display_Rectangle(X_1 As Byte, Y_1 As Byte, X_2 As Byte, Y_2 As Byte, Colour As Byte) Dim X_Offset As Byte Dim Y_Offset As Byte If X_2 < X_1 Then Swap X_1, X_2 EndIf If Y_2 < Y_1 Then Swap Y_1, Y_2 EndIf For X_Offset = X_1 To X_2 For Y_Offset = Y_1 To Y_2 Display_Pixel(X_Offset, Y_Offset, Colour) Next Next EndProc
Proc Display_Number(Number As Byte, LCD_Page As Byte, LCD_Column As Byte, Colour As Bit) Dim Number_Address As Word Dim Buffer_Address As Word Dim X_Offset As Byte Dim Y_Offset As Byte Number_Address = AddressOf(Large_Numbers) + Number * 96 For Y_Offset = 0 To 3 Buffer_Address = (LCD_Page + Y_Offset) * 128 + LCD_Column For X_Offset = 0 To 23 Data = cPtr8(Number_Address++) If Mode=0 Then Data = ~Data Display_Buffer[Buffer_Address] = Data Inc Buffer_Address Next Next EndProc
Proc Display_Bar(place As Byte, long As Byte) ' place range 0...15 Dim X_start As Byte ' long range 0...31 Dim X_offset As Byte Dim Y_offset As Byte X_start = place * 8 For Y_offset = 32 To 63 For X_offset = X_start To X_start + 7 Display_Pixel(X_Offset, Y_Offset,0) If Y_offset >= (64-long) Then Display_Pixel(X_Offset, Y_Offset,1) EndIf Next Next EndProc
'************************************************************
Proc LCD_RES() LCD_DC = 0 LCD_CS = 0 LCD_RST = 0 DelayMS 10 LCD_RST = 1 LCD_CS = 1 EndProc
Proc LCD_PlotImage(Addr_ofImage As Word, Mode As Bit) Dim Data As Byte Dim Offset As Word = 0 While Offset < 816 Data = cPtr8(Addr_ofImage++) If Mode=0 Then Data = ~Data LCD_Buffer[Offset] = Data Inc Offset Wend EndProc
Proc LCD_PlotDigit(Digit As Byte, LCD_Row As Byte, LCD_Col As Byte, Mode As Bit) Dim Digit_Address As Word Dim Buffer_Address As Word Dim X_Offset As Byte Dim Y_Offset As Byte Digit_Address = AddressOf(Large_Digits) + Digit * 96 For Y_Offset = 0 To 3 Buffer_Address = (LCD_Row + Y_Offset) * 102 + LCD_Col For X_Offset = 0 To 23 Data = cPtr8(Digit_Address++) If Mode=0 Then Data = ~Data LCD_Buffer[Buffer_Address] = Data Inc Buffer_Address Next Next EndProc
Proc LCD_Rectangle(X_start As Byte, Y_start As Byte, X_end As Byte, Y_end As Byte, Colour As Byte) Dim X_Offset As Byte Dim Y_Offset As Byte If X_end < X_start Then Swap X_start, X_end EndIf If Y_end < Y_start Then Swap Y_start, Y_end EndIf If Colour = 0 Then For X_Offset = X_start To X_end For Y_Offset = Y_start To Y_end LCD_Pixel_Invert(X_Offset, Y_Offset) Next Next ElseIf Colour = 1 Then For X_Offset = X_start To X_end For Y_Offset = Y_start To Y_end LCD_Pixel_Plot(X_Offset, Y_Offset) Next Next ElseIf Colour = 2 Then For X_Offset = X_start To X_end For Y_Offset = Y_start To Y_end LCD_Pixel_Clear(X_Offset, Y_Offset) Next Next EndIf EndProc
Proc LCD_Draw_Bar(place As Byte, long As Byte) ' place range 0...16 Dim X_start As Byte ' long range 0...31 Dim X_offset As Byte Dim Y_offset As Byte X_start = place * 6 For Y_offset = 0 To 31 For X_offset = X_start To X_start + 5 LCD_Pixel_Clear(X_Offset, Y_Offset) If Y_offset <= long Then LCD_Pixel_Plot(X_Offset, Y_Offset) EndIf Next Next EndProc
'**********************************************************
main:
AD1PCFG = %0111111111111111 ' All_Digital LATA = 0 TRISA = %1111110111101110 LATB = %0000000000000100 TRISB = %1111110000011000 LATC = 0 TRISC = %1111111111000111 T1CON = %0000000000110000 ' postscaler 1:256 'T1CON = %0000000000100000 ' postscaler 1:64 PR1 = 19531 ' ~500 ms period at 20 MHz 'PR1 = 31250 ' ~500 ms period at 8 MHz TMR1 = 0 ' clear Timer1 IEC0.3 = 1 ' enable Timer1 interrupt IPC0 = %0111010001000100 ' set Timer1 higest int. priority level (7) T1CON.15 = 1 ' start Timer1
'**********************************************************
test_byte = 0 test_word = 3333 Mode = normal test_bit = 0 corner1_x = 9 corner1_y = 2 corner2_x = 41 corner2_y = 22 dir_1x = 1 dir_2x = 1 dir_1y = 1 dir_2y = 1 corner1_x1 = 0 corner1_y1 = 0 corner2_x1 = 32 corner2_y1 = 20 dir_1x = 1 dir_2x = 1 dir_1y = 1 dir_2y = 1 mycount = 0
Display_Init() LCD2_CS = 1 Display_Clear() Display_Refresh()
LCD_CS = 1 LCD_Init() LCD_Buffer_Clear() LCD_Refresh() ' Refresh the Buffer twise!!! LCD_Refresh() LCD_Buffer_Clear() LCD_Refresh()
While LCD_PlotDigit(Dig test_word, 3, 4, 4, Mode) LCD_PlotDigit(Dig test_word, 2, 4, 28, Mode) LCD_PlotDigit(Dig test_word, 1, 4, 52, Mode) LCD_PlotDigit(Dig test_word, 0, 4, 76, Mode)
Display_Number(Dig test_word, 3, 0, 16, Mode) Display_Number(Dig test_word, 2, 0, 40, Mode) Display_Number(Dig test_word, 1, 0, 64, Mode) Display_Number(Dig test_word, 0, 0, 88, Mode) LCD_Rectangle(corner1_x,corner1_y,corner2_x,corner2_y,invert) Display_Rectangle(corner1_x1,corner1_y1,corner2_x1,corner2_y1,2) LCD_Refresh() ' lata.0 = 1 Display_Refresh() ' LATA.0 = 0 DelayMS 20 Inc mycount LCD_Rectangle(corner1_x,corner1_y,corner2_x,corner2_y,white) Display_Rectangle(corner1_x1,corner1_y1,corner2_x1,corner2_y1,0) ' "Flying" rectangle on small display ' Corner 1 If dir_1x = 1 Then If corner1_x < 101 Then Inc corner1_x Else dir_1x = 0 : dir_2x = 0 EndIf Else If corner1_x > 0 Then Dec corner1_x Else dir_1x = 1 : dir_2x = 1 EndIf EndIf If dir_1y = 1 Then If corner1_y < 63 Then Inc corner1_y Else dir_1y = 0 : dir_2y = 0 EndIf Else If corner1_y > 0 Then Dec corner1_y Else dir_1y = 1 : dir_2y = 1 EndIf EndIf ' Corner 2 If dir_2x = 1 Then If corner2_x < 101 Then Inc corner2_x Else dir_2x = 0 : dir_1x = 0 EndIf Else If corner2_x > 0 Then Dec corner2_x Else dir_2x = 1 : dir_1x = 1 EndIf EndIf If dir_2y = 1 Then If corner2_y < 63 Then Inc corner2_y Else dir_2y = 0 : dir_1y = 0 EndIf Else If corner2_y > 0 Then Dec corner2_y Else dir_2y = 1 : dir_1y = 1 EndIf EndIf
' "Flying" rectangle on large display ' Corner 1 If dir_1x1 = 1 Then If corner1_x1 < 127 Then Inc corner1_x1 Else dir_1x1 = 0 : dir_2x1 = 0 EndIf Else If corner1_x1 > 0 Then Dec corner1_x1 Else dir_1x1 = 1 : dir_2x1 = 1 EndIf EndIf If dir_1y1 = 1 Then If corner1_y1 < 63 Then Inc corner1_y1 Else dir_1y1 = 0 : dir_2y1 = 0 EndIf Else If corner1_y1 > 0 Then Dec corner1_y1 Else dir_1y1 = 1 : dir_2y1 = 1 EndIf EndIf ' Corner 2 If dir_2x1 = 1 Then If corner2_x1 < 127 Then Inc corner2_x1 Else dir_2x1 = 0 : dir_1x1 = 0 EndIf Else If corner2_x1 > 0 Then Dec corner2_x1 Else dir_2x1 = 1 : dir_1x1 = 1 EndIf EndIf If dir_2y1 = 1 Then If corner2_y1 < 63 Then Inc corner2_y1 Else dir_2y1 = 0 : dir_1y1 = 0 EndIf Else If corner2_y1 > 0 Then Dec corner2_y1 Else dir_2y1 = 1 : dir_1y1 = 1 EndIf EndIf
Wend Stop
'***************************************************************
'Siemens_A70_logo Dim logo As Code = As Byte $00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$60,$60,$E0,$E0,$60,$60,$00,$00,$00,$60,$60,$E0,$E0,_ $E0,$60,$60,$00,$00,$00,$00,$00,$E0,$E0,$80,$00,$00,$00,$00,$00,_ $00,$00,$00,$80,$C0,$E0,$60,$60,$E0,$C0,$80,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$0F,$3E,$F6,_ $C6,$86,$E6,$FE,$3F,$07,$01,$00,$00,$00,$00,$00,$00,$00,$00,$07,_ $3F,$FC,$E0,$00,$00,$00,$00,$00,$FE,$FF,$83,$00,$00,$00,$00,$83,_ $FF,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$06,$06,$06,$07,$07,$07,$01,$00,$00,$00,$00,$00,$00,_ $0E,$0E,$0C,$0C,$0C,$0C,$0C,$0D,$0F,$0F,$00,$00,$00,$00,$00,$03,_ $07,$0E,$0C,$0C,$0E,$07,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$0F,$8F,$C6,$C3,$C3,$C3,$C3,$E7,$7E,$3C,$00,$00,$00,$00,_ $03,$03,$03,$03,$FF,$FF,$03,$03,$03,$03,$00,$00,$00,$F8,$FC,$BE,_ $37,$33,$33,$33,$33,$33,$B7,$F6,$F4,$00,$03,$FF,$FF,$03,$00,$00,_ $FF,$FF,$03,$00,$00,$FF,$FF,$03,$00,$F8,$FC,$BE,$37,$33,$33,$33,_ $33,$33,$B7,$F6,$F4,$00,$00,$03,$FF,$FF,$03,$00,$00,$00,$00,$03,_ $FF,$FF,$03,$00,$00,$00,$CF,$EF,$66,$33,$33,$33,$33,$37,$BE,$9C,_ $00,$00,$00,$00,$00,$00,$00,$00,$0F,$1F,$39,$30,$30,$30,$30,$18,_ $3C,$3C,$00,$00,$00,$00,$00,$00,$06,$06,$67,$67,$00,$00,$00,$00,_ $00,$00,$00,$00,$01,$03,$07,$06,$06,$06,$06,$07,$03,$01,$00,$00,_ $06,$07,$07,$03,$07,$07,$07,$03,$07,$07,$07,$03,$01,$00,$00,$00,_ $01,$03,$07,$06,$06,$06,$06,$07,$03,$01,$00,$00,$00,$06,$07,$07,_ $03,$06,$06,$06,$06,$07,$03,$01,$00,$00,$00,$00,$01,$03,$07,$06,_ $06,$06,$06,$03,$07,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
'Large digits, Maritsa_36(24x32), normal position Dim Large_Numbers As Code = As Byte $00,_ '0 $C0,$F0,$FC,$FE,$7E,$1F,$0F,$0F,$0F,$0F,$0F,$1F,$3E,$FE,$FC,_ $F8,$E0,$80,$00,$00,$00,$00,$00,$FE,$FF,$FF,$FF,$03,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$07,$FF,$FF,$FF,$FC,$00,$00,$00,$00,_ $1F,$FF,$FF,$FF,$F0,$80,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$F8,_ $FF,$FF,$7F,$0F,$00,$00,$00,$00,$00,$00,$03,$0F,$1F,$1F,$3E,$3C,_ $3C,$3C,$3C,$3C,$3E,$1F,$1F,$0F,$07,$01,$00,$00,$00,$00,$00,$00,_ '1 $00,$00,$00,$78,$78,$3C,$3C,$1E,$1E,$FF,$FF,$FF,$FF,$00,$00,$00,_ $00,$00,$00,$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,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3C,$3C,$3C,$3C,$3C,$3C,_ $3C,$3F,$3F,$3F,$3F,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$00,$00,$00,$00,_ '2 $00,$E0,$F0,$F8,$FC,$7E,$3E,$1F,$0F,$0F,$0F,$0F,$0F,$1F,$3E,$7E,_ $FC,$F8,$F0,$C0,$00,$00,$00,$00,$00,$01,$01,$01,$01,$00,$00,$00,_ $00,$00,$00,$00,$80,$C0,$E0,$F0,$FF,$FF,$7F,$1F,$00,$00,$00,$00,_ $00,$00,$00,$80,$C0,$E0,$F0,$F8,$F8,$7C,$7E,$3F,$1F,$0F,$07,$03,_ $81,$80,$80,$80,$00,$00,$00,$00,$3C,$3E,$3F,$3F,$3F,$3F,$3F,$3D,_ $3C,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$3F,$3F,$3F,$3F,$00,$00,$00,$00,_ '3 $00,$60,$78,$7C,$7E,$3E,$1F,$0F,$0F,$0F,$0F,$0F,$0F,$1F,$3E,$FE,_ $FC,$F8,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$F0,_ $F0,$F0,$F0,$F0,$F8,$FC,$FE,$FF,$DF,$8F,$03,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$03,$87,_ $FF,$FF,$FF,$FC,$00,$00,$00,$00,$07,$0F,$1F,$1F,$3E,$3E,$3C,$3C,_ $3C,$3C,$3C,$3C,$3E,$3E,$1F,$1F,$0F,$0F,$07,$01,$00,$00,$00,$00,_ '4 $00,$00,$00,$00,$00,$00,$00,$00,$80,$E0,$F0,$FC,$FE,$FF,$FF,$FF,_ $FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C0,$E0,$F8,$FC,$7F,_ $3F,$0F,$07,$01,$00,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,_ $7C,$7E,$7F,$7F,$7F,$7B,$79,$78,$78,$78,$78,$78,$78,$FF,$FF,$FF,_ $FF,$78,$78,$78,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$3C,$3C,$3C,$3C,$3F,$3F,$3F,$3F,$3C,$3C,$3C,$00,$00,$00,$00,_ '5 $00,$FF,$FF,$FF,$FF,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,_ $0F,$0F,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$7F,$3C,$3E,$1E,_ $1E,$1E,$1E,$1E,$3E,$3E,$7C,$FC,$F8,$F0,$E0,$80,$00,$00,$00,$00,_ $80,$81,$81,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C1,_ $FF,$FF,$FF,$FF,$00,$00,$00,$00,$01,$03,$07,$0F,$1F,$1F,$3E,$3C,_ $3C,$3C,$3C,$3C,$3E,$1E,$1F,$0F,$07,$07,$03,$00,$00,$00,$00,$00,_ '6 $00,$00,$80,$C0,$E0,$F0,$F8,$FC,$7C,$3E,$1E,$1F,$0F,$0F,$0F,$0F,_ $0F,$0F,$0F,$00,$00,$00,$00,$00,$F8,$FE,$FF,$FF,$FF,$E7,$E1,$F0,_ $F0,$F0,$F0,$F0,$F0,$F0,$E0,$E0,$C0,$80,$00,$00,$00,$00,$00,$00,_ $FF,$FF,$FF,$FF,$C7,$03,$01,$01,$00,$00,$00,$00,$00,$01,$03,$87,_ $FF,$FF,$FF,$FC,$00,$00,$00,$00,$00,$03,$07,$0F,$1F,$1F,$3E,$3C,_ $3C,$3C,$3C,$3C,$3C,$3E,$1F,$1F,$0F,$07,$03,$00,$00,$00,$00,$00,_ '7 $00,$FF,$FF,$FF,$FF,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,_ $CF,$FF,$FF,$FF,$3F,$0F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$E0,$F8,$FF,$FF,$3F,$07,$01,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$E0,$FC,$FF,$FF,$1F,$07,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $0E,$0F,$0F,$0F,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ '8 $00,$C0,$F0,$F8,$FC,$7E,$3E,$1F,$0F,$0F,$0F,$0F,$0F,$1F,$3E,$FE,_ $FC,$F8,$E0,$00,$00,$00,$00,$00,$00,$07,$1F,$BF,$FF,$FC,$F8,$F0,_ $E0,$E0,$E0,$E0,$F0,$F8,$FC,$FF,$BF,$1F,$07,$00,$00,$00,$00,$00,_ $F8,$FE,$FF,$FF,$8F,$07,$03,$01,$01,$01,$01,$01,$01,$03,$07,$8F,_ $FF,$FF,$FE,$F8,$00,$00,$00,$00,$00,$03,$07,$0F,$1F,$1F,$3E,$3C,_ $3C,$3C,$3C,$3C,$3C,$3E,$1F,$1F,$0F,$07,$03,$00,$00,$00,$00,$00,_ '9 $C0,$F0,$F8,$FC,$7E,$3E,$1F,$0F,$0F,$0F,$0F,$0F,$0F,$1F,$3E,$FE,_ $FC,$F8,$F0,$C0,$00,$00,$00,$00,$0F,$3F,$7F,$FF,$F8,$F0,$E0,$C0,_ $C0,$C0,$C0,$C0,$E0,$E0,$F0,$F8,$FF,$FF,$FF,$FF,$00,$00,$00,$00,_ $00,$00,$00,$00,$01,$01,$03,$03,$03,$03,$03,$83,$C3,$E1,$F9,$FF,_ $FF,$7F,$1F,$07,$00,$00,$00,$00,$00,$3C,$3C,$3C,$3C,$3C,$3C,$3C,_ $3E,$1E,$1F,$0F,$0F,$07,$03,$01,$00,$00,$00,$00,$00,$00,$00,$00
Large_Digits: ' Maritsa_36(24x32) '0 CData $00,$00,$C0,$F0,$F8,$F8,$7C,$3C,$3C,$3C,$3C,$3C,$7C,$F8,$F8,$F0, CData $E0,$80,$00,$00,$00,$00,$00,$00,$F8,$FF,$FF,$FF,$0F,$01,$00,$00, CData $00,$00,$00,$00,$00,$00,$03,$1F,$FF,$FF,$FE,$F0,$00,$00,$00,$00, CData $7F,$FF,$FF,$FF,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$E0, CData $FF,$FF,$FF,$3F,$00,$00,$00,$00,$00,$03,$0F,$3F,$7F,$7E,$F8,$F0, CData $F0,$F0,$F0,$F0,$F8,$7C,$7F,$3F,$1F,$07,$01,$00,$00,$00,$00,$00 '1 CData $00,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$FC,$FC,$FC,$FC,$3C,$3C,$3C,$3C, CData $3C,$3C,$3C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, CData $FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, CData $00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$00,$00,$00,$00, CData $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1E,$1E,$3C,$3C,$78,$78, CData $FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 '2 CData $3C,$7C,$FC,$FC,$FC,$FC,$FC,$BC,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$3C, CData $FC,$FC,$FC,$FC,$00,$00,$00,$00,$00,$00,$00,$01,$03,$07,$0F,$1F, CData $1F,$3E,$7E,$FC,$F8,$F0,$E0,$C0,$81,$01,$01,$01,$00,$00,$00,$00, CData $00,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$01,$03,$07,$0F, CData $FF,$FF,$FE,$F8,$00,$00,$00,$00,$00,$07,$0F,$1F,$3F,$7E,$7C,$F8, CData $F0,$F0,$F0,$F0,$F0,$F8,$7C,$7E,$3F,$1F,$0F,$03,$00,$00,$00,$00 '3 CData $E0,$F0,$F8,$F8,$7C,$7C,$3C,$3C,$3C,$3C,$3C,$3C,$7C,$7C,$F8,$F8, CData $F0,$F0,$E0,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, CData $00,$00,$00,$00,$80,$80,$C0,$E1,$FF,$FF,$FF,$3F,$00,$00,$00,$00, CData $00,$00,$00,$00,$00,$00,$00,$0F,$0F,$0F,$0F,$0F,$1F,$3F,$7F,$FF, CData $FB,$F1,$C0,$00,$00,$00,$00,$00,$00,$06,$1E,$3E,$7E,$7C,$F8,$F0, CData $F0,$F0,$F0,$F0,$F0,$F8,$7C,$7F,$3F,$1F,$07,$00,$00,$00,$00,$00 '4 CData $00,$00,$00,$00,$00,$00,$00,$3C,$3C,$3C,$3C,$3C,$3C,$FC,$FC,$FC, CData $FC,$3C,$3C,$3C,$00,$00,$00,$00,$3E,$7E,$FE,$FE,$FE,$DE,$9E,$1E, CData $1E,$1E,$1E,$1E,$1E,$FF,$FF,$FF,$FF,$1E,$1E,$1E,$00,$00,$00,$00, CData $00,$00,$00,$03,$07,$1F,$3F,$FE,$FC,$F0,$E0,$80,$00,$FF,$FF,$FF, CData $FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, CData $01,$07,$0F,$3F,$7F,$FF,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00 '5 CData $80,$C0,$E0,$F0,$F8,$78,$7C,$3C,$3C,$3C,$3C,$3C,$7C,$78,$F8,$F0, CData $E0,$E0,$C0,$00,$00,$00,$00,$00,$01,$81,$81,$01,$00,$00,$00,$00, CData $00,$00,$00,$00,$00,$00,$00,$83,$FF,$FF,$FF,$FF,$00,$00,$00,$00, CData $00,$FF,$FF,$FF,$FE,$3C,$7C,$78,$78,$78,$78,$78,$7C,$7C,$3E,$3F, CData $1F,$0F,$07,$01,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$F0,$F0,$F0, CData $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0,$00,$00,$00,$00,$00,$00 '6 CData $00,$C0,$E0,$F0,$F8,$F8,$7C,$3C,$3C,$3C,$3C,$3C,$3C,$7C,$F8,$F8, CData $F0,$E0,$C0,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$E3,$C0,$80,$80, CData $00,$00,$00,$00,$00,$80,$C0,$E1,$FF,$FF,$FF,$3F,$00,$00,$00,$00, CData $1F,$7F,$FF,$FF,$FF,$E7,$87,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$07,$07, CData $03,$01,$00,$00,$00,$00,$00,$00,$00,$00,$01,$03,$07,$0F,$1F,$3F, CData $3E,$7C,$78,$F8,$F0,$F0,$F0,$F0,$F0,$F0,$F0,$00,$00,$00,$00,$00 '7 CData $00,$00,$00,$00,$00,$00,$00,$00,$70,$F0,$F0,$F0,$C0,$00,$00,$00, CData $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, CData $00,$01,$07,$3F,$FF,$FF,$F8,$E0,$00,$00,$00,$00,$00,$00,$00,$00, CData $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$1F,$FF, CData $FF,$FC,$E0,$80,$00,$00,$00,$00,$00,$FF,$FF,$FF,$FF,$F0,$F0,$F0, CData $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0,$F3,$FF,$FF,$FF,$FC,$F0,$00,$00 '8 CData $00,$C0,$E0,$F0,$F8,$F8,$7C,$3C,$3C,$3C,$3C,$3C,$3C,$7C,$F8,$F8, CData $F0,$E0,$C0,$00,$00,$00,$00,$00,$1F,$7F,$FF,$FF,$F1,$E0,$C0,$80, CData $80,$80,$80,$80,$80,$C0,$E0,$F1,$FF,$FF,$7F,$1F,$00,$00,$00,$00, CData $00,$E0,$F8,$FD,$FF,$3F,$1F,$0F,$07,$07,$07,$07,$0F,$1F,$3F,$FF, CData $FD,$F8,$E0,$00,$00,$00,$00,$00,$00,$03,$0F,$1F,$3F,$7E,$7C,$F8, CData $F0,$F0,$F0,$F0,$F0,$F8,$7C,$7F,$3F,$1F,$07,$00,$00,$00,$00,$00 '9 CData $00,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$7C,$78,$F8,$F0,$F0,$E0,$C0,$80, CData $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$C0,$C0, CData $C0,$C0,$C0,$C1,$C3,$87,$9F,$FF,$FF,$FE,$F8,$E0,$00,$00,$00,$00, CData $F0,$FC,$FE,$FF,$1F,$0F,$07,$03,$03,$03,$03,$03,$07,$07,$0F,$1F, CData $FF,$FF,$FF,$FF,$00,$00,$00,$00,$03,$0F,$1F,$3F,$7E,$7C,$F8,$F0, CData $F0,$F0,$F0,$F0,$F0,$F8,$7C,$7F,$3F,$1F,$0F,$03,$00,$00,$00,$00
End
| |