10 ! Program TEST 12 ; CHR$(12) CUR(5,0) 14 ; "Fas 1. Mata in en serie p} 5 tal" 16 FOR I=1 TO 5 : F=0 : GOSUB 250 : ; X. : NEXT I 18 ; CHR$(12) CUR(5,0) 20 ; "Fas 2. Mata in en serie tal. Kontrolltecken = slut" 22 FOR I=1 TO 10 : F=1 : GOSUB 250 24 IF F THEN 28 26 ; X. : NEXT I 28 ; CHR$(12) CUR(5,0) 30 ; "Fas 3. Mata in 5 str{ngar" 32 FOR I=1 TO 5 : F=2 : GOSUB 250 34 ; I$ 36 NEXT I 38 ; CHR$(12) CUR(5,0) 40 ; "Fas 4. Mata in str{ngar. Kontrolltecken = slut" 42 FOR I=1 TO 10 : F=3 : GOSUB 250 44 IF F THEN 48 46 ; I$ : NEXT I 48 ; CHR$(12) CUR(5,0) 50 ; "Fas 5. Skriv min-gr{nsen" : F=0 : GOSUB 250 : Y.=X. 52 ; "Skriv en serie tal" 54 FOR I=1 TO 10 : F=5 : X.=Y. : GOSUB 250 56 IF F THEN 60 58 NEXT I 60 ; CHR$(12) CUR(5,0) 62 ; "Fas 6. Skriv max-gr{nsen" : F=0 : GOSUB 250 : Y1.=X. 64 ; "Skriv en serie tal" 66 FOR I=1 TO 10 : F=7 : X.=Y1. : GOSUB 250 68 IF F THEN 72 70 NEXT I 72 ; CHR$(12) CUR(5,0) 74 ; "Fas 7. Min- och max-gr{ns som ovan. Skriv en serie tal." 76 FOR I=1 TO 10 : F=9 : X0.=Y. : X9.=Y1. : GOSUB 250 78 IF F THEN 82 80 NEXT I 82 ; CHR$(12) CUR(5,0) "SLUT P] TEST" 84 END 200 ! 206 STOP 208 ! *************************************** 210 ! 212 ! PROGRAM 'ENTER' 214 ! 216 ! INMATNINGSRUTIN, STEN \HMAN 218 ! 220 ! EDITION ABC-806 1984-10-11 222 ! 224 ! *************************************** 226 ! Flagga = F%. S{tt F% enligt |nskem}l: 228 ! F%=J{mn: Ej flagga F% i retur; F%=Udda: Flagga F% i retur 230 ! F% = 0, 1: Input flyttal 232 ! F% = 2, 3: Input av str{ng med ev. blankar 234 ! F% = 4, 5: Input av flyttal med min-kontroll = X 236 ! F% = 6, 7: Input av flyttal med max-kontroll = X 238 ! F% = 8, 9: Input av flyttal med min-kontroll = X0, maxkontroll = X9 240 ! 242 ! 244 ! 246 ! F% > 9: Flagga F% s{tts om ASCII = F% matas in 248 ! **************************************** 250 R9=PEEK(65363) : K9=PEEK(65362) 252 ON ERROR GOTO 352 254 I$='' : L9=0 : K8=1 256 ; CUR(R9,K9) I$ CUR(R9,K8+K9-1); : GET Z$ : IF F9 GOSUB 354 258 Z9=Z : Z=ASCII(Z$) 260 IF Z=13 THEN 374 262 IF F>9 AND Z=F THEN 372 264 IF Z<32 THEN 284 266 IF K87 AND Z<>10 THEN 340 286 ON Z+1 GOTO 288,300,310,430,314,318,320,324,430,430,334 288 IF K8=1 AND L9>1 I$=RIGHT$(I$,2) : GOTO 298 290 IF K8=1 THEN 270 292 IF K8>L9 I$=LEFT$(I$,K8-2) : GOTO 296 294 I$=LEFT$(I$,K8-1)+RIGHT$(I$,K8+1) 296 IF K8>1 K8=K8-1 298 L9=LEN(I$) : GOTO 270 300 IF K8<2 THEN 270 302 FOR P9=K8-1 TO 2 STEP -1 304 IF ASCII(MID$(I$,P9,1))=32 THEN 308 306 NEXT P9 308 K8=P9 : GOTO 270 310 IF K8>1 K8=K8-1 312 GOTO 270 314 I$=LEFT$(I$,K8-1)+CHR$(32)+RIGHT$(I$,K8) 316 L9=LEN(I$) : GOTO 270 318 K8=L9+1 : GOTO 270 320 IF K8L9-1 THEN 270 326 FOR P9=K8+1 TO L9 328 IF ASCII(MID$(I$,P9,1))=32 THEN 332 330 NEXT P9 332 K8=P9 : GOTO 270 334 I$=J$ : L9=LEN(I$) : K8=L9+1 : GOTO 270 336 I$=LEFT$(I$,K8-1)+Z$+RIGHT$(I$,K8) 338 K8=K8+1 : L9=LEN(I$) : GOTO 270 340 X.=0 : I$='' : Z9=Z : IF F AND 1 THEN 376 ELSE 352 342 ! **************************************** 344 ! 346 ! FELHANTERING 348 ! 350 ! **************************************** 352 ; CUR(R9+1,0) CHR$(7,127,127,32) "FELAKTIG INMATNING! G\R OM!" : F9=-1 : GOTO 254 354 ; CUR(R9+1,0) STRING$(80,32); : F9=0 : RETURN 356 ; CUR(R9+1,0) CHR$(7,127,127,32) "UTANF\R GR[NSV[RDET! Tryck p} ! om OK"; : GET Z$ 358 ; CUR(R9+1,0) STRING$(80,32); : IF ASCII(Z$)=33 THEN 382 360 ; CUR(R9,0) STRING$(40,32); : GOTO 254 362 ! ************************************** 364 ! 366 ! RETURN 368 ! 370 ! ************************************** 372 X.=0 : I$='' : GOTO 378 374 ON F/2+1 GOTO 380,384,386,392,398 376 IF F AND 1 F=FNZ9(Z9) ELSE F=0 378 ; : J$=I$ : ON ERROR GOTO 408 : RETURN 380 IF FNI9 THEN 352 382 X.=VAL(I$) : GOTO 376 384 X.=0 : GOTO 376 386 IF FNI9 THEN 352 388 F9=INSTR(1,I$,"!") : IF F9 I$=LEFT$(I$,F9-1) 390 IF VAL(I$)X. AND F9=0 THEN 356 ELSE 382 398 IF FNI9 THEN 352 400 F9=INSTR(1,I$,"!") : IF F9 I$=LEFT$(I$,F9-1) 402 IF (VAL(I$)X9.) AND F9=0 THEN 356 ELSE 382 404 DEF FNZ9(Z0)=-Z9*(Z9<14)-(Z9-13)*(Z9>13 AND Z9<32) 406 DEF FNI9=ASCII(I$)>57 OR ASCII(I$)<45 OR ASCII(I$)=47 408 REM *** EXIT *** 410 ; CHR$(12,10,10,10) "FEL MED FELKOD " ERRCODE "HAR UPPST]TT" 412 ; "PROGRAMMET STOPPAT" 414 ; : ; "TRYCK P] OM DU VILL ]TERG] TILL MENYN" 416 ; "ELLER ANNAN TANGENT F\R PROGRAMSLUT" 418 GET Z$ : IF ASCII(Z$)=13 THEN 206 420 CLOSE 422 ; CHR$(12) CUR(10,10) "*** HEJ D]! ***" CUR(22,0) 424 END 426 ; CHR$(12,10,10) " *** PROGRAMMET KLART? ***" CHR$(10,10) 428 GOTO 414 430 ; "TYV[RR!!!" CHR$(10,10) "PROGRAMMET [R INTE KLART [N!" 432 GOTO 414