10 REM . SAVE F\RSTORA 20 REM 1985-11-22 30 REM DAVID ANDERSSON <5201> 40 REM 100 REM ------------------------------- 110 REM Laddar assembler rutin som 120 REM som f|rstorar text p} delar av 130 REM sk{rmen n{r man trycker p} en 140 REM knapp. Knappen {r ganska valbar. 150 REM 160 REM Rutinen {r ca 1500 bytes och 170 REM laddas ovanf|r stacken. 180 REM Grafik kan inte f|rstoras. 190 REM 200 REM F|r ABC80 med eller utan TKN80 210 REM ------------------------------- 220 REM 230 REM [ndrad s} att programmet sj{lv 240 REM flyttar stacken. 250 REM (Program {r ganska bra p} s}nt) 260 REM 1000 REMKOLLA STACKEN 1010 S%=PEEK(65063%)+SWAP%(PEEK(65064%)) 1020 IF S%<=61184% GOTO 2000 1030 ; 'Stacken flyttas' 1040 POKE 65063%,61184%,SWAP%(61184%) 1050 REM G\R RUN IGEN 1060 IF PEEK(3413%)=205% THEN ; CALL(3413%) ELSE ; CALL(3411%) 1070 STOP 2000 REMLADDAR MASKINKOD 2010 REM Z=CALL(61184,ASCII) initierar interupt, ASCIIv{rdet anger start knapp. 2020 REM Ev. interupt till hj{lpare eller smartaid l{nkas automatisk in 2030 REM i denna rutin. 2040 REM I f|rstoringsmode {r interupt disabled, f|rsiktigt alts} n{r man 2050 REM k|r mot kassett. 2060 REM Z=CALL(61184+3) tar bort interupt (som CTRL-C i f|rstoringsmode). 2070 REM 2080 POKE 61184%,195%,9%,239%,58%,56%,239%,237%,71%,201%,123%,246%,128%,50%,77%,239%,50% 2090 POKE 61200%,153%,239%,33%,56%,239%,237%,87%,254%,239%,200%,119%,103%,46%,52%,126%,35% 2100 POKE 61216%,102%,111%,34%,83%,239%,62%,239%,237%,71%,201% 2110 POKE 61236%,73%,239%,148%,5%,0%,1%,1%,0%,0% 2120 POKE 61257%,245%,219%,56%,254%,159%,204%,85%,239%,241%,195% 2130 POKE 61269%,221%,229%,229%,213% 2140 POKE 61273%,197%,221%,33%,56%,239%,58%,243%,253%,50%,57%,239%,221%,54%,4%,220%,42% 2150 POKE 61289%,78%,2%,84%,93%,25%,25%,235%,175%,42%,32%,254%,1%,100%,0%,9%,237% 2160 POKE 61305%,114%,48%,53%,6%,8%,25%,56%,3%,60%,16%,250%,167%,40%,42%,50%,61% 2170 POKE 61321%,239%,221%,190%,2%,48%,3%,50%,58%,239%,205%,46%,240%,205%,36%,241%,254% 2180 POKE 61337%,159%,40%,18%,254%,160%,40%,12%,254%,131%,40%,5%,205%,201%,239%,24%,236% 2190 POKE 61353%,205%,3%,239%,246%,1%,205%,4%,241%,193%,209%,225%,221%,225%,62%,183%,211% 2200 POKE 61369%,57%,62%,127%,211%,57%,200%,241%,219%,56%,135%,56%,251%,241%,251%,237%,77% 2210 POKE 61385%,33%,57%,239%,254%,173%,40%,77%,254%,171%,40%,79%,254%,136%,40%,61%,254% 2220 POKE 61401%,137%,40%,49%,254%,141%,40%,35%,254%,192%,40%,22%,254%,188%,192%,58%,78% 2230 POKE 61417%,2%,6%,28%,254%,80%,32%,2%,6%,55%,35%,35%,126%,60%,184%,208%,24% 2240 POKE 61433%,5%,35%,35%,126%,61%,248%,119%,195%,120%,240%,35%,35%,126%,54%,0%,167% 2250 POKE 61449%,32%,245%,43%,43%,126%,60%,254%,24%,208%,119%,24%,22%,126%,221%,190%,2% 2260 POKE 61465%,216%,61%,24%,245%,35%,126%,61%,200%,24%,7%,35%,126%,221%,190%,5%,208% 2270 POKE 61481%,60%,119%,205%,4%,241%,42%,32%,254%,237%,91%,78%,2%,221%,70%,2%,58% 2280 POKE 61497%,57%,239%,60%,144%,48%,1%,175%,79%,128%,128%,128%,254%,25%,56%,5%,61% 2290 POKE 61513%,13%,25%,24%,247%,34%,71%,239%,237%,91%,32%,254%,33%,116%,3%,6%,0% 2300 POKE 61529%,9%,9%,34%,69%,239%,58%,58%,239%,71%,135%,128%,50%,62%,239%,229%,70% 2310 POKE 61545%,35%,102%,104%,237%,75%,78%,2%,237%,176%,225%,35%,35%,61%,32%,239%,42% 2320 POKE 61561%,71%,239%,221%,94%,3%,22%,0%,25%,237%,91%,69%,239%,6%,13%,58%,78% 2330 POKE 61577%,2%,254%,80%,32%,2%,6%,26%,221%,78%,2%,197%,229%,205%,162%,240%,193% 2340 POKE 61593%,42%,78%,2%,9%,193%,13%,32%,242%,201%,197%,229%,6%,3%,33%,63%,239% 2350 POKE 61609%,197%,235%,205%,23%,16%,235%,62%,23%,2%,3%,205%,41%,16%,193%,16%,240% 2360 POKE 61625%,225%,193%,213%,197%,126%,230%,127%,214%,32%,48%,1%,175%,79%,6%,0%,126% 2370 POKE 61641%,230%,128%,35%,229%,96%,105%,41%,41%,41%,9%,1%,66%,241%,9%,221%,229% 2380 POKE 61657%,221%,33%,63%,239%,14%,3%,221%,94%,0%,221%,86%,1%,6%,3%,230%,128% 2390 POKE 61673%,182%,18%,19%,35%,16%,248%,221%,115%,0%,221%,114%,1%,221%,35%,221%,35% 2400 POKE 61689%,13%,32%,227%,221%,225%,225%,193%,16%,186%,209%,201%,245%,237%,91%,32%,254% 2410 POKE 61705%,42%,69%,239%,58%,62%,239%,229%,70%,35%,102%,104%,237%,75%,78%,2%,235% 2420 POKE 61721%,237%,176%,235%,225%,35%,35%,61%,32%,237%,241%,201%,33%,60%,239%,6%,220% 2430 POKE 61737%,219%,56%,135%,48%,7%,16%,254%,53%,32%,246%,6%,50%,219%,56%,254%,128% 2440 POKE 61753%,56%,250%,112%,254%,224%,216%,214%,32%,201%,32%,32%,32%,32%,32%,32%,32% 2450 POKE 61769%,32%,32%,32%,106%,32%,32%,42%,32%,32%,34%,32%,32%,37%,37%,32%,32% 2460 POKE 61785%,32%,32%,32%,32%,96%,117%,117%,40%,61%,61%,32%,33%,33%,96%,32%,96% 2470 POKE 61801%,32%,119%,53%,34%,32%,34%,42%,37%,56%,96%,38%,112%,32%,32%,35%,32% 2480 POKE 61817%,54%,52%,104%,43%,56%,32%,35%,34%,32%,58%,32%,32%,32%,32%,32%,32% 2490 POKE 61833%,32%,32%,56%,33%,32%,101%,32%,32%,32%,33%,32%,41%,48%,32%,96%,37% 2500 POKE 61849%,32%,33%,32%,40%,122%,56%,96%,110%,100%,32%,34%,32%,32%,104%,32%,34% 2510 POKE 61865%,107%,35%,32%,32%,32%,32%,32%,32%,32%,48%,32%,40%,33%,32%,32%,32% 2520 POKE 61881%,32%,32%,35%,33%,32%,32%,32%,32%,32%,32%,32%,112%,32%,32%,35%,32% 2530 POKE 61897%,32%,32%,56%,96%,38%,32%,32%,32%,32%,104%,35%,105%,106%,34%,106%,32% 2540 POKE 61913%,35%,33%,32%,110%,32%,32%,106%,32%,32%,35%,33%,40%,35%,105%,96%,38% 2550 POKE 61929%,33%,34%,35%,35%,34%,35%,59%,96%,34%,105%,32%,35%,33%,32%,56%,53% 2560 POKE 61945%,42%,44%,61%,32%,32%,33%,106%,115%,51%,96%,32%,106%,32%,35%,33%,96% 2570 POKE 61961%,38%,35%,106%,35%,105%,32%,35%,33%,34%,35%,59%,32%,54%,32%,32%,33% 2580 POKE 61977%,32%,104%,35%,105%,104%,35%,105%,32%,35%,33%,104%,35%,105%,32%,35%,59% 2590 POKE 61993%,34%,35%,32%,32%,32%,32%,32%,33%,32%,32%,33%,32%,32%,48%,32%,32% 2600 POKE 62009%,48%,32%,40%,33%,32%,32%,56%,33%,34%,100%,32%,32%,32%,33%,96%,112% 2610 POKE 62025%,112%,40%,44%,44%,32%,32%,32%,32%,41%,48%,32%,96%,38%,32%,33%,32% 2620 POKE 62041%,40%,35%,105%,32%,40%,33%,32%,34%,32%,96%,120%,113%,106%,44%,36%,34% 2630 POKE 62057%,35%,35%,96%,38%,100%,106%,35%,107%,34%,32%,34%,106%,35%,105%,106%,35% 2640 POKE 62073%,105%,34%,35%,33%,104%,35%,41%,106%,32%,96%,32%,35%,33%,34%,55%,105% 2650 POKE 62089%,32%,53%,106%,34%,35%,33%,106%,35%,35%,106%,35%,33%,34%,35%,35%,106% 2660 POKE 62105%,35%,35%,106%,35%,33%,34%,32%,32%,104%,35%,41%,106%,32%,108%,32%,35% 2670 POKE 62121%,35%,106%,32%,106%,106%,35%,107%,34%,32%,34%,32%,107%,33%,32%,106%,32% 2680 POKE 62137%,32%,35%,33%,32%,32%,53%,96%,32%,53%,32%,35%,32%,106%,96%,38%,106% 2690 POKE 62153%,41%,48%,34%,32%,34%,32%,53%,32%,32%,53%,32%,32%,35%,35%,106%,100% 2700 POKE 62169%,110%,106%,34%,106%,34%,32%,34%,106%,48%,106%,106%,34%,110%,34%,32%,34% 2710 POKE 62185%,104%,35%,105%,106%,32%,106%,32%,35%,33%,106%,35%,105%,106%,35%,33%,34% 2720 POKE 62201%,32%,32%,104%,35%,105%,106%,40%,58%,32%,35%,34%,106%,35%,105%,106%,43% 2730 POKE 62217%,49%,34%,32%,34%,104%,35%,41%,96%,35%,105%,32%,35%,33%,34%,107%,35% 2740 POKE 62233%,32%,106%,32%,32%,34%,32%,106%,32%,106%,106%,32%,106%,32%,35%,33%,106% 2750 POKE 62249%,32%,106%,32%,101%,37%,32%,34%,32%,106%,32%,106%,106%,104%,106%,32%,33% 2760 POKE 62265%,33%,42%,48%,58%,96%,38%,100%,34%,32%,34%,42%,48%,58%,32%,106%,32% 2770 POKE 62281%,32%,34%,32%,34%,35%,59%,96%,38%,32%,34%,35%,35%,32%,113%,49%,106% 2780 POKE 62297%,44%,110%,34%,32%,34%,32%,113%,49%,106%,32%,106%,32%,35%,33%,32%,114% 2790 POKE 62313%,48%,106%,44%,110%,34%,32%,34%,96%,33%,97%,106%,32%,106%,32%,35%,33% 2800 POKE 62329%,32%,32%,32%,32%,32%,32%,34%,35%,35%,32%,120%,49%,106%,44%,46%,32% 2810 POKE 62345%,35%,33%,32%,112%,48%,96%,44%,110%,32%,35%,35%,106%,112%,48%,106%,32% 2820 POKE 62361%,106%,34%,35%,33%,32%,112%,112%,106%,32%,32%,32%,35%,35%,32%,112%,122% 2830 POKE 62377%,106%,32%,106%,32%,35%,35%,32%,112%,48%,106%,44%,46%,32%,35%,33%,32% 2840 POKE 62393%,104%,33%,32%,107%,33%,32%,34%,32%,32%,112%,112%,42%,112%,122%,32%,44% 2850 POKE 62409%,38%,106%,112%,48%,106%,32%,106%,34%,32%,34%,32%,114%,32%,32%,106%,32% 2860 POKE 62425%,32%,35%,33%,32%,114%,32%,32%,106%,32%,32%,38%,32%,32%,53%,96%,32% 2870 POKE 62441%,61%,49%,32%,33%,34%,32%,107%,32%,32%,106%,32%,32%,35%,33%,96%,48% 2880 POKE 62457%,48%,106%,106%,106%,34%,34%,34%,96%,112%,48%,106%,32%,106%,34%,32%,34% 2890 POKE 62473%,32%,112%,48%,106%,32%,106%,32%,35%,33%,96%,112%,48%,106%,112%,58%,42% 2900 POKE 62489%,32%,32%,32%,112%,112%,42%,112%,122%,32%,32%,42%,32%,48%,112%,32%,55% 2910 POKE 62505%,32%,32%,33%,32%,32%,112%,112%,34%,44%,100%,34%,35%,33%,32%,120%,48% 2920 POKE 62521%,32%,106%,32%,32%,32%,33%,96%,32%,96%,106%,32%,106%,32%,35%,35%,96% 2930 POKE 62537%,32%,96%,34%,52%,54%,32%,34%,32%,96%,32%,96%,106%,96%,106%,32%,33% 2940 POKE 62553%,33%,96%,32%,96%,32%,57%,49%,34%,32%,34%,96%,32%,96%,42%,112%,122% 2950 POKE 62569%,32%,44%,38%,96%,112%,112%,32%,56%,33%,34%,35%,35%,32%,113%,49%,96% 2960 POKE 62585%,44%,110%,32%,35%,35%,32%,36%,36%,104%,35%,105%,32%,35%,33%,32%,114% 2970 POKE 62601%,48%,96%,44%,110%,32%,35%,35%,32%,36%,36%,106%,32%,106%,32%,35%,35% 2980 POKE 62617%,106%,127%,127%,106%,127%,127%,34%,35%,35% 3000 REM INIT 3010 REM T%=TANGENT SOM STARTAR F\RSTORING 3020 T%=0% : REM CTRL-@ 3030 IF T%=8% T$='BAK]TPIL' 3040 IF T%=9% T$='FRAM]TPIL' 3050 IF T%=13% T$='RETURN' 3060 IF T%=31% T$='CTRL-SHIFT-O' 3070 IF T%=32% T$='MELLANSLAG' 3080 IF T%=127% T$='CTRL-<' 3090 IF T$='' AND T%<32% T$='CTRL-'+CHR$(T%+64%) 3100 IF T$='' T$=CHR$(T%) 3110 ; '************** F\RSTORA ***************' 3120 ; 3130 ; 'F|rstora text p} sk{rmen ';T$ 3140 ; 'Flytta f|nster upp}t V[NSTERPIL' 3150 ; 'Flytta f|nster ner}t H\GERPIL' 3160 ; 'Flytta f|nster }t h|ger <' 3170 ; 'Flytta f|nster }t v{nster @' 3180 ; 'G|ra st|rre f|nster +' 3190 ; 'G|ra mindre f|nster -' 3200 ; 'Avsluta f|rstoring MELLANSLAG' 3210 ; 'Avsluta f|r gott CTRL-C' 3220 ; T$;TAB(23%);'2 st. 'T$ 3230 ; 3240 Z%=CALL(61184%,T%) 3250 END