1 POKE 65408%,205%,147%,2%,235%,110%,38%,0%,201% 2 DIM B$(120) : H%=39% : DIM ]$(15) 3 DATA "Move crs. _W _Z _A _S _Q _X _T","_D(el) _^(Insert)","_E(DelLn) _R(InsLn)" 4 DATA "_G(raphics) _J(Non Graphics","_\(Search) _F(Wordrap)","_B(Change letter) _Y(Centre)" 5 DATA "_K Kalkulator","@ This HELP-window","_P To MENY","Have a good time!" 6 Q2$="Avstav" : S1=1 7 R=1 : K=0 8 S4=1 9 GOTO 600 10 ; CHR$(12) 12 ; CUR(0,K)"" 25 IF S1<1 THEN S1=1 26 IF S1>5 THEN S1=5 27 U4=1 28 K4=((S1-1)*21) : K4=K4-1 : IF S1>1 THEN K4=K4+2 29 IF K4<0 THEN K4=1 30 FOR J=K4 TO (K4+20) : ; CUR(U4,-1)B$(J) : U4=U4+1 : NEXT J 34 Q9=0 : R8=5 35 ; CUR(0,0)"0....5...10...15...20...25...30...35..39"; 36 ; CUR(0,K)"" 50 ; CUR(R,K); : GET R$ 51 IF ASC(R$)<32 THEN 60 52 ; CUR(R,K)R$ : K=K+1 53 IF ((S1-1)*21)+R>R1 THEN R1=R+((S1-1)*21) 55 L=R1 56 IF K>H% AND R<21 THEN K=0 : R=R+1 : GOTO 7600 57 IF R=21 AND K>H% THEN 9000 58 Q9=Q9+1 59 GOTO 100 60 IF R$=CHR$(23) THEN R=R-1 : IF R<1 THEN 9000 70 IF R$=CHR$(26) THEN R=R+1 : IF R>21 THEN 9000 80 IF R$=CHR$(1) XOR R$=CHR$(8) THEN K=K-S4 : IF K<0 THEN 9500 82 IF ASC(R$)=11 THEN GOSUB 12000 83 IF ASC(R$)=0 THEN 4500 84 IF ASC(R$)=25 THEN 5700 85 IF S4<.1 THEN S4=1 86 IF ASC(R$)=20 THEN E9=E9 : ONERRORGOTO 87 : ; CUR(22,1)"Ny stegl{ngd :"; : INPUT S4 87 IF ASC(R$)=24 THEN R=21 : K=0 88 IF ASC(R$)=28 THEN 5500 89 IF ASC(R$)=6 THEN IF Q2$="Avstav" THEN Q2$="NO" ELSE Q2$="Avstav" 90 IF R$=CHR$(19) XOR R$=CHR$(9) THEN K=K+S4 : IF K>H% THEN T=T : R=R+1 : IF R>21 THEN 9000 ELSE K=0 91 IF R$=CHR$(13) THEN R=R+1 : IF R>21 THEN 9000 ELSE K=0 92 IF ASC(R$)=16 THEN 500 93 IF ASC(R$)=4 THEN 1000 94 IF ASC(R$)=30 THEN 2000 95 IF ASC(R$)=5 THEN 7000 96 IF ASC(R$)=18 THEN 6000 97 IF ASC(R$)=7 THEN 6500 98 IF ASC(R$)=10 THEN 6600 99 IF ASC(R$)=2 THEN 7100 100 IF ASC(R$)=17 THEN R=1 : K=0 : OUT 6,0,6,121 101 ; CUR(22,1)"Sida:";S1;" Rader:";R1;"(";R;K;")"; 102 IF Q2$="Avstav" THEN E5$="Word" ELSE E5$=Q2$ 103 IF R+S1*21>198 THEN R=R-1 104 ; E5$+" " : OUT 6,0,6,121 : IF R>R8 THEN R8=R 109 GOTO 35 500 IF S1>1 AND NOT LEN(A6$)>2 THEN 101 ELSE IF Q9<1 THEN 580 ELSE IF A7>0 THEN A7=A7 ELSE A7=1 501 A$="" : L=0 : FOR I=A7 TO R8 505 ; CUR(22,1)"---------- Working ------" 509 FOR I1=40 TO 1 STEP -1 : ; CUR(I,I1-1); : IF CALL(65408%)>32 THEN 510 ELSE NEXT I1 510 FOR J=0 TO I1+9 515 ; CUR(I,J); 520 A$=A$+CHR$(CALL(65408%)) 530 NEXT J : B$(I+((S1-1)*21))=LEFT$(A$,I1) : A$="" : NEXT I 540 W6=0 550 FOR I=1 TO R1 560 W6=W6+LEN(B$(I)) 570 NEXT I 580 IF A6$="INS" THEN A6$="-" : GOTO 6006 583 IF A6$="S\K" THEN A6$="" : GOTO 5580 600 ; CHR$(12)"MENY" 620 ; "S - Spara " 630 ; "F - ny Fil " 635 ; "E - Editor " 636 ; "H - H|germ." 640 ; "A - Avsluta" 645 ; : ; : ; "Textstorlek :";INT(W6);" bytes" 650 ; : ; : GET R$ 651 ; STRING$(40,ASC(R$)); 655 ; "R{tt val (J/n) ?"; : GET W$ : IF W$="N" XOR W$="n" THEN 600 670 IF R$="S" XOR R$="s" THEN 4000 680 IF R$="F" XOR R$="f" THEN 5000 685 IF R$="E" XOR R$="e" THEN 10 690 IF R$="A" XOR R$="a" THEN END 695 IF R$="H" XOR R$="h" THEN 7900 696 IF R$="K" THEN GOSUB 12000 700 GOTO 600 1000 R2=R1 : R1=R : K1=K : REM * DEL _D * 1001 FOR J%=K TO 38% 1002 ; CUR(R,J%+1%); 1010 A$=CHR$(CALL(65408%)) 1015 ; CUR(R,J%)A$ 1020 NEXT J% 1026 ; CUR(R,39)" "; 1028 IF R>38 THEN R8=R 1029 R1=R2 : Q9=2 1030 GOTO 100 2000 REM ** Insert _^ ** 2005 A$="" 2010 FOR J%=K TO 38% 2011 ; CUR(R,J%); 2012 A$=A$+CHR$(CALL(65408%)) 2013 NEXT J% 2020 ; CUR(R,K+1)A$ 2030 ; CUR(R,K)" " 2035 Q9=4 : IF R>R8 THEN R8=R 2040 GOTO 100 2045 ; CUR(R,K)" " 2058 Q9=4 2059 IF R>R8 THEN R8=R 2060 GOTO 100 4000 REM *** Spara *** 4010 ; : ; "(spara) fil ("T$")"; : INPUT I$ 4011 IF LEN(I$)<2 THEN I$=T$ 4012 T$=I$ 4015 Q1=INSTR(1,T$,".") : IF Q1=0 THEN T$=T$+".TXT" : ; T$ 4020 ONERRORGOTO 11000 : PREPARE T$ ASFILE 3 4030 FOR J=1 TO R1 4040 ; #3,B$(J) 4045 REM IF J/21=INT(J/21) THEN ; #3,"0" 4050 NEXT J 4060 CLOSE 3 : GOTO 600 4500 REM *** Help *** 4501 FOR I=1 TO 6 : I$(I)="" : NEXT I 4503 [$="" 4510 FOR I%=10% TO 15% 4511 FOR J%=5% TO 38% 4512 ; CUR(I%,J%); : I$(I%-9)=I$(I%-9)+CHR$(CALL(65408%)) 4513 NEXT J% : NEXT I% 4520 ; CUR(10,5)"+--------------------------------+" 4521 FOR I%=11% TO 14% : ; CUR(I%,5%)"!"+SPACE$(33) : ; CUR(I%,38%)"!" 4522 NEXT I% 4530 ; CUR(15,5)"+--------------------------------+" 4531 ; CUR(12,20)"HELP _@" 4533 RESTORE 4535 IF INP(56)>127 THEN 4536 ELSE 4535 4536 R$=CHR$(INP(56)-128) 4537 IF ASC(R$)=0 THEN 4570 4540 ONERRORGOTO 4533 4541 READ A$ 4548 A$=A$+STRING$(31-LEN(A$),32) 4549 IF [$="" THEN [$=A$ 4550 ; CUR(13,8)A$ 4551 [$=A$ 4552 ; CUR(13,38%)"!" 4559 FOR ]9=1 TO 100 : NEXT ]9 4560 GOTO 4535 4570 FOR I%=10% TO 15% 4571 ; CUR(I%,5%)I$(I%-9) 4572 NEXT I% 4575 GET R$ 4580 GOTO 101 5000 REM *** H{mta fil *** 5001 ; : ; "Editorn kommer att t|mmas. Absolut s{ker (J/n) ????"; 5002 GET I$ : IF I$="N" XOR I$="n" THEN 600 5003 FOR I=1 TO R1 : B$(I)="" : NEXT I : R1=0 5004 W6=0 5005 J=0 5009 R9$=T$ 5010 ; : ; "(h{mta) fil "; : INPUT T$ 5015 IF LEN(T$)<2 THEN T$=R9$ : GOTO 600 5020 Q1=INSTR(1,T$,".") : IF Q1=0 THEN T$=T$+".TXT" : ; T$ 5025 ONERRORGOTO 5010 : OPEN T$ ASFILE 3 5030 J=J+1 5040 ONERRORGOTO 5070 5050 INPUTLINE #3,B$(J) 5051 B$(J)=LEFT$(B$(J),LEN(B$(J))-2) 5052 IF LEN(B$(J))>41 THEN B$(J+1)=RIGHT$(B$(J),41) : B$(J)=LEFT$(B$(J),40) : W6=W6+40 : J=J+1 : R1=R1+1 5054 W6=W6+LEN(B$(J)) 5055 R1=R1+1 5056 ; CUR(20,1)"Antal inl{sta tecken:";W6 5057 IF J>110 THEN ; " Maximumgr{nsen {r f|rbig}ngen " : GET P$ : GOTO 600 5058 ; CUR(21,1)B$(J) 5060 GOTO 5030 5070 GOTO 600 5500 REM *** S|k efter TXT *** 5505 ; CUR(22,0)SPACE$(39) 5510 ; CUR(22,1)"Ange s|kord:"; : INPUTLINE A$ : A$=LEFT$(A$,LEN(A$)-2) 5511 ; CUR(22,1)SPACE$(38) 5515 IF LEN(A$)<2 THEN 101 5519 REM Q9=7 5520 FOR I=1 TO R1 5521 IF LEN(B$(I))21 THEN R=I-((Q2-1)*21) ELSE R=I 5561 ; CUR(22,0); : GET R$ 5570 ; CHR$(7); 5571 A6$="S\K" 5574 R8=21 5575 GOTO 500 5576 K=0 5580 IF R<1 THEN R=21 : S9=S9-1 5599 ; CUR(22,0)SPACE$(39) : K=I7-1 : S1=S9 : GOTO 10 5700 REM *** Centraliseringsunktion*** 5705 A$="" 5710 FOR I%=0% TO 39% 5715 ; CUR(R,I%); 5716 IF LEN(A$)<1 AND CALL(65408%)=32 THEN 5730 5720 A$=A$+CHR$(CALL(65408%)) 5730 NEXT I% 5731 FOR J%=LEN(A$) TO 1 STEP -1% 5732 IF MID$(A$,J%,1)=" " THEN A$=LEFT$(A$,J%-1) ELSE 5740 5733 NEXT J% 5740 ; CUR(R,0)SPACE$(40) 5750 REM -- NU ! 5751 M4=39-LEN(A$) 5752 M3=INT(M4/2) 5753 ; CUR(R,M3)A$ 5758 Q9=7 5759 IF R>R8 THEN R8=R : Q9=7 5760 GOTO 101 6000 REM Insrad ? 6004 A7=20 6005 A6$="INS" : GOTO 500 6006 A7=0 6007 A7=0 6008 FOR I%=21% TO R+1% STEP -1% 6009 A$="" 6010 FOR J%=0% TO 39% 6020 ; CUR(I%-1%,J%); 6030 A$=CHR$(CALL(65408%)) 6040 ; CUR(I%,J%)A$ 6050 NEXT J% 6060 NEXT I% 6070 ; CUR(R,0)SPACE$(40) 6071 FOR J%=R1+1 TO ((I%+1%)+((S1-1)*21)) STEP -1 6072 IF J%<1 THEN 6073 ELSE B$(J%)=B$(J%-1) 6073 NEXT J% 6079 R1=R1+1 6080 R8=21 : Q9=7 : GOTO 100 6099 IF A6$="AVSTAV" THEN 7611 6500 REM *** GRAFIK *** 6505 Q9=4 : IF R>R8 THEN R8=R 6510 ; CUR(R,K)CHR$(151); : K=K+1 : GOTO 100 6600 REM *** No grafik *** 6605 Q9=4 : IF R>R8 THEN R8=R 6610 ; CUR(R,K)CHR$(135); : K=K+1 : GOTO 100 7000 REM *** Delrad *** 7010 FOR I%=R+1% TO 21% 7015 A$="" 7020 FOR J%=0% TO 40% 7030 ; CUR(I%,J%); 7040 A$=CHR$(CALL(65408%)) 7045 ; CUR(I%-1%,J%)A$ 7050 NEXT J% 7070 NEXT I% 7075 R5=R1 7078 ; CUR(21,0)SPACE$(40) 7080 ; CUR(21,0)B$((I%+((S1-1)*21))) 7081 FOR J%=(I%+((S1-1)*21)) TO R1 7082 B$(J%)=B$(J%+1) 7083 NEXT J% 7084 B$(R1)="" 7089 R1=R1-1 : IF ((R+((S1-1)*21)))>R1 THEN R1=R1+1 7090 R8=21 : Q9=7 : GOTO 100 7100 REM *** V{xla till stora tecken *** 7110 FOR I=0 TO 39 7120 ; CUR(R,I); 7130 A$=CHR$(CALL(65408%)) 7135 IF ASC(A$)=95 THEN 7155 7136 IF ASC(A$)<64 THEN 7170 7140 IF ASC(A$)<95 THEN 7160 7150 ; CUR(R,I)CHR$(ASC(A$)-32) 7155 NEXT I 7158 IF R>R8 THEN R8=R 7159 Q9=4 : GOTO 100 7160 ; CUR(R,I)CHR$(ASC(A$)+32) 7170 GOTO 7155 7600 REM *** Avstavning *** 7601 A$="" 7602 R=R-1 7603 IF Q2$="NO" THEN R=R+1 : GOTO 101 7605 P$="" 7611 REM 7620 FOR I%=H% TO 1% STEP -1% 7630 ; CUR(R,I%); 7635 IF CALL(65408%)<33 THEN 7680 7640 A$=A$+CHR$(CALL(65408%)) 7650 NEXT I% 7660 R=R+1 : GOTO 101 7680 FOR L%=LEN(A$) TO 1% STEP -1% : REM *** Spegelv{nda ordet *** 7681 P$=P$+MID$(A$,L%,1) 7682 NEXT L% : A$=P$ 7686 Q2=0 7688 IF LEN(A$)<2 AND ASC(A$)<38 AND ASC(A$)>32 THEN R=R+1 : K=0 : GOTO 100 7689 ; CUR(R+1,0)A$ 7690 ; CUR(R,I%)SPACE$(40-I%) : G$="" : REM IF LEN(A$)<2 THEN 7699 7691 FOR J%=0% TO I% : ; CUR(R,J%); : IF CALL(65408%)=32 THEN Q2=Q2+1 7692 NEXT J% 7693 Q2%=INT((LEN(A$)+2)/Q2) 7694 FOR K%=1% TO H%-1% 7695 ; CUR(R,K%); : IF CALL(65408%)<33 THEN FOR J%=1% TO Q2% ELSE 7699 7696 FOR J1%=H%-1% TO K%+J% STEP -1% : ; CUR(R,J1%-1%); : Q$=CHR$(CALL(65408%)) : ; CUR(R,J1%)Q$ 7697 NEXT J1% : NEXT J% : K%=K%+Q2%+1% 7699 NEXT K% 7700 REM 7701 P9%=6% 7702 REM 7705 ; CUR(R,39%); : IF CALL(65408%)>32 THEN 7790 7706 REM 7710 L%=0% 7711 FOR J%=39% TO 0% STEP -1% 7712 L%=L%+1% : ; CUR(R,J%); : IF CALL(65408%)=32 AND L%>P9% THEN 7720 7713 T9%=T9%+1% 7714 IF CALL(65408%)=32 THEN L%=0% 7715 IF LEN(A$)>15 OR P9%<1 THEN 7790 7719 NEXT J% : P9%=P9%-1% : GOTO 7702 7720 FOR L1%=39% TO J%+1% STEP -1% 7721 ; CUR(R,L1%-1); : Q$=CHR$(CALL(65408%)) : ; CUR(R,L1%)Q$ 7722 NEXT L1% 7723 ; CUR(R,H%); : IF CALL(65408%)>32 THEN 7790 7729 J%=J%-2% : GOTO 7719 7730 REM 7790 K=LEN(A$) 7795 T9%=0% : L%=0% 7799 R=R+1 7800 GOTO 101 7900 REM *** [ndra H|germarginal *** 7920 ; : ; : ; 7921 IF W6>0 THEN ; "Vg. avsluta detta arbete f|rst !" : GET R$ : GOTO 600 7930 ONERRORGOTO 7931 : ; "Ny gt{ns f|r h|germarginal "; : INPUT H% : H%=H%-1% : IF H%<1% THEN 7900 : GOTO 600 7931 H%=39% : GOTO 600 8688 Q2=0 8700 ; "Drivrutin till TXT: ej funnen !"; : GET R$ : GOTO 600 8701 ; "SERIE ej inladdat ! "; : GET R$ : GOTO 600 9000 REM *** Ny sida *** 9001 IF R>20 THEN Q3=1 ELSE Q3=-1 9002 IF S1<2 AND R<2 THEN R=R+1 : GOTO 100 9007 ONERRORGOTO 0 9009 IF Q9<1 THEN 9080 9010 FOR J=1 TO R8 9015 A$="" 9016 ; CUR(22,1)"---------- Working ------" 9017 FOR I1=40 TO 1 STEP -1 9018 ; CUR(J,I1-1); : IF CALL(65408%)>32 THEN 9020 ELSE NEXT I1 9020 FOR I=0 TO I1+9 9030 ; CUR(J,I); 9040 A$=A$+CHR$(CALL(65408%)) 9050 NEXT I 9060 B$(J+((S1-1)*21))=LEFT$(A$,I1) 9070 NEXT J 9080 S1=S1+Q3 9085 IF R<2 THEN R=21 ELSE R=1 9086 IF K<0 THEN K=H% ELSE K=0 9087 GOTO 10 9100 GOTO 100 9500 REM *** ]t <- *** 9510 IF R<2 THEN 9000 9520 R=R-1 : K=H% : GOTO 100 9590 GOTO 100 9600 REM +---------------------+ 9700 REM ! PLOTORD9.BAC ! 9705 REM ! ver 2.0B ! 9800 REM ! (c) 1988, Au ! 9900 REM +---------------------+ 11000 ; " S{tt i disketten f|r 17 !!! " : GET R$ : GOTO 600 12000 REM 12001 REM *** CALCULATOR 12002 FOR ]=1 TO 15 : ]$(])="" : NEXT ] 12003 FOR I%=10% TO 20% 12004 FOR J%=19% TO 28% 12005 ; CUR(I%,J%); : ]$(I%-9%)=]$(I%-9%)+CHR$(CALL(65408%)) 12006 NEXT J% : NEXT I% 12007 ; CUR(10,19)"........." 12008 FOR I%=11% TO 20% : ; CUR(I%,19%)": :" : NEXT I% 12009 ; CUR(20,19)":.......:" 12010 ; CUR(11,20)"> <" 12011 ; CUR(14,20)" 789 *" 12012 ; CUR(15,20)" 456 -" 12013 ; CUR(16,20)" 123 +" 12014 ; CUR(17,20)" .0Q =" 12015 ; CUR(13,20)" /" 12016 A1=17 : B1=21 : L=0 : ; CUR(11,21)"0" 12017 ; CUR(17,25); : GET T$ 12018 IF T$="Q" THEN 12019 ELSE 12021 12019 REM *** SQR(O) *** 12020 GOTO 12047 12021 ; CUR(11,21); : IF CHR$(CALL(65408%))="E" AND T$<>"C" THEN 12017 12022 IF T$="C" THEN ; CUR(11,21)" " : A$="" : A1$="" : A$(1)="" : L=0 : ; CUR(11,21)"0" 12023 IF ASC(T$)=46 THEN 12033 12024 IF ASC(T$)>47 AND ASC(T$)<58 THEN 12033 12025 IF T$=CHR$(13) OR T$="=" THEN 12035 12026 IF ASC(T$)=11 THEN FOR I%=10% TO 20% : ; CUR(I%,19%)]$(I%-9%) : NEXT I% : RETURN 12027 IF T$="+" THEN 12080 12028 IF T$="*" THEN 12070 12029 IF T$="-" THEN 12064 12030 IF T$="/" THEN 12057 12031 IF T$="Q" THEN 12047 12032 GOTO 12017 12033 IF L=5 THEN L=0 ELSE ; CUR(11,L+21)T$ : L=L+1 12034 GOTO 12046 12035 A$="" : FOR J%=21% TO 25% 12036 ; CUR(11,J%); : IF CALL(65408%)=32% THEN 12039 12037 A$=A$+CHR$(CALL(65408%)) 12038 NEXT J% : IF A1$="" THEN 12017 12039 IF A1$="" THEN 12017 ELSE IF A$(1)="*" THEN W$=MUL$(A$,A1$,5) 12040 IF A$(1)="+" THEN W$=ADD$(A$,A1$,5) 12041 IF A$(1)="-" THEN W$=SUB$(A1$,A$,5) 12042 IF A$(1)="/" THEN IF A$="0" THEN 12086 ELSE W$=DIV$(A1$,A$,5) 12043 IF A$(1)="" THEN 12017 12044 IF LEN(W$)>5 THEN W$=LEFT$(W$,5) 12045 ; CUR(11,21)W$ : A$(1)="" : L=0 : GOTO 12017 12046 GOTO 12017 12047 A1$="" : FOR I%=21% TO 25% : ; CUR(11%,I%); : IF CALL(65408%)=32 THEN 12050 12048 A1$=A1$+CHR$(CALL(65408%)) 12049 NEXT I% 12050 ; CUR(11%,21%)SPACE$(5%) 12051 IF LEN(A1$)<1 THEN 12017 ELSE IF ASC(A1$)>57 THEN 12017 12052 A3%=VAL(A1$) : IF A3%<.0001 XOR A3%>30000 THEN ; CUR(11,21)"Error" : GOTO 12017 12053 A$=NUM$(SQR(A3%)) 12054 W$=MUL$(A$,"1",5) 12055 ; CUR(11,21)LEFT$(W$,5) 12056 GOTO 12017 12057 A1$="" : FOR I%=21% TO 25% : ; CUR(11%,I%); : IF CALL(65408%)=32 THEN 12060 12058 A1$=A1$+CHR$(CALL(65408%)) 12059 NEXT I% 12060 ; CUR(11%,21%)SPACE$(5%) : IF VAL(A1$)=0 THEN A1$="0" : GOTO 12052 12061 A$(1)="/" 12062 L=0 : GOTO 12017 12063 IF T$="/" THEN 12057 12064 A1$="" : FOR I%=21% TO 25% : ; CUR(11%,I%); : IF CALL(65408%)=32 THEN 12067 12065 A1$=A1$+CHR$(CALL(65408%)) 12066 NEXT I% 12067 ; CUR(11%,21%)SPACE$(5%) 12068 A$(1)="-" 12069 L=0 : GOTO 12017 12070 A1$="" : FOR I%=21% TO 25% : ; CUR(11%,I%); : IF CALL(65408%)=32 THEN 12073 12071 A1$=A1$+CHR$(CALL(65408%)) 12072 NEXT I% 12073 ; CUR(11%,21%)SPACE$(5%) 12074 A$(1)="*" 12075 L=0 : GOTO 12017 12076 IF A$(1)="-" THEN W$=SUB$(A1$,A$,5) 12077 IF A$(1)="/" THEN W$=DIV$(A1$,A$,5) 12078 IF A$(1)="" THEN 12017 12079 ; CUR(11,21)W$ : A$(1)="" : GOTO 12017 12080 A1$="" : FOR I%=21% TO 25% : ; CUR(11%,I%); : IF CALL(65408%)=32 THEN 12083 12081 A1$=A1$+CHR$(CALL(65408%)) 12082 NEXT I% 12083 ; CUR(11%,21%)SPACE$(5%) 12084 A$(1)="+" 12085 L=0 : GOTO 12017 12086 A1$="-29" : GOTO 12052