Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 10 CLS:POKE 8291,29 100 PRINT 110 PRINT 120 PRINT " " 130 PRINT " " 140 PRINT " " 150 PRINT " " 160 PRINT " " 170 PRINT " " 180 PRINT " " 190 PRINT 200 PRINT 210 PRINT " " 220 PRINT " " 230 PRINT " " 240 PRINT " " 250 PRINT 260 PRINT 270 PRINT " II. Z1013-Tagung der DDR " 280 PRINT " DRESDEN Februar 1888 " 290 PRINT 295 PRINT 300 PRINT 310 PRINT 320 PRINT ""; 330 PRINT " V.Pohlers "; 340 PRINT " Lomonossow-"; 350 PRINT " Allee 41/81"; 360 PRINT " soft Greifswald "; 370 PRINT " 2200 "; 380 PRINT ""; 390 PRINT 400 PRINT " "; 500 INPUT "";A$ 510 BEEP:CLS:LINES 1:WIDTH 0:RESTORE 520 520 DOKE 11103,DEEK(DEEK(11229)+1):LIST:END 10!HC-BASIC TIPS+KNIFFE 11! 12!V.Pohlers, Lomonossowallee 41/81, Greifswald, 2200 13!fuer die zweite Z1013-Tagung Dresden Febr. 1988 14! 15! 16! 17!Programmname fuer CSAVE/CLOAD in Stringvariable 18! 19! CSAVE""+A$ 20! 21!INPUT AT(X,Y) -Funktion 22! 23! DOKE 112,256*X+Y:INPUT" text";T$ 24! ^ Leerzeichen noetig, erscheint nicht im Text 25! 26!RANDOMIZE -Funktion 27! 28! 10 PRINT "zum Start bel. Taste druecken!":I=0 29! 20 I=I-1:A=RND(I) 30! 30 IF INKEY$="" GOTO 20 31! 32!Runden einer Zahl 33! 34! DEF FNRS(X)=INT(10^S*X+.5)/10^S auf S Nachkommastellen runden 35! 36!rechtsbuendige Ausgabe von Zahlen 37! 38! DEF FNP(X)=8-LEN(STR$(INT(X))) 39! PRINT TAB(20+FNP(Z));Z Ausgabe Dezimalpunkt an Position 28 40! 41!Programmschutz fuer LIST/CSAVE/EDIT 42! 43! POKE 11101,1:CSAVE"pgm" Abspeichern, bei erneutem Einlesen 44! Progamm geschuetzt 45! DOKE 11101,0 bzw. POKE 11102,0 Aufheben Schutz 46! 47! LINES 0 LIST-Tod 48! 49!<ENTER>-Abfrage bei Bildschirmende innerhalb FOR...NEXT 50! 51! IF PEEK(113)>31 THEN PRINT TAB(22) "<ENTER>" :INPUT"";ET$:CLS 52! 53!Cursorzeichen veraendern 54! 55! POKE 10846,neuer Cursor bei HC-BASIC H 392 56! 57!BASIC-RAM-Ende bei Neustart bis max. 0EBFFH 58! 59! DOKE 834,-5121 bei HC-BASIC H 836 60! 61!selbststartende BASIC-Programme 62! 63! * vor Programm schreiben 64! 0 RESTORE 10: DOKE 11103,DEEK(11229)+1: RUN 65! 10 hier beginnt das Programm 66! * POKE 8291,29: CSAVE"name" 67! * bei erneutem Einlesen mit CLOAD Selbststart 68! Zeile 0 erscheint nicht bei LIST usw. ! 69! 100!CLIST fuer HC-Routinen-gespeicherte BASIC-Programme 101! 102 PRINT "CLIST":PRINT:PRINT 103 DA=128 104 DOKE 45,DA:POKE 124,1 105 CALL*1FC :!CALL*28A beim HC-BASIC H 106 IF PEEK(123)<>1 THEN 105 107 FOR I=DA+3 TO DA+10 108 PRINT CHR$(PEEK(I));:NEXT 109 I=PEEK(DA)-211 110 IF I=0 OR I=4 THEN PRINT " Progr. "; 111 IF I=1 OR I=5 THEN PRINT " Datei "; 112 IF I=2 OR I=6 THEN PRINT " ASCII "; 113 IF I>3 THEN PRINT " G"; :ELSE PRINT " "; 114 PRINT DEEK(DA+11) 115 GOTO 104 116! 117! "G" :Pgm/Daten mittels POKE 11101,1 gschuetzt 118! 200!LVAR fuer HC-BASIC 201! 202! * eigenes Pgm einladen, danach LVAR (60000-60190) einladen 203! * im eigenen Pgm an die zu ueberprufenden Stellen GOSUB60000 schreiben 204! 205! LVAR listet direkt den Variablenspeicher: 206! einf. Var. : Adresse Name akt. Wert 207! Strings : Adresse Name Stringadr. Stringlaenge String 208! Funktionsnamen haben vorm Namen ein "f" 209! 210! Felder : Adresse Name (Dimensionen ...) 211! 212! 60000 VI=0:VJ=0:FOR VI=DEEK(11223)TO DEEK(11225)-1 STEP 6 60010 PRINT VI;TAB(7)CHR$(SGN(128 AND PEEK(VI+1))*102); 60020 PRINT TAB(8)CHR$(127 AND PEEK(VI+1));CHR$(127 AND PEEK(VI)); 60030 PRINT CHR$(SGN(128 AND PEEK(VI))*36); 60040 IF PEEK(VI)<128 THEN PRINT TAB(12);:GOTO 60060 60050 PRINT TAB(12)DEEK(VI+4);TAB(19)PEEK(VI+2);TAB(24); 60060 RESTORE 60100:VJ=DEEK(11229)+6 60070 POKE VJ,PEEK(VI+1)AND 127 60080 POKE VJ+1,PEEK(VI)AND 127:IF PEEK(VJ+1)=0 THEN POKE VJ+1,32 60090 IF PEEK(VI)>127 THEN POKE VJ+2,36:ELSE POKE VJ+2,32 60100 PRINT...:! 60110 NEXT 60115 IF DEEK(11227)=DEEK(11225)THEN 60190 60120 PRINT:FOR VI=DEEK(11225)TO DEEK(11227)-1 60130 PRINT VI;TAB(8)DEEK(VI+2)-1;TAB(15)CHR$(PEEK(VI+1));CHR$(127 AND PEEK(VI)); 60140 PRINT CHR$(SGN(128 AND PEEK(VI))*36); 60150 PRINT "(";:FOR VJ=PEEK(VI+4)-1 TO 0 STEP-1 60160 PRINT DEEK(2*VJ+VI+5)-1;CHR$(8);",";:NEXT VJ 60170 PRINT CHR$(8);")" 60180 VI=VI+DEEK(VI+2)+3:NEXT 60190 PRINT VI:RETURN