' Demo Datazeilen
' Das Programm ist für den Simulator geschrieben und verdeutlicht die Problematik mit Data-Zeilen.
' In 3 Data-Zeilen sind mit unterschiedlicher Schreibweise die Zeichen 'A' bis 'F' abgelegt.
' Diese werden in der Hauptschleife gelesen und so sollte in der
' UART0-Ausgabe 3x die Zeichen 'A' bis 'F' zu sehen sein.
' Die Data-Zeilen werden im Flash extra (mit .org $100) an Adresse Word-Adresse $100 abgelegt.
' Wenn man auf manuell programmieren geht und die Hexwerte vom Flash ansieht,
' sind die Werte ab Byte-Adresse $200 in dem Viewer zu finden.
' Wegen der Flash-Organisation werden 2 Zeichen immer als Word-Wert zusammen gefasst,
' von denen das Low-Byte zuerst abgelegt wird. So sollte sich im Flash
' 3x hintereinander die Zeichenfolge 'BADCFE' finden - tatsächlich steht sie nur 2x dort.
' Dazwischen 6 Word-Werte.
' Die Data-Zeilen mit Prefix '$' werden als Word-Werte abgelegt anstatt als Byte-Werte.
$Regfile = "m16def.dat"
$HWStack = 40
$SWStack = 40
$Framesize = 40
$Crystal = 8000000
$Baud = 9600
Config Base = 0
Config SubMode = New
$SIM
Dim tmpByte as Byte
Do
Restore MyData_Bas
Print "Los gehts..."
Read tmpByte
While tmpByte > 0
UDR = tmpByte
Read tmpByte
Wend
Print : Print "Fertig?"
Loop
!.org $100 ' Wordadresse (Flash Vorschau ab $200)
MyData_Bas:
Data &h41 , &h42 , &h43 , &h44 , &h45 , &h46 ' Zeichen 'A' bis 'F' / speichert Byte-weise, korrekt
Data $41 , $42 , $43 , $44 , $45 , $46 ' Zeichen 'A' bis 'F' / speichert Word-weise, falsch im Flash abgelegt
Data 65 , 66 , 67 , 68 , 69 , 70 ' Zeichen 'A' bis 'F' / speichert Byte-weise, korrekt
Data 0
|