Epson FX-185 User Manual - Page 197

Code solutions

Page 197 highlights

encounters a one, it adds the appropriate power of two to F (line 190). The exponent is the difference between the current row (R) and the last row in this pass of the print head (P+6*S). Line 220 sends F to the printer as a graphics pin pattern. 10 DEFINT A: N=21: DIM A(N,N) 20 FOR R=1 TO N: FOR C=1 TO N 30 D=SQR((R-11)^2 + (C-11)^2) 40 IF INT(D+.5)=10 THEN A(R,C)=1 50 NEXT C 60 PRINT "ROW";R: NEXT R 70 LPRINT CHR$(27)"1"CHR$(7); 100 B=1: E=N-6: S=1 110 FOR P=B TO E STEP 7*S 120 PRINT "LOADING ROWS";P;"TO";P+6*S 130 LPRINT CHR$(27)"*"CHR$(0)CH$(N)CHR$(0); 150 FOR C=1 TO N: GOSUB 180: NEXT C 160 LPRINT: NEXT P 170 LPRINT CHR$(27)"@": END 180 F=0: FOR R=P TO P+6*S STEP S 190 IF A(R,C)=1 THEN F=F+2^ABS(P+6*S-R) 200 NEXT R 220 LPRINT CHR$(F);: RETURN Check your listing against the program above to make sure you have it all. If you do, type RUN. The array looks like this printout when it's translated into dots. If all went well, skip to the "Higher resolution" section, below. If not, take the time to find out a code solution. Code solutions If your printout doesn't look much like ours, it's likely the problem involves the codes from nine to 13. Remember that the program determined the dot patterns to send to the printer by the figure stored in the array. The cleanest way to get the figure to print correctly is to either POKE the codes directly or use a printer driver that allows the codes to pass through as sent. See Appendix F. If neither is possible, there is a third way. You can avoid these codes during printing without doing too much damage to the figure. The test 180

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268

encounters a one, it adds the appropriate power of two to F (line 190).
The exponent is the difference between the current row (R) and the last
row in this pass of the print head (P+6*S). Line 220 sends F to the
printer as a graphics pin pattern.
10 DEFINT A: N=21: DIM A(N,N)
20 FOR R=1 TO N: FOR C=1 TO N
30
D=SQR((R-11)^2 + (C-11)^2)
40
IF INT(D+.5)=10 THEN A(R,C)=1
50
NEXT C
60
PRINT "ROW";R: NEXT R
70 LPRINT CHR$(27)"1"CHR$(7);
100 B=1: E=N-6: S=1
110 FOR P=B TO E STEP 7*S
120 PRINT "LOADING ROWS";P;"TO";P+6*S
130 LPRINT CHR$(27)"*"CHR$(0)CH$(N)CHR$(0);
150 FOR C=1 TO N: GOSUB 180: NEXT C
160 LPRINT: NEXT P
170 LPRINT CHR$(27)"@": END
180 F=0: FOR R=P TO P+6*S STEP S
190 IF A(R,C)=1 THEN F=F+2^ABS(P+6*S-R)
200 NEXT R
220 LPRINT CHR$(F);: RETURN
Check your listing against the program above to make sure you have
it all. If you do, type RUN.
The array looks like this printout when it’s translated into dots.
If all went well, skip to the “Higher resolution” section, below. If
not, take the time to find out a code solution.
Code solutions
If your printout doesn’t look much like ours, it’s likely the problem
involves the codes from nine to 13. Remember that the program deter-
mined the dot patterns to send to the printer by the figure stored in the
array. The cleanest way to get the figure to print correctly is to either
POKE the codes directly or use a printer driver that allows the codes
to pass through as sent. See Appendix F.
If neither is possible, there is a third way. You can avoid these codes
during printing without doing too much damage to the figure. The test
180