1 ! +++++++++++++++++++++++++++++++++++ 2 ! Program .... PEEK.800 3 ! Utg}va 1.1 1983-02-05 4 ! av (c) Bo Kullmar 8 ! Ins{nt av Bo Kullmar, 1789. 9 ! +++++++++++++++++++++++++++++++++++ 10 ! Skriv RUN och sedan HELP f|r info 50 ON ERROR GOTO 10000 60 FLOAT 80 EXTEND 500 OPEN 'PR:VSA36C72.5' AS FILE 9% 1000 ; CHR$(12%) 1010 ; 'Ready!' 1020 IF F|rsta$='+' OR F|rsta$='-' THEN 1050 1030 IF F|rsta$='B' OR F|rsta$='b' THEN 1050 1040 IF F|rsta$<>'H' AND F|rsta$<>'h' AND F|rsta$<>'S' AND F|rsta$<>'s' THEN F|rsta$='' 1050 ; F|rsta$; 1060 INPUT ''Adress$ 1070 IF FNPr% THEN 1010 1080 Adress$=F|rsta$+Adress$ 1090 Teck$=LEFT$(Adress$,1%) 1100 IF Teck$='+' THEN Tal%=1% 1110 IF Teck$='-' THEN Tal%=-1% 1120 IF Adress$='SKRIV' OR Adress$='skriv' THEN Z%=FNSkriv% 1130 IF Adress$='BYE' OR Adress$='bye' THEN 6580 1140 IF Adress$='H' OR Adress$='h' OR Adress$='HELP' OR Adress$='Help' OR Adress$='help' THEN Z%=FNHelp% 1150 IF Teck$<>'+' AND Teck$<>'-' THEN F|rsta$='' : GOTO 1010 1160 Adress=ABS(VAL(Adress$)) 1170 Z%=FNPeek%(Pr%) 1180 GOTO 1010 2000 DEF FNPr% 2010 WHILE Adress$='PR-ON' OR Adress$='pr-on' 2020 Pr%=9% : Prhist%=-1% 2030 RETURN -1% 2040 WEND 2050 WHILE Adress$='PR-OFF' OR Adress$='pr-off' 2060 Pr%=0% 2070 RETURN -1% 2080 WEND 2090 RETURN 0% 2100 FNEND 5000 DEF FNPeek%(Pr%) 5010 IF Pr% THEN ; #Pr%, 5020 IF Pr% THEN ; #Pr%,'Adress' TAB(13%) 'Dec' TAB(21%) 'Heltal' TAB(35%) 'Byte bin{rt' TAB(55%) 'Ev. ASCII' : ; #Pr% 5030 Cell=PEEK(Adress) 5040 Cell2=PEEK2(Adress) 5050 IF SGN(Cell2)=-1% THEN Cell2=Cell2+65536 5060 ; USING '#####,' Adress; 5070 ; TAB(10%) Cell TAB(16%) Cell2 TAB(25%) FNDecbin{r$(Cell) TAB(37%) FNAscii$ 5080 IF Pr% THEN ; #Pr%, USING '#####,' Adress; 5090 IF Pr% THEN ; #Pr%,TAB(12%) Cell TAB(20%) Cell2 TAB(35%) FNDecbin{r$(Cell) TAB(55%) FNAscii$ 5100 GET \$ 5110 Adress=Adress+(Tal%) 5120 IF Adress>65535 THEN Adress=0 5130 IF INP(34%)<>32% THEN F|rsta$=CHR$(PEEK(-29)) : RETURN 0% ELSE 5030 5140 FNEND 6000 DEF FNDecbin{r$(Dec%) LOCAL C 6010 Svaret$='' 6020 Svar$='' 6030 C%=128% 6040 FOR Bit%=1% TO 8% 6050 IF Dec% AND C% THEN Svar%(Bit%)=1 ELSE Svar%(Bit%)=0% 6060 C%=C%/2% 6070 Svar$=NUM$(Svar%(Bit%)) 6080 Svaret$=Svaret$+Svar$ 6090 NEXT Bit% 6100 RETURN Svaret$ 6110 FNEND 6120 DEF FNAscii$ 6130 IF Cell>31% AND Cell<128% THEN 6140 ELSE B$='-' : RETURN B$ 6140 B$=CHR$(Cell) 6150 RETURN B$ 6160 FNEND 6170 DEF FNHelp% 6180 ; 6190 ; 'Kommando:' 6200 ; 6210 ; 'Med programmet kan man l{sa och skriva' 6220 ; 'i minnet.' 6230 ; 6240 ; 'Vid l{sning av minnet anges adresser' 6250 ; 'decimalt med +/- f|re beroende p}' 6260 ; 'stegring upp eller ner, t ex "-65000".' 6270 ; 6280 ; 'P} sk{rmen anges adressen, minnes-' 6290 ; 'inneh}ll decimalt, som heltal, bin{rt' 6300 ; 'och i ASCII-form (i f|rekommande fall).' 6310 ; 6320 ; 'Fler rader med minnesinneh}ll visa vid' 6330 ; 'medtryckning av mellanslagstangenten.' 6340 ; ']terg}ng till kommandol{ge erh}lles ' 6350 ; 'genom nertryckning av annan tangent,' 6360 ; '{n mellanslagstangenten.' 6370 ; 6380 ; 'Tryck f|r forts{ttning! '; 6390 GET \$ : ; : ; 6400 ; 'Utskrift p} skrivare PR-ON!' 6410 ; 'Avst{ngning av skrivare PR-OFF!' 6420 ; 6430 ; 'Skrvning sker genom kommandot SKRIV.' 6440 ; 6450 ; 'Om kommandot SKRIV ges efter RUN fr}gas' 6460 ; 'efter adressen, annars skrivs v{rdet' 6470 ; 'i den adress som sist l{stes.' 6480 ; 6490 ; 'Det tal som skrives m}ste vara mindre' 6500 ; '{n 65536!' 6510 ; 6520 ; 'Programmet avslutas med BYE.' 6530 ; 6540 IF Adress<>0% THEN ; 'Den sista l{sta cellen var: ' Adress-Tal% 6550 ; 6560 RETURN 0% 6570 FNEND 6580 IF Prhist% THEN ; #9%,CHR$(12%) 6590 ; 6600 ; 'Slut f|r idag, tack f|r idag!' 6610 ; 6620 CLOSE 6630 END 7000 DEF FNSkriv% LOCAL V{rde% 7010 INPUT 'Vad vill du skriva? 'V{rde% 7020 IF Adress=0% THEN INPUT 'Vilken adress? 'Adress ELSE Adress=Adress-Tal% 7030 POKE Adress,V{rde% 7035 Adress=0 7040 RETURN 0% 7050 FNEND 10000 IF ERRCODE=134 THEN RESUME 1010 10010 ; CHR$(7,7,7) 10020 ; 'Fel nr: ' ERRCODE 10030 END