1 REM ++++++++++++++++++++++++++++++++ 2 REM ! Program ... SKRM.SUB 3 REM ! Utg}va 2.1 4 REM ! Ursprung "SKRM" av ok{nd 5 REM ! Omarbetat av Tom Sj|berg 2401 6 REM ! Minne 16 Kbytes 40/80TKN 7 REM ! 8 REM ! Screening Tom Sj|berg 2401 9 REM ++++++++++++++++++++++++++++++++ 10 REM Programmet utf|r skroll upp/ner shift v{nster/h|ger inom angi- 11 REM vet omr}de. Detta p} den bild sk{rmen inneh}ller d} rutinen 12 REM k|rs.Rad 100 m}ste ligga f|rst! 15 REM 100 DIM A%(0%),X$(23%)=0%,F$=0% : GOSUB 9002 110 REM  Variabler  120 REM  R1%,R2% - Radintervall  130 REM  K1%,K2% - Kolumnintervall  140 REM  F$ - Utfyllnadstkn  150 REM  S% - Scroll/Shift 0/1  160 REM  - Rullande do 2/3  170 REM  180 REM 190 REM * INPUT * 200 R2%=20% : R1%=2% : K1%=\%-10% : K2%=10% : S%=0% : F$=' ' 210 GOSUB 9054 : REM * Kontroll* 220 S%=S%+1% : ON S% GOSUB 9074,9038,9068,9012 : GOTO 220 230 STOP : REM ENDRETURN 9000 REM >> Manipulation av sk{rmen <<< 9002 IF PEEK(885%)=88% \%=80% ELSE \%=40% 9004 DEFFNP2%(X%)=PEEK(X%)+SWAP%(PEEK(X%+1%)) 9006 A%=FNP2%(65065%)+2% : POKE A%+2%,116%,3%,23%,0% : A%=FNP2%(FNP2%(A%)+4%) 9008 FOR X%=0% TO 23% : POKE A%+X%*6%,\%,0%,A%(X%),SWAP%(A%(X%)),\%,0% : NEXT X% : RETURN 9010 REM >>>>>>>>>> Scroll <<<<<<<<<<<<< 9012 IF K2%Z% X0$=LEFT$(X0$,Z%) 9018 X0$=X0$+SPACE$(Z%-LEN(X0$)) 9020 Y%=(R1%>R2%)*2%+1% 9022 FOR R%=R1% TO R2%-Y% STEP Y% : GOSUB 9026 : NEXT R% : RETURN 9024 REM 9026 FOR X%=R1% TO R2%-Y% STEP Y% 9028 X$(X%)=LEFT$(X$(X%),K1%)+MID$(X$(X%+Y%),K1%+1%,Z%)+RIGHT$(X$(X%),K2%+2%) 9030 NEXT X% 9032 X$(R2%)=LEFT$(X$(X%),K1%)+X0$+RIGHT$(X$(X%),K2%+2%) 9034 RETURN 9036 REM >>>>>>>>>>> Shift <<<<<<<<<<<<< 9038 Y%=-(K2%>K1%) : Z%=1%-Y% 9040 IF K2%R2%)*2%+1% 9048 X$(X%)=LEFT$(X$(X%),K1%)+STRING$(Y%,F%)+MID$(X$(X%),K1%+Z%+1%,K2%-K1%)+STRING$(Z%,F%)+RIGHT$(X$(X%),K2%+2%) 9050 NEXT X% : RETURN 9052 REM  Kontroll R1%,R2%,K1%,K2%,X0$ 9054 IF R1%<0% R1%=0% 9056 IF R2%>23% R2%=23% 9058 IF K1%<0% K1%=0% 9060 IF K2%>\%-1% K2%=\%-1% 9062 F%=ASC(F$) : X0$=STRING$(\%,F%) 9064 RETURN 9066 REM >>>>>>>>> RULL-SCROLL <<<<<<<< 9068 X0$=X$(23%) : FOR I%=23% TO 1% STEP -1% : X$(I%)=X$(I%-1%) : NEXT I% : X$(0%)=X0$ : GOTO 9068 9070 REM ------------------------------- 9072 REM >>>>>>>> RULL-SHIFT <<<<<<<<<< 9074 Y%=-(K2%>K1%) : Z%=1%-Y% 9076 IF K2%R2%)*2%+1% 9084 X0$=LEFT$(X$(X%),K1%)+MID$(X$(X%),K2%+1%,Y%)+MID$(X$(X%),K1%+Z%+1%,K2%-K1%) 9086 X$(X%)=X0$+MID$(X$(X%),K1%+1%,Z%)+RIGHT$(X$(X%),K2%+2%) 9088 NEXT X% : RETURN