Kod: Markera allt
10 FOR A%=0 TO 65535 STEP 8192
20 POKE A%, 0
30 IF PEEK(A%) <> 0 THEN GOTO 70
40 POKE A%, 255
50 IF PEEK(A%) <> 255 THEN GOTO 70
60 PRINT "Memory at address ", A%
70 NEXT A%
60 PRINT "Memory at address ", A% / 1024, " kB"
Kod: Markera allt
10 FOR A%=0 TO 65535 STEP 8192
20 POKE A%, 0
30 IF PEEK(A%) <> 0 THEN GOTO 70
40 POKE A%, 255
50 IF PEEK(A%) <> 255 THEN GOTO 70
60 PRINT "Memory at address ", A%
70 NEXT A%
Funka perfekt! Om det finns minne på adressen får du samma nummer du poke:at in tillbaks annars blir det 255=inget minne(såvida du inte poke:at in 255), har jag fattat rätt?cjw skrev:Tja, på enklast vis, om man förutsätter att det är standard minnes-storlekar:
POKE 32768,170<RETURN>
PRINT PEEK(32768)<RETURN>
Om svaret är 170 så har du med stor sannolikhet 32KB, annars 16KB.
Någon som har ett enklare sätt?
Ingen bra idé att skriva på de högsta ~128 byten. Där ligger systemvariabler. Sedan kommer stacken.qx5 skrev:Något i stil med detta?
Eventuellt:Kod: Markera allt
10 FOR A%=0 TO 65535 STEP 8192 20 POKE A%, 0 30 IF PEEK(A%) <> 0 THEN GOTO 70 40 POKE A%, 255 50 IF PEEK(A%) <> 255 THEN GOTO 70 60 PRINT "Memory at address ", A% 70 NEXT A%
60 PRINT "Memory at address ", A% / 1024, " kB"
Är det inte skillnad på adresser och data här, hade inga problem att skriva adresser över 32767bit96 skrev:Heltal måste ligga mellan -32768 och +32767 vill jag minnas, annars kan bli vissa problem med PEEK och POKE.![]()
Jag TROR att du kan skriva:
POKE 32768%,170
PRINT PEEK(32768%)
Eftersom % ser till att det blir heltal som sen troligtvis internt görs om till teckensatt 16-bitars tal.
Skriver man utan % är det alltid flyttal och det kan bli fel i den interna översättningen.
Alternativ kan man skriva
POKE -32768%,170
PRINT PEEK(-32768%)
D.v.s. du tar 2-komplementet av talet.
Verkligt 32768 skrivs i ABC-BASIC som -32768%
Verkligt 32769 skrivs i ABC-BASIC som -32767%
Verkligt 32770 skrivs i ABC-BASIC som -32766%
...
Verkligt 65535 skrivs i ABC-BASIC som -1%
Med reservation för att jag minns fel.
Som sagt, jag kanske minns fel.Platis skrev:Är det inte skillnad på adresser och data här, hade inga problem att skriva adresser över 32767
Kod: Markera allt
290 A%=PEEK(65065%)+PEEK(65066%)*256%
Jag har för mig att 11273(Har en Metric 80 som är sådan) är äldst, sedan 10042 och 9913 sitter i de nyare med lackade kåpor.Platis skrev:Hehe hyfsat bra minne!Jag hinner typ glömma bort vad jag ska handla på väg till affären!
Jag sett iallfall tre olika checksummor; 9913, 10042, 11273 ...om jag minns rätt