wieso ist folgender (einfacher) Basic Listschutz wirkunglos?
eine BASIC-Programm ist ja im Speicher folgendermassen:
$0801 aa bb cc dd ee ff gg hh
$0809 ii jj kk ll mm nn oo pp
$0811
aa -> LSB des nächsten Befehls (ii)
bb -> MSB des nächsten Befehls (jj)
cc -> BASIC-Token
dd-gg -> programm
hh -> Ende-Kennung der Zeile ($00)
ii -> LSB des nächsten Befehls
jj -> MSB des nächsten Befehls
kk -> BASIC-Token
u.s.w.
wenn nun in aa der Verweis auf den nä. Befehl (aa/bb) auf Inhalt $00/$00 zeigt, wird nur die 1. Zeile angezeigt
Soweit so gut, das funktioniert ja auch, aber jetzt meine Frage:
wenn ich den so manipulierten Speicher auf Diskette bringe, und danach wieder lade, ist in aa/bb die Adresse des nä. Befehls.
Wieso?
nun ein kleines Beispiel:
.m 0801
.:0801 68 08 64 00 8f 20 2a 2a HhD@O **
.:0809 2a 20 53 50 49 45 47 45 * spiege
.:0811 4c 53 43 48 49 46 54 20 lschift
.:0819 2a 2a 2a 00 2d 08 6e 00 ***@-hN@
.:0821 42 41 b2 32 30 32 33 3a baR2023:
.:0829 58 b2 30 00 41 08 78 00 xR0@ahX@
.:0831 a1 20 41 24 3a 8b 41 24 A a$:Ka$
.:0839 b2 22 22 a7 31 32 30 00 R""G120@
.:0841 55 08 82 00 97 20 42 41 uhB@W ba
.:0849 ab 58 2c c6 28 41 24 29 Kx,F(a$)
.:0851 ab 36 34 00 5f 08 8c 00 K64@_hL@
.:0859 58 b2 58 aa 31 00 68 08 xRxJ1@Hh
.:0861 96 00 89 31 32 30 00 00 V@I120@@
.:0869 00 42 41 8b 7c e0 00 00 @baK..@@
wenn der bereich von $0801 bis $0870 abgespeichert wird, und das PGM danach (nach einem Reboot) geladen wird, sieht der Speicher so aus:
.:0801 1d 08 64 00 8f 20 2a 2a ]hD@O **
.:0809 2a 20 53 50 49 45 47 45 * spiege
Wo ist mein Denkfehler?