Hallo zusammen,
ich habe schon ewig lange nicht mehr in OMIKRON-Basic programmiert. Aber nun habe ich mich wieder daran getraut und als erstes einmal die XBIOS Funktion FlopRd (Nummer acht) entdeckt. Soweit funktioniert auch alles, aber: Wie errechne ich denn nun die Checksumme des Bootsektors? (Also am Ende müsste $1234 herauskommen).
0 PRINT chr$(27)+"f": CLS
1 PRINT "Taste (A) Daten von Laufwerk "+chr$(27)+"pA"+chr$(27)+"q auslesen"
2 PRINT "Taste (B) Daten von Laufwerk "+chr$(27)+"pB"+chr$(27)+"q auslesen"
3 PRINT "Andere Taste Programmende."
4 A$= INPUT$(1)
5 Readfrom%L=2
6 IF A$="A" OR A$="a" THEN Readfrom%L=0
7 IF A$="B" OR A$="b" THEN Readfrom%L=1
8 IF Readfrom%L=2 THEN END
9 Disk%L= MEMORY(512)
10 Zubuf%L= MEMORY(4)
11 Sectno%L=1
12 Trackno%L=0
13 Sideno%L=0
14 Count%L=1
15 XBIOS (Fehler%L,8,L Disk%L,L Filler%L,Readfrom%L,Sectno%L,Trackno%L,Sideno%L,Count%L)
16 IF Fehler%L>0 THEN
17 PRINT "Ausgabe mit Fehler!"
18 END
19 ENDIF
20 J%L=0
21 Checksum%L=0
22 FOR I%L=Disk%L TO Disk%L+511 STEP 4
23 IF (J%L MOD 8)=0 THEN
24 IF J%L>0 THEN PRINT ""
25 A$= HEX$($10000+(J%L SHL 2))
26 PRINT MID$(A$,3, LEN(A$));" ";
27 ENDIF
28 A$= RIGHT$( HEX$( LPEEK(I%L)), LEN( HEX$( LPEEK(I%L)))-1)
29 A$= RIGHT$("00000000"+A$,8)
30 PRINT A$;" ";
31 Checksum%L=Checksum%L+ LPEEK(Zubuf%L)
32 J%L=J%L+1
33 NEXT I%L
34 PRINT ""
35 PRINT HEX$(Checksum%L)