10 REM +++++++++++++++++++++++++++++++++ 11 REM ! Program ....LAYOUT.UTL 12 REM ! Utg}va 2.3 1981-08-28 13 REM ! av KALLE LINDSTR\M <837> 14 REM ! granskat av BO HJULSTR\M <557> 15 REM ! Copyright SE 4 16 REM ! Minne 16 Kbytes 17 REM ! Ins{nt av SE 4 18 REM +++++++++++++++++++++++++++++++++ 19 REM UTILITYPROGRAM : 20 REM "INSTRUKTIONER GES OM DU 21 REM TRYCKER 'CTRL-W'. [NDRINGAR F]R 22 REM G\RAS OM RESULTATET L[GGS P] 23 REM PROGRAMBANKEN." 24 REM 25 REM PROGRAM F\R DESIGN AV SK[RM- 26 REM UTSKRIFTER. RESULTATET KAN 27 REM LAGRAS P] FIL I FORM AV 28 REM "XX ;CUR(R,0);" MED START P] 29 REM VALFRITT RADNUMMER (XX). 30 REM +++++++++++++++++++++++++ 31 REM KALLE LINDSTR\M, 1981-08-28 32 REM COPYRIGHT KALLE LINDSTR\M 33 REM VERS. 2.3 1981-08-28 34 REM +T+H+E+++C+O+M+P+U+T+E+R+ 35 REM +++++P+H+A+N+T+O+M+E+++++ 36 DIM P$(23%)=0%,P1$(23%)=40% 37 V0%=PEEK(65065%) 38 IF V%=17% GOTO 149 39 V0%=V0%+SWAP%(PEEK(65066%))+4% 40 V0%=PEEK(V0%)+SWAP%(PEEK(V0%+1%)) 41 FOR I%=0% TO 2%*23% STEP 2% 42 POKE V0%+I%*3%,40%,0%,PEEK(884%+I%) 43 POKE V0%+I%*3%+3%,PEEK(885%+I%) 44 POKE V0%+I%*3%+4%,40%,0% 45 NEXT I% 46 X%=0% : Y%=0% 47 ; CHR$(12%); 48 REM 49 ; CUR(23%,0%)SPACE$(39%); 50 ; CUR(23%,17%)X%" ,"Y%" "; 51 ; CUR(X%,Y%); 52 GET P$ 53 OUT 6%,0% 54 V%=ASC(P$) 55 IF V%=12% 46 56 IF NOT (V%=23%) 60 57 FOR U%=0% TO 22% : P1$(U%)=P$(U%) 58 NEXT U% 59 GOTO 159 60 IF NOT (V%>31% AND V%<128%) 65 61 IF NOT (Y%<39%) 64 62 ; CHR$(V%) : Y%=Y%+1% 63 GOTO 48 64 OUT 6,131% : GOTO 48 65 IF V%=21% AND X%=0% OUT 6%,131% 66 IF V%=21% AND X%=0% 49 67 IF NOT (V%=21% AND X%>0%) 69 68 X%=X%-1% : GOTO 49 69 IF V%=14% AND X%=22% OUT 6%,131% 70 IF V%=14% AND X%=22% 49 71 IF NOT (V%=14% AND X%<22%) 73 72 X%=X%+1% : GOTO 49 73 IF V%=8% AND Y%=0% OUT 6%,131% 74 IF V%=8% AND Y%=0% 49 75 IF NOT (V%=8% AND Y%>0%) 77 76 Y%=Y%-1% : GOTO 49 77 IF V%=10% AND Y%=39% OUT 6%,131% 78 IF V%=10% AND Y%=39% 49 79 IF NOT (V%=10% AND Y%<39%) 81 80 Y%=Y%+1% : GOTO 49 81 IF V%=9% AND X%=0% OUT 6%,131% 82 IF V%=9% AND Y%=39% OUT 6%,131% 83 IF V%=9% AND X%=0% 49 84 IF V%=9% AND Y%=39% 49 85 IF NOT (V%=9% AND X%>0%) 88 86 IF NOT (V%=9% AND Y%<39%) 88 87 X%=X%-1% : Y%=Y%+1% : GOTO 49 88 IF V%=25% AND X%=0% OUT 6%,131% 89 IF V%=25% AND Y%=0% OUT 6%,131% 90 IF V%=25% AND X%=0% 49 91 IF V%=25% AND Y%=0% 49 92 IF NOT (V%=25% AND X%>0%) 95 93 IF NOT (V%=25% AND Y%>0%) 95 94 X%=X%-1% : Y%=Y%-1% : GOTO 49 95 IF V%=2% AND X%=22% OUT 6%,131% 96 IF V%=2% AND Y%=0% OUT 6%,131% 97 IF V%=2% AND X%=22% 49 98 IF V%=2% AND Y%=0% 49 99 IF NOT (V%=2% AND X%<22%) 102 100 IF NOT (V%=2% AND Y%>0%) 102 101 X%=X%+1% : Y%=Y%-1% : GOTO 49 102 IF V%=13% AND X%=22% OUT 6%,131% 103 IF V%=13% AND Y%=39% OUT 6%,131% 104 IF V%=13% AND X%=22% 49 105 IF V%=13% AND Y%=39% 49 106 IF NOT (V%=13% AND X%<22%) 109 107 IF NOT (V%=13% AND Y%<39%) 109 108 X%=X%+1% : Y%=Y%+1% : GOTO 49 109 IF NOT (V%=16%) 123 110 ; CUR(23%,0%)SPACE$(39%); 111 ; CUR(23%,0%); 112 ; "VILKEN PUNKT (00-22,00-39)"; 113 GET P$ : IF P$<"0" OR P$>"2" 113 114 ; P$; 115 GET R$ : IF R$<"0" OR R$>"9" 115 116 ; R$; : IF VAL(P$+R$)>22% 110 117 X%=VAL(P$+R$) : ; ","; 118 GET P$ : IF P$<"0" OR P$>"3" 118 119 ; P$; 120 GET R$ : IF R$<"0" OR R$>"9" 120 121 ; R$; : IF VAL(P$+R$)>39% 110 122 Y%=VAL(P$+R$) : GOTO 49 123 IF NOT (V%=19%) 48 124 U$=P$(22%) 125 ; CUR(22%,0%)SPACE$(39%); 126 ; CUR(22%,0%);"ANGE FILNAMN"; 127 INPUT P$ 128 IF P$="" 49 129 ONERRORGOTO 129 130 ; CUR(22%,0%);SPACE$(39%); 131 ; CUR(22%,0%)"F\RSTA RADNR"; 132 INPUT U% 133 IF U%<1% OR U%>32000% 132 134 ; CUR(22%,0%)U$; 135 IF P$="" 49 136 IF P$="" AND P1$<>"" P$=P1$ 137 IF P$="" 125 138 IF INSTR(1%,P$,".")=0% P$=P$+".LAY" 139 IF F% F%=0% : GOTO 143 140 ONERRORGOTO 143 141 OPEN P$ ASFILE 1% : CLOSE 1% 142 F%=1% : GOTO 124 143 ONERRORGOTO 153 144 PREPARE P$ ASFILE 1% 145 F%=0% 146 FOR X%=0% TO 22% 147 ; #1%,U%+X%; 148 ; #1' ; CUR('X%'%,0%)"'; 149 ; #1%P$(X%)'"' 150 NEXT X% 151 CLOSE 1% : X%=0% : Y%=0% 152 GOTO 49 153 IF ERRCODE=21% 124 154 ; CUR(23%,0%)"DET BLEV ERROR"; 155 ; ERRCODE 156 FOR P%=0% TO 6000% : NEXT P% 157 ; CUR(23%,0%)SPACE$(39%); 158 GOTO 49 159 ; CUR(0,0%)" LAYOUT " 160 ; CUR(1,0%)" ====== " 161 ; CUR(2,0%)" " 162 ; CUR(3,0%)"Med detta program kan du skriva text- " 163 ; CUR(4,0%)"sidor, liknande den h{r. " 164 ; CUR(5,0%)" " 165 ; CUR(6,0%)"Sidorna sparas som printsatser med CUR. " 166 ; CUR(7,0%)" " 167 ; CUR(8,0%)"Du startar upp programmet genom att " 168 ; CUR(9,0%)"skriva 'RUN LAYOUT.UTL'. D} t|ms sk{rmen " 169 ; CUR(10,0%)"och mark|ren st{ller sig h|gst uppe " 170 ; CUR(11,0%)"till v{nster. P} den nedersta raden " 171 ; CUR(12,0%)"st}r det '0,0'. Dessa siffror visar " 172 ; CUR(13,0%)"mark|rens position (Rad,Kolumn). " 173 ; CUR(14,0%)" " 174 ; CUR(15,0%)"Du kan styra mark|ren genom olika kon- " 175 ; CUR(16,0%)"trollkommandon, som n{rmare g}s igenom " 176 ; CUR(17,0%)"p} n{sta sida. " 177 ; CUR(18,0%)" " 178 ; CUR(19,0%)" " 179 ; CUR(20,0%)" " 180 ; CUR(21,0%)" " 181 ; CUR(22,0%)"Tryck p} !!! "; 182 INPUTLINE A$ 183 ; CUR(0,0%)"Du kan styra mark|ren p} f|ljande s{tt: " 184 ; CUR(1,0%)" " 185 ; CUR(2,0%)"CTRL-U = Upp}t, CTRL-N = Ned}t " 186 ; CUR(3,0%)"CTRL-J = H|ger, CTRL-H = V{nster " 187 ; CUR(4,0%)" " 188 ; CUR(5,0%)"CTRL-I = Snett h|ger upp}t " 189 ; CUR(6,0%)"CTRL-Y = Snett v{nster upp}t " 190 ; CUR(7,0%)"CTRL-M = Snett h|ger ned}t " 191 ; CUR(8,0%)"CTRL-B = Snett v{nster ned}t " 192 ; CUR(9,0%)" " 193 ; CUR(10,0%)"CTRL-L = T\m sk{rmen, s{tt mark|ren " 194 ; CUR(11,0%)" h|gst upp till v{nster " 195 ; CUR(12,0%)" " 196 ; CUR(13,0%)"CTRL-S = Spara det som finns p} sk{rmen " 197 ; CUR(14,0%)" " 198 ; CUR(15,0%)"CTRL-P = G} till en viss punkt. Mata in " 199 ; CUR(16,0%)" Rad Kolumn. Tryck ej p} RETURN " 200 ; CUR(17,0%)" " 201 ; CUR(18,0%)" Ex. punkt 3,18: 0318 " 202 ; CUR(19,0%)" punkt 2,2 : 0202 " 203 ; CUR(20,0%)" punkt 0,0 : 0000 " 204 ; CUR(21,0%)" " 205 ; CUR(22,0%)"Tryck p} !!! "; 206 INPUTLINE A$ 207 ; CUR(0,0%)"F|r att spara en sida, trycker du " 208 ; CUR(1,0%)"ned CTRL-S. F|ljande text kommer d}: " 209 ; CUR(2,0%)" " 210 ; CUR(3,0%)"ANGE FILNAMN? (Ex. PROV.BAS) " 211 ; CUR(4,0%)" " 212 ; CUR(5,0%)"Anger du ingen extension, kommer exten- " 213 ; CUR(6,0%)"sion .LAY automatiskt att anv{ndas. " 214 ; CUR(7,0%)"Om du ist{llet matar in ascii-tecken " 215 ; CUR(8,0%)"127 () s} }terg}r programmet till in- " 216 ; CUR(9,0%)"matning av text. " 217 ; CUR(10,0%)" " 218 ; CUR(11,0%)"F\STA RADNUMMER? (Ex 1000) " 219 ; CUR(12,0%)" " 220 ; CUR(13,0%)"Om du angett ett felaktigt filnamn kom- " 221 ; CUR(14,0%)"mer programmet att }terg} till ANGE " 222 ; CUR(15,0%)"FILNAMN. Om filnamnet redan finns }ter- " 223 ; CUR(16,0%)"g}r programmet {ven d} till ANGE FIL- " 224 ; CUR(17,0%)"NAMN. Mata d} in filnamn och radnummer " 225 ; CUR(18,0%)"p} nytt s} kommer filen att sparas. " 226 ; CUR(19,0%)" " 227 ; CUR(20,0%)"CTRL-W ger dessa instruktioner vid in- " 228 ; CUR(21,0%)"matning av text. " 229 ; CUR(22,0%)" "; 230 INPUTLINE A$ 231 FOR U%=0% TO 22% : ; P1$(U%); 232 NEXT U% : GOTO 49