10 REM ...LIST STILMARG
20 REM ...(C) Egils programmeri
30 REM ---Endast f|r st}ende A4
40 REM ...P(i,X) d{r X=1 init X=2 akt X=3 max position
50 REM ...R och C samt K=markeringskolumn P9 rubriker fr}n R0 till R9
60 I%=0% : A$=''
70 I9=80 : DIM B$(I9)=127 : DIM B$=128 : REM ...127 f|r lagringsbar radl{ngd, plats f|r 80 rader.
80 P9=8 : R0=3
90 DEFFNR(I)=R0+2*I
100 DEFFNC(K)=4+7*K
110 FOR I=1 TO P9 : READ C$(I),P(I,1) : P(I,2)=P(I,1) : P(I,3)=LEN(C$(I)) : NEXT I
120 DATA '$#&',1,NEQP,1,ABTT,1,LLLL,2,LLLL,2,ON,1,YX,1,'"!',1
130 REM ...P} C Itoh 8510 {r ESC N 10 t/", ESC E ger 12 t/" etc. Siffran ger initialinst{llningen som {r l{mplig.
140 P0$=CHR$(27) : P1$='000005010'
150 B=25.4 : B(1)=10/B : B(2)=12/B : B(3)=17/B : B(4)=13.5/B
160 ; CHR$(12); : FOR I=1 TO P9 : READ P$(I) : ; CUR(FNR(I)-1,0)P$(I) : NEXT I
170 T0$=CUR(0,0)+'Skrivstil och pappersinst{llning - }tta val med och pilarna. '+STRING$(40,127)
180 DATA 'Typ text grafik grek'
190 DATA 'T{thet 10 12 17 pps'
200 DATA 'Radavst}nd 1/6 1/8 1.5 rad val'
210 DATA 'V{nst marg 0 mm 20 40 val'
220 DATA 'H|ger marg 0 mm 20 40 val'
230 DATA 'Bred nej ja'
240 DATA 'Understrck nej ja'
250 DATA 'Fet stil nej ja'
260 S0$=CUR(9,0)+SPACE$(34) : S1$=CUR(0,0)+SPACE$(80) : S3$=S1$+CUR(0,0) : S4$=CUR(11,0)+SPACE$(34)
270 T1$=CUR(20,0)+STRING$(40,127)+SPACE$(17)+'N{r du {r klar, tryck -'+SPACE$(40)
280 T3$=CUR(9,0)+'Tal fr}n 08 (t{t) till 99 (glest) '+CUR(9,34)
290 T4$=CUR(22,0)+']=]ter T=Testutskrift N=Normalinst{lln'+CUR(23,0)+'S=Sluta M= Skrivmaskin Centrera(nej)'
300 T5$=CUR(21,0)+' Nu {r skrivaren inst{lld '+T4$
310 T6$=CUR(20,0)+STRING$(40,127)+SPACE$(119)
320 T7$=CUR(11,0)+'Tal fr}n 01 till 50 '+CUR(10,34)+' '+CUR(10,34)
330 T8$=CUR(13,0)+'Tal fr}n 1 till 50 '+CUR(13,34)
340 T9$=CUR(22,0)+SPACE$(40)+CUR(23,0)+SPACE$(39)
350 F$=' ' : T$=' """"" '
360 REM ...r|relse
370 FOR I=P9 TO 1 STEP -1 : ; CUR(FNR(I),FNC(P(I,2)))T$ : NEXT I
380 I=1 : K=P(1,2)
390 ; T0$T1$T9$;
400 ; CUR(FNR(I),FNC(K)+3); : GET A$ : A=ASC(A$)
410 IF A=8 THEN IF K=1 GOTO 400 ELSE ; CUR(FNR(I),FNC(K-1))T$;F$ : K=K-1 : GOTO 470 : REM <-
420 IF A=9 THEN IF K=P(I,3) GOTO 400 ELSE ; CUR(FNR(I),FNC(K))F$;T$ : K=K+1 : GOTO 470 : REM ->
430 IF A=13 THEN R5=-1 : I=I+1 : IF I>P9 THEN I=1
440 IF R5 THEN K=P(I,2) : ; CUR(FNR(I),FNC(K))T$; : R5=0 : GOTO 400
450 IF A$='-' 480
460 GOTO 400
470 P(I,2)=K : GOTO 400
480 REM ...Parameter s{ttas
490 L=1 : OPEN 'PR:' ASFILE L : P$=''
500 FOR I=1 TO P9 : C(I)=ASC(MID$(C$(I),P(I,2),1)) : NEXT I
510 FOR I=1 TO 3 : P$=P$+P0$+CHR$(C(I)) : NEXT I
520 IF P(3,2)=3 P$=P$+'36'
530 IF P(3,2)=4 THEN ; T3$; : INPUT I$ : IF LEN(I$)=2 THEN P$=P$+LEFT$(I$,2) : ; S0$; ELSE 530
540 IF P(6,2)=1 THEN P$=P$+CHR$(15) ELSE P$=P$+CHR$(14)
550 P$=P$+P0$+CHR$(C(7))+P0$+CHR$(C(8))
560 J=1 : B0%=20*(P(4,2)-1) : IF P(4,2)=4 GOSUB 640 : B0%=B
570 J=2 : B9%=20*(P(5,2)-1) : IF P(5,2)=4 GOSUB 640 : B9%=B
580 B=B(P(2,2)) : B0%=B0%*B/P(6,2) : B9%=B9%*B/P(6,2)
590 B5%=190*B/P(6,2)-B0%-B9% : IF P(2,2)=4 THEN B0%=B0%*.8
595 IF B5%=80% THEN B5%=79%
600 ; CUR(10,39)' Det blir'B0%' tecken v{nst marg 'CUR(12,39)' --- och radl{ngd'B5%' tecken'
610 A$=RIGHT$(NUM$(B0%),2) : IF LEN(A$)<2 A$='0'+A$
620 P$=P$+P0$+'L0'+A$
630 GOTO 660
640 ; CUR(2*J+9,0)'Tal fr}n 1 till 99 'CUR(2*J+8,34)' 'CUR(2*J+8,34); : INPUTLINE I$
650 B=VAL(LEFT$(I$,LEN(I$)-2)) : IF B>99 OR B<0 GOTO 640 ELSE RETURN
660 ; T5$; : IF C% THEN ; CUR(23,33)' ja'CUR(22,0); ELSE ; CUR(22,0);
670 K=P(1,2) : I=1 : ; #L,P$;
680 GET A$ : ON INSTR(1,'T]NCMmSs',A$)+1 GOTO 680,690,390,730,710,750,750,1280,1280
690 J=0 : FOR I=32 TO 127 : ; #L,CHR$(I); : J=J+1 : IF J=B5% THEN ; #L : J=0
700 NEXT I : ; #L : ; #L : GOTO 660
710 IF C% THEN C%=0 ELSE C%=-1
720 GOTO 660
730 C%=0% : RESTORE 120 : GOTO 110 : REM ...}ter
740 RESTORE 180 : GOTO 160 : REM ...}ter fr}n skrivning
750 REM ...SKRIVMASKIN
760 ; CUR(21,0)SPACE$(118); : IF R9%>0% B$(R9%)=B$(R9%)+P$ : GOTO 880
770 ; T9$CUR(21,0)'Tecken f|r tecken = T eller Rad f|r rad = (R)';
780 GET A$ : IF A$='T' ; #L,P0$CHR$(91);
790 R9%=0%
800 REM ...Blankt ark med marg. B|rjar nu.
810 ; CHR$(12)S3$'Skall du h{mta gammalt (N)'; : GET A$ : IF A$<>'J' B$(0)=P$ : GOTO 880
820 ; S3$'Vad heter filen '; : INPUT S$
830 ONERRORGOTO 820 : OPEN S$ ASFILE 2
840 ONERRORGOTO 870 : I=1
850 INPUTLINE #2,B$ : B$(I)=LEFT$(B$,LEN(B$)-2%)
860 ; B$ : IF I=I9 CLOSE 2 : B9=I ELSE I=I+1 : GOTO 850
870 IF ERRCODE=34 THEN CLOSE 2 : B9=I-1 : B$(B9)=B$(B9)+P$
880 L9%=B5% : L8%=L9%-7% : L7%=L9%
890 IF L9%<80 ; CHR$(12)CUR(0,0)STRING$(L9%,46%)'#'STRING$(79%-L9%,46%);
900 IF L9%>79 ; CHR$(12)CUR(0,0)STRING$(L9%-80%,46%)'#'STRING$(159%-L9%,46%);
910 ; CUR(0,0)'Avsluta med CTRL-{' : IF PEEK(885)=124 ;
920 B$='' : IF B9>0 R9%=B9 : B9=0
930 L8%=L9%-7% : L7%=L9%
940 GET A$ : IF ASC(A$)=27% GOTO 1110
950 IF ASC(A$)=8 AND LEN(B$)>0% THEN B$=LEFT$(B$,LEN(B$)-1%) : ; A$;' ';A$; : GOTO 1030
960 IF ASC(A$)=9% GOTO 1030
970 IF ASC(A$)=13% THEN IF C% 1040 ELSE 1080
980 IF LEN(B$)=L7% THEN OUT 6,137 : GOTO 940
990 IF LEN(B$)>L8% OUT 6%,131%
1000 ; A$;
1010 IF LEN(B$)=80% THEN B1$=B$ : B$='' : B1%=1 : L8%=L8%-80% : L7%=L7%-80%
1020 B$=B$+A$
1030 GOTO 940
1040 REM IF B5%>79 ; 'Centrerar inte radl{ngder |ver 79 tecken !'; : GOTO 1010
1050 A$='' : FOR I%=1% TO (B5%-LEN(B$)-LEN(B1$))/2 : A$=' '+A$ : NEXT I%
1060 IF CHR$(C(7))='X' A$=P0$+'Y'+A$+P0$+'X'
1070 B$=A$+B$ : GOTO 1090
1080 IF B1%=1% THEN ; #L,B1$; : B1%=0%
1090 ; #L,B$ : ; : R9%=R9%+1% : B$(R9%)=B1$+B$ : B$='' : B1$=''
1100 IF PEEK(65011)>21 GOTO 880 ELSE 930
1110 REM ...Slutsignalen ctrl-{
1120 ; CHR$(12)CUR(5,0)'F=forts{tta' : ; 'S=spara' : ; 'R=repetera utskriften' : ; 'A=avsluta'
1130 GET A$ : ON INSTR(1,'FfSsRrAa',A$)+1 GOTO 1130,740,740,1140,1140,1250,1250,1280,1280
1140 REM ...lagras
1150 ; : C=0 : ; 'Med eller Utan koden f|r inst{llning (M)' : GET A$ : IF A$='U' OR A$='u' C=-1
1160 S$='SPARA.TXT' : ; : ; 'Vad skall filen heta'; : INPUT A$ : IF LEN(A$)>0 S$=A$
1170 ; : ; 'Lagras som 'S$ : ONERRORGOTO 1230 : PREPARE S$ ASFILE 2
1180 FOR I%=0% TO R9% : I=INSTR(1%,B$(I%),P0$) : IF C AND I>0% 1190 ELSE 1220
1190 B$=B$(I%) : IF LEFT$(B$,2%)=P0$+'Y' I=INSTR(1,B$,P0$+'X') : B$(I%)=RIGHT$(B$,I+2%)
1200 I=INSTR(1%,B$(I%),P0$) : IF I=0 GOTO 1220
1210 B$(I%)=LEFT$(B$(I%),I+1%)
1220 ; #2,B$(I%) : NEXT I%
1230 CLOSE 2 : GOTO 1110
1240 REM ...avslutning
1250 REM ...repetera utskrift
1260 ; CHR$(12); : FOR I%=O% TO R9% : ; #L,B$(I%) : NEXT I%
1270 GOTO 1110
1280 ; T6$;CUR(19,0); : STOP