| |
|
|
p.specht
| Zur Eingabe von (kleinen) Maschinenprogrammen in XProfan-Versionen ohne Inline-Assembler eignen sich u.a. lange Hex-Strings mit Zahlen im Bereich 0..9+A..F , pro "word" bestehend jeweils aus 4 Zeichen. Um Abstürze und Hacks zu vermeiden, sollte man den korrekten Transfer durch eine Prüfsumme bestätigen lassen. Das nachstehende Machwerk generiert bzw. prüft auf eine solche, der ausgewertete String selbst ist hier nur als Beispiel gedacht.
WindowTitle "PRÜFSUMME FÜR HEXSTRING"
Var c$="5589E58B75088B068B56042B46101b5614890689560431FF09D2790EFFC7F7D883d200F7DA89068956048B5E088B760C0"+\
"9F67909FFC7F7DB83d200F7DE751509DB745D89C189D031D2F7F387C8F7F3E9330000000fbdceFEC1530fadf30fadd0d3eaF7F389C3F7"+\
"E689C158568B7508F7E301CA720B3B5604770672063B067602FFCB5E31C989D8FFCF7507F7D883d100F7D98B7508894618894E1CE90E000000"+\
"31C0FFC8B9FFFFFF7FE9D9FFFFFF89EC5DC20400"
Declare p$,w&,s!,l%,m%
l%=Len(c$):CaseNot l%:c$="0000"
l%=Len(c$):m%=l% Mod 4
If m%=1:c$=c$+"000"
ElseIf m%=2:c$=c$+"00"
ElseIf m%=3:c$=c$+"0"
EndIf
s!=1'<<< your salt
l%=Len(c$)
WhileLoop 0,l%-4,4
s!=s!+Val("$"+Mid$(c$,&Loop+1,4))
EndWhile
P$=Format$("%g",s!)
ClearClip:PutClip p$'<<< sollte im Echtprogramm raus!!!!!!!!!!!!
Print " HEXSTRING-PRÜFSUMME = ";P$
If P$="2980236":Print "\n PRÜFSUMME OK."
Else: Print "\n *** FEHLER: PRÜFSUMME STIMMT NICHT! ***"
Sound 1300,400:WaitInput:End
EndIf
WaitInput 1000
Beep:Print "\n\n HAUPTPROGRAMM: CALL-Befehl wäre nun statthaft!"
WaitInput
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 05.04.2021 ▲ |
|
|
|