$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Config Portc = Input Config Portb = Output Config Porta = Output Config Portd.2 = Output Config Portd.3 = Output Config Portd.4 = Output Config Portd.5 = Output Config Portd.6 = Output Lowadr Alias Portb Higadr Alias Porta We Alias Portd.6 Oe Alias Portd.5 A16 Alias Portd.4 A17 Alias Portd.3 A18 Alias Portd.2 Dataport Alias Pinc Dim Adresse As Long Dim V As String * 1 Dim Daten As Byte Dim Adr As Long Dim Dat As Byte Set We Set Oe Waitms 10 Do Print "********* Flash Testprogramm ************" Input "(r)ead,(w)rite?, (s)end11to1, (c)hip erase, (b)yteprogram: " , V If V = "r" Then Input "Adresse?" , Adresse Print "Setze Adresse" Gosub Readf Print "Daten an Adresse " ; Adresse ; ": " ; Daten End If If V = "w" Then Input "Adresse?" , Adresse Input "Datenbyte?" , Daten Gosub Writef End If If V = "s" Then Gosub Send11to1 End If If V = "b" Then Input "Adresse?" , Adr Input "Datenbyte?" , Dat Gosub Byteprogram End If If V = "c" Then Gosub Chiperase End If If V <> "v" And V <> "w" And V <> "s" And V <> "c" Then Print "No action chosen" Loop End Setadress: Portb.0 = Adresse.0 Portb.1 = Adresse.1 Portb.2 = Adresse.2 Portb.3 = Adresse.3 Portb.4 = Adresse.4 Portb.5 = Adresse.5 Portb.6 = Adresse.6 Portb.7 = Adresse.7 Porta.0 = Adresse.8 Porta.1 = Adresse.9 Porta.2 = Adresse.10 Porta.3 = Adresse.11 Porta.4 = Adresse.12 Porta.5 = Adresse.13 Porta.6 = Adresse.14 Porta.7 = Adresse.15 Portd.4 = Adresse.16 Portd.3 = Adresse.17 Portd.2 = Adresse.18 Waitus 10 Return Writef: Gosub Setadress Config Portc = Output Waitus 10 Portc = Daten Waitus 10 Set Oe Reset We Waitus 10 Set We Waitus 10 Config Portc = Input Return Readf: Gosub Setadress Config Portc = Input Waitus 10 Set We Reset Oe Waitus 10 Daten = Dataport Waitus 10 Set Oe Waitus 10 Return Send11to1: Adr = &H01 Dat = &H11 Gosub Byteprogram Return Byteprogram: Adresse = &H555 Daten = &HAA Gosub Writef Adresse = &H2AA Daten = &H55 Gosub Writef Adresse = &H555 Daten = &HA0 Gosub Writef Adresse = Adr Daten = Dat Gosub Writef Do Adresse = Adr Gosub Readf Loop Until Daten = Dat Return Chiperase: Adresse = &H555 Daten = &HAA Gosub Writef Adresse = &H2AA Daten = &H55 Gosub Writef Adresse = &H555 Daten = &H80 Gosub Writef Adresse = &H555 Daten = &HAA Gosub Writef Adresse = &H2AA Daten = &H55 Gosub Writef Adresse = &H555 Daten = &H10 Gosub Writef For Adresse = 0 To 65535 Do Gosub Readf Loop Until Daten = 255 Next c Return