mail@gabrielegan.com wrote:It would be an interesting exercise for a student to take the code that produces this and transform it so that Snoopy appears when we look at the other side of the paper-tape. I guess that means mirroring each byte so that the least-significant-bit goes to the most-significant-bit, the second-least to the second-most, and so on. That's just the kind of beginner's exercise my students should enjoy, competing to make the most efficient coding. (My first instinct is to use eight masking operations in a row to pull out each bit, but I wonder if there's some mathematical relationship that makes it simpler).
Thanks again, everyone, for this stimulating stuff.
Gabriel Egan
1 REM ALTAIR 8800 BANNNER
2 PRINT "ALTAIR 8800 ASCII BANNER"
3 PRINT "FOR TERMINAL PRESS 1 FOR LINEPRINTER PRESS 2"
4 INPUT A
5 IF A<1 OR A>2 THEN GOTO 3
6 READ L,A$
7 IF A$="END" THEN GOTO 12
8 FOR N=1 TO L
9 IF A=1 THEN PRINT A$ ELSE LPRINT A$
10 NEXT N
11 GOTO 6
12 END
100 DATA 1," BFi."
101 DATA 1," @B@@@BM2r."
102 DATA 1," B@B@B@B@B@B@MXr,"
103 DATA 1," @B@B@B@@@B@B@B@@@B@PL,"
104 DATA 1," :vS@B@@@B@B@B@B@B@B@B@B@B0L:"
105 DATA 1," ,7qB@B@B@B@B@B@B@@@B@B@B@Ej:"
106 DATA 1," :YE@B@B@@@B@B@B@B@B@@@@@BOji."
107 DATA 1," iJ0B@B@B@B@B@B@@@B@B@B@B@MF;."
108 DATA 1," qB@@@B@B@B@B@B@B@B@B@B@B@B@B@S7."
109 DATA 1," E@B@B@B@.i2MB@B@B@B@B@B@B@B@B@B@B@Bqv:"
110 DATA 1," OB@B@B@B .rSM@@@B@B@B@@@B@B@B@B@B@B@NL:"
111 DATA 1," O@B@B@B@ .75BB@B@@@@@B@B@B@B@B@B@B@BGLi"
112 DATA 1," OB@B@B@B ,rXM@B@B@@@B@B@B@B@B@B@B@B@82i,"
113 DATA 1," 8@B@B@B@ .r5BB@B@B@B@B@B@B@B@@@@@B"
114 DATA 1," OB@B@B@B .jM@@@@@B@B@@@B@B@"
115 DATA 1," 8@B@B@B@ :rLSG@B@@@@@B@B@B@@@B"
116 DATA 1," OB@B@B@B .iuE@B@B@B@B@B@@@@@B@B@@@B@B@"
117 DATA 1," 8@@@B@B@ .iu0@B@B@B@B@B@@@B@B@@@B@@@B@B@B@B@B"
118 DATA 1," OB@B@B@B .:Jq@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@"
119 DATA 1," q@B@B@B@:7k@@@@@B@B@@@B@B@B@B@B@B@B@@@B@B@B@B@@@B@B@B@B@B"
120 DATA 1," OB@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@@@@@"
121 DATA 1," :7SM@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@@@B@B@B"
122 DATA 1," ,rF8@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@B@@@B@B@"
123 DATA 1," :r5G@B@@@B@B@B@@@B@B@@@B@B@B@B@@@@@@@B@B@B@@@B@B@B@@@B@B@B@B@@@@@B@B@B@B@B@B@F"
124 DATA 1," @@B@B@B@B@B@B@@@B@B@B@B@@@B@B@B@@@B@B@B@@@B@B@B@B@B@B@@@B@B@@@B@B@@@B@B@B@B@B"
125 DATA 1," @B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@@@B@B@B@B@B@B@B@@@B@B@B@B@B@@@B@B@B"
126 DATA 1," B@B@B@B@B@B@B@B@@@B@B@@@B@B@B@B@B@B@B@@@B@B@@@B@B@B@B@B@B@@@B@B@@@B@B@B@BE:"
127 DATA 1," @B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@@@B@B@B@@@B@B@B@B@B@B@@@B@B@@@B@B@Xv:"
128 DATA 1," B@@@@@B@B@@@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@@@B@B@B@B@@@B@B@Gui."
129 DATA 1," @@@B@B@@@B@B@B@@@B@B@B@B@B@B@@@B@B@B@@@B@B@B@B@B@B@B@MFr,"
130 DATA 1," B@B@B@@@@@B@B@B@B@B@B@@@@@B@@@@@B@@@B@@@B@B@B@B0Yi"
131 DATA 1," @B@@@B@B@@@B@B@B@@@B@B@B@B@B@B@B@B@@@B@BOUr."
132 DATA 1," B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@@@B@kv:"
133 DATA 1," @B@B@B@B@@@B@B@B@B@B@B@@@B@Eu:."
134 DATA 1," B@B@B@B@B@B@B@B@B@@@OFr,"
135 DATA 1," @B@B@B@B@B@B@B0L:"
136 DATA 1," B@B@B@BOur."
137 DATA 1," @qv,"
138 DATA 7," "
145 DATA 1," SB@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@@@B@@@B@B@B@B@B@B@B@B@B@B@@@@@B@B@@@B@B@@@@"
146 DATA 1," .@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@@@B@B@B@B@B@B@B@B@@@@@B@B@@@B@B@B@B@@@B@B@"
147 DATA 3," @B@@@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@@@B@B@@@B@B@B@B@B@B"
150 DATA 1," B@B@@@B@B@B@B@B@B@B@@@B@B@B5"
151 DATA 18," @B@B@B@B@B@@@B@B@B@B@B@B@B@"
169 DATA 2," @@@B@B@B@B@B@B@B@B@B@B@B@B@ jB@B@B@B@B@B@B@B@B@B@B@B@B@B"
171 DATA 13," vB@B@B@B@B@B@B@B@B@B@B@@@B@B"
184 DATA 5," @@@@B@B@B@B@B@B@B@B@@@B@@@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@@@B@B@"
189 DATA 13," 0B@B@B@B@B@@@@@B@B@B@B@B@B@B"
202 DATA 1," G7. 7@@@B@B@B@B@B@B@B@B@B@B@B@BB"
203 DATA 1," @B@B@Bk7."
204 DATA 1," B@B@B@@@B@B@Xv,"
205 DATA 1," @B@@@@@B@B@B@B@B@B0L:"
206 DATA 1," 7kM@B@B@B@@@B@B@@@B@B@B@0u:"
207 DATA 1," .7S@B@B@B@B@B@@@B@B@@@B@BOji."
208 DATA 1," ,70B@@@B@B@B@B@B@B@B@B@B@O1i."
209 DATA 1," :Y0@@@B@B@B@B@B@B@B@B@B@BBF7."
210 DATA 1," 0B@B@B@B@@@@@B@@@B@B@B@B@B@@P7:"
211 DATA 1," E@B@B@B@:JO@B@B@B@B@B@B@B@B@B@B@B@NL:"
212 DATA 1," O@@@@@@B .r2MB@B@B@B@@@B@B@B@B@B@B@BGY:"
213 DATA 1," O@B@B@B@ .i5M@B@B@B@B@B@B@B@B@B@B@B@Gui."
214 DATA 1," OB@@@B@B .r2BB@B@B@@@B@B@B@B@@@B@@@BM2r."
215 DATA 1," 8@B@B@B@ .i5O@B@@@B@B@@@B@@@B@B@B@B"
216 DATA 1," OB@B@B@B i1B@B@B@B@B@@@B@@@"
217 DATA 1," 8@B@@@B@ .:vk@@@B@B@B@@@@@B@@"
218 DATA 1," OB@B@B@B .;uGB@B@B@B@B@B@B@B@B@@@B@@@"
219 DATA 1," 8@@@B@@@ .iJGB@B@B@B@B@@@B@B@B@@@B@B@B@B@B@@"
220 DATA 1," O@@@@B@B iYZB@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@"
221 DATA 1," q@B@B@B@ ,v0B@B@B@B@B@B@B@B@B@B@B@@@B@B@@@B@@@B@B@B@B@B@B"
222 DATA 1," ZB@B@B@B@B@B@B@B@@@B@@@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@"
223 DATA 1," ,7FMB@B@B@@@B@@@B@B@B@B@B@B@@@B@B@B@B@B@B@B@@@B@@@B@B@B@B@B@B@B"
224 DATA 1," ,72MB@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@@@B@B@B@@@B@B@B@B@B@"
225 DATA 1," ,r2OB@B@B@B@B@B@@@@@@@B@B@B@B@B@B@B@@@B@@@@@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@N"
226 DATA 1," @@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@@@@@@@B@B@B@B@B@B@B@@@@@B@B@B@B@B@B@@@B@B@B@B"
227 DATA 1," @B@B@B@@@@@@@@@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@@@B@@@B@B@B@@:"
228 DATA 1," @@B@@@@@@@B@B@B@B@B@@@@@B@B@B@@@B@B@B@B@@@B@@@B@B@B@B@B@@@B@B@@@B@B@B@B@B@L"
229 DATA 1," @B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@@@B@@@B@B@B@B@B@@@B@@@B@B@B@B@@@B@B@BP7:"
230 DATA 1," B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@BGJi"
231 DATA 1," @B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@B@@@B@B@B@B@B@B@B@B@B@BM1r."
232 DATA 1," B@B@@@B@@@B@@@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@qL:"
233 DATA 1," @B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@Gui."
234 DATA 1," @@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@MX7:"
235 DATA 1," @B@B@@@B@B@B@B@B@B@B@B@B@B@@EL:"
236 DATA 1," B@B@@@B@B@B@B@B@B@B@BM2r."
237 DATA 1," @B@B@B@B@B@B@B@XL:"
238 DATA 1," B@B@@@B@Zui."
239 DATA 1," @BX7:"
240 DATA 7," "
247 DATA 15," @@@B@@@@@@@@@B@B@B@@@B@@@B@B@B@B@B@B@@@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B"
262 DATA 7," "
272 DATA 15," B@B@B@B@B@B@B@B@B@@@B@B@B@B@@@B@B@B@B@B@B@B@B@B@@@B@B@B@B@@@@@B@B@B@B@B@@@B@@@"
287 DATA 13," B@B@@@B MB@B@B@B"
300 DATA 1," u@B@B@B@G iB@B@B@B@"
301 DATA 2," @B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@@@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@@@B@B@@@B"
303 DATA 1," @@@B@B@B@B@B@@@B@B@B@@@@@B@@@@@B@B@BJB@B@@@B@@@B@B@@@@@B@B@B@B@B@B@@@B@B@@@B@."
304 DATA 1," B@B@B@B@@@B@B@B@B@B@B@B@B@@@B@B@B@BL rB@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@;"
305 DATA 1," BGENEq0qENEN0qEqEq0q0NEq0NEqEq00qr vqNENENEqEN0qEq0q0qEN0q0q0N0qEq0005;"
306 DATA 32," "
338 DATA 1," :5qEq0q0q0q0N0qEqEq0N0q0q0q0qEq0qEqEki jEq0q0N0q0q0q0N0N0NEq0q0N0NNL."
339 DATA 1," :@@B@@@B@B@B@B@@@B@B@B@B@B@B@B@@@B@B@B@BO .B@B@B@B@B@B@@@B@B@B@B@B@B@B@@@BM"
340 DATA 1," ,B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@BvB@B@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@"
341 DATA 2," B@@@@@@@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@@@B@B@@@@@B@B@B@B@@@B@@@@@B@B@B@B@B@BF"
344 DATA 1," @B@B@B@B@B@B@B@B@B@B@B@@@B@r B@B@B@BN @@@B@B@B"
345 DATA 21," @@B@B@@@B@B@B@B@B@B@B@B@B@@ vB@B@B@. B@B@B@B@"
366 DATA 1," @@@B@B@B@B@B@B@B@B@B@B@B@B@v B@B@B@B8 .@B@B@B@B"
367 DATA 2," B@B@B@B@B@B@B@B@@@B@B@B@B@B@M2YjJuJuYkB@@@B@B@B@2jYujuJujujujuJujuYuE@B@B@B@B@"
369 DATA 1," X@@@B@B@@@B@@@@@B@B@B@B@B@@@B@B@@@B@@@@@B@B@B@B@B@B@@@@@B@B@@@@@B@B@B@B@B@B@B:"
370 DATA 1," B@B@B@B@@@B@@@@@B@B@B@B@B@B@@@B@B@B@B@B@B.7@B@B@@@B@B@@@B@B@B@@@B@B@@@B@B@Bj"
371 DATA 1," v@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@@@B@BJ S@B@@@B@B@B@B@B@B@B@B@B@B@B@B@M,"
372 DATA 9," "
381 DATA 1," :5qEq0q0q0q0N0qEqEq0N0q0q0q0qEq0qEqEki jEq0q0N0q0q0q0N0N0NEq0q0N0NNL."
382 DATA 1," :@@B@@@B@B@B@B@@@B@B@B@B@B@B@B@@@B@B@B@BO .B@B@B@B@B@B@@@B@B@B@B@B@B@B@@@BM"
383 DATA 1," ,B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@BvB@B@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@"
384 DATA 1," B@@@@@@@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@@@B@B@@@@@B@B@B@B@@@B@@@@@B@B@B@B@B@BF"
385 DATA 2," @B@B@@@B@B@B@B@B@B@B@B@@@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@@@B@B@B@B"
387 DATA 1," @B@B@B@B@B@B@B@B@B@B@B@@@B@r B@B@B@BN @@@B@B@B"
388 DATA 21," @@B@B@@@B@B@B@B@B@B@B@B@B@@ vB@B@B@. B@B@B@B@"
409 DATA 1," @@@B@B@B@B@B@B@B@B@B@B@B@B@v B@B@B@B8 .@B@B@B@B"
411 DATA 2," @B@B@B@B@B@@@B@B@B@B@B@B@B@B@@@B@B@B@B@@@B@B@B@B@B@B@@@B@B@@@B@B@B@B@B@B@B@B@B"
412 DATA 1," X@@@B@B@@@B@@@@@B@B@B@B@B@@@B@B@@@B@@@@@B@B@B@B@B@B@@@@@B@B@@@@@B@B@B@B@B@B@B:"
413 DATA 1," B@B@B@B@@@B@@@@@B@B@B@B@B@B@@@B@B@B@B@B@B.7@B@B@@@B@B@@@B@B@B@@@B@B@@@B@B@Bj"
414 DATA 1," v@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@B@@@B@BJ S@B@@@B@B@B@B@B@B@B@B@B@B@B@B@M,"
415 DATA 9," "
425 DATA 1," 7B@B@B@@@B@@@B@@@B@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@O."
426 DATA 1," MB@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@@@B@B@B@@@B@B@B@B@B@B@@@@@B@@@B@B@B@@@B@7"
427 DATA 1," kB@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@@@B@@@B@B@B@B@B@B@@@@@B@B@B@B@B@B@,"
428 DATA 2," B@@@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@@B"
430 DATA 1," B@B@B@B@B@B@@@B@B@@@B@B@B@@@ i@@B@B@B@@@B@B@B@B@@@B@@@B@B@"
431 DATA 22," @B@B@B@B@B@B@B@B@B@B@B@B@B@ UB@B@B@B@B@@@B@@@B@B@B@B@B@B"
453 DATA 1," @@@B@B@B@B@@@B@@@B@B@B@B@B@B. i@@@B@B@B@B@@@@@B@B@B@B@B@B@B"
455 DATA 2," @B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@@@B@B@F"
456 DATA 1," ,@B@B@B@B@@@B@@@B@@@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@@"
457 DATA 1," :@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@@@B@B@B@B@@@B"
458 DATA 1," rXOZGZ8E8ZGE8Z8Z8Z8Z8ZGZGZ8EGZGEGEGZ8EGZGZ8E8EGZ8Z8ZGZGE8ZGZGZGZGZ8ZOZF,"
459 DATA 9," "
460 DATA 1," 7B@B@B@@@B@@@B@@@B@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@O."
461 DATA 1," MB@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@B@@@B@B@B@@@B@B@B@B@B@B@@@@@B@@@B@B@B@@@B@7"
462 DATA 1," kB@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@@@B@@@B@B@B@B@B@B@@@@@B@B@B@B@B@B@,"
463 DATA 2," B@@@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@@B"
464 DATA 1," B@B@B@B@B@B@@@B@B@@@B@B@B@@@ i@@B@B@B@@@B@B@B@B@@@B@@@B@B@"
465 DATA 22," @B@B@B@B@B@B@B@B@B@B@B@B@B@ UB@B@B@B@B@@@B@@@B@B@B@B@B@B"
466 DATA 1," @@@B@B@B@B@@@B@@@B@B@B@B@B@B. i@@@B@B@B@B@@@@@B@B@B@B@B@B@B"
467 DATA 2," @B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@B@B@B@B@B@B@@@B@B@F"
468 DATA 1," ,@B@B@B@B@@@B@@@B@@@B@B@B@B@B@B@B@B@B@@@@@B@B@B@B@B@B@B@B@B@B@B@B@@@B@B@B@B@@"
469 DATA 1," :@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@@@@@@@B@B@B@B@@@B"
470 DATA 1," rXOZGZ8E8ZGE8Z8Z8Z8Z8ZGZGZ8EGZGEGEGZ8EGZGZ8E8EGZ8Z8ZGZGE8ZGZGZGZGZ8ZOZF,"
471 DATA 1,"END"
Caterman wrote:Here's my ALTAIR 8800 Banner nearly 6' when printed in Altair type font.
I have been looking for an old program that prints banners by simply typing in the phase you want, I can't find it anywhere, anyone have anything.
I have loved revisiting the old ASCII art days, great challenge.
Wouldn't it be great if we could have some form of software challenge set regularly. Perhaps a separate forum!
Also any clues on sending hex data or something to a paper tape punch on the second SIO just using 8k Basic or Basic under CPM, not just using LPRINT? Instead of machine code.
Users browsing this forum: No registered users and 17 guests