Bascom Tabellen
An diesem Artikel arbeitet gerade Mitglied PicNick.
Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen. Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor PicNick per PM / Mail oder Forum nachfragen ob er vergessen wurde. |
$regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 $hwstack = 32 $hwstack = 64 $framesize = 32 ' --------------------------------------------- ' Pixel Timer ' 1 mS each pixel ' --------------------------------------------- Config Timer0 = Timer , Prescale = 64 Const Tim_preload = 131 Dim Timerload As Byte Timerload = Tim_preload On Timer0 Isr_tim0 Timer0 = Timerload ' --------------------------------------------- ' Sync Interrupt ' --------------------------------------------- Config Int0 = Falling On Int0 Isr_int0 ' --------------------------------------------- ' Patterm dimension ' --------------------------------------------- Const Pat_rows = 7 Const Pat_cols = 5 '---------------------------------------------- Const Buf_chars = 16 Const Col_chars = Pat_cols * Buf_chars ' --------------------------------------------- ' 0 Left Top 255 ' |.......|characters|...>..... ' --------------------------------------------- Const Col_left = 12 Const Col_top = 120 ' --------------------------------------------- ' ' --------------------------------------------- Dim Char_buffer As String * Buf_chars Dim Charpntr As Word Dim Charcount As Byte Dim Pataddr As Word Dim Pattern As Word Dim Patcol As Byte Dim Tim_flag As Byte Dim Show_flag As Byte Dim Work_flag As Byte Dim Charval As Byte Dim Charidx As Byte Dim Line_ctl As Byte Dim Charout As Byte Enable Int0 Enable Timer0 Start Timer0 Enable Interrupts Pattern = Loadlabel(char_pattern) ' --------------------------------------------- ' Set Input ' --------------------------------------------- Char_buffer = "0123456789ABCDEF" ' --------------------------------------------- ' Initial conditions ' --------------------------------------------- Patcol = 0 Line_ctl = 0 Work_flag = 0 Do If Tim_flag = 1 Then Tim_flag = 0 If Show_flag = 1 Then Print Bin(charout) End If Incr Line_ctl If Line_ctl = Col_left Then Work_flag = 1 Charpntr = Varptr(char_buffer) Charcount = Buf_chars End If If Work_flag = 1 Then If Patcol = 0 Then ' read character & find pattern Patcol = 1 Charval = Inp(charpntr) Charidx = Lookdown(charval , Char_table , 16) If Charidx < 255 Then Decr Charidx Pataddr = Charidx * Pat_cols Pataddr = Pataddr + Pattern Show_flag = 1 Else Show_flag = 0 End If End If ' prepare character pattern------------------------------------------ If Show_flag = 1 Then Charout = Cpeek(pataddr) ' writout pattern Incr Pataddr Else Charout = 0 End If ' set next pattern column------------------------------------------ Incr Patcol If Patcol > 5 Then Patcol = 0 Print ' step next character -------------------------------------------- Incr Charpntr Decr Charcount If Charcount = 0 Then ' all done Work_flag = 0 End If End If End If End If Loop End '------------------------------------------------ Isr_tim0: Timer0 = Timerload Tim_flag = 1 Return '------------------------------------------------ Isr_int0: Select Case Line_ctl Case Is < Col_top: Incr Timerload Case Is > Col_top: Decr Timerload End Select Line_ctl = 0 Return '------------------------------------------------ Char_table: '-------"0"-"1"-"2"-"3"-"4"-"5"-"6"-"7"-"8"-"9" Data 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 '-------"A"--"B"--"C"--"D"--"E"--"F" Data 65 , 66 , 67 , 68 , 69 , 70 Char_pattern: ' "0" ------------------------------------------- Data &B01111100 Data &B10000010 Data &B10000010 Data &B01111100 Data &B00000000 ' "1" ------------------------------------------- Data &B00000000 Data &B00000100 Data &B00000010 Data &B11111110 Data &B00000000 ' "2" ------------------------------------------- Data &B11000100 Data &B10100010 Data &B10010010 Data &B10001100 Data &B00000000 ' "3" ------------------------------------------- Data &B01000100 Data &B10000010 Data &B10010010 Data &B01101100 Data &B00000000 ' "4" ------------------------------------------- Data &B00011100 Data &B00010010 Data &B11111111 Data &B00010000 Data &B00000000 ' "5" ------------------------------------------- Data &B10111110 Data &B10010010 Data &B10010010 Data &B01100010 Data &B00000000 ' "6" ------------------------------------------- Data &B01111100 Data &B10010010 Data &B10010010 Data &B01100100 Data &B00000000 ' "7" ------------------------------------------- Data &B00000100 Data &B00010010 Data &B00010010 Data &B11111110 Data &B00000000 ' "8" ------------------------------------------- Data &B01101100 Data &B10010010 Data &B10010010 Data &B01101100 Data &B00000000 ' "9" ------------------------------------------- Data &B00001100 Data &B00110010 Data &B01010010 Data &B10001100 Data &B00000000 ' "A" ------------------------------------------- Data &B11111100 Data &B00010010 Data &B00010010 Data &B11111000 Data &B00000000 ' "B" ------------------------------------------- Data &B11111110 Data &B10010010 Data &B10010010 Data &B01101100 Data &B00000000 ' "C" ------------------------------------------- Data &B01111100 Data &B10000010 Data &B10000010 Data &B01000100 Data &B00000000 ' "D" ------------------------------------------- Data &B10000010 Data &B11111110 Data &B10000010 Data &B01111100 Data &B00000000 ' "E" ------------------------------------------- Data &B11111110 Data &B10010010 Data &B10010010 Data &B10000010 Data &B00000000 ' "F" ------------------------------------------- Data &B11111110 Data &B00010010 Data &B00010010 Data &B00000010 Data &B00000000