100 REM SAVE F\NSTREN 102 REM +++++++++++++++++++++++++++++++ 104 REM +++ SL[CKA F\NSTREN +++ 106 REM +++++++++++++++++++++++++++++++ 108 REM +++ Datorisering av ett +++ 110 REM +++ st}ltr}dsproblem som +++ 112 REM +++ fanns i mitt f|r{ldra- +++ 114 REM +++ hem och som kallades +++ 116 REM +++ f|r SINCLAIR'S BOJOR +++ 118 REM +++++++++++++++++++++++++++++++ 120 REM +++ Version 1.2 1982-05-03 +++ 122 REM +++ Konstr. Arne Sp}ngtorp +++ 124 REM +++ <1218> Sturegatan 9,11 +++ 126 REM +++ 632 30 E-TUNA +++ 128 REM +++ 016/42 45 04 +++ 130 REM +++++++++++++++++++++++++++++++ 132 REM +++ INITIERINGAR ++++++++++++++ 134 REM +++++++++++++++++++++++++++++++ 136 DIM B$(6%,8%)=23% : REM Beskrivning 138 B$(1%,1%)=' B E S K R I V N I N G ' 140 B$(1%,2%)='  ' 142 B$(1%,3%)='Uppgiften g}r ut p} att' 144 B$(1%,4%)='sl{cka i alla f|nstren!' 146 B$(1%,5%)='Det kan g|ras fr}n h|- ' 148 B$(1%,6%)='ger, v{nster eller fr}n' 150 B$(1%,7%)='b}da h}llen. D} Du l{st' 152 B$(1%,8%)='klart - Tag ' 154 B$(2%,1%)='SL[CKNING FR]N V[NSTER:' 156 B$(2%,2%)='Nr 1 kan alltid sl{ckas' 158 B$(2%,3%)='eller t{ndas - |vriga ' 160 B$(2%,4%)='endast om f|nstret n{r-' 162 B$(2%,5%)='mast till v{nster {r ' 164 B$(2%,6%)='t{nt och alla andra }t ' 166 B$(2%,7%)='v{nster {r sl{ckta. [r ' 168 B$(2%,8%)='Du klar - Tag ' 170 B$(3%,1%)='SL[CKNING FR]N H\GER: ' 172 B$(3%,2%)='H|graste kan j{mt sl{c-' 174 B$(3%,3%)='kas / t{ndas - |vriga ' 176 B$(3%,4%)='endast om f|nstret n{r-' 178 B$(3%,5%)='mast till h|ger {r t{nt' 180 B$(3%,6%)='och alla de andra till ' 182 B$(3%,7%)='h|ger {r sl{ckta. [r ' 184 B$(3%,8%)='Du klar - Tag ' 186 B$(4%,1%)='SL[CKNING FR]N B]DA ' 188 B$(4%,2%)='H]LLEN: Nr 1 och h|g- ' 190 B$(4%,3%)='raste kan alltid sl{c- ' 192 B$(4%,4%)='kas / t{ndas. I |vrigt ' 194 B$(4%,5%)='g{ller en kombination ' 196 B$(4%,6%)='av reglerna f|r h|ger/ ' 198 B$(4%,7%)='v{nstersl{ckning. [r ' 200 B$(4%,8%)='Du klar - Tag ' 202 B$(5%,1%)='SL[CKNING/T[NDNING sker' 204 B$(5%,2%)='med siffertangenterna ' 206 B$(5%,3%)='AVBRYTANDE och }terg}ng' 208 B$(5%,4%)='till huvudmenyn sker ' 210 B$(5%,5%)='med -tangenten ' 212 B$(5%,6%)='ANTAL F\NSTER kan vari-' 214 B$(5%,7%)='eras mellan 1 och 9. [r' 216 B$(5%,8%)='Du klar - Tag ' 218 B$(6%,1%)='Om -tangenten ' 220 B$(6%,2%)='anv{nds f|r alla l{gen ' 222 B$(6%,3%)='under FUNKTIONSVAL er- ' 224 B$(6%,4%)='h}lls f|ljande v{rden: ' 226 B$(6%,5%)='-BESKRIVNING = N ' 228 B$(6%,6%)='-ANTAL F\NSTER = 9 ' 230 B$(6%,7%)='-SL[CKNING FR]N V[NSTER' 232 B$(6%,8%)='Tag och K\R! ' 234 DIM L%(10%) : REM 1=T{nt 2=Sl{ckt 236 B1$=CHR$(32%) : REM En blank 238 B2$=B1$+B1$ : REM Tv} blanka 240 R1$=CHR$(127%) : REM Ett rut/ramtkn 242 R2$=R1$+R1$ : REM Tv} rut/ramtecken 244 R4$=R2$+R2$ : REM Fyra rut/ramtkn 246 DIM S%(3%,9%) : REM Antal tryckn. 248 DIM H$(3%)=11% : REM Riktning 250 DATA V[NSTER,H\GER,'B]DA H]LLEN' 252 DATA 1,1,1,2,2,2,5,5,3,10,10,4 254 DATA 21,21,7,42,42,10,85,85,15 256 DATA 170,170,20,341,341,31 258 REM +++ LADDA RIKTNING ++++++++++ 260 FOR I%=1% TO 3% 262 READ H$(I%) : NEXT I% 264 REM +++ LADDA MINSTA ANTAL ++++++ 266 FOR I%=1% TO 9% : FOR J%=1% TO 3% 268 READ S%(J%,I%) : NEXT J% : NEXT I% 270 REM +++ VARIABLER +++++++++++++++ 272 REM K0,K1%,K2%,K3%,K4 Klockv{rden 274 REM T1%,T2%,T3% Tabv{rden 276 REM A%,A0% Asciiv{rden f|r input 278 REM I%,J% For-next-variabler 280 REM R % Aktuell rutrad 282 REM F% Aktuellt f|nsternummer 284 REM M% " antal f|nster 286 REM H% Vald t{nd/sl{ckriktning 288 REM T% Antal sl{ck-/t{ndningar 290 REM G$ Inputvariabel 292 REM C$ Aktuell uttext 294 REM S1$ " f|nstersiffra 296 REM S4$ " " -sifferrad 298 REM +++++++++++++++++++++++++++++ 300 REM +++ MENY ++++++++++++++++++++ 302 REM +++++++++++++++++++++++++++++ 304 ; CHR$(12%) : M%=9% : GOSUB 512 306 ; CUR(12%,12%)'Tag f|r' 308 ; CUR(13%,14%)'FUNKTIONSVAL' 310 ; CUR(14%,14%)'' 312 ; CUR(16%,3%)'Beskrivning ?' 314 ; CUR(17%,3%)' < Ange J/N!' 316 ; CUR(19%,3%)'Antal f|nster:' 318 ; CUR(20%,3%)' < Ange 1-9 !' 320 ; CUR(16%,23%)'Sl{ckning fr}n:' 322 ; CUR(17%,23%)'1 = v{nster' 324 ; CUR(18%,23%)'2 = h|ger' 326 ; CUR(19%,23%)'3 = b}da h}llen' 328 ; CUR(20%,23%)' < Ange vilket' 330 GOSUB 380 332 ; CUR(12%,12%)' ' 334 ; CUR(17%,3%); : GET G$ 336 IF G$='J' OR G$='j' 338 ELSE 340 338 GOSUB 362 : GOTO 300 340 ; CUR(20%,3%); : GET G$ 342 A%=ASC(G$) 344 IF A%=13% M%=9% ELSE M%=A%-48% 346 IF M%<1% OR M%>9% 340 348 ; CUR(20%,23%); : GET G$ 350 A%=ASC(G$) 352 IF A%=13% H%=1% ELSE H%=A%-48% 354 IF H%<1% OR H%>3% 348 356 GOSUB 512 : GOSUB 414 358 GOTO 300 360 REM +++++++++++++++++++++++++++++ 362 REM +++ BESKRIVNING +++++++++++++ 364 REM +++++++++++++++++++++++++++++ 366 FOR I%=1% TO 6% : FOR J%=1% TO 8% 368 ; CUR(12%+J%,0%)STRING$(39%,32%) 370 ; CUR(12%+J%,8%)B$(I%,J%); 372 NEXT J% : GET G$ 374 FOR J%=1% TO 1000% : NEXT J% 376 NEXT I% : RETURN 378 REM +++++++++++++++++++++++++++++ 380 REM +++ MENYSL[CKNING +++++++++++ 382 REM +++++++++++++++++++++++++++++ 384 FOR F%=1% TO 9% : POKE 65013,0 386 A%=INP(56) : IF A%=141% RETURN 388 IF L%(F%-1%) 390 ELSE 400 390 FOR I%=1% TO F%-2% : IF L%(I%) 400 392 NEXT I% 394 IF L%(F%) GOSUB 564 ELSE GOSUB 578 396 FOR I%=1% TO M% : IF L%(I%) 400 398 NEXT I% : GOTO 402 400 NEXT F% : GOTO 380 402 FOR I%=1% TO 2000% : NEXT I% 404 FOR F%=1% TO 9% 406 GOSUB 518 : NEXT F% 408 FOR I%=1% TO 2000% : NEXT I% 410 GOTO 380 412 REM +++++++++++++++++++++++++++++ 414 REM +++ HUVUDRUTIN ++++++++++++++ 416 REM +++++++++++++++++++++++++++++ 418 ; CUR(13%,10%)'Sl{ck'M%' fr}n '; 420 ; H$(H%) 422 ; CUR(15%,10%)'L{gsta m|jliga ='; 424 ; S%(H%,M%) 426 ; CUR(17%,10%)'Ditt antal = 0' 428 ; CUR(19%,10%)'Anv{nd tid = 0' 430 ; CUR(21%,10%)'Tag f|r ' 432 ; CUR(21%,27%)'start'; : GET G$ 434 FOR I%=1% TO 1000% : NEXT I% 436 IF ASC(G$)<>32% 432 438 ; CUR(21%,10%)'Tag f|r ' 440 ; CUR(21%,27%)'stopp' 442 GOSUB 592 444 GOSUB 602 : A%=A%-128% 446 IF A%<>A0% A0%=A% : GOTO 456 448 FOR I%=1% TO 10% : GOSUB 602 450 A%=A%-128% 452 IF A%<>A0% A0%=A% : GOTO 456 454 NEXT I% 456 IF A%=13% 500 ELSE F%=A%-48% 458 T%=T%+1% : ; CUR(17%,26%)T% 460 IF F%<1% OR F%>M% 444 462 ON H% GOTO 464,472,480 464 REM --- SL[CKA FR]N V[NSTER ----- 466 IF L%(F%-1%) 468 ELSE 444 468 FOR I%=1% TO F%-2% : IF L%(I%) 444 470 NEXT I% : GOTO 494 472 REM --- SL[CKA FR]N H\GER ------- 474 IF L%(F%+1%) 476 ELSE 444 476 FOR I%=F%+2% TO M% : IF L%(I%) 444 478 NEXT I% : GOTO 494 480 REM --- SL[CKA FR]N B]DA H]LLEN - 482 IF L%(F%-1%) 484 ELSE 488 484 FOR I%=1% TO F%-2% : IF L%(I%) 488 486 NEXT I% : GOTO 494 488 IF L%(F%+1%) 490 ELSE 444 490 FOR I%=F%+2% TO M% : IF L%(I%) 444 492 NEXT I% 494 IF L%(F%) GOSUB 564 ELSE GOSUB 578 496 FOR I%=1% TO M% : IF L%(I%) 444 498 NEXT I% 500 ; CUR(23%,10%); 502 ; 'En g}ng till? (J/N)'; : GET G$ 504 IF G$='N' OR G$='n' 506 ELSE 508 506 ; CUR(21%,10%); : END 508 RETURN 510 REM +++++++++++++++++++++++++++++ 512 REM +++ RITA MENYF\NSTER ++++++++ 514 REM +++++++++++++++++++++++++++++ 516 T1%=18%-M%/2%*4% : GOSUB 524 518 FOR F%=1% TO M% 520 GOSUB 578 : NEXT F% : RETURN 522 REM +++++++++++++++++++++++++++++ 524 REM +++ RITA F\NSTER O RAM ++++++ 526 REM +++++++++++++++++++++++++++++ 528 ; CHR$(12%) : T%=0% : A0%=0% 530 ; CUR(0%,12%)'' 532 ; CUR(1%,12%)'SL[CKA' 534 ; CUR(2%,12%)'F\NSTER' 536 ; CUR(3%,12%)'' 538 L%(0%)=1% : L%(M%+1%)=1% 540 FOR F%=1% TO M% : L%(F%)=1% 542 S1$=CHR$(F%+48%) 544 S4$=S1$+S1$+S1$+S1$ 546 T2%=T1%+F%*4%-4% 548 IF F%=1% T3%=T2%-1% ELSE T3%=T2% 550 FOR R%=5% TO 11% : C$=S4$ 552 IF R%=5% OR R%=11% C$=R4$ 554 ; CUR(R%,T3%); 556 IF F%=1% ; R1$; 558 ; C$; : IF F%=M% ; R1$ 560 NEXT R% : NEXT F% : RETURN 562 REM +++++++++++++++++++++++++++++ 564 REM +++ SL[CKA F\NSTER ++++++++++ 566 REM +++++++++++++++++++++++++++++ 568 T2%=T1%+F%*4%-3% : L%(F%)=0% 570 FOR R%=7% TO 9% 572 ; CUR(R%,T2%)B2$ 574 NEXT R% : RETURN 576 REM +++++++++++++++++++++++++++++ 578 REM +++ T[NDA F\NSTER +++++++++++ 580 REM +++++++++++++++++++++++++++++ 582 T2%=T1%+F%*4%-3% : L%(F%)=1% 584 FOR R%=7% TO 9% 586 ; CUR(R%,T2%)R2$ 588 NEXT R% : RETURN 590 REM +++++++++++++++++++++++++++++ 592 REM +++ STARTTID ++++++++++++++++ 594 REM +++++++++++++++++++++++++++++ 596 POKE 65008%,-1,-1,-1 598 GOSUB 616 : K0=K4 : RETURN 600 REM +++++++++++++++++++++++++++++ 602 REM +++ ANV[ND TID ++++++++++++++ 604 REM +++++++++++++++++++++++++++++ 606 GOSUB 616 608 ; CUR(19%,26%)K4-K0 610 POKE 65013,0 : A%=INP(56) 612 IF A%>128% RETURN ELSE 606 614 REM +++++++++++++++++++++++++++++ 616 REM +++ KLOCKAVL[SNING ++++++++++ 618 REM +++++++++++++++++++++++++++++ 620 K1%=PEEK(65010%) 622 K2%=PEEK(65009%) 624 K3%=PEEK(65008%) 626 IF K2%<>PEEK(65009%) 620 628 IF K1%<>PEEK(65010%) 620 630 K1%=(K1% XOR 255%)*256% 632 K2%=(K2% XOR 255%) 634 K3%=((K3%-1%) AND 255%) XOR 255% 636 K4=(K1%+K2%)*5.12+K3%/50 638 RETURN 640 REM +++++++++++++++++++++++++++++ 642 REM +++ PROGRAMSLUT +++++++++++++ 644 REM +++++++++++++++++++++++++++++