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
Autor
Siehe auch
