Epson FX-185 User Manual - Page 196

Pin firing sequences, IF AR, C=1 THEN F=F+2^ABSP+6*S-R

Page 196 highlights

The next line loads the beginning (B), ending (E), and step (S) values for the loop that will read and print the array. 100 B=1: E=N-6: S=1 We have you use variables here so that you can change them later. That way you can make your program read the array in a number of directions. Using 7 pins of the print head on each pass, the program will take 3 passes to print a 21-row array. If you change the array size, remember to use a multiple of 7. Continue by adding these five lines: 110 FOR P=B TO E STEP 7*S 120 PRINT "LOADING ROWS";P;"TO";P+6*S 130 LPRINT CHR$(27)"*"CHR$(0)CHR$(N)CHR$(0); 150 FOR C=1 TO N: GOSUB 180: NEXT C 160 LPRINT: NEXT P Line 110 loads the array rows from beginning (B) to end (E) in sets of seven. Line 120 prints to the screen an update of the computer's progress. Line 130 enters Graphics Mode and reserves N columns for graphics (N is the width of the array). Line 150 accesses the subroutine (to be added next) that calculates the pin patterns for each column. And line 160 closes the loop for each pass (P) of the print head. Pin firing sequences The last step before printing the figure is to convert those ones and zeros to pin firing sequences. Add this subroutine to your program: 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 Understanding the subroutine is easy if you take it one step at a time. This subroutine calculates the pin firing pattern (F) for each column of seven dots. It examines the array vertically, one cell at a time. When it 179

  • 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

The next line loads the beginning (B), ending (E), and step (S) values
for the loop that will read and print the array.
100 B=1: E=N-6: S=1
We have you use variables here so that you can change them later.
That way you can make your program read the array in a number of
directions.
Using 7 pins of the print head on each pass, the program will take 3
passes to print a 21-row array. If you change the array size, remember
to use a multiple of 7.
Continue by adding these five lines:
110 FOR P=B TO E STEP 7*S
120 PRINT "LOADING ROWS";P;"TO";P+6*S
130 LPRINT CHR$(27)"*"CHR$(0)CHR$(N)CHR$(0);
150 FOR C=1 TO N: GOSUB 180: NEXT C
160 LPRINT: NEXT P
Line 110 loads the array rows from beginning (B) to end (E) in sets
of seven.
Line 120 prints to the screen an update of the computer’s progress.
Line 130 enters Graphics Mode and reserves N columns for graphics
(N is the width of the array).
Line 150 accesses the subroutine (to be added next) that calculates the
pin patterns for each column.
And line 160 closes the loop for each pass (P) of the print head.
Pin firing sequences
The last step before printing the figure is to convert those ones and
zeros to pin firing sequences. Add this subroutine to your program:
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
Understanding the subroutine is easy if you take it one step at a time.
This subroutine calculates the pin firing pattern (F) for each column of
seven dots. It examines the array vertically, one cell at a time. When it
179